. . . create world-changing products using God-given talents . . .
In general, from a task-level description point of view, we are looking for someone with skills and experience to:
- assemble various machine learning submodules into a Flask or FastAPI or Sanic framework,
- build a duplex communication layer utilizing web-sockets (to concurrently stream audio chunks into the system and receive the payloads back).
- use Flask/FastAPI/Sanic framework to keep track of connected users and maintain a cache for each user to cache incoming audio chunks up to a certain length of time.
- The WebSocket connection should be able to support sending audio as binary, but other information as JSON, with the return payload being solely JSON.
- The framework, using WebSockets, should support per-user failover, such that if an unplanned disconnect is detected, it can replay audio up to the disconnect event.
- The framework also needs to be able to handle user authentication at the WebSocket connection event.
- Programm and test this entire framework, from scratch, as a greenfield project, using only the Python ecosystem (no Redis or RabbitMQ). We prefer it to be written in FastAPI or Sanic, as Flask is not good enough for this kind of work. When chunked audio payload arrives into the framework from any given connection, it will be sent to a series of PyTorch models (we will provide these models and how they are to be called). The finalized output of those models will be JSON which then gets sent back.
This is a rough overview. But we expect that a true expert will probably tell us rather than we tell them, how this whole can work best.
Your #1 responsibility is to:
- Assemble ML module into Frameworks that will be used in these domains (actually ready-to-go into a Software Product)
- Duplex communication between the user and the server.
You will need:
- MLops and Flask, Fast API and Sanic, WebSockets (there is some NLP and we can’t lose any peace of conversation)
- Multiprocessing, multithreading
- Python, (no Redis Rabbit MQ)
- 4 x Machine learning and Data Science people (to build ML models)\
- 3 x Backend (Consume the output)
- Team members in Central, Eastern, Mountain, Pacific
- Daily interactions at 11-12 Central US time
You will act as a Software Engineer/ ML ops with 3 core domains:
- Data Science
- Websockets !!!
- It is good to have PySpark
- HR interview (0.5hr)
- Tech interview with tech questions and a couple of exercises (1.5hr)
- Very strong experience with Flask, FastAPI, and Sanic
- Very strong knowledge of multiprocessing and multithreading in Python
- Strong experience with gevent and gunicorn/WSGI
- Good knowledge of HTTP, Websocket, and AMQP protocols via Python
- Good understanding of VMs with GPU resources and how to efficiently utilize them for model inference purposes
- Good understanding of PyTorch, specifically TorchScript and JIT for exporting and hosting models
Please see above in a Project Description paragraph.
One of our founding principles at Evolve Squads is to encourage our developers, with the cooperation of their hiring managers the ability to work remotely when permitted.
– Long term employment;
– Flexible working hours and remote work;
– Health working environment and projects that use advanced, cutting-edge technologies;
– Career growth opportunities;
– Bonuses for a personal recommendation of new employees new business;
– A working environment where you communicate and work directly with the Client.
This flexibility allows developers…
- A better work-life balance
- Increased productivity
- The ability to work any time around the clock
- Reduction in commute time
- Less sick days
- More time with family and friends