
Software engineer in Vienna.
By day I'm a senior research software engineer at IIASA, where I'm a core developer of Geo-Wiki and build the GIS and AI tooling behind its Earth-observation and citizen-science research.
On my own time I keep building the same idea in different languages: applications made of small, isolated modules that start life as one deployable and stay pleasant to change. It began with the ABP Framework and today it's SimpleModule, in both .NET and Python. I've been an ABP Expert since 2018 and take on freelance projects on the side.
I've written up what I learn since 2020 (81 posts so far), and I build small apps for my own life when nothing else fits.
Work
Senior Research Software Engineer, International Institute for Applied Systems Analysis
NODES research group · Laxenburg, Austria · since 2017
Geospatial
- Geo-Wikisince 2021
Core developer of the platform behind Geo-Wiki and its sister citizen-science sites, including MowingQuest, BioGarden, Global Canopy Atlas, CAMALIOT, RECODO and Evoland: one multi-tenant system for crowdsourced map validation, stratified sampling, accuracy reporting and geotagged photo collections. .NET 10, ABP, PostGIS, TanStack Start.
- GEO-TREESsince 2026
The platform for GEO-TREES' forest biomass reference data, used to validate satellite biomass maps. React 19 and MapLibre on the front, ABP on .NET 10 behind it.
- Data & mapping toolingsince 2021
Pipelines that turn shapefiles, GeoPackages, GeoTIFFs, NetCDF and more into web-ready PMTiles and COGs with GDAL; GeoServer and Geo-Wiki CLIs; the GRANULAR pan-European landscape webmap; and a cloud-native data portal design on STAC, TiTiler and GeoParquet to replace legacy GeoNode.
- AgroTutor2017–2019
A mobile app giving farmers in Mexico specific, timely recommendations for sustainable agriculture. I co-authored the 2020 paper on it.
AI & machine learning
- Mowing detectionsince 2025
Validating the Copernicus grassland mowing product against Alpine webcam archives. A multi-stage pipeline of CLIP and self-hosted vision-language models filters webcams and frames down to usable grassland views, and a Vision Transformer ensemble serves the trained classifier over HTTP.
- Self-hosted inference
The institute's own GPU inference stack: vLLM serving generation and embedding models, pgvector retrieval, and tensor-parallelism and memory tuning to fit them on shared hardware. I also train colleagues on LLMs and agents.
- Vision models for field photossince 2026
Self-hosted vision-language models that classify and anonymise crowdsourced and survey field photos, with configurable pipelines per collection and background workers for long runs.
- Retrieval-augmented assistantssince 2026
Qdrant vector search, LLM reranking checked by an evaluation harness, citation and confidence gates, prompt-injection filtering, and per-tenant rate limits and token budgets.
Before IIASA
- TransPerfect2012–2016
Full-stack .NET developer in Chennai on TransCEND, a virtual data room with security and audit controls, and TransPort, the client portal for translation requests and delivery.
Now
- SimpleModule.NET 10
A modular monolith framework. Roslyn source generators discover modules at compile time, so there's no reflection and no manual registration. The C# DTOs generate the TypeScript types for the React + Inertia.js frontend.
- simple_module_pythonPython
The same idea for Python: each feature is its own module with its own tables, FastAPI endpoints and React pages, and they all ship as one app. Add-on modules such as a drag-and-drop page builder and news are published on PyPI, and the framework already runs IIASA sites.
Apps
Open source
Writing
2025
- Building AI-Powered Sentiment Analysis with Microsoft Agent Framework and Ollama
- Building AI Agents with Microsoft Agent Framework and Ollama: A Getting Started Guide
- ABP React CMS Module: Building Dynamic Pages with Puck Editor
- Automating Image Cleanup in Azure Container Registry with ACR Tasks
- Modern API Documentation in .NET with Scalar and OpenAPI
- Building an AI-Powered .NET API with Ollama and Microsoft.Extensions.AI