Python Developer – GNSS & Survey Data Processing Automation

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

SALARY

N/A

HOURS PER WEEK

TBD

DATE UPDATED

Feb 18, 2026

JOB OVERVIEW

Overview

We are a professional land surveying firm seeking a technically strong geospatial engineer to design and implement an automated workflow for processing, organizing, and archiving survey field data.

This is backend automation for survey-grade data systems, not web mapping, not cartography.

Our crews collect GNSS and total station data, including proprietary formats and static observations. We are building a scalable Python-based pipeline to eliminate repetitive manual data handling and standardize our internal processing.

What You’ll Build

You will design and implement a Python-based automation system that:

Monitors and backs up raw field data

Parses structured and semi-structured survey files

Extracts coordinate and observation data

Identifies and extracts geographic, projected, and localized coordinate datasets

Processes static GNSS datasets

Generates automated survey quality and residual reports

Organizes processed outputs into a scalable job-based structure

Supports long-term archival and retrieval

This role focuses on survey data engineering and automation architecture.

Required Skills

Strong Python scripting experience

Experience parsing structured or semi-structured data (CSV, database exports, binary formats)

Solid understanding of coordinate systems:

Geographic (WGS84)

Projected systems (State Plane or similar)

Localized coordinate systems

Familiarity with GNSS workflows:

Static observations

Base/Rover concepts

Residual analysis

Experience with:

pandas

SQLite / relational datasets

Geospatial data structures

geospatial data libraries

Experience building automated workflows or ETL pipelines

Strongly Preferred

Background in:

Geodetic Engineering

Land Surveying

Geomatics

Geodesy

GNSS data processing

RINEX or survey instrument data

Experience with Topcon, Trimble, Leica, or similar survey data formats is a major plus.

What This Is Not

This is NOT:

A web map developer role

A cartography or visualization job

A CAD drafting position

General IT support

We are looking for someone comfortable with:

Coordinate transformations

Data parsing logic

Survey error analysis

Automation system design

Initial Scope

The first phase will focus on building a robust automation core for survey data ingestion and processing.

There is potential for long-term collaboration as we refine internal data architecture and reporting tools.

To Apply

Please include:

Examples of automation scripts or data pipelines you’ve built

Any experience with survey or GNSS datasets

A short explanation of how you would approach parsing a proprietary data format

Your experience with coordinate transformations

Your availability and expected hourly rate

Bonus: Briefly explain the difference between geographic (WGS84) and projected coordinate systems, and how you would verify that coordinate data is being stored correctly in both.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0138
Total Execution Time  0.0151
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,528 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Python-Developer-GNSS-Survey-Data-Processing-Automation-1582993
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0086 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1582993
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 446026
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1582993
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-15',ej.date_added) duration_daysDATEDIFF('2026-04-15',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-15',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1582993' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1582993 
0.0008   UPDATE employer_jobs SET hit_counts '***Feb-18-2026=20***Feb-19-2026=42***Feb-20-2026=22***Feb-21-2026=14***Feb-22-2026=9***Feb-23-2026=5***Feb-24-2026=5***Feb-25-2026=2***Feb-26-2026=3***Feb-27-2026=3***Mar-01-2026=3***Mar-02-2026=4***Mar-03-2026=6***Mar-05-2026=5***Mar-06-2026=1***Mar-07-2026=2***Mar-08-2026=5***Mar-09-2026=2***Mar-10-2026=3***Mar-12-2026=1***Mar-13-2026=1***Mar-14-2026=8***Mar-16-2026=3***Mar-17-2026=1***Mar-18-2026=5***Mar-19-2026=3***Mar-20-2026=5***Mar-21-2026=2***Mar-22-2026=7***Mar-23-2026=1***Mar-24-2026=1***Mar-25-2026=5***Mar-26-2026=7***Mar-27-2026=5***Mar-28-2026=2***Mar-30-2026=4***Mar-31-2026=1***Apr-01-2026=4***Apr-02-2026=3***Apr-04-2026=2***Apr-05-2026=2***Apr-06-2026=7***Apr-07-2026=10***Apr-08-2026=3***Apr-09-2026=3***Apr-10-2026=2***Apr-11-2026=1***Apr-14-2026=3***Apr-15-2026=1' WHERE job_id'1582993'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Feb-2026=125***Mar-2026=93***Apr-2026=41' WHERE job_id'1582993'  
0.0010   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1582993' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1582993 
0.0021   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '446026'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)