Position / Role
C++ Software Engineer (Backend)
Animal Dynamics
   Job Type
Permanent
   Location
Oxford
   Date Posted
July 8, 2019
   Position Expires
August 17, 2019
   Job Description

At Animal Dynamics we make vehicles that combine high efficiency with full autonomy and are able to do more with less impact on nature than other vehicles that perform the same tasks. Taking our inspiration from animals and the natural world we can achieve significant improvements in the performance and efficiency of vehicles in water, air, and ground travel.

What motivates us is our desire to create original and worthwhile solutions to real problems. We are motivated to realise designs that will positively disrupt industries and technical approaches that have long been taken for granted. 

Our current focus is on two vehicles: a small flying surveillance vehicle, called Skeeter, that is able to fly quietly in high winds; and Stork, a vehicle which has been designed as a highly energy and cost-efficient aerial system for carrying loads. These vehicles are full-stack autonomous vehicles, with complex mechanical, electronic and software features. There is a range of vehicles on our roadmap, and we have demand for these products in a variety of international markets.

Based near Oxford, we are a friendly Company which is growing rapidly. We recruit talented, committed people who want to work in a stimulating and supportive environment.

Overview of the role

We are looking for a talented C++ Software Engineer to join the team responsible for the ground segment infrastructure and applications across our range of products. The successful candidate will be expected to work on different products simultaneously, ranging from mobile ground stations, to our in-house simulators and internal R&D tools. This role will be mostly focused on our back-end architecture and shared libraries, but we are a small team and we value flexibility and the ability to work on many different parts of the code base, with different technologies.

Responsibilities… what will you do?

As C++ Software Engineer you will be responsible for:

  • Maintain and expand the capabilities of the shared libraries that form the backbone of our software architecture and, in particular, on communications with the UAVs and networking among the ground segment applications.
  • Work closely with other teams and the product managers to deliver new project-specific features. Analyse requirements, plan their implementation and deliver working software in a timely manner
  • Contribute to the development of other internal R&D tools, as needed
  • Contribute to testing, debugging, profiling and optimizing all our ground segment applications
  • Propose and implement improvements and new features, potentially taking ownership of one area of the code base

REQUIREMENTS

Essential skills and experience… what are we looking for?

You will have the following skills and experience:

  • B.Sc. in Computer Science or a related field (or equivalent experience that must include a very good knowledge of Computer Science fundamentals)
  • Proven C++ and the C++ STL skills and knowledge, ideally with demonstrable commercial experience
  • Very good knowledge of object orientated programming concepts and design patterns
  • Experience working on cross-platform projects on two or more of Windows, Linux, Mac, consoles (PS4, Xbox One) and mobile (iOS, Android).
  • Good knowledge of Linux. Comfortable using the Linux terminal and writing bash scripts.
  • Demonstrable experience developing and debugging multi-threaded applications
  • Strong understanding of networking protocols and network programming (sockets, TPC, UDP, HTTP, etc.)
  • Performance optimization: profiling, identifying and fixing performance bottlenecks, efficient memory management, etc.
  • The ability to multitask, problem solve and plan your time efficiently is a must
  • Highly self-motivated, good communication skills and a proactive approach

Desirable skills and experience:

  • Post-graduate degree in Computer Science or related field and/or a few years of commercial experience, ideally with at least 1 shipped product
  • Familiarity with ZMQ or similar high-level networking library and inter-service messaging systems (e.g. Protocol Buffers, HTTP/JSON, REST)
  • Knowledge of ROS would be beneficial
  • Previous experience in robotics, UAV or aerospace industry. Alternatively, experience in the video game industry, particularly working on multiplayer games, would be welcome
  • Some knowledge of network security and efficient encryption would be welcome
  • Knowledge of Java, Python or JavaScript is a big plus
  • Some knowledge of NodeJS, MongoDB or Express is also a plus

Get the top featured stories in your e-mail and don’t ever miss out on important news.