Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

GIS & Geospatial Data (QGIS, GeoPandas, PostGIS)  Module 12 – Professional practice

GIS roles, portfolios and interview practice

The main GIS roles and their tasks, how QGIS, GeoPandas and PostGIS skills map to job-description terms, a portfolio that proves them, and interview practice.

  • Beginner
  • 15 minutes
  • Examples run with Python 3.14.8 and Pyodide 314.0.7
  • By MySmartCoPilot
Free core, Pro depth: 6 of 15 minutes free
Free: GIS roles are told apart by their daily work · Job descriptions use other tools' words for the same ideas · Credentials exist, and none is needed to learn the work · Portfolios show the work behind the skills. With a pass: 2 in-depth parts and 3 interview answers, about 9 minutes.

What you will learn

  • Describe common geospatial roles and the tasks each does day to day
  • Map QGIS, GeoPandas and PostGIS skills to the vocabulary of job descriptions, ArcGIS terms included
  • Assemble a portfolio project from this track's work, with reproducible code and an honest write-up
  • Practise technical and scenario interview questions against a rubric

Before you start

What you’ll learn · Before you start

What you will learn

  • Describe common geospatial roles and the tasks each does day to day
  • Map QGIS, GeoPandas and PostGIS skills to the vocabulary of job descriptions, ArcGIS terms included
  • Assemble a portfolio project from this track's work, with reproducible code and an honest write-up
  • Practise technical and scenario interview questions against a rubric

Before you start

On this page

Two job posts both say “GIS analyst”: one asks for map layouts in a desktop GIS, the other for Python pipelines and spatial SQL. Titles in this field overlap, so the useful question is which tasks a job involves, and whether you can show you have done them.

Here you tell GIS roles apart by their daily work, translate this track’s skills into the words job descriptions use, assemble portfolios that prove the skills, and begin interview practice with questions scored by a rubric.

GIS roles are told apart by their daily work

Occupation profiles describe roles by tasks, not by titles. O*NET’s profile of GIS technologists and technicians starts with assessing new data for quality and completeness, producing layers, maps and reports by spatial analysis, maintaining databases and designing maps that present information clearly (O*NET); its remote-sensing profile starts with managing and analysing the data of remote-sensing systems (O*NET). Five GIS roles cover most posts, and this program links each one’s tasks to the lessons of this track that practise them:

skills.py: five GIS roles, their tasks and this track's lessons Python · skills/skills.py
"""A skills matrix: the daily tasks of five geospatial roles, shortened from O*NET's occupation profiles where one
exists (the developer's and the data scientist's are the track's own summary), and the lessons that practise each."""

ROLES = {
    "GIS analyst or technician": {
        "check new data for quality and completeness": ["quality-metadata-reproducibility", "geometry-wkt-wkb-validity"],
        "make layers, maps and reports by spatial analysis": ["spatial-predicates-and-joins", "overlay-dissolve-clip"],
        "choose map elements that present information clearly": ["qgis-symbology-and-labels", "qgis-print-layouts-and-atlas"],
        "enter and convert data: digitising, scanning, other formats": ["qgis-digitising-and-georeferencing", "gdal-ogr-command-line"],
    },
    "geospatial developer": {
        "design and code GIS applications and workflows": ["pyqgis-automation", "qgis-processing-and-models"],
        "keep spatial databases fast and correct": ["postgis-indexes-knn-plans", "spatial-indexes-performance"],
        "publish maps and data on the web": ["maplibre-vector-tiles-pmtiles", "web-map-performance-privacy"],
    },
    "remote-sensing analyst": {
        "process and interpret remotely sensed data": ["map-algebra-indices", "satellite-imagery-indian-missions"],
        "merge other geospatial sources into the analysis": ["zonal-stats-raster-vector", "resampling-reprojection"],
    },
    "surveyor or field-data specialist": {
        "collect and correct positions in the field": ["gnss-field-data-gps-tracks", "ellipsoids-geoids-datums"],
        "handle point clouds and terrain": ["lidar-point-clouds", "dems-and-terrain"],
    },
    "data scientist using space": {
        "test spatial patterns and model with spatial data": ["spatial-autocorrelation-hotspots", "spatial-machine-learning"],
    },
}

lessons = {lesson for tasks in ROLES.values() for task_lessons in tasks.values() for lesson in task_lessons}
print(f"{len(ROLES)} roles, {sum(len(t) for t in ROLES.values())} tasks, {len(lessons)} lessons of the track\n")
for role, tasks in ROLES.items():
    print(role)
    for task, task_lessons in tasks.items():
        print(f"  - {task}")
        print(f"      {', '.join(task_lessons)}")

Output

5 roles, 12 tasks, 24 lessons of the track

GIS analyst or technician
  - check new data for quality and completeness
      quality-metadata-reproducibility, geometry-wkt-wkb-validity
  - make layers, maps and reports by spatial analysis
      spatial-predicates-and-joins, overlay-dissolve-clip
  - choose map elements that present information clearly
      qgis-symbology-and-labels, qgis-print-layouts-and-atlas
  - enter and convert data: digitising, scanning, other formats
      qgis-digitising-and-georeferencing, gdal-ogr-command-line
geospatial developer
  - design and code GIS applications and workflows
      pyqgis-automation, qgis-processing-and-models
  - keep spatial databases fast and correct
      postgis-indexes-knn-plans, spatial-indexes-performance
  - publish maps and data on the web
      maplibre-vector-tiles-pmtiles, web-map-performance-privacy
remote-sensing analyst
  - process and interpret remotely sensed data
      map-algebra-indices, satellite-imagery-indian-missions
  - merge other geospatial sources into the analysis
      zonal-stats-raster-vector, resampling-reprojection
surveyor or field-data specialist
  - collect and correct positions in the field
      gnss-field-data-gps-tracks, ellipsoids-geoids-datums
  - handle point clouds and terrain
      lidar-point-clouds, dems-and-terrain
data scientist using space
  - test spatial patterns and model with spatial data
      spatial-autocorrelation-hotspots, spatial-machine-learning

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 skills.py

Twelve tasks lead to 24 lessons, and every role touches more than one module. Read a job post the same way: list its tasks, find the roles they belong to, and you know which lessons and projects to put forward.

Checkpoint

Check: GIS roles by their tasks

  1. Question 1 of 2 A job post asks you to "process satellite scenes, compute vegetation indices and merge them with district boundaries". Which role of the skills matrix is it?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: Remote-sensing analyst

    Read a post by its tasks. skills.py lists the remote-sensing tasks with map-algebra-indices, satellite-imagery-indian-missions, zonal-stats-raster-vector and resampling-reprojection.

  2. Question 2 of 2 Two posts are both titled "GIS analyst" but describe different work. What should you compare?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Their lists of tasks

    O*NET describes occupations by their tasks, and the skills matrix links tasks to lessons. Do the same with any post.

Job descriptions use other tools’ words for the same ideas

Many job posts are written in ArcGIS’s words, and the ideas behind them are the ones this track teaches:

Job description says In this track What it is
feature class: In ArcGIS, a set of features of one geometry type with the same attributes, kept in a geodatabase. In open tools a GeoPackage layer or a PostGIS table plays the same part. A layer in a GeoPackage, or a PostGIS table Features of one geometry type with their attributes
Geodatabase A GeoPackage, or a PostGIS schema A collection of datasets in one store
ModelBuilder QGIS’s model designer, saved as .model3 A visual way to chain processing steps
Geoprocessing tool A Processing algorithm, run with qgis_process One operation with parameters
ArcPy scripting PyQGIS, GeoPandas and Shapely Automation in Python

Esri calls a geodatabase: ArcGIS's native store for geographic datasets, held in a file system folder or in a database. A GeoPackage or a PostGIS schema plays the same part in open tools. “a collection of geographic datasets of various types”, and ModelBuilder “a visual programming language for building geoprocessing workflows” (geodatabase, ModelBuilder). Learn the concepts and the vocabulary follows; name both in an application.

Checkpoint

Check: ArcGIS terms and this track's tools

  1. One question A post asks for "experience building ModelBuilder models". What do you point to from this track?

    Choose one answer.

    Show the answer: One question

    Answer: Workflows built in QGIS's model designer and saved as .model3 files

    Esri calls ModelBuilder a visual programming language for geoprocessing workflows; QGIS's model designer is the same idea, and qgis_process runs its models from the command line.

Credentials exist, and none is needed to learn the work

Credentials are offered by the tools’ makers and by examining bodies (QGIS, Esri):

Credential Issued by How
QGIS certificate Training organisations that QGIS accepts To their course participants; each certificate contributes €20 to QGIS
Esri technical certification Esri Exams at foundation, associate and professional levels, through Pearson VUE

In India

The GATE Geomatics Engineering paper (GE) covers surveying, photogrammetry, remote sensing, GNSS and GIS, map sheet numbering included; 3,582 registered for it in 2026, 2,592 sat it and 446 qualified. The National Geospatial Policy plans a Geospatial Skill Council and the registration of surveyors and GIS professionals.

This track teaches the skills, and its exercises test them as you go; it is not a credential, and it promises no particular outcome.

Checkpoint

Check: Credentials in the field

  1. One question Who issues QGIS's certificates to course participants?

    Choose one answer.

    Show the answer: One question

    Answer: Training organisations that QGIS has accepted, each certificate contributing €20 to QGIS

    QGIS lets the organisations it accepts issue its certificates; Esri's technical certification has its own exams at three levels.

Portfolios show the work behind the skills

Portfolios answer the question a CV cannot: can you finish a piece of geospatial work? A good portfolio project states one question, its data with their licences, the method, how the result was checked, what it cannot tell, how to rerun it, and a public map that loads fast. Three projects that do this beat ten screenshots, so build portfolios from the track’s own work, where every input, licence and check is already written down. Step through the parts in the order a reader meets them:

Interactive · stage by stage A portfolio project, from question to public map Step through the parts a good portfolio project states, in the order a reader meets them.
A portfolio project, from question to public map, step 7 of 7. Showing One question, Data and licences, Method, How it was checked, What it cannot tell, How to rerun it, A public map.One questionData and licencesMethodHow it was checkedWhat it cannot tellHow to rerun itA public mapthat loads fastpublish

The drawing shows the whole scene; its 7 steps are listed below.

Every step as text
  1. A question. A project starts from one question that someone would ask, such as which households live more than 1 km from a clinic.
  2. Its data. It names every source with its licence, which shows that you know where the data may go.
  3. Its method. The method follows in a few sentences, with the reason it was chosen.
  4. Its check. Then how the result was checked, with a number, so a reader can trust it.
  5. Its limits. Then what it cannot tell. Limits stated plainly show judgement, not weakness.
  6. How to rerun it. Then how to rerun it, with a pinned environment and one command, so anyone can repeat the result.
  7. A public map. Last, a public map that loads fast, with the credits of its data. Three projects like this beat ten screenshots.

Interview practice then rests on the same projects: most questions in a GIS interview ask what you did, why, and how you checked it.

Checkpoint

Check: What a portfolio project contains

  1. One question A portfolio project's write-up names its data sources but not their licences. Why does that matter to a hiring manager?

    Choose one answer.

    Show the answer: One question

    Answer: It does not show whether you know where your data may go, which every published project must

    A good project states its question, data with licences, method, checks, limits, how to rerun it, and a public map that loads fast.

Three interview answers, worked and scored with a rubric Pro: opens with a Pro, Premium or Ultimate pass

Interviews for GIS posts mix technical questions, scenarios and a walk through your own project. This part answers one of each in full and scores the answers with a rubric that shows what each level adds.

In this part:

  • A technical question, worked: areas for every district of a state
  • A scenario: a layer with no metadata, two days before a deadline
  • A project walkthrough: clinic coverage in the town
  • Follow-ups that test whether the answer was understood
  • The weak answers, and what each one misses
  • A scenario answer in four steps

about 5 minutes

Opening this part with your pass…

This part opens with any MySmartCoPilot pass.

  • Pro pass · 1 week₹79$2.99
  • 30 days₹179$5.99
  • 1 year₹1,699$45

One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.

It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).

A portfolio project built to the checklist, and checked Pro: opens with a Pro, Premium or Ultimate pass

A portfolio project is judged by its write-up as much as by its map. This part checks a draft README against seven things a hiring manager looks for, then rewrites the two weak sections.

In this part:

  • Seven checks a hiring manager makes
  • The two weak sections, rewritten
  • What makes a project worth showing
  • Publishing a project without breaking a licence

1 runnable example (Python) · about 4 minutes

Opening this part with your pass…

This part opens with any MySmartCoPilot pass.

  • Pro pass · 1 week₹79$2.99
  • 30 days₹179$5.99
  • 1 year₹1,699$45

One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.

It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).

Practise: read a job post as tasks

Write the matching as a function; the sample tests read four job posts:

Exercise · Easy · Python

Read a job post as tasks and rank the roles it fits

Write rank_roles(post, matrix) in roles.py. post is the list of tasks a job post names, and matrix maps each role to the list of its tasks, like the skills matrix of the lesson.

Return a list of (role, shared) pairs, one for every role that shares at least one task with the post, where shared is how many of the post's tasks are in that role's list. Sort the pairs by shared, largest first, and by the role's name when two are equal. A post that shares no task with any role gives [].

The sample tests read four job posts against a small matrix of three roles.

Starter code · roles.py

def rank_roles(post, matrix):
    """(role, shared tasks) for every role that shares a task with the post, most shared first."""
    # Replace this line: count the shared tasks of each role, keep the roles above 0, then sort.
    return []
The sample tests · test_roles.py
from roles import rank_roles

MATRIX = {
    "GIS analyst": ["check new data", "spatial analysis", "design maps"],
    "geospatial developer": ["code GIS applications", "keep spatial databases fast", "publish web maps"],
    "remote-sensing analyst": ["process imagery", "merge other sources"],
}


def test_one_role():
    """a post whose tasks belong to one role"""
    assert rank_roles(["process imagery", "merge other sources"], MATRIX) == [("remote-sensing analyst", 2)]


def test_most_shared_first():
    """a post that mixes two roles ranks the one that shares more tasks first"""
    post = ["keep spatial databases fast", "publish web maps", "spatial analysis"]
    assert rank_roles(post, MATRIX) == [("geospatial developer", 2), ("GIS analyst", 1)]


def test_ties_and_no_match():
    """equal counts are sorted by name, and a post with no known task matches nothing"""
    assert rank_roles(["design maps", "process imagery"], MATRIX) == [("GIS analyst", 1), ("remote-sensing analyst", 1)]
    assert rank_roles(["fly drones"], MATRIX) == []
A hint

For each role, count the post's tasks that are in its list, for example with sum(task in tasks for task in post), keep the roles whose count is above 0, and sort with key=lambda pair: (-pair[1], pair[0]).

The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.

Then test yourself:

Practice that adapts to you

Practise this lesson

8 questions about 6 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 8 Which task does O*NET's profile of GIS technologists and technicians put first?

    Choose one answer.

    Show the answer: Question 1 of 8

    Answer: Assessing new data for quality and completeness

    The profile lists assessing data, producing layers, maps and reports by spatial analysis, maintaining databases and designing maps, among other tasks.

  2. Question 2 of 8 A post asks for spatial SQL, a pipeline that checks incoming layers, and a public web map. Which three projects of yours would you put forward first?

    Choose one answer.

    Show the answer: Question 2 of 8

    Answer: A checked boundary pipeline with its lockfile, a PostGIS query you can explain, and a fast public web map

    Match the post's tasks to roles and lessons, then choose projects that show those tasks done, with their checks and limits.

  3. Question 3 of 8 What is a "feature class" in this track's tools?

    Choose one answer.

    Show the answer: Question 3 of 8

    Answer: A layer in a GeoPackage, or a PostGIS table, of one geometry type with its attributes

    Feature class, geodatabase, ModelBuilder and geoprocessing tool map onto GeoPackage layers or PostGIS tables, GeoPackages or schemas, QGIS models and Processing algorithms.

  4. Question 4 of 8 Your CV says "PyQGIS and GeoPandas", and the post asks for "ArcPy scripting". How should the CV say it?

    Choose one answer.

    Show the answer: Question 4 of 8

    Answer: Name the concept and both vocabularies, such as "geoprocessing automation in Python (PyQGIS, GeoPandas; ArcPy concepts)"

    Learn the concepts and the vocabulary follows; in an application, name both the concept and the tools you used.

  5. Question 5 of 8 At which levels does Esri offer its technical certification exams?

    Choose one answer.

    Show the answer: Question 5 of 8

    Answer: Foundation, associate and professional

    Esri's exams are at foundation, associate and professional levels, taken through Pearson VUE.

  6. Question 6 of 8 What does the GATE Geomatics Engineering paper cover, by its syllabus?

    Choose one answer.

    Show the answer: Question 6 of 8

    Answer: Surveying, photogrammetry, remote sensing, GNSS and GIS, including map sheet numbering

    The GE paper's syllabus covers surveying and mapping, remote sensing, GNSS, GIS and image processing. In 2026, 3,582 registered, 2,592 sat it and 446 qualified.

  7. Question 7 of 8 Which parts belong in a good portfolio project's write-up? Choose every one.

    Choose every answer that is right.

    Show the answer: Question 7 of 8

    Answer:

    • How the result was checked, and its limits
    • The data with their licences
    • The question it answers

    State the question, data and licences, method, checks, limits, how to rerun it, and give a public map that loads fast.

  8. Question 8 of 8 You have ten small map screenshots and time to finish three projects properly. What do you show?

    Choose one answer.

    Show the answer: Question 8 of 8

    Answer: Three finished projects, each with its question, data and licences, checks and limits

    Three projects that state their question, data, checks and limits beat ten screenshots; build them from the track's work, where every input and licence is written down.

Interview questions

Warm-up (fresher): What does a GIS analyst do that a geospatial developer usually does not, and the reverse?

An analyst answers questions with spatial data: checks new data, analyses it, and designs the maps and reports that present the answer. A developer builds the systems that do this repeatedly: pipelines, spatial databases, web maps and tools. The tasks overlap, so read a post’s task list rather than its title.

Interview practice goes further with three questions: an ArcGIS team, a project walkthrough and totals that disagree; the bank holds their first steps:

  1. Fresher to mid

    You have built your skills in QGIS, GeoPandas and PostGIS, and the team you are interviewing with works in ArcGIS. The interviewer asks how quickly you could be useful. What do you say, and what do you show?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  2. Fresher to mid

    "Walk me through one project in your portfolio." Answer it for a clinic coverage analysis of a town, in about two minutes, the way an interviewer would want to hear it.

    Model answer, Pro. First step and follow-ups

  3. Mid to senior

    In a scenario round you are told: "Our dashboard's district totals of households differ from the state's report by up to 6 % in some districts. Work out why." How do you approach it, step by step, and what do you report back?

    Model answer, Pro. First step and follow-ups

Flashcards · 6 cards

Recall it, then check

Say the answer to yourself before you look: recalling it is what makes it stick.

  1. How are GIS roles best told apart?

    By their daily tasks rather than their titles: O*NET's profile of GIS technologists starts with assessing new data, producing layers, maps and reports by spatial analysis, maintaining databases and designing clear maps. List a job post's tasks, then find the roles and the work that match them.

  2. What does a GIS analyst do that a geospatial developer usually does not, and the reverse?

    An analyst answers questions with spatial data: checks it, analyses it, and designs the maps and reports that present the answer. A developer builds the systems that do this again and again: pipelines, spatial databases, web maps and tools.

  3. How do ArcGIS terms in job posts map onto this track's tools?

    A feature class is a GeoPackage layer or a PostGIS table; a geodatabase a GeoPackage or a PostGIS schema; ModelBuilder is QGIS's model designer, saved as .model3; a geoprocessing tool a Processing algorithm run with qgis_process; ArcPy scripting is PyQGIS, GeoPandas and Shapely.

  4. Which GIS credentials exist, and does learning the work need one?

    QGIS certificates come from training organisations that QGIS accepts, for their course participants, and Esri runs exams at foundation, associate and professional levels. None is needed to learn the work: the skills come from doing it.

  5. What should a GIS portfolio project state?

    One question, its data with their licences, the method, how the result was checked, what it cannot tell, how to rerun it, and a public map that loads fast. Three projects like that beat ten screenshots.

  6. What do most questions in a GIS interview ask about?

    What you did, why you did it and how you checked it, which is why interview practice rests on your own portfolio projects.

Key takeaways

  • GIS roles share titles but differ in tasks: read a job post’s tasks, not its title.
  • ArcGIS terms such as feature class, geodatabase and ModelBuilder map onto GeoPackage, PostGIS and QGIS models.
  • Credentials exist from QGIS, Esri and examining bodies; the skills come from doing the work.
  • Portfolios prove the skills when each project states its question, data and licences, checks and limits.

Terms in this lesson

feature class
In ArcGIS, a set of features of one geometry type with the same attributes, kept in a geodatabase. In open tools a GeoPackage layer or a PostGIS table plays the same part.
geodatabase
ArcGIS's native store for geographic datasets, held in a file system folder or in a database. A GeoPackage or a PostGIS schema plays the same part in open tools.

References

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.