Software Engineer (Generalist)
Posted Updated
- We are seeking a Software Engineer, Generalist to play a pivotal role in the design, development, and implementation of software systems for our autonomous surface vessels (ASVs)
- You will work closely with cross-functional teams to ensure the seamless integration of software components into our ASV platform
- Collaborate with hardware engineers, robotics engineers, and other software engineers across the tech stack to design, develop, and deploy software solutions for autonomous surface vessels
- Participate in all phases of the software development lifecycle, including requirements gathering, design, implementation, testing, deployment, and maintenance
- Develop robust, scalable, and maintainable software systems that meet the unique challenges of autonomous maritime operations
- Implement algorithms for perception, navigation, path planning, and control to enable autonomous behavior in ASVs
- Optimize software performance and reliability to meet stringent DoD requirements and operational standards
- Conduct thorough testing and validation of software components to ensure functionality, accuracy, and safety
- Stay current with emerging technologies and industry trends in autonomous systems, robotics, and maritime technology
- Prolonged periods of sitting at a desk and working on a computer
- Occasional standing and walking within the office
- Manual dexterity to operate a computer keyboard, mouse, and other office equipment
- Visual acuity to read screens, documents, and reports
- Occasional reaching, bending, or stooping to access file drawers, cabinets, or office supplies
- Lifting and carrying items up to 20 pounds occasionally (e.g., office supplies, packages)
- Requires “U.S. Person” status. A “U.S. Person” must meet ONE of the following three criteria: 1) A U.S. citizen, 2) A legal permanent resident (also known as a green card holder), OR 3) A refugee or successful asylee (someone who has completed the asylum process and formally received a grant of asylum)
- Bachelor’s degree in Computer Science, Software Engineering, or a related field
- Excellent communication skills and the ability to clearly articulate technical concepts
- Proficiency in programming languages such as C++, Python, or Java, with a strong emphasis on object-oriented design and development
- Proven experience in software development, with a focus on autonomous systems, robotics, or related fields
- Strong problem-solving skills and the ability to work effectively in a fast-paced environment
- Familiarity with sensor fusion techniques, SLAM algorithms, and other technologies relevant to autonomous navigation and perception
- Experience with software development tools and frameworks commonly used in robotics and autonomous systems (e.g., ROS, OpenCV, TensorFlow, etc.)
