The GIS Industry Has Already Split in Two
Two people are working on satellite imagery this morning. They both write a little Python, both move data through PostgreSQL, both deliver something a manager will look at by Friday. One is a GIS Analyst at a county government making $92K. The other is a Software Engineer at a defense contractor making $169K. Both figures are roughly the median for their title in the listings we track. Neither is wrong about their pay band. They aren't doing the same job. They aren't even in the same industry.
What people call "the GIS industry" is actually two industries wearing the same name. They share a vocabulary, a conference circuit, and a lot of the same training data: satellite imagery, parcel files, coordinate systems. They do not share a hiring funnel, a comp band, or a career arc. The candidate pool overlaps more than either side admits. Backgrounds that qualify for one ladder often qualify for the other. But the two hiring funnels almost never talk to each other, and most people who feel stuck in geospatial are stuck inside one of them without knowing the other exists.
Industry A and Industry B
We'll use plain labels. Industry A is Operational GIS: GIS Analyst, GIS Technician, GIS Coordinator, GIS Specialist, GIS Manager. The employers are counties, state DOTs, utilities, environmental consulting firms, surveying firms, federal agencies with a map-product mission. The toolchain is Esri (ArcGIS Pro, ArcGIS Enterprise, sometimes QGIS, sometimes AutoCAD). The work is map-making, project support, data stewardship, keeping a region's spatial data clean. Most GIS certificate programs and geography departments train for Industry A. So does most of r/gis. The pay ladder caps in the low six figures for senior individual contributors.
Industry B is Geospatial Software and Geospatial Data Science: Software Engineer (on a team that happens to do geospatial), Data Scientist, ML Engineer, Platform Engineer, Geospatial Analytics Engineer. The employers are defense contractors, large-tech companies with mapping or earth-observation products, climate-tech startups, and a handful of vendors (including Esri itself). The toolchain is built around Python, cloud (AWS or GCP), containers, distributed systems, and ML frameworks. The job titles don't usually contain "GIS." The work is building the systems that move, process, and serve geospatial data at scale. The pay ladder runs $40K–$100K higher than Industry A at every rung.
They pass each other at the same conferences and read the same trade publications. They are not the same labor market.
Same data, different ladder — $55K to $230K depending on which industry hired you
Median pay by role, Industry A (operational GIS) vs. Industry B (geospatial software & data science)
Industry A — Operational GIS
- GIS Manager~$110K
- Senior GIS Analyst~$95K
- GIS Analyst~$75K
- GIS Technician~$55K
Esri stack · county / state DOT / utility / consulting
Industry B — Geospatial Software & Data Science
- Staff Eng / Geo Data Scientist~$230K
- Senior Software Engineer~$190K
- Software Engineer (geo)~$150K
- Junior Geospatial SWE~$110K
Python / cloud / ML · defense / big tech / climate startup
Once you have the labels, a lot of confusing things about geospatial pay make sense.
The evidence the split is real
The split shows up in titles, in skill stacks, and in pay.
Titles
Industry A titles all contain the word "GIS." The dominant ones in our database (GIS Analyst, GIS Technician, GIS Coordinator, GIS Specialist, GIS Manager) match the dominant titles in the Geospatial Professional Network's 2024 salary survey, where GIS Analyst (26%), GIS Manager (23%), Coordinator (9%), Specialist (8%), and Technician (6%) account for nearly three-quarters of the 4,602 respondents. That survey is essentially a portrait of Industry A: people whose job title contains "GIS" are the ones who answer GIS salary surveys.
Industry B titles almost never contain "GIS." They contain "Software Engineer," "Data Scientist," "ML Engineer," "Platform Engineer," "Analytics Engineer." When they do qualify the title, the qualifier is "Geospatial" or "Remote Sensing" or "Earth Observation," not "GIS." A Software Engineer at Planet who spends every workday on satellite pipelines does not call themselves a GIS Analyst and does not show up in a GIS salary survey. They show up in BLS's Software Developers category and in Levels.fyi comp data.
This isn't a quirk of resume formatting. It's an industry telling you which labor market it's hiring from. If the title doesn't say "GIS," the employer didn't post the job on a GIS job board, didn't recruit at a geography department's career fair, and didn't benchmark the salary against a GIS analyst comp band. The title mess is real and we've written about it separately; the structural point here is that the mess is not random. The titles fork along the same axis the pay does.
Stack
The skills employers list cluster into two groups. These are from 1,366 GIS-adjacent listings we tracked between October 2025 and February 2026. They look like two different industries hiring.
Cover the header and Industry B reads like a DevOps job
Most-listed skills by industry, from 1,366 GIS-adjacent postings (Oct 2025–Feb 2026)
Industry A — Operational GIS
- ArcGIS Pro
- ArcGIS Enterprise
- QGIS
- AutoCAD
- Microsoft Office
- LiDAR
- SQL (light)
- Python (arcpy, minority of postings)
Reads like a desktop-GIS shop.
Industry B — Geospatial Software
- Python
- AWS
- Kubernetes
- Docker
- PostgreSQL / PostGIS
- Git
- React
- Java
- ML frameworks
- Linux
Nothing here says "GIS."
Python and SQL show up in both columns. Python appears in 27% of listings in our sample, SQL on both sides at different intensities. They're the bridge skills people cite to argue the split isn't real. But Python is a bridge skill the way "uses a laptop" is a bridge skill: necessary, not sufficient, near-zero salary premium by itself. The premium lives in what Python is paired with. Python + AWS + Kubernetes + ML is a $185K stack. Python + ArcGIS Pro + a county GIS portal is a $75K stack. The skill list isn't the cause of the pay gap. It's the fingerprint of which industry the job is in.
We've ranked individual skill premiums in our skills-that-pay analysis. The version that matters here is simpler: the high-premium skills cluster on one side of the split, the lower-premium skills on the other. Adding Kubernetes to a resume doesn't earn you a $52K raise inside Industry A; it makes you legible to a different hiring funnel that prices Kubernetes work at a different rate.
Comp
Federal data first, because it doesn't depend on us. BLS reports a median wage of $78,380 for Cartographers and Photogrammetrists (May 2024) and $72,740 for Surveyors, the two SOC codes that most closely cover Industry A's IC ranks. Software Developers earn a median of $133,080, with the top 10% above $211,450. Data Scientists earn a median of $112,590, top 10% above $194,410, in the fourth-fastest-growing occupation BLS tracks (+34% projected through 2034). Industry A occupations are projected to grow ~6%. That's a $55K-$60K median gap and a 2x-5x growth-rate gap between GIS-classified work and software-classified work, from federal statistics alone.
The industry's own self-reported numbers match. The GPN 2024 GIS Salary Survey of 4,602 respondents reports a median of $87,000 and an average of $91,774, nearly identical to both BLS's GIS-classified medians and the GIS Analyst median ($92.5K) in our sample. Three independent sources (federal occupational data, a 4,600-person industry survey, a job-board aggregator) all locate Industry A's wage center between $78K and $92K. Well under $100K.
In the postings we tracked (same Oct 2025–Feb 2026 sample; full role-by-role breakdown in our salaries 2026 analysis), the Industry B end sits roughly where BLS's software/data medians would predict: GIS Developer $120K; Remote Sensing Specialist $156K; Software Engineer $169K; Systems Engineer $175K; Data Scientist $197K. Our sample has a known defense/tech tilt, so we treat BLS Software Developers ($133K median, $211K top decile) as the load-bearing external anchor and our per-role numbers as illustrative. The simplest comparison says the most: GIS Analyst $92.5K versus Software Engineer $169K in the same database, same spatial data flowing through both jobs. A $76.5K gap. Every year.
Of the 428 listings in our sample that included salary, the distribution has two centers of gravity: a sharp Industry A cluster and a long upper tail where Industry B work sits, with a substantial middle.
On the same scale, the gap is impossible to miss
Median salary by role, both industries on one axis — 428 listings with employer-disclosed pay (in our sample)
The middle band ($125K-$175K, 32% of salaried listings) is large. Some of it is genuine crossover work (more on that shortly), some is lower-rung Industry B engineering, some is senior Industry A management. It's not a no-man's-land. The point is that the funnels feeding each end are separate, and most candidates only know about one.
Why the split has hardened
The two-industries split isn't new. What's new is how cleanly the two sides have separated over the past five or six years, and the reasons for that are concrete.
On the Industry B side, cloud hiring went vertical. AWS, GCP, and Azure trained a labor market in distributed systems, containers, and pipeline orchestration. Geospatial workloads (raster tiles, vector tile servers, satellite imagery processing) turned out to be a good fit for that toolchain. The defense and intelligence sector accelerated the hiring (we covered clearance and contractor mechanics separately). Climate-tech and earth-observation startups did the rest. "Geospatial" became a domain people specialize into from software engineering, not a destination people arrive at from geography. The supply pool tells the story: Industry B recruits from roughly 1.9 million Software Developers nationally per BLS, against Industry A's ~12,800 Cartographers and Photogrammetrists plus surveyors. When a defense contractor needs ten more geospatial engineers, they fish in the software pool and teach domain. When a county needs ten more GIS analysts, they fish in the GIS pool. Different waters.
On the Industry A side, the Esri ecosystem matured into a stable, dominant platform. Good for buyers, mixed blessing for sellers of labor. Standardized job descriptions, standardized skill expectations, a benchmarked comp band. Most Industry A employers are governments or government-adjacent, and government pay scales are sticky. The combination produces wage compression: predictable comp, slow movement at the senior end. That's a feature for people who chose Industry A for the stability and the civic mission. It's also why the upper rungs don't move.
"Isn't this just the analyst-vs-engineer split that exists in every domain?"
The strongest deflationary objection: marketing has analysts and engineers, finance has analysts and quants, every knowledge-work domain bifurcates along an operations-vs-engineering axis where the engineers earn more. Why is GIS being singled out? Calling this "two industries" inflates an ordinary pattern.
Fair as far as it goes. But GIS is unusual in how invisible the engineering track is from the operational side. In marketing or finance, the two tracks share recruiting channels. Recruiters know both exist. Analysts know the engineering ladder is a career option. In GIS, the engineering track has so completely dropped the "GIS" label from its job titles that most operational GIS practitioners can spend a decade in the field without realizing the other track is hiring at all. Geography programs don't expose students to software engineering as a peer discipline. The analyst-to-engineer crossover doesn't have the named transitional roles it has in finance or marketing. The split isn't unusual because the pay gap exists. It's unusual because the other side is invisible to most people on the GIS-titled side.
The split runs through individual employers
The split isn't only between employers. It runs through individual employers, too. Esri, the vendor that defines Industry A's toolchain, pays its own software engineers on the Industry B ladder. Levels.fyi data for Esri shows L1 software engineers earning $110K rising to $209K at L5. Esri is, internally, a software company. Its product happens to be GIS. The same is true at Planet, at Maxar, at HERE, at any defense contractor with a geospatial mission, at NV5, Peraton, and the dozens of cleared-software shops that account for the largest single chunk of Industry B postings in our database. A single company can run two ladders and pay them differently because they're two different labor markets, both inside one HR system.
This is the cleanest argument that the split isn't an artifact of how we labeled the data. Hold the employer constant. Same building, same Slack workspace, two pay bands separated by sixty to eighty thousand dollars depending on which req someone got hired against.
The crossover zone
Not every middle-band role is "crossover" in the structural sense. The middle band includes senior Industry A management and lower-rung Industry B engineering. The crossover zone is narrower: roles that genuinely require both spatial domain knowledge and engineering skill, where someone trained only in Industry A can't fully cover the work and someone trained only in Industry B doesn't know what to build. That's probably 10-15% of postings, not the full middle band. But it's where the most interesting geospatial careers currently sit.
The crossover titles in our data: Geospatial Data Scientist, Senior GIS Developer (when the role includes cloud and pipeline responsibility, not just web map development), Geospatial Analytics Engineer, Geospatial ML Engineer. These pay $120K-$160K, above Industry A's ceiling but below the top of Industry B. They're the highest-leverage roles for anyone moving from one side to the other, because they reward both the spatial intuition you built in Industry A and the cloud/Python work it takes to get there.
They're also the only roles anyone trains for as a deliberate goal. The MapScaping podcast has an interview with Dan Mahr describing his move from junior GIS analyst at a government contractor to software engineering, and Mahr has a long-form blog post on the same arc. The literature on how to make the crossover exists. The curriculum to teach it does not. Almost no formal program (GIS certificate, geography MS, data science MS) is designed to produce a Geospatial Data Scientist. People assemble the skill set themselves, after starting a career on one side or the other. That's also why the wage premium on crossover roles is durable: until a program reliably produces 200 of them a year, the premium pays for the integration work the labor market hasn't yet automated.
What this means depending on where you sit
If you're an Industry A practitioner who likes the work you do (the project rhythm, the civic mission, the geographic flexibility, the lack of an on-call rotation), nothing here is asking you to change anything. Operational GIS is a deliberate choice with real tradeoffs, not a default. It pays less than software engineering and it offers things software engineering doesn't. The people who weighed both and chose this didn't get it wrong. The one thing worth knowing: the senior IC ladder caps where it caps. Most people making "senior GIS money" three rungs above you moved into management or into the other industry. "I never made it to senior IC at $140K" doesn't mean you failed. It means the $140K IC is on the other ladder, doing different work.
If you're an Industry A practitioner who wants more comp, the crossover zone is the move. The skill stack to add is well-defined: Python (most Industry A people have a little; you need more), SQL, one cloud platform (AWS is the safe pick), containers (Docker to start, Kubernetes if you want to be expensive), and either real ML/data-science capability or real backend engineering capability. Order matters: get Python real before anything else. We have a Python learning path for GIS practitioners on that. Once you have the stack, the title shift follows. You start applying to "Geospatial Data Scientist" or "Senior GIS Developer (cloud)" roles instead of "Senior GIS Analyst" roles, and the comp band shifts with the title.
If you're a student or career-changer choosing your lane, be honest about the tradeoff. Industry A: easier entry (a GIS certificate or geography BA is enough), broader employer base, more geographic flexibility, lower comp ceiling. Industry B: harder entry (CS degree or equivalent portfolio), narrower employer base (defense, big tech, climate tech, vendor engineering), more on-call, more concentration in tech hubs, higher comp ceiling. Neither lane is better. They are different jobs with different work and different career arcs. Choose the one that matches what you actually want to do all day, not the one with the bigger top number.
If you're a hiring manager or agency recruiter, you're competing in two markets at once, and the mistake is usually two-sided. First, comp benchmarking: post a "GIS Developer" requisition that requires Python, AWS, and Kubernetes, benchmark it against the GIS Analyst comp band, and you will not hire. The candidate you want is already in Industry B's funnel being offered $160K. Second, channel mismatch. This is the one that bites people who did raise comp. Industry B candidates aren't reading GIS job postings at all. They're on LinkedIn engineering filters, Hacker News Who's Hiring, cleared-talent contractor networks, geospatial-software Slacks. Source from those channels, or accept that comp alone won't fix the funnel.
The structure has been there for years. This piece puts numbers and names on it so it's harder to miss.
Our Skills Explorer is a bubble chart of geospatial skills, with salary on the y-axis and posting demand as bubble size. The high-end bubbles (cloud, ML frameworks, distributed systems) sit on one side. The desktop-GIS and Esri-ecosystem bubbles sit on the other. Python and SQL bridge the two. It won't classify you into Industry A or B (that's a judgment call about which combination of bubbles your resume adds up to), but it shows which skills sit on which side of the pay split.