I had some successes but many failures, and generally left a trail of unmaintainable code in my wake as I moved from job to job. It’s not something that I’m particularly proud of. I’ve been contacted by former colleagues, years after leaving a position, to have them tell me that my code is still running every day. When I’ve asked each one of them why, I’ve gotten the same demoralizing answer that has made me regret my implementations: “No one can figure it out to make changes to it, and it’s too important to turn off.” I’ve been a bad data scientist. I’ve been an even worse ML engineer. It took me years to learn why that is. That stubbornness and resistance to solving problems in the simplest way created a lot of headaches for others, both in the sheer number of cancelled projects while I was at companies and in the unmaintainable technical debt that I left in my wake. It wasn’t until my most recent job, working as a resident solutions architect at Data- bricks (essentially a vendor field consultant), that I started to learn where I had gone wrong and to change how I approached solving problems.