Software Engineer

About this role.

Are you a seasoned Software Engineer eager to harness your experience to deliver innovative systems into operational environments?

Skills.

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.

Experience.

Technical Expertise:

We're looking for a Senior Software Engineer who is ready to take on a challenge. You should have a strong track record of building and deploying robust software in a dynamic environment.

  • Software engineering. You have an expert level understanding of software systems engineering principles and are a master of data management.
  • Languages. You are a proven expert in a scripting language like Python and a strongly-typed language such as C or C++.
  • APIs. You have extensive experience building and deploying production-grade APIs.
  • Collaboration. You're skilled at integrating software from different teams and suppliers, acting as a technical partner to ensure seamless collaboration.
  • Operational delivery. You have a history of delivering production-ready software that's used in real-world, operational environments.
  • Problem solving. You can thrive in an environment of uncertainty, use your domain knowledge to identify capability gaps, and translate them into clear, actionable requirements.
  • Quality & best practices: You have a deep knowledge of quality standards and a commitment to good software development practices.

Click