Software Developer
About the role
Build, maintain, and troubleshoot applications using current, supported versions of .NET and C#. Build and improve containerized systems based on modular monolith and microservice designs. Modernize existing systems while extending our current platform. Design and maintain REST APIs, background services, and system integrations. Build backend features with C#, ASP.NET Core, Entity Framework Core, and related tools. Build frontend features with React, TypeScript, and related tools. Design workflows that span user interfaces, APIs, databases, messages, and background processes. Write code that can be tested at every layer. Write unit tests, integration tests with Testcontainers, and end-to-end tests with Playwright. Use Docker and Docker Compose to run applications and their dependencies locally. Package and deploy applications as containers. Trace and fix problems across the full system. Work with the team to find the root cause of issues reported by users. Automate repeated work and document important changes. Build and maintain CI/CD workflows with GitHub Actions. Use logs, health checks, metrics, and traces to find production issues. Perform data analysis and reporting when needed.
Responsibilities
- Build and improve containerized systems based on modular monolith and microservice designs.
- Modernize existing systems while extending our current platform.
- Design and maintain REST APIs, background services, and system integrations.
- Build backend features with C#, ASP.NET Core, Entity Framework Core, and related tools.
- Build frontend features with React, TypeScript, and related tools.
- Design workflows that span user interfaces, APIs, databases, messages, and background processes.
- Write code that can be tested at every layer.
- Write unit tests, integration tests with Testcontainers, and end-to-end tests with Playwright.
- Use Docker and Docker Compose to run applications and their dependencies locally.
- Package and deploy applications as containers.
- Trace and fix problems across the full system.
- Work with the team to find the root cause of issues reported by users.
- Automate repeated work and document important changes.
- Build and maintain CI/CD workflows with GitHub Actions.
- Use logs, health checks, metrics, and traces to find production issues.
- Perform data analysis and reporting when needed.
Requirements
- Bachelor’s Degree in Computer Science, Information Technology, Engineering, or a related field, or equivalent practical experience.
- 5+ years of professional software development experience.
- 5+ years of experience building applications with C# and .NET.
- Experience with recent versions of .NET and a willingness to adopt new versions as the platform evolves.
- Strong knowledge of C#, ASP.NET Core, and REST API design.
- Experience building frontend applications with React and TypeScript.
- Experience with Entity Framework Core or a similar data access framework.
- Working knowledge of SQL Server and PostgreSQL.
- Experience with Docker and containerized development.
- Experience with xUnit, Testcontainers, Playwright, or similar testing tools.
- Understanding of modular monoliths, microservices, messaging, and event-driven systems.
- Experience with GitHub Actions and CI/CD is preferred.
- Experience with infrastructure as code is preferred; Bicep experience is a plus.
- Experience with Azure Container Apps and related Azure services is preferred; Kubernetes is a plus.
Qualifications
- Ability to work independently, meet deadlines, and adapt when priorities change.
- Ability to explain technical issues clearly to both technical and non-technical audiences.
- Strong attention to detail.