Senior Backend Engineer (Python / FastAPI): Multi-Tenant Cloud Migration
About the Project
We are migrating multiple business-critical applications from a single-tenant Hub-and-Spoke architecture to a scalable, multi-tenant, cloud-native backend. The platform must be highly available, secure, scalable, and high-throughput, with a strong focus on async processing, API performance, database efficiency, authentication, and production readiness.
This is a delivery-driven engagement with firm deadlines and a broad group of stakeholders. It is a high-visibility position within the organization, with a strong likelihood of extension for engineers who deliver.
The Role
You will combine hands-on application migration with backend development. You will work independently, own your deliverables end to end, and communicate clearly and proactively with technical and business stakeholders.
Key responsibilities:
- Migrate business-critical applications from a single-tenant Hub-and-Spoke architecture to a multi-tenant, cloud-native platform
- Enable multi-tenancy across existing applications and services
- Design and build new REST APIs and backend functionality using Python and FastAPI
- Develop scripts and automation for data and configuration migration
- Design and optimize PostgreSQL schemas, queries, and data access patterns for efficiency at scale
- Implement async processing and high-throughput API design
- Implement authentication and security, including SSO, OAuth, OIDC, PKCE, On-Behalf-Of (OBO) flow, and API key authentication
- Containerize applications with Docker and deploy them on Azure Container Apps
- Build and maintain CI/CD pipelines in Azure DevOps
- Ensure production readiness through automated testing, logging, monitoring, and observability
- Debug, troubleshoot, and optimize performance in production environments
- Integrate Azure AI services into the backend
Technology Stack
- Languages and frameworks: Python, FastAPI
- Database and ORM: PostgreSQL, SQLAlchemy
- Containerization: Docker
- Cloud: Azure Container Apps, Azure Database for PostgreSQL Flexible Server, Azure AI Search, Azure Document Intelligence, Azure AI Foundry
- DevOps: Azure DevOps, CI/CD
- Architecture: Multi-tenant, cloud-native
Required Skills and Experience
Python development
- Strong Python development experience
- Deep FastAPI expertise (essential)
- Strong object-oriented programming skills and application of SOLID principles
- Async programming
- Scripting and automation
Database
- Deep understanding of PostgreSQL and its capabilities
- Strong database design skills
- Experience with SQLAlchemy or an equivalent Python ORM (essential), including transactions and connection management
- NoSQL experience (a plus)
API design and development
- REST API design
- Rate limiting and validation
- API versioning and error handling
- High-throughput API design
Authentication and security
- SSO, OAuth, OIDC, and PKCE
- On-Behalf-Of (OBO) flow
- API key authentication
- Secure API development practices
Architecture and scalability
- Multi-tenant architecture
- Highly available and scalable systems
- Resilience and fault tolerance
- Distributed-system concepts
Cloud and containerization
- Azure-based application architecture
- Docker and containerized applications
- Azure DevOps and CI/CD
Production engineering
- Automated testing
- Logging, monitoring, and observability
- Debugging and troubleshooting
- Performance optimization
AI fluency
- Familiarity with RAG, document processing, and visual processing concepts
- Experience working with AI-assisted development tools (e.g., GitHub Copilot)
What Sets a Strong Candidate Apart
- Direct experience delivering a migration project, ideally moving legacy or single-tenant systems to a multi-tenant, cloud-native architecture
- A track record of independent ownership: you can clearly explain the technical decisions you made and the parts you personally designed and implemented
- Clear, proactive communication with stakeholders under tight deadlines
- Comfort defending architectural and technical decisions in a deep, rigorous technical discussion
Interview Process
The technical interview will be conducted by a senior engineer and will be in-depth. Expect detailed questions on your hands-on contributions, technical decision-making, and specific examples of ownership from previous projects, particularly around Python, API design, Azure, Docker, security and authentication, and migration work. Please be prepared to discuss what you personally built and delivered, rather than what the team accomplished.
