selected work
What I've shipped at GDi
Production work on GDi's configurable Web GIS platform for
enterprise clients. When I joined, it was a Vue, Vuetify and Java
stack: a configuration module that also handled user management,
the map application frontend, and a sewerage network module. It
is now being rebuilt around a Node.js backend, a management
module, a configuration module and two in-house libraries. I've
worked on both generations. Full role history is on the
experience page.
Setting the foundations of the new platform
Laid much of the groundwork, with the team, for the new
configuration module and the new sewerage network module: their
code structure, configuration moved into JSON, and global error
handling with errors surfaced directly in the configuration
module. Built many of the
new tools, helping move most
configuration out of files and into the UI, and contributed
components to the platform's two in-house libraries: a UI library
that replaces Vuetify and a shared widget library used by both
the map application and the sewerage module.
Vue.jsNode.jsProject architectureComponent libraries
Generating platform configuration with a self-hosted LLM
In the configuration module, where the map application's
configuration is built, I added a generator running on a self-hosted Llama model. It
combines a description of how a valid configuration file is
structured with the user's request into a prompt, then
automatically checks what the model returns and fixes most errors
and unfinished sections that could otherwise break the whole
application. A configuration that took about an hour to write by
hand now takes a few minutes from a few sentences of input,
depending on the hardware hosting the model.
LLM / LlamaPrompt designSelf-hostedValidation
Moving the platform's backend from Java to Node.js
Helped migrate the platform's backend to Node.js alongside a
redesigned frontend, while keeping the existing Java/Vuetify
version running for customers who hadn't moved yet. Built the
new authentication layer with JWT and role/privilege-based
authorization, wrote REST endpoints and business logic used across
the platform, and containerized services with Docker so
deployments became repeatable.
Node.jsJavaJWT / RBACDocker
GIS widgets and tools, frontend to backend
Built many map widgets and tools, including import, export,
attribute tables, drive-time analysis and custom tools for police
and traffic accident data. In the sewerage network module I implemented
feature identification, the table of contents and Java backend
logic, and fixed map loading. Also added backend support for
tool usage logs and a frontend view to browse them.
Vue.jsVuetifyJavaArcGIS API
Delivering for clients across industries
Worked with enterprise clients across many industries, including
electricity distribution, sewerage networks, telecommunications
and the oil industry, and with GIS specialists both in-house and
in other offices across the GDi group in different countries.
Deployed the platform for more than 10 clients on
their own servers, migrated
databases from MySQL to PostgreSQL and Oracle, and built custom
widgets, backend logic and tools for an electricity distribution
company. This year I wrote a Python geoprocessing tool for
server-side data export for a telecommunications client, and I'm now turning it
into a universal, ArcPy-only export tool that any deployment can
use.
Python / ArcPyPostgreSQL / Oracle / MySQLIIS / Apache