Senior Back-End Developer

Vector Synergy
3 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Remote

Tech stack

API
Agile Methodologies
Apache HTTP Server
User Authentication
Unit Testing
Azure
Command-Line Interface
Cloud Computing
Static Program Analysis
Code Coverage
Code Generation
Profiling
Software Quality
Code Review
Encodings
Databases
Continuous Integration
Cross-Origin Resource Sharing (Ajax Programming)
Data Validation
Data Security
Serialization
Data Sharing
Relational Databases
Database Queries
Software Debugging
Dependency Injection
Software Design Patterns
Linux
DevOps
Django
Elasticsearch
File System Permissions
Github
JSON
Python
Key Management
PostgreSQL
Message Broker
Metadata Standards
Microsoft SQL Server
MongoDB
Networking Basics
NoSQL
OAuth
Object-Oriented Software Development
Query Optimization
RabbitMQ
Redis
Openid Connect
Mockito
Prometheus
Swagger
JSON Web Token
Secure Coding
Semantic Web
Shell Script
SQLAlchemy
UML
Management of Software Versions
Openapi
Data Logging
Transport Layer Security
Okta
Large Language Models
Grafana
Prompt Engineering
Software Security
Virtual Environment
Caching
Indexer
Backend
GIT
FastAPI
Event Driven Architecture
Pytest
Gitlab-ci
Git Flow
Integration Tests
Kubernetes
Kafka
Data Management
Celery
REST
Pagination
GPT
Software Version Control
Dynatrace
Serverless Computing
Docker
Domain Model
Key Vault
Microservices

Job description

  • Designing and developing robust server-side applications and APIs supporting the CMRE Data Management Program of Work;
  • Building and maintaining the CMRE Data Catalogue, Data Domain Model, and Data Sharing Workflows;
  • Translating architectural designs and specifications into production-grade, secure, and high-performance code;
  • Working within an Agile development team under the guidance of the Software Architect;
  • Taking end-to-end ownership of delivered features, including technical design, implementation, testing, and deployment;
  • Ensuring high standards of code quality, security, scalability, and performance;
  • Participating in code reviews to maintain and improve codebase quality;
  • Mentoring and supporting junior developers through technical guidance and knowledge sharing;
  • Contributing to architectural discussions and technical decision-making;
  • Proactively identifying, communicating, and mitigating technical risks and impediments;
  • Providing clear and timely communication on progress, issues, and blockers to the team lead and project management;
  • Collaborating closely with cross-functional stakeholders to ensure successful delivery of solutions

Requirements

  • 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)
  • 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
  • Code quality: Static analysis, linting (Ruff, flake8, mypy), code review best practices, documentation (docstrings, ADRs)
  • 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 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

Desirable requirements:

  • Knowledge of data management principles and practices
  • Experience in working with metadata standards such as: Dublin Core, ISO 19115, STANAG 2586
  • Knowledge of Semantic Web and related standards and technologies: W3C DCAT, RDF, Apache Jena, etc.
  • Microsoft Azure: Entra ID, Azure DevOps, Key Vault, etc.
  • Cloud-native development: Managed databases, serverless functions, environment configuration, cloud logging and monitoring
  • Logging & monitoring: Structured logging, centralised log aggregation, application metrics (Prometheus, Grafana, or equivalent)
  • Distributed tracing: OpenTelemetry instrumentation for backend services
  • LLM frameworks: Experience with orchestration frameworks (e.g. LangChain, LlamaIndex, etc.) and LLM gateway/routing libraries (LiteLLM)
  • RAG pipelines: Document ingestion, embeddings, vector stores (pgvector, Qdrant, Elasticsearch), retrieval strategies
  • AI-assisted development: Prompt engineering for code generation; familiarity with AI coding assistants and their effective use in workflows

Apply for this position