Senior Software Engineer
Responsible for software architecture and development in the robotics ecosystem, including but not limited to design and development of robot controller functions, teach-pendant user-interfaces and extensions, visual programming editor, online 3D simulations, web, app and cloud applications and AI/ML model development and deployment (embedded & cloud).
You’ll be working with a small team of innovators with diverse skills in a startup-like environment (but with the stability of a large global corporation), pushing the boundaries of contemporary industrial robotics. The market for robotics is exploding and is on a collision course with AI. You’ll have a unique opportunity to shape its evolution. Be a part of realizing the future!
ESSENTIAL DUTIES AND RESPONSIBILITIES include the following. Other duties may be assigned.
· Software architecture for back-end, embedded and front-end systems.
· Software development in C++ and/or Java.
· Deployment of ML models via common toolkits on embedded and cloud platforms.
· Participation in Agile-based team software product development.
· Mentoring less experienced developers in best-practices of software engineering.
· Willing to learn robotics domain knowledge pertinent to development tasks (robotics terminology, programming, use of hardware product line, familiarization with application vertical requirements)
· Creation of end-user and developer documentation (architecture designs and dev-guides)
· Learning new tools and technologies as appropriate.
· Infrequent domestic and possibly international travel may be required.
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
EDUCATION and/or EXPERIENCE
Master of Science in Computer Science, Computer Systems Engineering or Software Engineering with at least six years experience involving software development. PhD prized but not required.
OTHER SKILLS and ABILITIES
Experienced software architect with mastery Object-Oriented design and common design patterns required. Experience developing C++ and/or Java and/or C# highly desirable. Must be self-directed and able to work within a team and pick up new technologies. Comfortable mentoring less experienced developers. Familiarity with some subset of back-end and embedded technologies desirable, such as Linux, Qt/QML, .NET, JDK, RPC, threading, containers. A bonus if experienced in any of robotics, IoT, language design, Android, ROS, real-time systems, security, cryptography, statistics, data-science, machine learning or AI.
Self-Starter: Inspired to perform without outside help
Entrepreneurial Spirit: Inspired to perform well by an ability to drive new ventures within the business
Masters or better in Computer Science or related field.
6 years: Software development/engineering
Equal Opportunity Employer/Protected Veterans/Individuals with Disabilities
The contractor will not discharge or in any other manner discriminate against employees or applicants because they have inquired about, discussed, or disclosed their own pay or the pay of another employee or applicant. However, employees who have access to the compensation information of other employees or applicants as a part of their essential job functions cannot disclose the pay of other employees or applicants to individuals who do not otherwise have access to compensation information, unless the disclosure is (a) in response to a formal complaint or charge, (b) in furtherance of an investigation, proceeding, hearing, or action, including an investigation conducted by the employer, or (c) consistent with the contractor’s legal duty to furnish information. 41 CFR 60-1.35(c)