Senior software engineerNYC metro

I build software
for the real world.

That has meant distributed backends, machine-learning systems, robots, medical devices, and developer tools. I start with what the system must do and how it can fail, then work backward to the design.

15+years building software
92%4-class behavior detection at DEKA
OSSprotocol work in the ZeroMQ org
LIVECharn built and operated end to end

01 / SELECTED SYSTEMS

What I have built.

A product I operate, an open-source protocol implementation, and an ML tool I took through operation and shutdown.

02Open source

Chumak / ZeroMQ

ZeroMQ uses a wire protocol. Chumak implements that protocol in pure Erlang.

It handles protocol negotiation, asynchronous messaging, supervision, and failures. The project later moved into the official ZeroMQ organization.

Read the code
Semantic segmentation model comparison produced by GoodModelBadModel
03Built + operated

GoodModelBadModel

Two segmentation models can have similar scores and fail on different parts of an image. This tool made those differences visible.

I built the application and ML workflow, ran it as a service, and shut down the original infrastructure when the cost no longer made sense. The archived version preserves the interaction.

Open the archive

02 / TRACK RECORD

Software does not run in isolation.

I have worked on research systems, cloud delivery, machine learning, robots, medical devices, and controls. In each case, deployment, failure recovery, operators, and cost were part of the system. The code was only one part of the job.

Read the résumé
  1. AWS Professional Services

    AI/ML Delivery Consultant

    Designing and delivering AI/ML systems for AWS customers.
  2. Amazon Robotics

    Software Development Engineer II

    Moved machine-learning workflows into reliable production systems.
  3. DEKA R&D

    Machine Learning & Controls Engineer

    Led a behavior-detection feature to 92% accuracy across four activity classes.
  4. NRC Canada

    ML Engineer / Software Engineer

    Research software, robotics simulation, distributed compute, and web systems.

03 / SELECTED WRITING

How I reason about engineering work.

The current article explains what to do when a coding agent discovers that the repository is missing something it needs.

FIELD NOTE / 017 MIN READ

Coding agents

When a coding agent finds a blocker

Define the missing prerequisite, build it as a separate change, verify it, and then return to the original task.

Read the essay