3+ years of non-internship professional software development experience
2+ years of non-internship design or architecture (design patterns,
reliability and scaling) of new and existing systems experience
Bachelor's degree or foreign equivalent in Computer Science, Engineering,
Mathematics, or a related field
Experience programming with at least one software programming language