Wilton, CT — developer platforms & applied AI

Zyad
Shehadeh

Software engineer working on developer platforms, build systems and applied AI tooling.

01

About

I'm a Software Engineer III at ASML in Wilton, CT, where I work on the platform that 1,000+ engineers build on: Bazel build infrastructure, CI/CD with artifact provenance, and an internal agent platform of 15 MCP servers that I prototyped independently and the org adopted.

I studied computer science at the University of Michigan. Outside work I build local-first tools — software that runs on your machine, answers to you, and keeps your data yours.

0+
engineers on the platform I help run
0
MCP servers built & operated
0%
faster builds via Bazel cross-compilation
0×
deployment frequency, under compliance
02

Selected Projects

Aether private · in dev

A local-first, agent-native OS layer: freeze and resume desktop sessions, grounded local-model answers, every effect behind capability tokens and human approval. Nothing leaves the machine.

agentslocal-firstsecurityMCP

Heddle

Version control for many hands moving at once — intent leases, stitches, and a green-by-construction fabric above git, built for teams of humans and agents committing in parallel.

gitdevtoolsconcurrency
View on GitHub

Arbor

Research code testing whether dendritic depth can substitute for transformer depth — shallow networks of deep neurons, benchmarked against conventional architectures.

ML researchPyTorcharchitectures
View on GitHub
03

Experience

ASML — Software Engineer III

2024 — present

Wilton, CT

  • Lead DevOps platform development for 1,000+ engineers: standardized Bazel cross-compilation and Docker image distribution (~30% faster builds), and run GitHub Actions CI/CD with gated approvals and artifact provenance.
  • Built and operate an internal agent platform of 15 MCP servers spanning GitHub, Jira, Confluence, Teams, Splunk, Artifactory and internal build systems — prototyped independently, then productionized org-wide.
  • Shipped a real-time Teams support agent (~40% faster responses) and a multi-model AI PR review bot (~35% less manual review effort).

ASML — Software Engineering Intern → Contract

2023 — 2024

San Diego, CA

Migrated an on-prem, low-latency data streaming platform to Azure with Kubernetes and Event Hub — millions of events per day — and owned its authentication, security, logging and monitoring.

LatchBio — Software Engineering Intern

2022

San Francisco, CA

Built Docker-based bioinformatics workflows supporting 100+ research runs per month.

UM Medical School — Research Intern

2020 — 2022

Ann Arbor, MI

Built R Shiny applications for metabolomics research and applied SVM, Random Forest and GBM models to pathway-level analysis.

04

Live from GitHub

$ This terminal is real. When it scrolls into view, your browser calls the GitHub API directly — unauthenticated, read-only — and tails my public activity. The prompt at the bottom is a working shell: help lists 30-odd commands — live GitHub lookups, a small filesystem, toys, a theme switcher… and a few things help won't admit to.

05

The Wall

$ A public guestbook with a lock. Reading is free: the feed below comes straight from github.com/zyads/wall. Writing costs a puzzle — the answer is hidden in this page, and solving it happens right here. Deliberately token-free: no credential ships with this page. Posts travel through a tiny relay that can only ring a bell at that one repo, where a robot moderates them onto the wall. You never leave this page to post.

guest@wall:~ — cat wall/data.json
The wall is read live from github.com/zyads/wall — enable JavaScript to see it here.
06

Writing

Storing Tree Relationships in a Table

Jan 2024

Three ways to put a tree in a relational database, and what each one costs you.

Storing hierarchical data, such as tree structures, in a relational database can be achieved through various models. Each has its own characteristics, benefits and drawbacks. Here are three common approaches.

Adjacency List Model

The simplest way to represent tree-like data. Add a parent_id column to each row referencing the id of the parent node. Straightforward, but less efficient as the tree gets deeper.

CREATE TABLE tree (
    node_id  INT PRIMARY KEY,
    parent_id INT NULL REFERENCES tree (node_id)
);
Pros
  • Simple implementation.
  • Suitable for shallow trees.
Cons
  • Query performance degrades with tree depth.
  • No built-in support for traversing beyond immediate children.

Path Enumeration

Instead of storing only the parent ID, store the entire path from the root to the current node. Great for pulling all ancestors of a node at once; painful on updates, since moving a node means rewriting every path that contains it.

CREATE TABLE tree (
    node_id INT PRIMARY KEY,
    path    VARCHAR(255)  -- "1.2.3" = node 3 under node 2 under node 1
);
Pros
  • Efficient for ancestor and subtree queries.
Cons
  • Updates are complex and potentially costly.

Nested Set Model

Represent the tree as nested sets: each node gets a left and right value marking its position. Supports efficient range queries, but insertions and deletions require carefully renumbering those values.

CREATE TABLE tree (
    node_id     INT PRIMARY KEY,
    left_value  INT,
    right_value INT
);
Pros
  • Efficient range queries and subtree reads.
Cons
  • Left/right values must be recalculated on every structural change.

Conclusion

The right model depends on the depth of your tree, the queries you run most, and how much update complexity you can stomach. Each one trades simplicity, query efficiency and maintenance overhead against the others.

07

Education

University of Michigan

B.S. Computer Science · College of LSA Honors · Ann Arbor, MI

2020 — 2023