We are seeking a Senior Python Back End developer to join our client on a contract basis.
Our client are a consultancy who provide resources into NATO, for this role security clearance is not needed however any previous military experience would be desirable.
Please note this is a fully remote role so we can accept CVs from any NATO member country.
Role description:
The Task envisioned is to build, and maintain robust Server Side applications and APIs that power the Data Management Program of Work, specifically the incumbent will work in the design and development of C 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.
Mandatory requirements:
- Python: Advanced proficiency; clean, idiomatic code; familiarity with the ecosystem (virtual environments, packaging, type hints, async/await) Frameworks: Production experience with FastAPI framework 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)
- 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
- 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
- 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
- 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
- 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
- Secure coding: OWASP Top 10 awareness, input validation, output encoding, secrets management
- 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
If you are interested then apply or reach out to me directly.