Provide direct input to the overall engineering process and to team meetings. Must understand system architecture and the software development lifecycle in depth and be able to coordinate several tasks from a team perspective. Coordination within a team environment is essential to work on various aspects of the platform and products, as is a devotion of collaboration to problem solve, design sophistically, and increase product quality.
Design and develop solutions to various problems either independently or in a team environment.
Design and maintain efficient code that is reliable.
Form technical documents such as a design specification document.
Utilize NoSQL and relational databases by integrating data storage solutions.
Utilize Azure services such as, but not limited to, Functions, Logic Apps, App Services, Containers, Cosmosdb, eventhubs.
Utilize messaging patterns (REST, AMQP, Kafka, etc.) for system-to-system communication.
Ensure applications are performing at high capacity, responsiveness, and quality.
Find solutions to reduce issues and defects.
Maintain that the platform's code and data are organized, automated, and of high quality.
Guide junior team personnel by recommending software design and development opportunities/best practices.
Performs related duties as required.
Bachelor's Degree in Computer Science, required.
Minimum of five (5) years of development experience with a statically typed object-oriented programming language, C#, .NET, preferred).
Minimum of three (3) years of cloud development experience, preferably Azure or Google, required.
Minimum of three (3) years of source control, preferably GIT, and CI/CD experience, required.
Minimum of three (3) years of unit testing/test-driven-development experience, required.
DevOps and automation experience, preferred.
Strong understanding of modern application architectures/design (Domain Driven Development, Microservices, Event Sourcing, CQRS), preferred.
Exposure to containers, container orchestration and service mesh, preferred.
A strong passion for code craftsmanship (S.O.L.I.D & Clean coding) as well as secure coding, preferred.
Openness to change in technology and programming languages depending on problem.
Strong organizational and multi-tasking skills with the ability to handle several projects at once.
Excellent problem solving and communication skills.