Scope, design, and build scalable, resilient distributed systems.
Build product definition and leverage your technical skills to drive towards the right solution.
Engage in cross-functional collaboration throughout the entire software lifecycle.
Lead design sessions and code reviews with peers to elevate the quality of engineering across the organization.
Define, create, and support reusable application components/patterns from a business and technology perspective.
Utilize programming languages like JavaScript, TypeScript, Java, C#, Python, and Container Orchestration services including Docker and Kubernetes, and a variety of Azure tools and services across the software development life cycle.
Utilizes developer tooling across the software development life cycle ( to perform advanced-level Mobile/Web/UI design, implementation, and maintenance activities under minimal direction.
Requirements
Ability to understand and translate business/functional requirements to High / Low-Level Designs.
Knowledge of Agile / Scrum / Iterative development methodologies.
Programming experience in Java Spring Boot, and Spring WebFlux.
Strong understanding of Data Structures and Algorithms.
API-Driven Development - Solid experience in RESTful and Microservices development.
Experience in working with one of the concurrency frameworks like Mono, Flux, and Akka.
Experience working in ORM frameworks like Entity, Hibernate, and Dapper.
Strong relational database experience in either Oracle, MS SQL, or Postgres.
Good experience in queuing or streaming engines like Kafka.
Unit Testing / TDD - Experience with Continuous Integration Delivery Automated Testing and tools such as NUnit, and JUnit.
Experience with Docker, GIT, SonarQube, Checkmarx, OpenShift, and other deployment tools for CI/CD.
Experience in using tools like Jira, GitLab, Swagger, Postman, SOAP UI, and Service Now.