- Previous experience building and architecting microservice based distributed applications for deployment to a cloud environment
- B.S. (or higher) in Computer Science, or equivalent work experience
- 10+ years experience in object-oriented and asynchronous programming in multiple languages (preferably C++, Golang, Python, and C#; Java acceptable substitute for Golang or Python if you have C++)
- 5+ years building microservices in the cloud using HTTP protocols, message brokers, caching, and databases systems to support a microservice based architecture
- 5+ years architecting scalable database solutions (Relational and/or NoSQL) to work with microservice architecture
- Significant experience working in a Linux based environment including basic system administration and performance management
- Familiarity with front end frameworks like React or similar
- Familiarity with Cloud Architecture in AWS and Azure, Containerization systems, and DevOps principles
- Previous on call experience where you can identify root causes of issues and fix most issues independently
- Solid Computer Science fundamentals including design patterns, algorithms, algorithmic complexity, memory management, state/object management, compilation, execution, and asynchronous processing
- Solid understanding of object-oriented principles including application of composition vs inheritance as well as SOLID principles
- Expertise in async programming principles and networked applications
- Proficiency in how to build multi-layered microservice architecture at enterprise scale
- Proficiency in message broker and caching system and how to use them to further scale over a microservice architecture
- Experience with major cloud platforms such as AWS, Azure, and Google Cloud
- Database knowledge of basics for different database types (MySQL and variants and Mongo and variants) to the degree you can optimize and tune from the developer perspective
- Ability to diagnose performance and connectivity Linux and Windows related issues
- Understanding of application side security best practices for multilayered micro-services environment
- Experience with Continuous Integration/Continuous Delivery (CI/CD) pipelines and tools like Jenkins, Git, Perforce, and Team City
- Expertise in branch management
- Experience with open-source frameworks, operating systems, and containerization technologies like Docker, ECS, AKS, and Kubernetes
- Expertise in application and API testing methodologies and best practices
- Expertise in automated testing