Do you wish to view this page in English? Change language

Senior Python Engineer

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.