#Web developer
2020–present
Westervelt is a land and lumber company, and I’m its lead developer. I look after about ten Django applications across a surprisingly wide business: safety in our lumber mills, mineral payments, bookings at our hunting lodge, our public websites, and plenty in between.
The biggest is our hunting lease application. It’s been around for nineteen years and manages hundreds of clubs across roughly three-quarters of a million acres, bringing in about $8 million a year. It’s deceptively simple and frustratingly complex: nineteen years is a lot of business rules, exceptions, abandoned ideas, and decisions whose reasons aren’t always obvious anymore.
These days I have another developer and outside consultants to share the load with, but I’m still involved from the first conversation through production. I work with the people who use the applications to figure out what we actually need to build, design and build it, test it, ship it, and then stick around to find out whether we were right. I don’t get to throw the code over the wall; if I make a bad decision today, there’s a good chance I’ll be the person discovering why six months from now.
When I took the job, we didn’t even have source control. I created the company’s GitHub organization and, piece by piece, added the things I needed to trust the software I was responsible for: code review, automated tests, CI, dependency updates, staging environments, repeatable deployments, observability. I was learning plenty of it as I went. Mostly, I wanted enough evidence around a change that I could deploy it and still sleep that night. Six years later, those things aren’t projects anymore. They’re just how we work.