Staff Software Engineer

I make difficult production systems understandable and safe to change.

I am a Staff Software Engineer who helps teams modernize valuable systems they cannot afford to rewrite. I trace opaque production behavior, hidden coupling, distributed failures, and risky transactional workflows to make the next safe decision visible.

Choose your way in

Start with the question you brought.

You do not need to understand the whole archive before finding something useful. Choose the path that best matches why you are here.

01 / Architecture Retrospectives

Proof that the work changes outcomes.

Each case study starts with a problem people recognize, explains the useful intervention, and shows the outcome that made the next decision easier.

Monolith Modernization

System Cartography: Mapping a 10-Year Monolith

Problem
A valuable Rails platform had a decade of undocumented dependencies and seven lending funnels that were difficult to trace.
Intervention
Mapped the runtime and business paths, then gave squads a shared picture for making changes.
Result
Teams could modernize without a rewrite or planned downtime.
Read Case Study

Database Engineering & Compliance

Database Archaeology: Safe Multi-Table PII Purge Engine

Problem
Sensitive records were spread across legacy PostgreSQL tables with dependencies that were not safe to guess at.
Intervention
Mapped the references and designed a five-phase deletion strategy with lock-timeout budgets and replication controls.
Result
The team could remove data while protecting live application state.
Read Case Study

Enterprise Rails Resilience

Restoring a Hidden 4% of Customer Applications

Problem
Four percent of customer applications disappeared silently at the boundary between Rails sessions and downstream storage.
Intervention
Followed the request path through oversized cookies, defensive middleware, and the DynamoDB migration.
Result
Removed the hidden failure mode and restored the missing applications.
Read Case Study

Fintech State Machines

Instant Money: Real-Time Debit Disbursement Architecture

Problem
Real-time disbursement had to coordinate transactional state without trusting uncommitted reads.
Intervention
Designed two-phase state verification gates and idempotent ledger webhooks.
Result
Funds could move quickly while the ledger remained consistent and replayable.
Read Case Study

Panoramic View

Start with what the system actually does.

Panoramic View is my practical framework for legacy modernization: map the business process, trace what the software actually does across runtime boundaries, and resolve the differences before changing anything.

The user of the system might be a customer, an employee, an automated process, or an AI agent. The same questions apply.

Logs, traces, diagrams, documentation, and AI-assisted analysis are inputs to the map. They are not substitutes for understanding the system.

  • What does the business expect to happen?
  • What does the software actually do?
  • Where do those views agree, diverge, or remain unknown?

Inventory β†’ Evaluate β†’ Address

Make the next safe improvement visible.

When no one person has the whole picture, delivery slows and risk hides in the gaps. I connect business goals, system behavior, evidence, and ownership so teams can decide together and move with confidence.

The shape of the work

One practice. Four ways it appears.

I build, repair, explain, and preserve systems. The projects below are different expressions of the same practice.

flowchart LR
  M["Mike Hall | Staff Software Engineer"] --> B[Build]
  M --> R[Repair]
  M --> E[Explain]
  M --> P[Preserve]
  B --> B1[Ruby and Rails]
  B --> B2[Products and tools]
  R --> R1[Legacy systems]
  R --> R2[Safer change]
  E --> E1[Diagrams and standards]
  E --> E2[Observability and teaching]
  P --> P1[Communities]
  P --> P2[UGtastic and oral history]
  classDef mike fill:#f7efe1,stroke:#b45309,color:#1e232a,stroke-width:2px
  classDef path fill:#e6f4f1,stroke:#0f766e,color:#1e232a
  class M mike
  class B,R,E,P,B1,B2,R1,R2,E1,E2,P1,P2 path

03 / Public work

Documenting the craft over time.

I have written technical guides, spoken at conferences, founded grassroots engineering communities (SCMC, Geekfest@OMF), and recorded oral histories of modern software development. The current index contains 184 interviews across 212 recorded assets.