I build GeoAI agent systems, spatial ML infrastructure, and deterministic evaluation harnesses: standards-driven Agent Skills for geospatial reasoning, MCP tooling that automates ArcGIS Pro without handing an LLM the runtime, reproducible Sentinel-2 pipelines, and decision systems people actually open.
Most recently, as a contract AI engineer, I built a production LLM evaluation platform (a 923-case benchmark with human-adjudicated gold labels, bootstrap confidence intervals and release gates), and wrote a character-level GPT from a single neuron up in neuron-to-gpt.
The through-line is evidence. Every number below comes from a benchmark, a manifest, or a released artifact in the repo it describes, and where a result does not exist yet the repo says so instead of implying one.
| System | What it is | Status | Links |
|---|---|---|---|
| geoai-skills | 18 Agent Skills covering the geospatial lifecycle, routed by an orchestrator | v0.4.0 · MIT · routing benchmarked 2026-08-05 | Repo · Benchmark |
| arcgis-mcp-bridge | MCP server exposing 100 ArcGIS Pro / ArcPy geoprocessing tools to LLM hosts | Apache-2.0 · PyPI · Glama A-rated | Repo · PyPI · Glama |
| benchfck | Deterministic evaluation generator and exact Rust harness for machine-state tasks | v0.4.0-alpha engineering candidate · no model results published | Repo · Validity contract |
| sentinel-crop-pipeline | Reproducible Sentinel-2 preparation: discover, mask, patch, label | v0.3.2 · Apache-2.0 · PyPI · Zenodo DOI | Repo · PyPI · DOI |
| agri-dss | Zero-backend spatial decision support across 5 districts and 147 neighborhoods in Western Antalya | Live | tarimsalkoridor.online · Repo |
| FOUNDER.EXE | Startup simulation encoding Turkish and US tax, grant, SAFE and cap-table rules | Published · Windows x64 · paid | itch.io |
| neuron-to-gpt | Eight-week path from a single neuron to a character-level GPT, written from scratch | Public · 4.8M parameters trained on an A100 · val NLL 1.4723 on Shakespeare | Repo · Week 8 results |
| PlaceTwin | 3D digital twin and studio panel for two urban-design sites in Ayvalık, with a tool-calling Claude assistant grounded in the twin's data | In use by a university design studio · private repo | Project page |
| Pixel LLM | Godot game that walks the player through building a language model in 10 stages, from data collection to launch | In development · private repo | Project page |
Research repos: kutri-resilience-index, an urban resilience composite indicator with a DOI · turkiye-housing-prices-pandemic, inflation-adjusted HPI and spatial clustering · agri-unet, the downstream U-Net training track for sentinel-crop-pipeline.
AI Engineer (Contract) · EatBetter, AI-powered nutrition app · Sep 2026 · case study
- Evaluation platform. Built a 923-case benchmark from scratch: 569 human-adjudicated gold labels, a 277-case sealed holdout, 16 deterministic metrics and 742 automated tests in CI. Comparisons use user-clustered bootstrap CIs, and the release gate counts missing evidence as a failure.
- Model decisions by measurement. Retired a 7× costlier model after showing no gain (ΔF1 −0.006, 95% CI [−0.023, +0.012]) and shut down a candidate pipeline that lost to the bare model in 4 of 4 comparisons.
- Assistant safety. On a frozen 400-case scorecard, a fix for users with long memory profiles cut the missed-allergy-context veto rate from 96.4% to 2.1%, the only one of ten candidates to pass the gate.
- Production data quality. In a live PostgreSQL catalog of about 387k rows, soft-deleted 88,970 and unpublished 90,735, each write rehearsed as a ROLLBACK against a predicted row count before a human-approved COMMIT.
Undergraduate Researcher · TÜBİTAK 2209-A · 2026–2027. Sentinel-2 crop classification with U-Net segmentation and spatially blocked validation, built on sentinel-crop-pipeline.
Education. B.Sc. City and Regional Planning, İzmir Institute of Technology (expected June 2027) · B.Sc. Management Information Systems, Istanbul University (concurrent second degree).
geoai-skills ships a frozen routing benchmark instead of a claim about how well the skills "work". 167 cases, 18 skills, run 2026-08-05 on Claude Code 2.1.214 with claude-sonnet-5, against a paired control with the skills switched off.
| Arm | Precision | Recall | Full-route accuracy |
|---|---|---|---|
| Skills enabled | 99.17% | 96.77% | 96.41% |
| Skills disabled (control) | n/a | 0% | 0% |
The control recorded zero activations across all 167 cases, which is what makes the treatment arm mean anything. The benchmark measures routing, not answer quality, and the repo states that boundary explicitly.
arcgis-mcp-bridge has to give an agent real geoprocessing power while keeping a licensed GIS runtime out of the host process. Two isolated processes, two independent path validations, one refusal path.
flowchart TB
H["LLM host / AI agent"] -->|MCP over stdio| S["Async MCP server"]
S --> A["PathGuard A<br/>pre-check + confirmation gate"]
A -->|validated request| W["Isolated ArcPy worker"]
W --> B["PathGuard B<br/>independent re-validation"]
B -->|validated path| G["ArcGIS Pro / ArcPy runtime<br/>100 geoprocessing tools"]
G --> O["Structured NDJSON result"]
A -.->|blocked| X["Rejected safely"]
B -.->|blocked| X
style H fill:#ECF2EC,stroke:#1A221C,color:#1A221C
style S fill:#D7E9DD,stroke:#0B7F47,color:#1A221C
style A fill:#F6E6C8,stroke:#8A5A11,color:#1A221C
style W fill:#DCE5EE,stroke:#2C67A0,color:#1A221C
style B fill:#F6E6C8,stroke:#8A5A11,color:#1A221C
style G fill:#D7E9DD,stroke:#0B7F47,color:#1A221C
style O fill:#ECF2EC,stroke:#1A221C,color:#1A221C
style X fill:#F3D9D4,stroke:#A83A2B,color:#7A2418
- Deterministic evaluation. Exact generators, restricted verifiers, preregistered release gates, and a hard line between engineering evidence and model evidence.
- GeoAI agent systems. Turning tacit spatial practice into portable agent instructions, then measuring whether the routing actually holds up.
- Remote sensing ML. Spatially blocked splits, patch-aligned ground truth, and segmentation experiments downstream of a pipeline that is reproducible first.
- Language models from first principles.
neuron-to-gptbuilds a GPT up from one neuron with a measured six-stage comparison; Pixel LLM turns the same pipeline into a game.
Stack: Python · TypeScript · Rust · PyTorch · GeoPandas · Rasterio · ArcPy · PySAL · PostgreSQL / PostGIS · FastAPI · MCP · Agent Skills · Docker
Open to work on GeoAI agent systems, LLM evaluation, spatial machine learning, remote-sensing pipelines, MCP infrastructure, and evaluation design. Available part-time now and full-time from July 2027.




