Overview
Skills
Job Details
Note:
|
Description:
Full lifecycle application development. Designing, coding and debugging applications in various software languages. Software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, software reliability analysis. Object-oriented Design and Analysis (OOA and OOD). Software modeling and simulation. Front end graphical user interface design. Software testing and quality assurance. Performance tuning, improvement, balancing, usability, automation. Supports, maintains and documents software functionality. Integrates software with existing systems. Evaluates and identifies new technologies for implementation. Maintains standards compliance. Implements localization or globalization of software.
Summary:
Group develops embedded software, feedback control, and autonomy algorithms for prototype systems spanning all Laboratory mission areas and operating domains.
The Group is seeking a software engineer to develop cloud hosted back-end elements of a data warehouse and processing pipeline for robotics and autonomous systems data. Robotic systems generate a large volume of data from sensors and internal processing. Storing and reusing that data to validate and develop new autonomy algorithms is a crucial element of building innovative and robust autonomy capability. The data engineer will work in a team of autonomy-, front-end-, and devops-focused engineers to conceive, architect, and implement data and processing systems that accelerate and enhance autonomous systems prototyping.
Required Qualications:
- Extensive hands-on experience building web application back-end systems and APIs using Node.js (preferred) or Flask.
- Strong experience interfacing with document and relational databases as well as search tools.
- Demonstrated ability to design and architect back-end systems and APIs. Ability to communicate and iterate on the design with stakeholders using eective diagrams and verbal discussions.
- Experience working in small teams and owning responsibility for many elements across the back-end.
- Professional approach to software development with habitual application of software engineering best practices. Passion for producing high-quality artifacts.
- Expertise with Linux-based development environment using open-source technology stacks. Able to create and use containers or virtual machines as needed.
- Good knowledge of security best practices and common pitfalls.
- Experience with robotics or autonomous systems data and/or the Robot Operating System (ROS).
- Experience with cloud platforms and ecosystems, such as AWS.
- Experience with infrastructure-as-code (IAC), especially terraform
- Experience with container orchestration in Kubernetes for deployment of cloud applications.
Nice-to-have Qualications:
- Bachelor s degree in computer science. entry level candidates or candidates without a bachelor s degree considered with clear evidence of signicant outside-of-classroom experience.
- Experience with the Apache Maven or Gradle build system.
- Ability to understand front-end source code written in React or similar frameworks. Provide guidance to less experienced front-end engineers.
- General knowledge of machine learning and reinforcement learning concepts, frameworks, and environments, such as Pandas, TensorFlow, and Jupyter Notebook.
- Broad knowledge of the general features, capabilities, and trade-os of common data warehouse (e.g. Apache Hadoop); workow orchestration (e.g. Apache Beam); data extract, transform and load (ETL); and stream processing (e.g. Kafka) technologies. Hands-on experience with several of these technologies.