Siddarth Dagar (@EclipseIsDead)

Blog | Demos | X | Github | LinkedIn


I build systems that make other engineers more productive. Recently that has meant AI infrastructure, developer tooling, type systems, distributed workers, and performance work.

I also do fullstack :).

Reach me by filling in the blank: sidmcheath_gmail.com.

Recently

Systems Notes

AI agent orchestration

I worked on a platform where external events trigger autonomous agents, agents run as ephemeral Kubernetes workloads, and a control plane reconciles what the queue thinks is happening with what the cluster is actually running.

event -> NATS JetStream -> control plane -> Kubernetes Job
          ^                       |
          |                       v
          +-------- agent lifecycle events
            

The interesting part is not launching a pod. It is deciding what happens when an acknowledgement is lost, a job is evicted, a message is replayed, or two controllers observe different versions of the world. The design pressure is mostly around idempotency, recovery, and making failure ordinary.

Types as infrastructure

I have spent a lot of time around type systems that do more than satisfy a compiler. The philosophy here was that devs should not write their own types, because I know better. Instead tell them to define what they want in YAML ang generate the types with an RTTI Parser! A backend type definition can generate frontend types, API clients, runtime metadata, validation, forms, tables, and internal tools.

typespec YAML
  - fields
  - validators
  - relationships
  - display hints
        |
        v
RTTI parser / codegen
        |
        +----------+--------------+---------------+
        |          |              |               |
        v          v              v               v
 Python types  TypeScript types  API clients  runtime metadata
                                               |
                                               v
                                      dynamic UI / tools
                                               |
                       +-----------------------+--------------------+
                       |                       |                    |
                       v                       v                    v
                 generated forms        tables / filters     validation UI
            

Runtime type information is what makes generic tooling possible. If the program can inspect fields, constraints, relationships, permissions, and display hints, engineers stop rebuilding the same boring interfaces by hand.

Hot reloading distributed workers

Long-running asynchronous workers are awkward to update. Killing a process is easy, but it can interrupt in-flight work, duplicate side effects, drop local state, or leave a queue briefly uncovered.

code change
  -> start next worker generation
  -> wait for readiness
  -> mark old generation draining
  -> finish, checkpoint, or release in-flight work
            

The useful abstraction is a lifecycle contract: start, register, become ready, drain, release, terminate. Once that state machine is explicit, hot module replacement becomes coordinated worker replacement rather than an ad hoc restart script (surely nobody would ever write that and call it hot reload!).

Finding bottlenecks

Performance work is just profiling which is just measuring which is just looking. For postgres this was basically just plugging and chugging `EXPLAIN ANALYZE` queries with dalibo and then remembering that joining massive tables sucks.

Optimizing frontends is a little bit more fun, and sometimes you have to write your own tools! For example, sometimes you have over 10000 object selectors on a page because somebody used bad factory patterns, so you write your own console tool and start refactoring.

Some Things I've Done

Developer tools / AI systems

Systems / low-level

Graphics / math / simulation

Applications

About

I studied Computer Science and Mathematics at the University of Toronto. I am drawn to systems thinking, large codebases, and the internal platforms that make engineering organizations more effective.