Senior Backend Developer
Description
We are looking for a Senior Backend Developer for our client in the Pharma industryKey Responsibilities Backend Development & ModernizationBuild, maintain, and improve backend services in Python, with a focus on migrating a legacy Flask XXXX XXXX a modern FastAPI architecture using Domain-Driven Design principlesDesign and implement clean, well-tested domain packages with enforced architectural boundaries, repositories, and service layersContinuously deliver production-ready code while the legacy system re-mains live - ensuring zero regression and zero downtime throughout the transformationInfrastructure, Deployment & OperationsManage and evolve AWS infrastructure using Terraform, covering ECS Fargate, ALB, ECR, S3, 1AM, and SSM Parameter StoreBuild and maintain CI/CD pipelines in GitHub Actions with OIDC-based cloud authentication and multi-environment promotion (development, test, production)Containerize services using Docker with production-optimized multi-stage builds, and manage deployments with zero-downtime strategies (rolling updates, blue/green)Data Architecture & IntegrationDesign and maintain PostgreSQL schemas, write and optimize complex queries, and manage schema evolution through Alembic migrations on live databasesResponsible for data ingestion, integration, and curation from various in-ternal and external sources (SAP, LIMS, Outlook, and others) in a highly-regulated environmentDesign, build, maintain, and improve end-to-end data pipelines for prod-uct data ingestion, output, and visualizationQuality, Testing & ComplianceWrite and maintain comprehensive test suites using pytest, covering unit, integration, and behavioral testsDevelop BDD tests (Given/When/Then) that mapdirectly to user require-ments and serve as evidence of fitness for intended use within a Quality Management System (QMS)Uphold testing discipline as a core engineering practice - tests are not an afterthought but a primary deliverable in a regulated industry contextStakeholder EngagementEngage with the team and internal stakeholders to understand and resolve technical issues and advise on solutionsUse agile engineering practices and modern development tools to rapidly develop creative and efficient solutions that deliver value to users and the companyMain Job TasksBackend Development & ModernizationIncrementally port legacy Flask XXXX XXXX database layers to FastAPI and SQLAlchemy 2.0, using patterns such as strangler fig, bridge layers, and parallel runningImplement new features as domain packages (bounded contexts) with strict import boundaries enforced by tooling (import-linter)Model domain entities using modern SQLAlchemy 2.0 patterns (Mapped[], mapped_columnO, explicit loading strategies) and validate data with Py-dantic v2Manage Python dependencies, workspaces, and builds using UV (Astral)Infrastructure, Deployment & OperationsAuthor and maintain Terraform configurations for AWS infrastructure, managing state across multiple environments (poc, tst, prd)Configure and maintain GitHub Actions workflows for automated testing, linting, type checking, Docker image builds, and multi-stage deployments with manual approval gatesManage ECS Fargate services, task definitions, auto-scaling policies, and ALB routing rulesWrite and optimize Dockerfiles for API, migration runner, and supporting servicesData Architecture & IntegrationDesign and execute zero-downtime database migrations using Alembic (e.g., multi-step add-column, backfill, then constrain patterns)Optimize PostgreSQL query performance through indexing strategies, query plan analysis, and schema designBuild and maintain integration connectors that ingest data from external regulated systemsEnsure referential integrity and data quality across a shared database serving multiple bounded contextsQuality, Testing & ComplianceDesign pytest fixture hierarchies, test isolation strategies (in-memory SQLite for speed, Postgres for fidelity), and test markers for selective executionWrite BDD feature specifications that trace directly to user requirements, serving as living documentation and QMS compliance artifactsMaintain and extend pre-commit hooks, linters (Ruff), and type checkers (ty) to enforce code quality standards across the codebaseKnowledge, Skills and ExperienceExperience10+ years of proven industry experience in backend software developmentExtensive demonstrated experience building and maintaining production Python systems. Deep fluency with modern Python: type hints, data-classes, protocols, async/await, context managers, decorators, and modern packaging. Must be comfortable navigating, understanding, and improv-ing large legacy codebases while simultaneously building greenfield code to high standardsHands-on experience with SQLAlchemy 2.0 (Mapped[], mapped_ column (), relationship loading strategies). Ideally has migrated code from SQLAlchemy 1.x to 2.0 patternsProficient in PostgreSQL: schema design, query optimization (EXPLAIN ANALYZE), indexing strategies, transaction isolation, and managing schema changes on live databasesSolid understanding of RDBMS fundamentals: normalization, referential integrity, foreign key constraints, composite keys, and knowing when to denormalizeExperience managing database migrations (Alembic) in production, in-cluding zero-downtime patternsExperience with FastAPI or equivalent ASGI frameworks, including de-pendency injection, Pydantic validation, middleware, and building pro-duction REST APis. Experience with Flask XXXX XXXX relevant given the ongoing migration from Flask XXXX XXXX experience incrementally refactoring and migrating running production applications to modern architectures. Understands patterns like strangler fig, parallel running, and bridge layersWorking knowledge of AWS services: ECS Fargate, ECR, ALB, S3, IAM roles, and SSM Parameter StoreExperience with Terraform for infrastructure-as-code, including state man-agement, multi-environment configuration, and plan/apply workflowsComfortable with Docker: multi-stage builds, layer caching, production image optimization, and debugging containerized applicationsStrong testing discipline with pytest, covering unit and integration tests. Experience with fixture design, test isolation strategies, and test mark-ers/parametrizationExperience writing BDD tests that map directly to user requirements and serve as evidence of fitness for intended use. Familiarity with Given/When/Then patterns. Important for our regulated industry context where tests serve as QMS compliance artifactsFamiliarity with UV (Astral) for Python dependency management, workspaces, and lock filesExperience with Domain-Driven Design: identifying bounded contexts, implementing the repository pattern, and enforcing architectural bound-aries between domainsExperience with Pydantic v2: model validators, discriminated unions, and pydantic-settings for configuration managementExperience with CI/CD using GitHub Actions, including OIDC-based cloud authentication, multi-environment promotion pipelines, and auto-mated deployment workflowsExperience (Nice-to-Have)Understanding of Operations Research and Mathematical Optimization: Mixed Integer Programming (MIP), linear constraints, objective functions, and solver behavior. We have a core scheduling optimizer built on Python-MIP (CBC solver) that is part of the codebasePrior work in a regulated industry (pharma, medical devices, or similar) where traceability between requirements and tests, change control, and documentation discipline are expectedPersonal SkillsGood listening and communication skills in EnglishGeneralist mindset with a strong focus on business objectivesCurious, driven, self-starting and executingAbility and desire to learn and understand the domain and business, and constantly strive to improve this understanding to add valueAbility to assume responsibility for architecture, implementation, DevOps, and support - whatever is needed to achieve the objectivesTeam player with experience working in teams of 5+ peopleProactive in establishing strong Software Engineering capability and en-suring knowledge sharing across the teamStart date: 1-05-2026End date: 31-12-2026Location: Ballerup, DenmarkFor the duration of this assignment Ework Services (0,9%) will be deducted from the total amount invoiced.We offer candidates continuously. This means that we sometimes remove the assignments before deadline. If you are interested, we recommend that you apply immediately.
Skills
Want AI to find more roles like this?
Upload your CV once. Get matched to relevant assignments automatically.