professional software engineer since 1990, amateur since 1981.