Alert Innovation is a growing startup with a mission to re-invent retailing through robotics – and we’re off to a great start. We’ve partnered with world’s largest retailer to help re-invent the customer’s shopping experience with our Alphabot Technology at the center of a new era in retail. To succeed, we need to grow our team.
The Senior Robotics Software Engineer (SRSE) is responsible for developing highly reliable multi-threaded code in a constrained embedded environment. As an experienced robotics software engineer, you have extensive experience architecting and implementing object oriented, multi-threaded designs on a robotic platform. The SRSE can architect and implement the proper abstractions and interfaces that are needed to allow code to be highly de-coupled and cohesive. The position requires taking personal ownership to design, document, communicate, implement, and test software components within a complex system. You are equally comfortable as both technical contributor and mentor in a growing multi-disciplinary team.
Who You Are:
● You are passionate about technical challenges and eager to broaden your skillset
● You are focused on making progress every day, and strive for efficient solutions
● You understand how to create the proper abstractions that allow others on your team to effectively use your code.
● Collaborate both inter-team and cross-functionally to software solutions using C++
● Clearly document requirements and design
● Provide accurate task timelines
● Design concepts, demonstrate in simulation, implement in C++ software, and integrate on hardware running in a real-time OS and Linux environments
● Actively perform root cause analysis and apply solutions
● Integrate third-party software where appropriate
● Work with customers, vendors, or other technical or non-technical stakeholders to assess software needs and performance
● Investigate new technologies
● Mentor junior engineers
○ Experience implementing software for resource-constrained target platforms.
○ Extensive C++ skills; C++11/14 and Template Meta Programming experience on embedded platforms is highly desired.
○ Strong grasp of concurrency and multithreading design. Lock-free paradigm experience highly desired.
○ Experience developing software for Linux and at least one real-time OS (QNX preferred).
○ A keen understanding of how to create APIs that are easy to use and hard to misuse. Experience creating and maintaining open source C++ libraries is highly desired.
○ Extensive understanding of Test Driven Development and how to properly use unit tests, integration tests and mock objects.
○ Knowledge of common design patterns and the appropriate use of them.
○ Ability to gather requirements and get stakeholder approval for complex problems.
○ Knowledge of common development tools and practices: environments, compilers, versioning (i.e. git, SVN), software configuration management, defect tracking, and peer review methodologies
EDUCATION/Relative Years Experience
● Minimum of a Masters technical degree (or the equivalent in training and experience) plus 5 years industry experience with a background in robotics, embedded programming or other related fields.