Developing From the Heart

I’ve been a software developer of some sort or another since I was about 11 years old. For the first 3 years, my exploration was purely joy - I had no employment, nobody to please except myself, and I did what I was interested in doing or learning. Those three years were all I took for me to end up working full time at the age of 14 building electronics and writing small pieces of software for an industrial controls company. I worked there for 10 years, until I was arrested in 2012.
During those 10 years, my career took a number of ups and downs. I wrote something that found its way into a commercially successful product by age 16, but ended up having a rough patch in my life that led to some friction between me and my employer, and my the age of 22 I was no longer in software anymore, and had moved to an engineering support role until I was 24.
I thought I was long since finished with programming by the time I was 24. I didn’t really enjoy the last two years I spent doing it, and I thought for sure that there was little to no chance I would ever have the opportunity of working in that field anyways. The rough years had also done quite a bit of damage to my confidence in my ability to do good work in software, so I took an Automotive Technology apprenticeship and learned to work on cars. Then, I worked in Adult Education as an administrative assistant and a special education tutor. I even spent two years working in a textile plant making clothes and medical wear. Computers weren’t done with me however.
Prisons get their technology about 20 years after everyone else is done with it, and they are rather restrictive with what they allow even after that. A mixture of public distaste for inmates having access to nice things, and a concern for security really limits what has been done with technology inside the walls. When I arrived, every book in the library was still checked out using a card in the back of the book. We weren’t sure how many books were in the inmate library, and we didn’t know which ones were popular. There was no way to quickly find a book - or even determine if there was a copy to be found.
Student assignments still had to be hand graded. All of them. Standardized testing consumed a huge amount of time because every bubble sheet had to be hand compared to transparency film prints of the answer key. The only way to tell if a student was improving or struggling with a subject was the teacher's paper records or the student’s memory.
What I saw was a problem that even the oldest computers should be able to solve. The problem was, I was in an environment with no trust, no Internet, no tools, and very few books on such a technical topic. All I had was my memory, an old copy of Excel, and a buddy who thought the same way I did.
What followed was two years of some of the hardest programming I have ever done in my life. We ended up writing a full library management suite, and a full education suite - complete with a bubble gum and glue scantron feature that could auto-grade tests. Written in VBA for Excel. We ended up pushing Excel to its extreme limits. Finally some staff relented - they were benefitting from the software too much - and got us a copy of Visual Studio 2019 Community Edition. I had learned C# shortly before getting in trouble, so I started teaching my buddy, and his mom ordered us some books, and we rewrote the entire thing with a proper database to hold the data.
Our computers weren’t networked, so we used a flash drive to synchronize the database from machine to machine in a ring. We implemented a search engine, and graphs. The library got the ability to have inmates put books on “hold” if they wanted it after someone else was done. They got the ability to do inventory on a biweekly basis. The reports we gave state inspectors for our library usage demographics were better than most public libraries in the state. We knew exactly what genre of books our patrons were reading and could invest the little grant money we got much more efficiently.
It was some of the most passionate work of my life. It wasn’t easy, and it wasn’t always fun, but I always had a mission in mind and I was determined to see it through. The software I was writing with my little team was making a difference. It made the world a little bit of a better place, and that was enough.
What I learned was that writing software can be difficult work. It can be frustrating, maddening work. It can take forever to get a small feature that nobody may ever notice right. You never hear anything but complaints - nobody ever remembers to complement the person who wrote line-of-business software. They only remember the days you made their job frustrating. I learned that without a mission - without purpose - you will not be able to sustain the type of effort being successful in this work requires. You need to know why you do your work, and it has to be a strong reason.
I am reminded of a scene in “Harry Potter and the Prisoner of Azkaban” where Professor Lupin tells Harry that he needs to hold a powerful positive memory in his mind in order to summon the patronus that will protect him from the Dementors that want to feed on his negative feelings. It’s very much like that. Whether it be providing a stable life for your family, or changing the world - you need something that speaks to you and feeds you strength. This is every bit as important as technical skill. You may have the skill to build the next AAA game, or the next frontier AI model, but those things are still very hard and you will require strength to make them real.
Now that I am back to writing software for real products in the real world, I have to keep focus on how my efforts affect customers, jobs, the environment, and my coworkers. Other people’s dreams and goals are linked with my own - and they need me to hold up my end of the bargain. Working in industrial controls gives me the opportunity to make the lives of some very hard working people less frustrating, safer, less grueling, and more profitable for themselves, their companies, and the planet. Non-tech folks depend on me to do my job, and for the machinery that they trust with their lives to do the right thing all the time, every time. It’s a powerful reason to get out of bed every morning. A powerful motivation to do the best job I can. Somewhere there is a kid waiting for their family to come home from working with equipment I helped design and build - and it’s down to me and my team to make sure they come home safely.
That makes this time different. I’m not just doing it because it’s a job, or to pay the bills. Sure, I like getting those bills paid - wouldn’t be able to do it without that. That isn’t the only reason anymore though. There are lots of soul draining ways to make money and pay the bills. And many of them would require less effort. So why stay at the hard thing? Because now I know why my work matters. And knowing makes success more valuable. It brings fulfillment.
Wherever you work, if it is hard work, you need to find that piece of meaning and hold on to it. Being good at what you do will depend on it over the long years. If you have the reason, you’ll do a good job, and you’ll grow your skills, because you will know why you are doing it. Yes, we have to worry about the how in our job. Few industries change as fast, or require as much diligence to not get left behind. But as Simon Sinek said in the title of his book, “Start with Why.”
Don’t just do a thing. Know why you do it.