3+ years of non-internship professional software development experience 2+ years of recent experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems