Senior Software Engineer
What we are looking for:
Research and development (R&D) excellence in the application of robotics and artificial intelligence to the real world requires creativity, discipline and knowledge of best practices from its software development team. As a leader in developing new autonomous and robotics solutions, NREC (National Robotics Engineering Center) is looking for an experienced senior-level software engineer to join our software team, which is dedicated to building the next generation of field robotics applications.
Our organization has 20+ years of experience developing and deploying robots into many applications across multiple sectors, such as agriculture, construction and humanitarian demining. We strive to provide solutions for real world challenges where automation and robots have great impact on the productivity, safety and comfort of the labor force.
- Develop software in C++, possibly in other languages such as Python3 and Matlab, and using third party libraries, as necessary.
- Develop and/or use simulation system configurations for testing and assessing the performance of developed code. Simulation systems of interest: ANVEL, CoppeliaSim, Gazebo, Unity, Unreal, AirSim, VehicleSim, CARLA; Physics engines such as: ODE, Bullet, SimTK, DART; Graphics rendering engines, such as: OGRE and PhysX.
- Apply systems thinking and systems engineering life cycle management best practices to in-house product line development as well as to customer deliverables.
- Apply software engineering best practices, as they relate to documenting and reviewing technical designs, solutions, and program logic in the planning, development, and testing phases of the project.
- Develop test suites for: infrastructure, functional and behavioral modules of the autonomy pipeline.
- Develop and use data-intensive techniques for debugging, testing and validating code, and for performance evaluation and prediction.
- Work in a technical environment that involves the following: Ubuntu Linux (multiple versions), Docker, Virtual Machines, Mac and Windows, ROS and ROS-like infrastructure, Atlassian collaborative tools (Bitbucket, Confluence, Crucible, Jira), Git version control, wired and wireless data communications, TCP, UDP, CAN bus, serial communications, high-performance computing, GPU-intensive computing, multiple levels of security, VLAN, vendor-specific device drivers, etc.
- Design, implement, and execute scientific experiments with the developed systems; collect data, summarize and report results.
- B.S. in Computer Science, Engineering, or other relevant academic degree.
- 3 to 5 years non-academic work experience developing software systems.
- Experience developing non-trivial software systems that address real-world needs.
- Software development experiences in at least three high-level programming languages.
- Experience developing software for at least one (1) of the following skill areas:
- Well-documented manual or automatic test suites and analysis tools for software systems distributed network applications.
- Simulation systems for testing and evaluation of algorithms.
- Thread safe multi-threaded applications.
- High throughput, millisecond time scale, data pipelines static and dynamic load profiling and balancing.
- GUI client/server application development data intensive machine learning algorithms.
- Static and dynamic load profiling and balancing.
- Data intensive machine learning algorithms.
- Operational understanding of the following concepts and methodologies:
- Software architectures, software product lines, deployment architectures.
- System requirements elicitation and verification.
- Systems analysis techniques, such as Object Modeling Technique (OMT).
- Architecture trade-off and analysis method (ATAM).
- The scientific method, scientific research and development techniques.
- Experience contributing to and fostering a collaborative team.
- Good oral and written communications skills.
We want to hear from you if you have experience or qualifications in ANY of the following areas:
- M.S. in Computer Science, Engineering, or other relevant academic degree.
- 6+ years non-academic work experience developing software systems.
- Experience developing non-trivial software systems that address real-world needs in at least three (3) of the following languages or libraries: C++, Ruby, Python2, Python3, CUDA, Matlab, Eigen, NumPy, SciPy, OpenGL, OpenSceneGraph, Point Cloud Library, TensorFlow.
- Evidence of scientific and/or technical publication history.
You will have an impact on shaping the robotics revolution, collaborate with and learn from experts, and build your career in a very fast-growing field. As part of our team, you will develop solutions to solve industrial and government challenges, deploy your technology in real-world situations, work side-by-side with elite robotics experts, and develop a variety of cutting-edge technologies.
Have an Impact!
- Remove waste from farming = more food
- Make industrial processes environmentally friendly
- Make hazardous jobs safer
- Improve efficiency in industry & manufacturing
- Accelerate screening of pharmaceuticals
Take Control of Your Career!
- Select the career pathway that interests you
- Influence the direction of projects
- Supportive of a non-standard schedule
- Maintain work/life balance
- Switch between part-time and full-time as life demands
NREC is at the center of the robotics ecosystem in Pittsburgh, PA. With over 60 robotics companies, Pittsburgh has become the robotics capital of the world. Geek Wire calls it Robotics Row; others call it Roboburgh. Join the leader in the most exciting time in robotics!
Join the best robotics R&D group
Join our talented team at NREC, an operating unit within the world-renowned Robotics Institute at Carnegie Mellon University.
NREC has 20+ years of experience and is globally renowned for developing and deploying robots into many applications across multiple sectors, such as agriculture, mining, defense, energy, and manufacturing. We strive to provide solutions for real-world challenges where automation and robots have a greater impact on productivity and improve the safety and comfort of the labor force. Our unique expertise places us at the forefront of unmanned ground vehicle design, autonomy, sensing and perception, machine learning, machine vision, operator assistance, 3D mapping, and position estimation. With over 120 robotics professionals, we can solve challenges that no other organization can.
NREC also leads in educational outreach through its Robotics Academy, which builds robotics curricula and software for K-12 and college-level students.
At NREC, we value diversity, support it, and thrive on it for the benefits of our organization, our employees and our community. Carnegie Mellon University is an Equal Opportunity Employer/Disability/Veteran.