My early career as a software development engineer and software architect gave me valuable experience in understanding how engineers think and approach problems. As a designer, I’ve been able to leverage that experience to “speak engineer”, asking the right questions to understand when a technical constraint can be overcome and when it poses a truly hard problem. This ability has served me well, even into the era of complex LLM and agent architectures; once I understand how components fit together, I know how to push them to get the best result for the user.
Of course, my experience in delivering products has also taught me all about tradeoffs. No system is perfect, and product owners must constantly make hard decisions trading off functionality against reliability, schedule and cost.
These experiences have helped me build a reputation as a strong collaborator with product and engineering colleagues — one who will fairly represent the UX viewpoint and work with engineers and product owners to negotiate the right tradeoffs to deliver a product we are proud of.