Senior Python backend developer for NATO
Job Summary
Would you like to join the leading international intergovernmental organization
We are seeking a Senior Back-End Developer to build and maintain robust server-side applications and APIs that power CMRE Data Management Program of Work. Specifically you will work in the design and development of CMRE Data Catalogue Data Domain Model Data Sharing Workflow. You will work within an Agile team under the guidance of the Software Architect translating architectural designs into production-grade code while upholding high standards of quality security and performance.
This is a hands-on engineering role with a strong ownership mind-set and the incumbent is expected to take full responsibility for the features you deliver from technical design through implementation testing and deployment. Moreover the appointee will participate in code reviews mentor junior developers contribute to architectural discussions and proactively flag technical risks or impediments to the team lead and project management.
Essential Qualifications & Experience:
7 years in back-end software development
Back-End Development & Programming
Python: Advanced proficiency; clean idiomatic code; familiarity with the ecosystem (virtual environments packaging type hints async/await)
Frameworks: Production experience with FastAPI famwork and async best practices
OOP & design patterns: Solid object-oriented design skills; familiarity with common design patterns (factory strategy repository dependency injection)
Performance: Profiling caching strategies connection pooling async processing background task queues (Celery Dramatiq or equivalent)
API Design & Development
RESTful APIs: Resource modelling versioning error handling pagination OpenAPI / Swagger documentation
Data formats: JSON JSON Schema validation; familiarity with serialisation libraries (Pydantic Marshmallow)
Event-driven systems: Message brokers (RabbitMQ RedisQueue Kafka etc.) pub/sub patterns async task processing
Databases & Data Persistence
Relational databases: Strong SQL skills; experience with PostgreSQL and/or SQL Server; schema design indexing query optimisation migrations
NoSQL databases: Working knowledge of at least one document key-value or search store (MongoDB Redis Elasticsearch)
ORM & data access: Experience with ORMs (SQLAlchemy Django ORM) and understanding
Containerisation & Linux
Docker: Writing Dockerfiles (multi-stage builds) Docker Compose for local development image optimisation
Kubernetes: Basic understanding of K8s concepts (pods services deployments ConfigMaps) for deploying and debugging applications
Linux: Comfortable with the command line; shell scripting process management file permissions networking basics
Software Engineering Practices
Testing: TDD unit testing (pytest) integration testing mocking code coverage; awareness of contract testing
CI/CD: Building and maintaining pipelines (GitHub Actions GitLab CI Azure DevOps or equivalent); automated linting testing and deployment
Version control: Advanced Git usage branching strategies (GitFlow trunk-based) pull/merge requests rebasing conflict resolution
Code quality: Static analysis linting (Ruff flake8 mypy) code review best practices documentation (docstrings ADRs)
Security
Secure coding: OWASP Top 10 awareness input validation output encoding secrets management
Authentication & authorisation: OAuth 2.0 OpenID Connect JWT; experience integrating with identity providers (Keycloak Entra ID or equivalent)
API security: Rate limiting CORS TLS API key management
Architecture Awareness & Collaboration
Architecture literacy: Ability to read and contribute to architectural documentation (C4 UML); understanding of microservices event-driven and layered patterns
Agile: Active participation in sprint ceremonies backlog refinement estimation and retrospectives
Communication: Clear reporting of progress and blockers; collaboration with architects front-end developers QA DevOps and UX designers
English proficiency: Excellent written and spoken English in a professional/international context
If youve read the description and feel this role is a great match wed love to hear from you! Click Apply for this job to be directed to a brief questionnaire. It should only take a few moments to complete and well be in touch promptly if your experience aligns with our needs.