- Take ownership of leading engineering teams while designing system architecture, implementing solutions, and overseeing delivery and long-term maintenance of large-scale software systems.
- Provide technical leadership within an Agile in-house development team through mentoring, code reviews, technical guidance, and best practices sharing.
- Ensure the development team strictly follows defined engineering processes while continuously improving efficiency and delivery quality.
- Build and maintain production-ready software that is secure, scalable, reliable, and easy to maintain.
Requirements
Python & Core Programming
- Advanced proficiency in Python with strong understanding of asynchronous, concurrent, and async/await programming models.
- Deep knowledge of Python memory handling, garbage collection, and performance optimization.
- Practical experience working with Stream APIs, Lambda expressions, and functional programming concepts.
- Hands-on expertise with Python frameworks such as Django, FastAPI, or Flask.
Backend & API Engineering
- Proven experience designing and implementing complex RESTful APIs, including pagination, filtering, and rate-limiting.
- Experience working with background task processing using Celery.
- Familiarity with API monitoring, caching mechanisms, and load-balancing strategies.
- Understanding of GraphQL is considered an added advantage.
Database Systems
- Strong SQL skills covering advanced queries, subqueries, indexing, views, and query performance tuning.
- Solid understanding of ACID principles and transactional behavior.
- Ability to optimize SQL queries and clearly explain transaction workflows.
- Experience with at least one NoSQL database such as MongoDB, Redis, or Cassandra.
- Proficiency in ORM tools like SQLAlchemy or Django ORM.
- Hands-on experience with schema design and database migration processes.
Cloud & Infrastructure
- Experience working with one or more major cloud platforms (AWS, GCP, or Azure).
- Basic knowledge of virtual compute services such as AWS EC2 or equivalent offerings.
- Understanding of object storage concepts (e.g., Amazon S3).
- Strong experience with Docker and container-based deployment.
- Familiarity with Kubernetes is a plus.
Messaging & Caching
- Practical experience using Redis for caching strategies and session management.
- Hands-on exposure to message queue systems such as Kafka, RabbitMQ, or AWS SQS.
Architecture & System Design
- Strong grasp of SOLID principles and modern software design best practices.
- Experience applying common design patterns (Factory, Singleton, Observer, Strategy, Proxy, Visitor, etc.).
- Understanding of TDD/BDD methodologies.
- Solid knowledge of microservices architecture and inter-service communication.
- Ability to create UML diagrams and produce clear system architecture documentation.
Security Knowledge
- Awareness of common security threats and vulnerabilities (OWASP Top 10: XSS, CSRF, SQL Injection, etc.).
- Experience implementing authentication and authorization mechanisms (JWT, OAuth2).
- Familiarity with access control models such as RBAC and ABAC.
- Practical experience designing secure APIs.
Testing & Quality Assurance
- Strong experience writing unit tests using pytest.
- Knowledge of integration testing and end-to-end testing approaches.
- Familiarity with test coverage and quality measurement tools.
DevOps & Monitoring
- Experience working with CI/CD pipelines (GitLab CI, Jenkins, GitHub Actions).
- Ability to investigate logs and troubleshoot issues efficiently (e.g., CloudWatch, system logs).
- Understanding of monitoring, alerting, and observability tools such as Prometheus, Grafana, or Datadog.
Networking & Version Control
- Solid understanding of networking fundamentals (IP addressing, CIDR, NAT, OSI model).
- Knowledge of load balancers and reverse proxies such as Nginx or HAProxy.
- Strong proficiency in Git and collaborative Git workflows.
- Experience participating in structured code review processes.