Engineering Manager at Yassir (W20)
Yassir is the leading Super App for French Speaking Africa
US / Remote
Full-time
6+ years
About Yassir

Yassir is the “super app” category leader in French-speaking Africa, using on-demand services such as ride hailing and last mile delivery, which solve important and immediate needs, so to build unconscious trust in order to fuel financial services for this large but previously underserved population (+80% unbanked without large scale on demand services).

About the role

About Yassir: Yassir is the “super app” category leader in French-speaking Africa (currently available in Algeria, Morocco and Tunisia), using on-demand services such as ride hailing and last mile delivery, which solve important and immediate needs, so to build unconscious trust in order to fuel financial services for this large but previously underserved population (+80% unbanked without large scale on demand services).

About the Role: We are looking for an engineering manager to lead our engineering department and help us build great products. You’ll also manage our infrastructure and ensure all internal systems operate securely and effectively.

To be successful in this role, you should be confident managing our teams while, at the same time, setting goals, budgets and timelines for various projects. We also expect you to be in charge of our integrations with external partners and oversee all software development plans from ideation to execution.

What you'll do: Oversee front-end and back-end development teams and their projects Monitor reliability and performance of all internal systems to suggest improvements Ensure compliance with security regulations Manage software development projects by setting requirements, goals and timelines Prepare and manage the engineering department’s budget Design strategies for future development projects based on the company’s overall objectives and resources Hire engineers and coordinate their training Implement innovative technologies Coordinate with external stakeholders for new integrations and tools Review and update policies relevant to internal systems and equipment

Requirements Work experience as an engineering manager or in a similar senior-level position at an engineering department Extensive experience with cloud technologies and modern human-computer interfaces Hands-on experience in back-end and front-end development Good understanding of agile methodologies Leadership abilities with a strategic mind Excellent project management skills Ideally experience managing remote teams. BSc/MSc in Engineering, Computer Science or relevant field

Technology

Yassir infrastructure is mainly hosted in GCP and relies on many GCP services

Main architecture components

Mongodb Database Mongo Atlas fully managed DB Cluster of 5 nodes 1 master 2 secondary 1 read only 1 for BI/Analytics Hosted in GCP, in the same region as Kubernetes cluster’s region, for low latency. Redis 1 x Memory Store node which is a fully managed Redis as service hosted on GCP Used for : Caching Queue Broker for Socket IO

Exposed backend Language : NodeJS Role/purpose : Authentication of token based requests Verification of token signature Autorisation based on user’s role extracted from token, to access specific url paths Proxy requests to internal backend Internal backend Language : NodeJS Sits behind the exposed backend, Assumes coming requests are already authenticated and authorized. Communicate with MongoDB directly

Socket IO server Takes care of real time communication use cases Used Redis as broker for scalability. Parallel processes can handle multiple socket connexions Other processes like workers or internal backend could broadcast or send messages through the Broker (Redis).

NodeJS Scheduled Jobs Same code base as Internal Backend Have access to DB Jobs are scheduled using Kubernetes Jobs configuration Example jobs: Calculate drivers invoicing status by the month Calculate drivers invoicing status by the day Various scheduled exports Reset monthly consumed balance for b2b users Time consuming asynchronous Real time jobs Fault tolerant
We use Google Cloud, Cloud Functions Node Js We use a Google Cloud PubSub as Queue, Each topic of the queue triggers a cloud function each time a message is pushed into Used mainly for : generate invoices and various email attachments Send emails Send push notifications Real time tasks Workers: Same code base as Internal Backend Have access to DB Multiple process running in parallel for maximum concurrency Processes are listening to ultra fast Redis based Queue. Each message produced to queue is consumed by a worker as Task Once a task is completed by a worker, it will listen again for new messages This architecture guarantees that a task is consumed only one time, and therefore executed by max one worker. Usage: Trip/Order assignment Send driver/courrier location to rider/customer through socket, on each location update while driver on approach GCP load balancer is used to managed routing of requests SSL traffic is handled at GCP LB level. Socket requests are proxied to socket io server Other requests are proxied to the exposed Exposed backend

Other jobs at Yassir

fulltimeUS / RemoteEngineering manager6+ years

fulltimeRemote3+ years

Hundreds of YC startups are hiring on Work at a Startup.

Sign up to see more ›