Software Engineer II - Image Processing Research & Development
The Imagery Processing Research and Development Team is responsible for the transformation of millions of images as they go from raw data to final products. Every pixel counts and we are continually creating solutions, finding algorithms, and reducing costs to make the result better.
We are searching for a Software Engineer who likes taking on complex challenges and enjoys improving a large codebase. Our pipelines perform distributed processing across thousands of nodes in the cloud, where shaving off a few minutes can save large amounts of time and cost. You will work on image processing, relational graphs, network I/O, and coordination layers. The role requires an attention to detail, and the ability to profile and debug code at multiple levels. If squeezing out every last drop of efficiency sounds like fun, we want to hear from you!
Primary Responsibilities
• Own core steps in the pipeline, including deep understanding of the image transformation
• Reduce cost and turnaround time of deliverables by profiling code and restructuring it for performance
• Increase stability and accuracy of the pipeline by identifying weak points and improving behavior
• Deploy and monitor experiments to validate changes running through the distributed system
• Refactor code for better flexibility and to support new integrations
• Automate manual processes to save time and increase visibility
• Integrate tracking of metrics to help the team deliver better and faster results
• 5-8 years experience in software development
• Strong knowledge of C++, Data structures, OOP concepts and its applications
• Good design sense, ability to extend large codebases cleanly
• Understanding of Web Technologies like HTTP, REST etc.
• Ability to profile and debug native applications
• Excellent problem solving and communication skills
• Eagerness to learn and implement new technologies
Preferred Skills
• Experience working in a cloud environment like AWS
• Experience with concurrency and distributed computing
• Experience with image processing, or computer vision
• Experience with Python, NodeJS, Go, and Groovy
• Experience creating and working in Docker containers
• Experience working with geospatial tools and libraries like GlobalMapper, QGIS, and GDAL