We are looking for a Full Stack Software Engineer to join our team in Cape Town.
About Aerobotics
Our mission is to provide intelligent tools to feed the world. We do this by providing tree and fruit insights to growers in 18 countries around the world, enabled by drone imagery and artificial intelligence.
We have analysed over 100 million trees and 1 million fruit to date. Our team of 80+ people is based out of Cape Town and we have commercial offices in the USA, Portugal and Australia.
Everything that we do and every decision that is made, is driven by our Core Values.
Context of the role
Building a platform to convert raw data into actionable insights and deliver the analysis to farmers.
How we work
The Aerobotics org is split up into customer-focussed streams. Within a stream we have multiple product development squads. Each squad is responsible for owning a specific customer value-proposition from conceptualisation through to delivery, allowing for maximal autonomy and ownership within the team. A squad consists of a Product Manager, Product Designer (if applicable), Engineering Team Lead and technical team members. Our technical team consists of 3 core functions: Software Engineering, Data Science and Drone Engineering.
We use our own combination of agile development methodologies (encompassing our mix of exploratory, discovery & delivery work) to ensure that we are building the best product in an effective manner (without getting lost in process for the sake of it).
Our tech stack
- We use Python 3 for most of our backend systems. Specific frameworks include Tensorflow for the Data Science work, Django for our APIs and a multitude of internally built libraries containing convenience functions.
- Our frontend web & mobile applications use a mix of Angular, React and React Native.
- Our drones run NVIDIA Jetson Xaviers on-board and are powered by C++, with our own FlightOS operating system.
- We use AWS Cloud using Infrastructure-as-code principles for the bulk of our infrastructure, leveraging serverless computing wherever possible (Fargate, Lambda, Step Functions, Cloudfront, SageMaker etc).
- Continuous integration, delivery and testing is part of every application, ensuring that the technical team can entirely own their work from development through to production. This allows us to push multiple deployments daily, allowing for iterative development & continuous learning.
Key Responsibilities
Our mission at Aerobotics is to help farmers grow as efficiently and sustainably as possible. The Yield Estimation team contributes to this by providing farmers with
- current snapshots of fruit size and colour distributions, and
- size and volume projections to harvest-time.
Your role in the team would involve:
- Working closely with our data scientists on integrating new machine learning models into our data processing pipelines.
- Building APIs to allow clients (external & internal) to access complex & rich datasets
- Improving efficiency, reliability and scalability of the system as a whole, taking cost and utilisation into account
- Building out frontend product related features where necessary
Required Qualifications
- BSc Computer Science OR
- BSc/BEng Mechatronics / Electrical and Computer Engineering OR
- Any tertiary degree with strong computational / mathematical focus OR
- Equivalent working experience
Required Knowledge, Skills & Competencies
- The ability to write well-structured, performant data processing applications in Python.
- An understanding of the design choices and tradeoffs for dealing with large datasets.
- Experience implementing cohesive, schema-first APIs within a microservice architecture.
- The ability to work autonomously in a small team to solve complex problems.
- A willingness to contribute wherever needed.
- Ability to work in a highly dynamic and fast-paced startup environment.
- Ability to work within containerised environments (taking CPU / Memory requirements into account)
- AWS/Cloud knowledge Experience using Angular / equivalent frontend frameworks