Software Engineer, BSP

Argo AI   •  

Pittsburgh, PA

Industry: Information Technology

  •  

Not Specified years

Posted 48 days ago

We are building a high-performance team that is excited by complex engineering challenges and is passionate about making transportation safer, more affordable and accessible for all.

We are looking for candidates with a deep understanding and passion for board-level software integration on custom hardware platforms. As a BSP engineer on the Platform and Test Tools team, you will be responsible for design, development and integration of software packages with Argo's sensing and computing hardware.

What you'll do:

  • Work directly with hardware engineers, software engineers and our operations team to build a world class autonomous vehicle
  • Design and integrate software packages for our hardware platforms, including operating systems, drivers, and supporting software infrastructure
  • Conduct trade-off analyses and benchmarking exercises to influence future system architectures
  • Develop plans, procedures, and other documentation required for integrating software modules into our self-driving ecosystem
  • Become a "go-to" resource for both hardware and software engineers as sophisticated software systems are integrated on the base software platform developed by our team

What we're looking for:

  • Degree in Computer Engineering, Computer Science, Electrical Engineering, Robotics or a related field
  • Strong software engineering skills with a background in C or C++
  • Experience developing and testing highly complex embedded systems in robotics, transportation, aerospace, consumer electronics, defense, medical, energy, or similar industries
  • Expertise with a wide range of computing architectures (SoC, MCU, CPU, GPU, FPGA)
  • Significant experience developing and maintaining board support packages (BSPs) for a variety of embedded devices
  • Strong knowledge and applied skills with operating systems, including OS internals and associated tools and libraries for developing, debugging, and testing complex software systems (Linux including Ubuntu/Yocto/OpenEmbedded; QNX or similar RTOS)
  • Experience with a wide variety of communication protocols used in systems for embedded, robotics, automotive or similar industries (Ethernet, PCIe, USB, CAN, SPI, I2C, MIPI, LVDS)
  • Ability to bring-up, test, and validate software systems at module and PCBA-level, working closely with hardware engineering teams
  • Quantitative / analytical mindset to probe, test and decompose challenging system problems into root cause issues with strong, detail oriented skills to solve them
  • Good experience writing concise, clear, and detailed engineering documentation
  • A record of owning projects successfully and working in a fast paced environment