Physics background and 12+ years building systems between human intent and complex physical and technical systems. I turn ambiguous operational problems into useful abstractions, combine research with engineering, and validate against real behavior to build production capabilities that teams can operate and extend.
Smart HVAC controls that help a small facilities team operate a geographically distributed portfolio of heterogeneous, aging buildings and equipment. I build the analytical systems connecting operator intent and control configuration to measured building behavior and ranked attention signals. Own research, training, production deployment, and data infrastructure across hundreds of devices at 2-minute resolution.
Built a pipeline from operational telemetry to a prioritized attention queue: statistical findings become domain insights, ranked recommendations, and evidence for investigation. Operators can assess portfolio health and departures from intended operation without knowing every building or inspecting raw telemetry. Translating operator intent into thermostat/control configuration closes the loop between desired operation and measured behavior.
Used natural HVAC experiments in operational telemetry to fit a deliberately simple 2R2C thermal representation per device, with bootstrap uncertainty quantification. Parameters cover envelope and internal resistance, air capacitance, thermal mass, two-stage HVAC capacity and lag, solar and internal gains, and infiltration. The aim is a stable, transferable description of thermal response for downstream decisions, not a detailed forward simulator or a claim that every parameter uniquely identifies a literal building property.
Ablation studies selected a 21-parameter subset for fleet discrimination. Stored as vectors in pgvector, these representations support k-NN peer comparison, experiment selection, and anomaly context; longitudinal monitoring uses parameter uncertainty to separate drift from estimation noise. They also provide a basis for investigating hierarchical/partial pooling to bootstrap newly installed devices. A 31-dimensional variant adds regime detection and seasonal coverage features to condition the diffusion model.
Trained a cross-attention diffusion model for 6-hour indoor temperature trajectories, conditioned on per-device physics embeddings. Achieved 0.44°F median MAE — a 3–4× improvement over baseline — with calibrated ensemble uncertainty via DDIM sampling. Deployed as a self-contained 2.7MB inference service (embedded weights, no external dependencies) for forecasting and anomaly detection.
Excellent predictive metrics concealed a shortcut: thermostat feedback coupled HVAC call duration to outcome, rather than teaching the model the building's response to an independently chosen schedule. Diagnosed a rank-1 HVAC response surface by SVD and Spearman ρ = −1.000 between call rate and duration. Physics-informed counterfactual augmentation decoupled synthetic HVAC schedules from thermostat logic while preserving the underlying physics, reducing ρ to −0.4 without degrading MAE on real data. This tested the relationship needed for control decisions rather than accepting offline accuracy as success.
Built a fleet-wide outlier detection pipeline using consensus voting across three complementary methods — HDBSCAN, Isolation Forest, and Local Outlier Factor — applied to the physics embedding space. Devices flagged by 2+ methods surface as candidates for investigation, with per-method scores providing diagnostic context.
Anomaly detection in production compares observed temperature trajectories against the diffusion model's predicted distribution, flagging deviations beyond a configurable σ threshold with severity and timing metadata.
Change-point detection on raw time series treats historical behavior as the baseline — deviations matter more than absolute values. Distributional features (e.g., kurtosis of the estimation error distribution) identify devices where the physics model is underconfident, surfacing structurally hard-to-model buildings before they generate false alerts.
Rewrote the time series feature store as a Rust-driven query compiler and planner in front of TimescaleDB. The planner maintains a feature registry with category-based grouping, resolves inter-feature dependencies, separates raw fetches across data sources (device telemetry, weather, remote sensors), and applies derived transforms — producing an optimized execution plan before any data is fetched. Serves 2,000 requests per second per core in an EC2 autoscaling group.
Built an agentic system and MCP server for free-form fleet diagnostics. The agent's understanding of the fleet is grounded in a knowledge graph derived from the codebase and feature store — devices, zones, equipment, and remote sensors as vertices; relationships (LOCATED_IN, CONTROLS, MONITOR_SUPPLY, MONITOR_RETURN) as edges; traversable via recursive CTEs in PostgreSQL. To answer analytical questions, the agent generates Python and executes it in a WebAssembly sandbox (python.wasm via Wasmtime) — full process isolation with no host filesystem access beyond explicitly scoped directories. Support and engineering teams can now diagnose issues and surface insights without specialized knowledge of HVAC, IoT protocols, or the underlying data schema.
On-board heat sources (cellular radio, processor, power management IC) bias the thermostat's temperature reading. Designed an ongoing experiment with our electrical engineer to characterize each heat source across locations and power states using reference sensors, then built a compensation model on top of the feature store that corrects the reading in real time.
Privacy compliance software for large organizations subject to GDPR, CCPA, and similar regulations.
Led a team of engineers to build a new product for managing privacy compliance data collection across large organizations — replacing spreadsheet-driven processes with a structured task and information management system. The core challenge was combinatorial: many assets × many regulations × overlapping requirements.
We addressed this with three mechanisms: declarative templates (lawyers define a compliance report structure; it compiles into distributed tasks), automation (prefill from known answers, skip irrelevant questions, flag contradictions), and an asset inventory (shared answers across overlapping regulatory requirements eliminate redundant data collection). Business logic and automation run entirely in PostgreSQL via PL/pgSQL. The API layer is Go; the template compiler targets WebAssembly for reuse in the browser; the UI is PureScript.
Flexible rent payment scheduling and budgeting tools for renters and landlords.
Designed a streaming ingestion pipeline for daily renter status and balance updates, supporting multiple vendor APIs and manually uploaded Excel files. Built with change detection, replayable historical input, and support for schema variance across vendors.
Built an identifier translation service mapping vendor-specific renter IDs to internal identifiers, including a fuzzy matching endpoint for new-user enrollment. Implemented in Go with Redis and bloom filters.
Business travel booking platform for frequent travelers. (Defunct — business travel and global pandemics don't mix.)
Built the core booking engine to make independently stateful external booking systems behave as a durable higher-level transaction, handling concurrency and failure across our own microservices. This included Sabre's legacy terminal API — a system predating ASCII with 6-bit integers and a travel-agent keyboard UI. Led implementation across four engineering teams and the data science team, from proof of concept to production.
With 180 microservices competing for a fixed Sabre session token pool, accurate distributed counting was critical to avoiding unannounced overage fees. Used TLA+ to design the management algorithm, then implemented a distributed pool in Redis + Lua + Node.js that enforces the limit across the fleet with no false positives.
Infrastructure-as-code with emphasis on security, auditability, and automated remediation.
Built a system to enumerate every resource in an AWS account for snapshot and diff operations, implemented in Python with comprehensive property-based testing via Hypothesis. Introduced property-based testing to the broader engineering team.
Created a fuzz testing framework to test whether actual AWS infrastructure returned to its declarative specification after arbitrary perturbations, measuring remediation latency. Selected perturbations from historical bug reports and feature changes to maximize signal per dollar of AWS spend — testing the operational guarantee, not just individual API calls.
Bot detection and mitigation for websites, mobile applications, and APIs: inferring adversarial intent from observed behavior and turning detection expertise into reverse-proxy enforcement.
Collaborated with the data science team to redesign browser fingerprinting: identified the feature subset with maximum uniqueness, added data validation, and shipped 2.5× more identifiers at equivalent traffic volume. Added HashCash to raise the cost of identifier cycling, producing a 30% increase in bot detection with no customer complaints about false positives. Implemented a stable bloom filter in Lua inside Redis to deduplicate an unbounded token stream in constant space.
Designed a rule engine to replace a fragile flat settings system, encoding platform knowledge in a format accessible to engineers, support, and analysts. Built as an Nginx module in Rust to meet a 20ms latency SLA — Rust's WebAssembly target allowed the same library to power the browser-based configuration UI. Rules compile to disjunctive normal form for constant-space evaluation; the compiler estimates resource usage and provides user-facing feedback before deployment.
Diagnosed and fixed a reliability inversion: multi-node deployments were less reliable than single-node despite being sold for redundancy. Root cause was error propagation via ZeroMQ topology design. Redesigned data flow for 2-node replication and n/2−1 fault tolerance in larger deployments. Built a fault injection test suite to validate failover behavior.
Joined when the platform team was two people; left with nine engineers across four offices on two continents. Drove recruiting and hiring for all of them. Organized an ongoing Rust meetup as a sourcing pipeline. Led architecture integration for two acquisitions.
Graduate research: computational protein-folding simulation through iterative structural perturbations across a potential landscape; work on Makeflow, enabling domain scientists to express and run distributed scientific workflows without managing the underlying distributed infrastructure.