Description of the work
Your Role as a Software Engineer
As a senior member of our team, you will be accountable for delivering high quality, maintainable software in a fast paced environment. Your role will go beyond just coding to include:
- Develop APIs to allow client applications to stream and interact with data using a range of different protocols including HTTP RPC, Websockets, TCP, UDP and serialize data using JSON and Protobuf.
- Support other engineers and scientists in their adoption and understanding of APIs and the data they serve.
- Review source code from others in a variety of languages including Python and C++
- Work with domain experts to develop data processing pipelines.
- Create suitable tests for own and other components including unit and integration.
- Build prototypes and pilots to prove concepts.
- Deliver reliable software applications as services into contained orchestration systems such as Kubernetes.
- Document and explain design decisions and application code.
- Solve technical problems across multiple technologies, developing new methods if required.
- Identify gaps and user needs of other engineers and scientists and be able to communicate them effectively to others.
- Own and manage knowledge sharing within the project and across related communities.