Senior Backend/Platform Engineer
Budget: $50.0 - $60.0
HOURLY / FULL_TIME
⭐ 5.00 (1)
United Kingdom
python, software-architecture, amazon-web-services, api
About the Role
We're looking for a senior engineer to build and maintain a serverless, event-driven platform on AWS. You'll work across the full backend stack - from API design and data modelling to infrastructure-as-code, pipeline orchestration, and developer-facing SDK/CLI tooling.
This is a collaborative role in a small team. We value proactive communication - raising questions early, discussing approaches before implementation, and providing context with your work. You should be comfortable writing code without AI assistance and understand its limitations; AI is a useful accelerant but not a substitute for judgement. We care about readability and maintainability - the hard part is keeping a codebase clean and coherent over time.
Core Technical Requirements
Python (3.12+)
- Strong proficiency in modern Python: type hints, async/await
- Pydantic for data validation, settings management, and model-driven design
- FastAPI for REST APIs
- Async-first SDK libraries and CLI tools (Typer, Rich)
AWS (deep, hands-on experience required)
- Compute: Lambda, ECS Fargate, AWS Batch (Fargate and EC2/GPU)
- Data: DynamoDB (single-table design, streams, GSIs), Redshift Serverless
- Orchestration: Step Functions, EventBridge
- AI/ML: Bedrock (Knowledge Bases, Agents), AgentCore
- Networking: VPC, CloudFront, API Gateway, Route53, ACM
- Storage: S3, ECR
- Ops: CloudWatch, SQS/SNS, SSM Parameter Store, Secrets Manager
Infrastructure as Code
- AWS CDK v2 (Python) - multi-stack architectures, cross-stack references, per-tenant resource provisioning
- Multi-account, multi-environment deployment strategies
Development Tooling
- Package management: uv (Astral) - workspaces, dependency groups, private registries
- Code quality: Ruff, ty/Pyright, pre-commit hooks, Conventional Commits
- Testing: pytest (async, coverage, xdist), moto, httpx/respx, polyfactory
- CI/CD: GitHub Actions (self-hosted runners, matrix builds, OIDC auth), semantic-release
- Containers: Docker multi-stage builds, Buildx with layer caching, Docker Compose
Architecture and Patterns
- Serverless-first with Lambda as the default compute
- Event-driven design (EventBridge, DynamoDB Streams, SQS, SNS)
- Single-table DynamoDB (composite keys, GSI overloading, TTL)
- Monorepo with shared workspace libraries
- Step Functions for workflow orchestration
- Multi-tenant isolation (per-tenant AWS resources, RBAC)
- Container-based batch processing for compute-intensive workloads (CPU and GPU)
- MCP (stdio) server implementation for AI tool integration
Nice to Have
- PyTorch
- Scientific data formats (HDF5/h5py, anndata)
- RAG architectures (vector stores, knowledge bases, embeddings)
- Sentry, AWS Lambda Powertools
Day-to-Day
- Designing and implementing API endpoints, event-driven workflows, and SDK/CLI surfaces
- Writing and reviewing CDK infrastructure alongside application code
- Optimising DynamoDB access patterns and Step Functions state machines
- Debugging cross-service issues across Lambda, Batch, and ECS
- Maintaining CI/CD pipelines, Docker builds, and deployment automation
- Writing tests and keeping coverage high
- Collaborating on architecture decisions for scalability and cost efficiency
Openen op Upwork