Lead Software Engineer - Robotics

Dyson

  • Minding, WA
  • Permanent
  • Full-time
  • 1 month ago
Summary Salary: Competitive Team: Design and Development Location: Singapore - St James Power Station HeadquartersAbout usDyson is a global technology enterprise. We solve the problems others choose to ignore, with surprising new inventions that defy convention and simply work better. We've been developing robot technology for over 20 years - 200 engineers, 420 patents and £28M of investments - but this is just the start of the domestic robotics revolution.Within Upstream Robotics, Research is investigating state-of-the-art methods to solve concrete real-world problems and pave the way for Dyson's future autonomous products. At the same time, New Product Innovation is developing Dyson's next-generation robotic products that leverage the latest technologies.Our world-class robotics team is highly multi-disciplinary, covering topics including Robot Perception, Reinforcement and Imitation Learning, Planning and Control, Task Intelligence, Software Architecture, Mechatronics and Platform Design within a friendly and multi-cultural work environment.About the roleAs a member of Upstream Robotics' Software & DevOps team, you'll design, implement, maintain and extend components of our software platform, support its users, integrate new functionality and take on the occasional proof-of-concept or exploration task. You'll be collaborating closely with immediate team members, Upstream domain experts and Downstream colleagues. This is an opportunity to play a key role in continuously improving the architecture, practices and tooling with the goal of accelerating research and development, closing the gap to production and shortening time-to-market.As a Lead Software engineer, you are expected to:Have an excellent understanding of core development concepts and best practicesWork with focus, attention to detail and consideration of system-wide implicationsDeliver tasks effectively to specification, on agreed time and with little assistance, but know when to seek clarifications, help or feedbackIndependently scope out work and specify epics and stories based on sparse initial specifications and requirementsDemonstrate a continuous learning mindset, act on feedback and strive to improve our platform and its utility to usersCommunicate with the wider team proactively, minding efficiency and quality of conversationsMentor and support other team members in technical and ways-of-working matters and create a positive and engaging team environmentLead technical initiatives and take on leadership duties for the teamResponsibilities:Design, implement, test, maintain and evolve functional components and tools of our software platformIntegrate third-party components and implement new system behavioursPort select research prototypes in Python or C++ to modern, robust C++ implementationsHelp manage the entire high-level software stack, including the operating system, device drivers and user interfacesParticipate in the design of a distributed system software architecture that is scalable and deployableMeticulously document and communicate software requirements, design and implementationDrive a culture of software quality and collaboration that can progressively become the norm across the groupAbout youRequired:Degree in engineering or equivalent industry experience5+ years of work experience with robotic, actuated, real-time or simulated physical systemsStrong object-oriented and functional programming skills in modern C++Working knowledge of a scripting language such as Python or BashGood knowledge and hands-on experience with Linux system and toolchainsProficient use of development best practices and tools including version control, unit testing, continuous integration and continuous delivery (CI/CD)Ability to break down problems, estimate development effort and prioritise workHabit of exercising engineering precisionBeneficial:Professional software development experience in a production environmentSignificant contributions to open-source projectsExperience inspecting, debugging, testing and profiling complex software systemsExperience with parallel programming and performance optimisationExperience with ONNXRuntime, TensorRT, CVflow, RKNN or deployment to NPU-based platformsExperience with profiling and optimizing machine learning models for target hardwareExperience making real robots or autonomous systems work robustly in the fieldExperience with ROS 2, DDS-based middleware systems and messaging frameworksExperience with simulation environments such as Unity or Isaac Sim and simulation at scale in the cloudExperience with Yocto/BitBake based build systemsExperience with containerised development and deploymentExperience with behaviour planning and decision making architecturesBenefitsDyson Singapore monitors the market to ensure competitive salaries and bonuses. Beyond that, you'll enjoy a transport allowance and comprehensive medical care and insurance. But financial benefits are just the start of a Dyson career. Professional growth, leadership development and new opportunities abound, driven by regular reviews and dynamic workshops. And with a vibrant culture, the latest devices and a relaxed dress code reflecting our engineering spirit, it's an exciting team environment geared to fuelling and realising ambition.#LI-ONSITE#LI-TM1Dyson is an equal opportunity employer. We know that great minds don't think alike, and it takes all kinds of minds to make our technology so unique. We welcome applications from all backgrounds and employment decisions are made without regard to race, colour, religion, national or ethnic origin, sex, sexual orientation, gender identity or expression, age, disability, protected veteran status or other any other dimension of diversity.Posted: 24 March 2024

Dyson