Title: Embedded Engineer
Location: 4 days Onsite a week in Dallas or Boise, ID (Relocation works)
Duration: 12+ Months Contract
TN
Video Interviews
Job Description:
Must have ROS / robotics experience!
In looking at the resumes - a lot of what he is seeing is firmware candidates - want to look for robotics candidates
Seeing embedded C, working with micro controllers, lots of HP/Micron people have that background - most of the staff has that background but it takes 3-6 months to get into the robotics side
Trying to move fast - don’t want a ton of ramp up time
Key robotics tech - software stack called ROS - everything Bastian has done is built on top of ROS - started in schools/universities or who has done it professionally
Need exp working with hardware / sensors - PID control algorithms, moving motors - making something spin, driving something around - a lot of firmware candidates are just working with chips/circuits
CAN / CANopen isnt always in robotics - sensor data, cameras, LIDAR
Have a lot of code written, but theres a lot of places where its not reliable/fast - this is a very hands on role - needs people that can sit with the robot, run it, observe where its slow, shaky, why its crashing, why its not reliable - use their experience so brainstorm through things like code changes
Looking for someone who has been hands on with a robot or vehicle in some way - not just writing code and handing it off to someone else - should be familiar with writing code and testing on something real
Would love to find someone from Amazon Robotics, someone that has actually been doing robotics and working as a robotics engineer - wouldn’t be calling themselves an embedded engineer
Amazon engineers don’t use ROS - they use something custom - doesn’t have to say ROS but that’s typically what to target - 6 access robot arms, AGVs, AMRs, self driving forklifts - can look for those key terms
Locust robotics, fox robotics (self driving forklifts), amazon robotics - robotics engineers - would love to find someone with an actual robotics background
Need to make sure they don’t have a non disclosure / non compete clause
Here are a few ideas for screening questions. We really need people to have experience with:
- Modern C++ (C++11 and onward)
- Should have experience w/ Smart Pointers, Templated Classes, Abstract Classes
- Should have experience designing new system in C++, not just experience debugging or working on existing code.
- We highly value experience with hardware communication protocols, specifically:
- CAN and CANOpen (often used in Robotics and Automotive)
Note from hiring manager
Our team heavily utilizes ROS (the Robot Operating System) in our products, and these roles will need to be able to come up to speed on this technology quickly. Unfortunately, ROS is very specific to robotics - we rarely see this skillset in Boise, but it is more common in Dallas.
If the person has a ROS background, we definitely want to chat with them.
In Boise, if they don''t have ROS, we need them to at least be very strong in Modern C++. We often see many firmware engineers apply to our roles - these people are often weak in modern C++, and have more of an embedded/low-level C skillset.
As the R&D Senior Software Engineer, you are an expert in Linux development using both C++ and Python. You have experience designing production ready software and understand the patterns and architectures used to create reliable and maintainable codebases. You have experience with common robotics software tools and concepts such as ROS, motor control, localization, navigation, and sensor hardware technology such as LiDAR, Cameras, Motors, Encoders, etc. Most importantly, you have experience leading teams, driving processes, inspiring software engineers, and creating strong team cultures with open communication.
Job Functions
Contribute directly to ROS-based C++ and Python codebases, running on Linux systems.
Create software designs, host design and code reviews, and engage with SDLC processes.
Responsible for owning key development and acting as a key stakeholder in review approvals.
Mentor and guide junior team members engage in peer programming.
Engage in scoping, planning, and scheduling your work in an Agile workflow.
Engage in, and help create and drive, best practices and SOPs for software development.
Create test plans and engage in hands-on testing and verification on live Robots & Hardware.
Uphold our safety standards when interacting with live equipment.
Participate in field trials and customer on-site Beta deployments as we release new products.
Work with other business units throughout the release process of R&D products (Manufacturing, Commissioning, Development, etc).
Preferred Skills & Qualifications
Bachelors Degree in Computer Science, Computer Engineering, or similar field
Minimum 8+ years of relevant experience
Experience designing and implementing production software systems.
Experience with Agile development environment and a strong drive for SOPs.
Expert in Linux environment and developing for Linux systems.
Expertise in C/C++ and Python, Experience with other software technologies (Web
Development, SQL, etc.).
Experience with CI/CD and testing methodologies and implementation.
Experience with Containerization and Deployment Strategies.
Experience with version control systems, GIT preferred.
Experience with ROS (Robot Operating System).
Experience with low-level communication interfaces TCP/IP, Sockets, CAN, SPI.
Experience developing for, or interfacing with, embedded systems and microcontrollers.
Experience with Robotics technologies (Motor Controllers, Lidars, Encoders, and various
sensor technologies).
Exposure to, or development experience with, Autonomous Navigation Systems.