Position Description: The Overwatch Imaging Senior Software Engineer will design and implement software and firmware to transform high-level user inputs and raw data into real-time customer intelligence. This Engineer will work hands-on with prototype and low-rate production automated imaging systems to develop, test, and deploy real-time onboard image processing and artificial intelligence algorithms, embedded hardware drivers, image manipulation software, user interfaces, and data post-processing tools.
Level Description: The Senior Software Engineer is responsible for leading the design, development, and maintenance of complex software applications. They may have a technical leadership role in mentoring and managing teams of junior and mid-level software engineers. They are expected to have a strong technical background, excellent leadership skills, and the ability to make high-level decisions that affect the entire software development process.
Company Description: Rooted in the airborne technology cluster of Hood River, Oregon, Overwatch Imaging is changing the way time-critical intelligence is created. Overwatch works at the convergence of aerospace, imaging, AI, computer vision, autonomous systems and big data intelligence. Our automated imaging systems help life-saving agencies quickly find what they are looking for from the air, so they can focus less on the search and more on the best response. Internally, we strive to create the best environment for the amazing people who work here, and we thrive as a team through our shared passion for our mission.
Major Areas of Responsibility: The ideal candidate will be strong in many of the following area
(not all required):
- Software Development: Design, develop, and maintain complex software applications. Write clean, maintainable, and efficient code, participate in code reviews to ensure code quality, and troubleshoot to optimize performance and functionality.
- Imaging Payload Embedded Software: Leads code development, version management and testing for motion control, camera and IMU drivers, and data management. Balances code-change urgency and unit-to-unit customization with long-term software sustainability and code reuse. Interfaces with low-level hardware using SPI, I2C, UART and analog interfaces. Improves error detection, reporting, and mitigation.
- Geospatial Imagery Optimization: Creates software to geolocate, rectify, mosaic, register and otherwise combine imagery with map data. Implements cloud-based web map service approaches to simplify user consumption of big sets of image data.
- Software Interfaces: Develops and maintains connections between Overwatch Imaging payloads and external systems for command and control, outside exploitation algorithms, and data export to other tools.
- User Interface: Modifies elements of the Overwatch user interfaces and associated underlying datasets to simplify the user experience, accelerate mission planning and processing workflows, and expand payload compatibility with external systems such as ArcGIS and Google Earth.
- Image Processing Software Programming: Supports development of image manipulation and data management software for deployment in Overwatch airborne payloads, cloud sites or ground stations, to accelerate data extraction and simplify post processing workflows.
- Application Software: Supports and creates software tools that allow users to view, analyze, and exploit imagery and geospatial data. Tasks include reducing imagery to information using classical computer vision, machine learning, and data compression, and displaying both imagery and geospatial data beautifully and intuitively.
- Software Deployment: Creates automatic build tools to build, test, and deploy new software versions and manage dependencies.
Required Knowledge, Skills and Abilities: The ideal candidate will meet many of these requirements:
- Experience and Education:
- Formal education in software engineering, computer science, aeronautical engineering, robotics, optics or related fields.
- Strong understanding of programming concepts and principles
- Experience in airborne or space-based remote sensing and image processing; hands-on experience with mid-sized unmanned aircraft and/or airborne camera systems.
- Experience with image processing software, machine learning techniques, and/or autonomous systems.
- Experience with device driver implementation and embedded system deployment.
- At least 8 years of experience with a Bachelor’s degree, or
- At least 5 years of experience with a Master’s degree, or a Ph.D degree.
- Technical Competence:
- Strong experience with one or more programming languages such as: C, C++, C#, Python, CUDA, OpenCV, MATLAB, React-based framework, JavaScript, TypeScript, C#, .Net 6, AWS/Kubernetes.
- Strong experience with software versioning and branch management and issue/defect tracking systems.
- Knowledge of software development methodologies such as Agile or Scrum
- Knowledge of multithreading, parallel programming, interoperability, and algorithm optimization.
- Knowledge of Control Systems, IMU, and GPS/INS Hardware and Software
- Knowledge of Linux Operating System on GPU-Accelerated Hardware
- Strong communication and interpersonal skills
- Ability to lead and mentor other software developers
- Willingness to learn and adapt to new technologies
- Character Attributes:
- Thrives in a dynamic, fast-paced small startup business environment
- Highly motivated self-starter able to work independently and with a team
- Collaborates well in a small team environment
- Enjoys hands-on work and learning new skills
- Eager to learn and solve real-world problems and accept new challenges
- Takes pride in seeing new products reach operational use quickly
Location: This position is based in Hood River, Oregon, and may require occasional business travel and work in and around light aircraft. All applicants must be authorized to work on a permanent basis in the United States.
We encourage all qualified candidates to apply, even if they don't meet every requirement listed in this job description. We value diversity of experience and perspectives and are always looking for talented individuals to join our team.