Projects that failed. Mistakes that taught me.
This page exists because I believe in radical transparency. Failure isn't the opposite of success — it's part of it.
Overbuilding a dashboard too early
2024What happened: I spent too much time engineering abstractions before users had validated the workflow.
What I learned: Real usage should shape architecture. Premature elegance usually slows teams down.
Underestimating mobile QA
2025What happened: A feature looked polished on desktop and broke trust on smaller devices.
What I learned: Responsive means tested, not assumed. Edge states deserve the same respect as hero screens.
Shipping without enough observability
2025What happened: An issue surfaced in production and took longer to isolate because the logging was too thin.
What I learned: Fast debugging starts long before bugs appear. Instrumentation is part of delivery, not cleanup.

