Python Developer
Role details
Job location
Tech stack
Job description
We are looking for a Python Full Stack Developer to design, build, and ship production-grade web applications end to end - from a FastAPI backend and PostgreSQL data layer through to a modern React + TypeScript frontend, containerised with Docker and orchestrated on Kubernetes, and deployed and monitored across cloud platforms (AWS, Azure, or GCP). You will own features across the full stack: modelling data, exposing secure and well-documented APIs, building responsive interfaces, writing tests, and pushing your work to production through automated CI/CD pipelines.
This is a hands-on engineering role suited to someone who is comfortable across the entire delivery lifecycle and takes pride in shipping secure, observable, well-tested software., * Strong hands on experience in Python, Tableau & Data Mining experience.
- Design and build RESTful APIs with FastAPI - routing, request/response validation, dependency injection, middleware, and auto-generated OpenAPI documentation.
- Develop relational data models with SQLAlchemy (async) and manage schema evolution with Alembic migrations.
- Build responsive, accessible user interfaces in React with TypeScript, using modern hooks, client-side routing, and form validation.
- Implement secure authentication and authorisation - JWT access/refresh tokens, OAuth2 / OpenID Connect, password hashing, role- and scope-based access control (RBAC), and token revocation.
- Manage server state and data fetching on the frontend with TanStack Query, and application state with a lightweight store such as Zustand.
- Work with PostgreSQL and Redis for persistence, caching, rate-limiting, and background task coordination.
- Write unit, integration, and end-to-end tests (pytest, Vitest, React Testing Library, Playwright) and maintain healthy test coverage.
- Containerise services with Docker (multi-stage builds) and deploy/orchestrate them on Kubernetes - Deployments, Services, Ingress, ConfigMaps/Secrets, autoscaling, health probes - or on the cloud-native equivalents (AWS EKS/ECS, Azure AKS/Container Apps, GCP GKE/Cloud Run).
- Provision and ship infrastructure and releases across cloud providers (AWS, Azure, GCP) through automated CI/CD pipelines (GitHub Actions), using managed identity / IAM and cloud secret stores rather than hard-coded credentials.
- Monitor application performance and reliability - profiling, query optimisation, structured logging, error tracking, and tracing.
- Collaborate on clean, secure code through code review, conventional Git workflows, and adherence to OWASP and secrets-management best practices.
Requirements
Do you have experience in Tableau?, Do you have a Bachelor's degree?, Backend
- Strong Python fundamentals, including async/await (asyncio) and modern tooling (uv / poetry, virtual environments).
- Hands-on experience building APIs with FastAPI and data validation with Pydantic / pydantic-settings.
- Proficiency with SQLAlchemy (ORM, relationships, eager loading) and Alembic migrations.
- Solid PostgreSQL skills - query design, indexing, and reading EXPLAIN/ANALYZE output - plus Redis for caching and token storage.
Frontend
- Proficiency with React and TypeScript, including hooks, component composition, and React Router.
- Experience with form handling and validation (React Hook Form + Zod) and data fetching with TanStack Query.
- Comfort with a modern build toolchain (Vite), HTML5, CSS (Flexbox/Grid), and JavaScript ES6+.
Authentication & Authorisation
- Hands-on experience implementing JWT-based auth (access + refresh tokens) and OAuth2 / OpenID Connect flows.
- Secure password handling (bcrypt / passlib), token revocation, and session/token storage in Redis.
- Role-based and scope-based access control (RBAC), protecting routes and enforcing least-privilege.
- Familiarity with cloud identity providers and managed identity - AWS IAM / Cognito, Azure Entra ID, and GCP IAM.
Containers & Orchestration
- Proficiency with Docker - multi-stage builds, slim/non-root images, docker-compose, and image scanning (trivy).
- Working knowledge of Kubernetes - Deployments, Services, Ingress, ConfigMaps/Secrets, liveness/readiness probes, and horizontal autoscaling.
- Experience deploying to managed Kubernetes or container platforms: AWS EKS / ECS / App Runner, Azure AKS / Container Apps, or GCP GKE / Cloud Run.
- Container registries and image promotion (ECR, ACR, Artifact Registry, GHCR).
Cloud Platforms (AWS / Azure / GCP)
- Working knowledge of at least one major cloud platform, with willingness to work across all three:
- AWS - EC2, S3, RDS (PostgreSQL), ElastiCache, CloudFront, Route 53, SQS, IAM, CloudWatch.
- Azure - Container Apps / AKS, Blob Storage, Database for PostgreSQL, Cache for Redis, Key Vault, Service Bus, Entra ID, Azure Monitor.
- GCP - GKE / Cloud Run, Cloud Storage, Cloud SQL (PostgreSQL), Memorystore, Pub/Sub, Secret Manager, Cloud IAM, Cloud Monitoring & Logging.
- Cloud secret management and credential-free auth (Key Vault, Secrets Manager, Secret Manager, workload/managed identity).
Testing & DevOps
- CI/CD with GitHub Actions - lint, test, build, scan, and deploy pipelines with matrix builds and caching.
- Automated testing across the stack: pytest (with pytest-asyncio), Vitest / React Testing Library, and Playwright for E2E.
- Familiarity with observability tooling - structured logging, error tracking (e.g. Sentry), and tracing (e.g. OpenTelemetry / Jaeger).
- Sound version control practices with Git and GitHub (branching, pull requests, conventional commits).
Nice to Have
- Experience with background processing and messaging (Celery, SQS, Pub/Sub, or Azure Service Bus) and real-time features (WebSockets / SSE).
- Production experience across more than one cloud (AWS, Azure, GCP) or in a multi-cloud / hybrid setup.
- Infrastructure-as-code (Terraform, Pulumi, or Bicep) and Kubernetes package management with Helm.
- Security awareness - OWASP Top 10, dependency and secrets scanning (bandit, pip-audit, trivy).
- Performance profiling experience (py-spy, cProfile) and frontend bundle optimisation.
- Experience generating typed API clients (e.g. openapi-typescript) for end-to-end type safety., * Bachelor's degree in Computer Science, Engineering, or a related field - or equivalent practical experience.
- 2-10 years of professional software development experience across backend and frontend.
- A portfolio, GitHub profile, or shipped projects demonstrating full-stack delivery.