Leave Me Behind

“If you don’t learn how to use AI, you’re going to be left behind.”

So leave me behind.


I learned to build Android applications in 2014. I was in college taking a Java programming class, when a classmate shared a free online course to learn Android development. The goal was short: build a todo list app with local storage.

When I completed the minimum requirements, I unplugged my phone from my laptop and went over to my parents to show them what I built. I often refer to this as my “lightbulb moment”. Here in my hands was a real, tangible piece of software that I built and could interact with. It wasn’t the first time I programmed something, but it was the first time I had an application on a device that I could carry over and show someone. The app lived in my pocket, always available when I needed it, to help me stay organized and productive.

Immediately, I realized a sense of purpose in my work. I was learning the skills necessary to give people direct access to a tool that can create a truly positive impact. I fully experienced this first hand in 2018 when I found myself working on the very dating app I would use to meet my wife.

After taking this first course, I would spend the next decade honing my skills as an Android developer. I helped maintain a number of applications with real world, tangible benefits for others - whether that’s finding their special someone, gaining easier access to their medications, or supporting them to travel and see all of the beauty this world has to offer.

As I look back on this journey so far, it’s not the outcome of these applications that I cherish most. It’s the people who have made it all happen.


In the beginning of my journey, my goal was to consume as much information as I could. I would sign on every week to my course and learn everything the professor could teach me about Android. I would take another course where Googlers taught me how to build a weather app, and I couldn’t get enough of these experiences. I would sit down and work on the weather app in between every class, or even instead of taking a proper lunch break. I was in awe of the depth of knowledge of the people behind the camera, and their willingness to share it publicly for others to benefit from.

The next few years would be spent practicing by building. I attended over a dozen hackathons, connecting with hundreds of other enthusiastic budding software engineers who were just as enamored with the spirit of building. I’d hop in a car with a couple of friends and drive anywhere from two to eight hours, where we’d spend three days getting about as many hours of sleep building social apps, pet trackers, and even NFC tag capture the flag games. We’d amp ourselves up with caffeine, argue over tech stacks, and spend a weekend full of laughter, friendship, and the unbridled pride of building something as a team. It didn’t matter what we built, it didn’t matter if we won a prize, the reward was in the experience.

Upon graduation, I found myself working at a digital marketing company. I started my first day as a professional Android developer so inspired to take everything I had learned and bring my skills to new heights. I met the teammate who would sit next to me in the office, and one of his first questions was “What do you know about RxJava?”

I panicked instantly. I had never heard of it.

Without any hesitation or judgement, he began sharing his experience with me. He taught me everything I needed to know about reactive programming, how it fit into the context of the app we would be working on together, and suggestions for getting up to speed. He and I would go on to be the office clowns, filling the room with contagious laughter and cackles, while still having such a deep passion for our work and growing together.

It also happens that this teammate would be the one to bring me to my first Android conference at Droidcon NYC. Awestruck doesn’t begin to describe how I felt in that environment. Hundreds of engineers with the same niche passion as me. Dozens of speakers volunteered to share their knowledge with the world. I knew without a doubt this was the guiding principle of the current stage of my career. Those heroes inspired me to get up on stage and share my expertise with the next generation of Android engineers coming in behind me. I look for every opportunity I can get to help another engineer, and pay forward all of the ways others have helped me.

Throughout all of these experiences, and so many more than I have time to share, it was the human connection that made it special. The laughter that helped me get through a hard problem. The sleepless nights that reminded me I was not alone. The selflessness of others to get on stage or behind a camera and teach people they didn’t even know, often for little or no cost, just so that others would be enabled to build and have an influence.


Suddenly, LLMs hit the mainstream and threatened the current style of software development. A simple promise - you no longer need to learn to code, you can simply prompt what you want and it will generate the code for you.

Initially I was excited - I’m a software engineer, of course I’m excited about prospective new technology. After trying it though, I realized it wasn’t quite there. It hallucinated and suggested methods that didn’t exist, or introduced obvious bugs, or in worst cases didn’t actually compile.

There was a new promise that it would get better, so recently I tried these tools again. It had certainly gotten better. It wrote code that compiled, it analyzed stack traces and suggested fixes, and it even reviewed my code for me.

It also depleted the human experience.

If I encountered something I didn’t know, I would ask the AI what to do, and rely on the first answer that worked to achieve my goal. Previously, I went to Stack Overflow and learned from another human being who had already experienced the same struggle, and shared their information in the open to help others. On Stack Overflow, engineers would not just help but push back and challenge my assumptions to set me up for future success. Just as well, by taking the time to research my struggles, review the information that was out there, and see community votes to understand the general approval (or disapproval) of a solution, I was enabled to fundamentally comprehend the problem and solutions to grow the muscles needed to solve it again in the future.

If I was asked to build something, I would delegate to the machine instead of using the skills I’d spent a decade perfecting. Engineers love automation, but it serves us best for the menial, repetitive tasks. When we automate critical thinking, we begin to lose our own skills to build resilient, lasting software. Some argue LLMs actually enhance this - by producing code quickly, it allows us to think critically about the systems we’re building. In my experience, this argument missed another fundamental building block of learning software development - trial and error. Trial and error is not simply whether your app works or crashes; It’s trying different architectures, libraries, patterns, and styles to find what best helps you achieve your goals.

If I wanted feedback on my solution, I would ask a black box instead of sitting down with a colleague and making a case for my implementation while having a real conversation about the trade-offs that were made. Those trade-off conversations were not just theoretical, but often based on the other person’s lived experience of what did and did not work in their own projects.

Finally, I snapped out of it. This was not the life I wanted.


These LLMs are prediction machines. They are text generators that are ultimately a bunch of fancy statistics, trained on the years and years of dedication by brave engineers willing to learn and build in the open. Building in the open meant we were not gatekeeping technology, but creating tangible examples for young engineers to explore, understand, and learn from.

They don’t laugh with me when my code fails to compile after I swear “this is the one.” They don’t help me develop an understanding of my software, so that when someone says “how does this work” I can pour my heart out with passionate explanations. Most importantly, they don’t turn their head and smile and participate in the inexplicable elation of saying “we built this!”

I desire to connect with people. I long for the days where I was vulnerable and shared my struggles with engineers who charitably stepped up to support me. I miss taking what I learned from those struggles and sharing them back out as a blog post or presentation, encouraging the next person to overcome the same challenge.

It will take me a while to get back into these habits that have been weakened from AI use, but it is a necessity to maintain humanity in software development. It is sincerely an art form; A craft that takes dedication, perseverance and especially, a strong community to endure. Software was built by humans, for humans. If it’s not built by humans, then who is it being built for?

If that experience of building with AI is truly the future, then you can leave me behind.