Start small. Ship. Then grow.
MVP first. Add one feature at a time. Measure what’s used before optimizing anything.
Years in customer service. Training in psychology. A career shipping tools busy people use every day. Same habit: listen hard, design for real life, and don’t leave anyone stuck.
Years of it taught me how to talk to stakeholders without jargon, pull the real need out of a messy request, and stay calm when something’s on fire. That muscle still runs every build I own.
I design. Tools (including AI) write the boring parts. My job is keeping us on the right path: if a change drifts us off, we roll back to the last good version and try again.
MVP first. Add one feature at a time. Measure what’s used before optimizing anything.
Presentation, infrastructure, shared pieces. Each layer should stand alone so the next phase doesn’t force a rewrite.
Code is for humans first. Short functions. One job each. Human time costs more than CPU cycles.
Things break. Logging, alerts, and clear ownership tell you where—before users do. Assume logs can leak; don’t put secrets in them.
Input → transform → output. Reusable pieces. Freeze the predictable building blocks before stacking higher-level work on top.
Boy Scout rule: every pass should make the system a little easier to debug than you found it.
I studied psychology because I care how we decide and why we act. Once I started building software, that curiosity became a practical edge: design for bias, fatigue, and handoffs—not ideal users who read every label.
Cognitive bias loves dashboards. I pressure-test the story the numbers want to tell—including my own.
Plain language, chunking, clear cues. If only one person can run it, it isn’t done.
The new hire, the phone-only admin, the record the form forgot. Empathy isn’t a slogan—it’s a design constraint.
Some tools got rebuilt two or three times after they already worked—because “works” wasn’t flexible enough for the real job. That’s why the portfolio is full: I keep going until the tool fits the people who use it.