Responsibilities:
- Design and implement robust, scalable, and high-performance backend architectures.
- Lead the development and integration of APIs using modern Python frameworks such as FastAPI.
- Architect and optimize complex database solutions, including schema design and query optimization for relational databases like PostgreSQL/MySQL.
- Design and deploy systems that handle distributed workloads and complex data storage solutions, including databases, key-value stores, blob storage, and caching mechanisms.
- Leverage AWS services for scalable deployments, including but not limited to EC2, S3, RDS and Lambda.
- Ensure system reliability, scalability, and performance through architectural best practices, including asynchronous programming in Python.
- Own the deployment process, managing CI/CD pipelines and handling configurations for multiple environments.
- Debug and resolve critical system issues, ensuring minimal downtime and effective incident management.
- Stay updated with industry trends and propose modern solutions to meet business objectives.
Skills and Qualifications:
- Extensive experience in Python programming and frameworks like FastAPI (preferred), Flask, or Django for building APIs.
- Proficiency in ORMs, especially SQLAlchemy, with a strong understanding of database design, migrations (using Alembic), and declarative query languages.
- Strong grasp of asynchronous programming and its application in Python for scalable architectures.
- Expertise in working with relational databases like PostgreSQL/MySQL, including schema design, query optimization, and database management.
- Experience with AWS services, including architecture design and deployment (e.g., EC2, RDS, Lambda, S3).
- Familiarity with distributed systems, microservices architecture, and message brokers (e.g., RabbitMQ, Kafka, or SQS).
- Proficient understanding of CI/CD pipelines and modern DevOps practices, including Docker and Kubernetes.
- Strong understanding of system design principles and building highly scalable and maintainable systems.
- Experience working with caching mechanisms (e.g., Redis, Memcached) to improve performance.
- Excellent communication and problem-solving skills, with the ability to collaborate effectively with cross-functional teams.