Responsibilities
- Lead the architecture, design, and implementation of Python-based systems for geospatial data processing and terrain analysis.
- Develop and optimize algorithms for terrain modeling, elevation data handling (e. g. , DEM, DSM, DTM), and spatial interpolation.
- Integrate and manage large-scale geospatial datasets (e. g. , LiDAR, satellite imagery, GPS tracks).
- Collaborate with data scientists, GIS analysts, and autonomy engineers to deliver high-performance solutions.
- Mentor junior developers and contribute to code reviews, best practices, and technical leadership.
- Ensure code quality, scalability, and maintainability across the geospatial data stack.
- Experience with 3D terrain modeling, mesh generation, or point cloud processing.
- Knowledge of machine learning applications in geospatial analysis.
- Exposure to tools like QGIS, CesiumJS, or OpenLayers.
- Experience with containerization (Docker), CI/CD pipelines, and cloud platforms (AWS/GCP/Azure).
Degree Requirement:
- 8+ years of experience in Python development, with at least 2 years in a technical leadership role.
- Strong understanding of geospatial concepts and coordinate systems (e. g. , WGS84, UTM).
- Hands-on experience with geospatial libraries and tools such as GDAL, Rasterio, Fiona, Shapely, Pyproj, GeoPandas.
- Experience with terrain data formats and processing workflows (e. g. , LiDAR, SRTM, GeoTIFF).
- Familiarity with spatial databases (e. g. , PostGIS) and cloud-based geospatial data handling.
- Proficiency in designing RESTful APIs and integrating geospatial services.
- Strong problem-solving skills and ability to work in a fast-paced, collaborative environment
Skill Descriptors
Problem Solving: Knowledge of approaches, tools, techniques for recognizing, anticipating, and resolving organizational, operational or process problems; ability to apply knowledge of problem solving appropriately to diverse situations.
Level Extensive Experience:
- Ensures capture of lessons to be learned from a problem-solving effort.
- Organizes potential problem solvers and leads problem resolution efforts.
- Uses varying problem-solving approaches and techniques as appropriate.
- Contributes to standard practices for problem-solving approaches, tools, and processes.
- Analyzes and synthesizes information and devises alternative resolution strategies.
- Develops successful resolutions to critical or wide-impact problems.
Software Development Life Cycle: Knowledge of software development life cycle; ability to use a structured methodology for delivering and managing new or enhanced software products to the marketplace.
Level Extensive Experience:
- Explains how to use multiple, vendor-provided or in-house structured methodologies.
- Describes tasks, tools and practices for converting software product requirements into a design.
- Demonstrates experience with all phases and deliverables of the product development methodology.
- Implements the generic functions, features and facilities of modern structured methods.
- Explores and evaluates major structured methodologies available in the marketplace.
- Consults on effective application of structured product development methodologies.
Software Product Testing: Knowledge of software product testing; ability to design, plan, and execute testing strategies and tactics to ensure software product quality and adherence to stated requirements.
Level Extensive Experience:
- Has experience with planning and executing full spectrum of tests for multiple products.
- Provides input to design team to ensure testing considerations are incorporated into system design.
- Creates test scenarios that ensure all error handling processes perform as expected.
- Defines, creates, and executes test plans and cases; estimates time, effort and resources required.
- Explains approaches and tools for functional, reliability, and vulnerability testing.
- Discusses applications of iterative testing using agile methodologies.
Application Development Tools: Knowledge of application and system development; ability to utilize a variety of specific tools and toolkits for developing applications.
Level Extensive Experience:
- Evaluates toolkits used to support major production systems.
- Resolves issues regarding functions, features and components of multiple toolkits.
- Provides implementation support on toolkit enhancements or changes.
- Interprets benefits and drawbacks of procedural and event-driven toolkits.
- Oversees the evaluation and recommendation of delivery tools and platforms.
- Coaches others on appropriate uses of all major tools in a toolkit for a specific platform.
Artificial Intelligence: Knowledge of the concepts, technologies and methodologies of artificial intelligence (AI); ability to develop, implement and/or apply artificial intelligence products and services in specific industry domain to achieve business goals.
Level Working Knowledge:
- Performs basic tasks within a specific artificial intelligence area, such as self-driving cars, medical diagnosis, playing games, financial fraud detection, etc.
- Assists in business requirements analysis in the AI solution design or deployment process.
- Maintains and/or updates AI systems and equipment on a regular basis.
- Deploys, develops or operates specific AI products, equipment, systems and/or platforms to achieve certain business goals.
- Tests and troubleshoots the functionality of AI applications and systems within a specific area.
Programming: Knowledge of relevant programming languages and tools; ability to test, write, design, debug, troubleshoot and maintain source codes and computer programs.
Level Extensive Experience:
- Conducts walkthroughs and monitors the quality of development activities.
- Assesses the impact of new productivity improvement tools on ones own area of responsibility.
- Compares and contrasts similarities and differences between multiple programming languages.
- Oversees major developmental efforts adhering to application systems design.
- Evaluates characteristics and advantages of different programming techniques.
- Coaches juniors on multiple programming languages.
Technical Troubleshooting: Knowledge of technical troubleshooting approaches, tools and techniques; ability to anticipate, recognize, and resolve technical issues on hardware, software, application or operation.
Level Extensive Experience:
- Emphasizes the business impact of failure and the criticality and timing of needed resolution so that problems can be avoided in the future.
- Creates trouble reports for all issues found and reviews solutions for completeness and correctness.
- Directs the resolution of communications problems in multi-vendor environments.
- Resolves a variety of hardware, software, and communications malfunctions.
- Coaches others on advanced diagnostic techniques and tools for unusual or performance-related problems.
- Facilitates the distribution of releases reports and correction packages to departments or clients.
",