We are looking for a Full Stack Engineer to join our engineering team at Ministry of Programming. This hire addresses our growing need for a versatile, tech-agnostic engineer who can contribute across the full development lifecycle — from writing clean, well-architected code to deploying and operating services in the cloud — while embracing AI-assisted development practices that define how we work in 2026.
Key Responsibilities
- Design, develop, test, and maintain full-stack product features across backend services and React-based frontend applications.
- Build and extend APIs, business logic, integrations, and data-access components.
- Develop accessible, responsive, and maintainable user interfaces using React and TypeScript.
- Apply OOP principles, SOLID practices, design patterns, and clean architecture where they provide practical value.
- Write readable, well-tested code and participate actively in peer reviews.
- Work with relational databases, including data modelling, migrations, query development, and basic performance optimisation.
- Deploy and operate applications in the cloud using suitable managed services.
- Contribute to CI/CD pipelines and container-based development and deployment workflows.
- Monitor applications, investigate production issues, and implement lasting fixes.
- Collaborate with product managers, designers, QA engineers, and other developers in an Agile environment.
- Participate in technical discussions and contribute to architectural decisions appropriate to the role.
- Identify technical debt and propose pragmatic improvements to maintainability, reliability, and developer experience.
- Use AI-assisted development tools responsibly to improve productivity while validating generated code for correctness, security, and maintainability.
- Share knowledge and support less-experienced engineers through pairing, documentation, and constructive code reviews.
Must-Have Skills
- 3+ years of professional software development experience in a full-stack or backend-oriented engineering role.
- Professional experience with .NET/C# or a comparable backend language and ecosystem, such as Java/Kotlin or another strongly typed language.
- Good understanding of OOP, SOLID principles, common design patterns, and clean code practices.
- Experience building web APIs and understanding of HTTP, REST, authentication, error handling, and API versioning.
- Understanding of component-based frontend architecture, and ability to build and modify React/TypeScript UIs under guidance — deep frontend specialization not required.
- Understanding of component-based frontend architecture, state management, forms, and API integration.
- Experience with relational databases and a good understanding of data modelling, SQL, migrations, and query optimisation.
- Experience writing automated unit or integration tests and working with Git-based development workflows.
- Hands-on experience with at least one major cloud provider and familiarity with services such as databases, storage, queues, serverless functions, or container hosting.
- Familiarity with Docker and CI/CD pipelines using tools such as GitHub Actions, Azure DevOps, GitLab CI, or an equivalent platform.
- Ability to troubleshoot issues across the application stack and take ownership of tasks from development through deployment.
- Experience using—or a strong willingness to adopt—AI coding assistants as part of the daily development workflow.
- Good written and spoken English and the ability to collaborate effectively in a distributed team.
Nice-to-Have Skills
- Hands-on experience with modern .NET, ASP.NET Core, Entity Framework Core, and related testing frameworks.
- Experience with React libraries and patterns commonly used for routing, data fetching, forms, testing, or state management.
- Experience with Azure and Azure DevOps.
- Knowledge of microservices, modular monoliths, or event-driven systems.
- Experience with messaging technologies such as Azure Service Bus, RabbitMQ, or Kafka.
- Familiarity with infrastructure-as-code, Kubernetes, or serverless architectures.
- Experience with observability tools, structured logging, metrics, traces, and application monitoring.
- Experience integrating LLM APIs or other AI capabilities into applications.
- Understanding of application-security fundamentals, including authentication, authorisation, secrets management, and dependency security.
- Contributions to open-source projects or a public portfolio demonstrating full-stack, cloud, or AI-related work.
- Experience working in consultancy, agency, or multi-client delivery environments.