Backend C# for about ten years. Three jobs:
- Elbit (2014-18). Instructor consoles for military simulators. WPF.
- KLA (2019-24). Cleanroom inspection tools for semiconductor fabs. Lots of fab travel.
- WEM (2025-now). Leading the software side of grid-scale battery storage. C# microservices, React, PostgreSQL. Some LLM integration too (Claude, Gemini, MCP).
More at eladser.dev.
Local DevTools for AI calls. See every LLM call your app makes: the prompt, the cost, the latency, the tool calls, and whether answer quality is quietly regressing. Like a Network tab pointed at your models. There's an eval engine too, score answers against a golden set and the trend catches the drop when you switch to a cheaper model. Compare models side by side, set cost budgets with alerts, watch agent and MCP step traces, and gate CI on the eval score.
ASP.NET Core 9 + SQLite + React, built on OpenTelemetry. SDKs for .NET, Python, and JavaScript; installs as a dotnet tool.
htop for your local AI. One terminal window over whatever model server you're running (Ollama, llama.cpp, LM Studio, vLLM), showing loaded models and their VRAM, the GPU, and live requests with tok/s. It evicts models that won't unload on their own, and a pass-through proxy reads the per-request numbers straight off the wire (also Prometheus /metrics). mtop compare benchmarks a prompt across models.
Go. brew install eladser/tap/mtop or scoop install mtop.
Real-time flight tracker. Predicts delays through a Groq, Mistral, Gemini fallback chain. You add your trips and it pings you when something changes.
React 19 + ASP.NET Core 8 + SignalR. Vercel, Northflank, Supabase, Upstash.
Laravel Telescope, but for .NET. Drop the NuGet into an ASP.NET Core app, add two lines, and /_debug shows every request with the EF Core queries it ran, plus logs, exceptions, and timings. N+1 queries get flagged, there's copy-as-cURL and Ctrl+K search. Storage is a local LiteDB file and the whole UI ships inside the package as one offline HTML page. Runs on .NET 8, 9, and 10.
Diff config files by structure, not by line, so a reordered YAML key or "true" vs true isn't a difference worth reading. Ten formats (JSON, YAML, TOML, XML, INI, ENV, Java properties, HCL, CSV, conf), and you can diff across them. Runs in the browser, installs as a PWA, or npx simple-config-diff in CI, where it exits non-zero on differences. Nothing leaves your machine.
React 19 + TypeScript + Vite.
Twenty-five browser tools for .NET work: JSON to C# classes (with [JsonPropertyName] and date/GUID detection), GUID v4/v7, a cron builder, JWT decoder, connection strings for six databases, a TFM/version reference table, plus the usual encoders and hashes. All client-side, nothing leaves the page, and it installs as an offline app.
React 19 + TypeScript + Vite.
A side project, away from the day job. Mythic+, raid, and PvP utilities for the current World of Warcraft season: a score planner that reads your raider.io runs and picks the cheapest keys toward a target, a Great Vault planner, character compare, title cutoff, affix schedule, raid buff matrix. Live character data from raider.io, the rest computed in the browser.
React 19 + TypeScript + Vite.
| Area | What I reach for |
|---|---|
| Backend | C#, .NET, ASP.NET Core, EF Core, SignalR, Go |
| Frontend | React, TypeScript, Tailwind, Vite |
| Database | PostgreSQL, SQL Server, MongoDB |
| Cloud / infra | AWS, Azure, Docker, Terraform |
| AI / LLM | Claude, Gemini, Groq, Mistral, MCP servers, agents/skills |
Older stuff: WPF, WCF, C++, Java from Elbit. Blazor, Angular from KLA.
- WEM platform. Leading two engineers on grid-scale battery dispatch.
- LLM integration. MCP servers, agent orchestration, fallback patterns.
- Seerlens. A local tool for watching and evaluating LLM calls. Current side project.
- If you're building dev tooling and want a second pair of hands, say hi.




