Senior Microservices Developer
Reports to: VP of Innovation
Status: Full Time, Exempt
The Verus Innovation Team needs a Senior Microservices Developer who is responsible for overall solution design, including designing, building and testing of business software applications using a Microservices architectural framework. The candidate will have demonstrable, real-world experience in building microservices based applications on Microsoft technologies and will be a primary driving force in the transition of the current development efforts of Verus from a largely monolithic architectural style to a microservices architecture-based system.
- Lead the design and development of microservices using the C# language, .NET Core framework, SQL Server (with Entity Framework) and related Microsoft technologies.
- Orchestrate asynchronous event-driven communications between these microservices using Azure Service Bus, RabbitMQ or similar message broker systems.
- Decompose current monolithic applications and services into scalable, low-latency microservices that are containerized using Docker and deployed on Kubernetes clusters.
- Build and maintain application projects using Visual Studio, Visual Studio Code, Git repositories and deploy them to various environments using automated CI/CD pipelines and processes in TFS, Azure DevOps and GitHub.
- High level proficiency in writing unit-tests and integration-tests using xUnit (or a similar framework), writing and maintaining a healthy test-suite with a good amount of code coverage for all code that’s produced, at all times.
- Address cross-cutting concerns in the development efforts such as centralized logging, monitoring, alerting, and develop technical solutions to handle these efficiently within the application.
- Build application persistence layers using MongoDB (or a similar NoSQL datastore) for situations that require them.
- Participate in standups, code and design reviews, including testing to ensure adherence to the latest coding practices and industry/company standards.
POSITION QUALIFICATION REQUIREMENTS:
- Team player with leadership qualities who thrives when collaborating. Must be a critical thinker with strong business analysis skills. Committed to ongoing learning and must be flexible and adaptable in order to explore new ideas and innovate.
- Ten years+ of computer programming experience.
- Proficiency in Microsoft related technologies – such as C#, .NET, .NET Core, SQL Server, Entity Framework, ASP.NET MVC.
- Working knowledge of Unit Testing frameworks such as xUnit and Mocking frameworks such a Moq.
- Working knowledge of REST and gRPC.
- Working knowledge of building event-driven, asynchronous systems using pub/sub patterns and tools such as Azure Service Bus, RabbitMQ or similar technologies.
- Working knowledge of authentication systems and mechanisms (OAuth 2 / OpenID Connect), best practices for securing web-applications and data at rest.
- Real-world experience in building applications with technologies such as Docker (Linux containers), Kubernetes and deployment platforms such as AKS.
- Experience with CI/CD platforms/tools such as TFS, Azure DevOps, GitHub Actions.
- Experience with Azure CLI, PowerShell, Bash and other command-lines.
- Familiarity and minimal experience with NoSQL database systems such as MongoDB.
- Experience working in an Agile environment preferred.
- Strong communication skills with the ability to present complex subjects clearly and effectively to audiences of varying backgrounds, including internal and external stakeholders.
Normal business office conditions. Working for prolonged periods of time at a computer screen. To submit a resume, please email us at firstname.lastname@example.org.