About the role
We're looking for a Backend Developer (Django) who genuinely enjoys understanding how systems work underneath the surface and wants to build production systems from the ground up. This is not a role for someone who only knows how to build Django CRUD APIs.
Responsibilities:
- Designing and developing robust backend services using Python and Django.
- Designing relational databases, schemas, relationships and efficient queries.
- Building and maintaining REST APIs consumed by our web and mobile applications.
- Working on complex workflows around orders, inventory, billing, payments, settlements, returns and procurement.
- Designing systems that handle concurrency, transactions and data consistency correctly.
- Building background jobs and asynchronous workflows where required.
- Writing automated tests and ensuring backend reliability.
- Identifying performance bottlenecks and improving application and database performance.
- Participating in architecture and technical design discussions.
- Reviewing code and maintaining engineering standards across the backend.
- Debugging production issues and taking ownership of problems end-to-end.
Requirements:
- 2+ years of hands-on backend development experience.
- Strong proficiency in Django (Python).
- Strong experience with Django and Django REST Framework.
- Good understanding of PostgreSQL or another relational database.
- Strong understanding of system design and Architecture, Database design, transactions, and data consistency, REST API design, authentication, and authorisation, Data structures and fundamental algorithms, Error handling and validation.
- Good understanding of Git and collaborative development.
- Ability to understand an existing codebase and improve it without unnecessarily rewriting everything.
Good to Have:
- Experience building systems from scratch.
- Experience working on product/startup environments.
- Understanding of system design fundamentals.
- Experience with Redis, Celery or other asynchronous/background processing systems.
- Experience with Docker and cloud deployments.
- Understanding of caching, indexing and query optimisation.
- Strong debugging and problem-solving ability.