Who we are:
Grabango seeks an experienced backend software engineer to help design and build its distributed systems, ML/CV, and data pipelining infrastructures. In order to generate a receipt based on computer vision only, we need to have tools to process massive amounts of video and other downstream data, making decisions about real-world events at every layer of our infrastructure simultaneously. Additionally, the system doing this work needs to be able to scale horizontally, and be fault tolerant at every layer.
We are looking for a flexible, curious engineer with deep experience of high-throughput distributed systems using modern tooling and languages. Though we use many tools, depth of experience with Python and its use with distributed and real-time systems (Celery + Redis / RabbitMQ, Kafka + Faust, etc) will be central to this role. Deep working experience with the placement of different kinds of data in microservice architectures will be a critical element of this role as we work towards the infinitely scalable future. Shared tools such as Kubernetes, Docker and Git should be second-nature.
As a deeply technical lead, the ideal candidate will prefer spending about 50% of their time actually writing code, splitting the rest between planning and mentorship and code review. We are looking for an engineer who has already seen success in growing their team around them, as well as engineering highly available high-throughput distributed systems.
This full-time role reports directly to the VP of Engineering and is based in Berkeley, CA.
What you'll be doing:
Within the first 3 months
- Getting up to speed on our various systems
- Expanding our data pipeline across multiple networks
- Instrumenting code to help us find areas to improve our designs
- Working with other developers to identify and resolve bugs
- Reducing latency and improving reliability of our internal APIs
- Collaborating on system design to optimize petabyte-scale data set management
- Supporting frontend developers in expanding our labeling and management system
Within the first 6 months
- Designing distributed computing infrastructure for real time data processing
- Scaling computer vision algorithms to run massively parallel in production
- Determining technical roadmap based on current tech maturity and business objectives
What you should have:
- 5+ years Python experience with mastery of modern language features and libraries
- Depth of experience with large scale distributed and real-time systems, microservices, infrastructure, frameworks, and datastores
- Second-nature familiarity with shared tools: Kubernetes, Docker, Git, Kafka, Redis
- You recognize the need to balance pragmatism and creativity
- You have made mistakes, learned from them and avoided making them again.
- You are able to use your knowledge and experience to help solve problems that may not be in your field of expertise
- You work well with a diverse team of high-quality people focused on customer delight.
- You can rapidly become familiar with and apply new tools and technologies
Educations & Certifications:
- BS or equivalent experience in Computer Science or Computer Engineering