Consistent Hashing Implementation
A consistent hashing ring implementation for distributed data placement, used in the vector search platform.
Software Engineer · Distributed Systems & Data Platforms
I design and build resilient systems, data pipelines, and tools that make debugging and scaling less painful.
Expertise
From distributed data platforms to cloud migrations, I focus on reliability, observability, and team growth.
Experience
Roles where I owned systems, shipped improvements, and handled real-world constraints.
Systems I've Built
A sampling of the distributed systems, pipelines, and tools I've designed or implemented.
Start here
Incremental refactoring of production report generation services to improve performance, data consistency, and observability while maintaining system availability.
Problem
Report generation services lacked consistency, had poor observability, and struggled with SQL Server load as data volumes grew.
Outcomes
Technologies
Problem
Organization needed a scalable, production-ready platform for data science and machine learning workloads with proper MLOps practices.
Problem
Built a high-performance vector search system supporting multiple data modalities with horizontal scaling and consistent hashing.
Problem
Needed to match citations across large document sets with high accuracy, handling variations in formatting, abbreviations, and partial matches.
Problem
Needed to parse Cypher graph queries into structured schemas for graph backends, enabling type-safe query construction.
Architecture Stories
Design narratives behind key systems: constraints, options considered, and final choices.
Software Engineer · Axon · 2022–2024
Incremental refactoring of report generation services to improve performance, data consistency, and observability while maintaining system availability.
Impact
Enterprise Architect · CAS · 2021–2022
Selection and rollout of a production-ready data science and machine learning platform, establishing MLOps best practices and reference architectures.
Impact
TAP Engineer · CAS · 2019–2021
Migration of on-premises applications to AWS, driving adoption of serverless and Kubernetes solutions to reduce operational costs and improve scalability.
Impact
Enterprise Architect · CAS · 2021–2022
Scalable bipartite graph solution for citation matching using distributed processing, handling millions of document pairs with high accuracy.
Impact
Code & Snippets
Algorithms, data structures, and system behaviors you can run right here in the browser.
A consistent hashing ring implementation for distributed data placement, used in the vector search platform.
Scala implementation of a citation matching pipeline using Apache Flink for distributed processing.
Rust implementation using Tree-sitter to parse Cypher queries into structured AST nodes.
TypeScript middleware for adding metrics and tracing to Next.js API routes.
Scala implementation of a Dagster-like pipeline orchestrator for data engineering workflows.
Intent & Philosophy
What I optimize for when I design systems, collaborate with teams, and make tradeoffs.
I design and build distributed systems, data platforms, and cloud infrastructure. My work focuses on reliability, observability, and making systems that scale without breaking.
Good architecture starts with understanding constraints: technical, business, and organizational. Rather than chasing the latest trends, I focus on solutions that balance performance, maintainability, and team velocity. Incremental improvements over big-bang rewrites, always considering operational complexity.
When designing distributed systems, observability comes first. You can't fix what you can't see. I design for failure, plan for scale, and always consider the human operators who will maintain the system. Whether choosing between microservices and monoliths, or selecting a data processing framework, I evaluate tradeoffs explicitly and document the reasoning.
Production systems fail. The question is how quickly you can detect, diagnose, and resolve issues. I've seen too many systems where debugging production problems means grepping through logs or guessing at root causes. That's why metrics, tracing, and structured logging are integrated from the start.
The focus is on reducing mean-time-to-discovery (MTTD) and mean-time-to-resolution (MTTR). This means thoughtful alerting (not alert fatigue), comprehensive metrics (not just request counts), and clear runbooks. I've improved incident response by adding observability tooling, and I've seen how good monitoring can turn a 4-hour debugging session into a 10-minute fix.
On-call experience has taught me that reliability isn't just about preventing failures—it's about making failures manageable. Systems need graceful degradation, circuit breakers, and clear failure modes. When something breaks at 2 AM, the system should give you enough information to understand what's wrong and how to fix it.
After conducting over 100 engineering interviews, I've learned that hiring is about finding people who can grow, not just people who know specific technologies. The focus is on system design thinking, problem-solving approaches, and cultural fit. Candidates get clear feedback, and the process is treated as a two-way conversation.
Mentoring is about creating space for others to learn and grow. I've worked with junior and mid-level developers on everything from debugging production issues to designing their first microservices. In practice, this means pairing, code reviews as teaching moments, and helping people understand the "why" behind decisions, not just the "what".
Communities of practice are powerful ways to share knowledge and standardize approaches. I started a machine learning community of practice at CAS to help teams learn from each other and establish best practices. These communities work best when they're bottom-up, focused on real problems, and have clear goals. I've seen how they can transform organizational culture and accelerate learning.
Franklin University
Franklin University
Scala, Rust, Java, Python, TypeScript/JavaScript
AWS, Docker, Kubernetes, Kafka, Spark, Flink
Prometheus, Grafana, DataDog, X-Ray
Contact
Whether you're hiring, looking for feedback, or just want to chat systems, feel free to reach out.
I'm always interested in discussing distributed systems, cloud architecture, ML platforms, or opportunities to build reliable systems at scale.