We are looking for a versatile Full Stack Engineer to join the engineering team at Ministry of Programming. You will contribute across the complete product lifecycle, adapt to different technologies and business contexts, and work collaboratively with clients and internal teams to turn real-world problems into reliable software solutions.
Design, develop, test, and maintain full-stack product features across backend services and frontend applications.
Build and extend APIs, business logic, integrations, and data-access components.
Develop accessible, responsive, and maintainable user interfaces using React and TypeScript or comparable technologies.
Understand the business problem behind each request and contribute to shaping an appropriate solution.
Ask thoughtful questions, clarify requirements, identify assumptions, and communicate delivery risks early.
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 appropriate 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, developers, and client stakeholders 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.
Adapt to unfamiliar languages, frameworks, tools, and domains when project needs change.
Use AI-assisted development tools responsibly to improve productivity while validating generated output for correctness, security, and maintainability.
Share knowledge and support colleagues through pairing, documentation, and constructive code reviews.
3+ years of professional software development experience in a full-stack or backend-oriented engineering role.
Professional experience with one or more backend ecosystems, such as .NET, Java, Node.js, Python, or Go.
Experience delivering production software as part of a collaborative engineering team.
Good understanding of OOP, SOLID principles, common design patterns, and clean-code practices.
Experience building web APIs and a solid understanding of HTTP, REST, authentication, error handling, and API versioning.
Understanding of component-based frontend architecture and the ability to build and modify React and TypeScript interfaces; deep frontend specialisation is not required.
Familiarity with state management, forms, responsive design, accessibility, and API integration.
Experience with relational databases and a good understanding of data modelling, SQL, migrations, and query optimisation.
Ability to troubleshoot issues across the application stack and take ownership of tasks from development through deployment.
Good judgment about when to follow an established approach and when to propose an improvement.
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.
Experience with AWS, Azure, Google Cloud, or comparable cloud platforms.
Familiarity with Docker, CI/CD pipelines, infrastructure as code, and application monitoring.
Experience with message queues, background jobs, caching, search, or event-driven systems.
Experience working directly with clients or stakeholders in discovery sessions, demos, planning meetings, or technical workshops.
Experience working across multiple projects, industries, or technology stacks.
Previous experience in a consultancy, agency, product studio, startup, or other fast-moving delivery environment.