The back-end developer is in charge of designing and building the APIs and distributed architecture that will serve the needs of our platform and our customers. Here are a few examples of the challenges you might be confronted to:
- What's the best way to develop a type-checked data processing pipeline?
- How to deploy deep-learning algorithms on mobile devices and handle the application life-cycle?
- How to reliably collect training data from this fleet of mobile devices into the centralized platform?
- How to evaluate the accuracy of a full data processing pipeline? How to spot the accuracy bottleneck in this pipeline?
From REST APIs in Django that handle thousands of requests per minute to managing job deployment in Kubernetes, you will play with lots of various technologies. You will navigate in the world of distributed systems and probably face the first scaling issues of Deepomatic's system (which is a good problem to have).
Within 1 month, you will:
- Learn everything there is to know about the business and the technology behind it. You will learn how our products work, how to deploy them, how to debug them.
- Dig into the code of one of the systems of the platform.
- Learn to use our internal tools to collaborate effectively with all Deepomatic teams
- Start and complete your Onboarding Project, which all new employees do within their first month, and address a team-specific feature.
Within 3 months, you will:
- Be familiar with a first system and its various components
- Design and complete your first feature squad with success
- Help our solution architects to transition to your newly deployed feature
Within 6 months, you will:
- Monitor and improve deployed solutions: work on speed, stability and accuracy improvements, solve production issues and scaling needs.
- Help design specifications of the next features of the platform.
- Help with hiring new talents
Within 1 year, you will:
- Be the go-to person regarding technical issues in your first system and contribute to the design of its architecture.
- Have the possibility to move on to another system to see other aspects of the platform
- Mentor new team members
- Help structure the developer team by improving existing processes and tools, and setting objectives for the team
- 6+ years of proficiency in development,
- Experience with Django and Python,
- Experience with distributed systems and Docker,
- Experience with algorithmics,
- Experience with Linux.
- Experience with deep learning and/or computer vision is a plus.
- Great human qualities and a love for teamwork.
- Great oral and written communication in English.