Introduction #
I love being a software developer. Every job I’ve had has given me chances to learn and grow, and I’ve always looked for ways to push that learning even further. Early on, that meant books and LeetCode problems. But over time, I realized those were like practice drills for an athlete: useful, but incomplete.
No matter how many fundamentals you practice, you don’t know how good you really are until game day. Solving 100 LeetCode problems doesn’t prepare you for designing a checkout system. Worse, it might give you the illusion that you’re ready—until you actually try to build one.
That insight led me toward side projects. I started with very small “pet projects” that helped me connect the dots between different technologies. But it wasn’t quite game day yet. Things changed when I started making projects available to other people. Having real users was like moving from practice to a scrimmage: closer, to the goal. The real game began when people were willing to pay money for what I’d built.
Some developers get this benefit by contributing to open source, and that’s great. For me, though, open source projects still feel like working on a small piece of a bigger machine. I am drawn to the full picture—branding, messaging, graphics, technology. Side projects give me space to explore all of it.
What Work Gives Me #
I always want to work in a larger team with people smarter than myself. Exposure to technologies that are necessary at the scale of the projects we work on, but would be overkill for side projects. The camaraderie and collaborative energy working in a team really can’t be beat. Being able to drill down and understand at deep levels your part of a project is endlessly enjoyable for me—something else I won’t get from side projects alone.
Being questioned and given direct feedback in an effort to make the best possible thing within constraints, is a daily challenge that I benefit from greatly. Deep focus on a singular domain is great, but having the option to work on something different every so often gives me the energy and motivation for both.
If I only coded for my day job, I would have missed out on a lot. Being able to experiment with different AI ecosystems, explore deployment strategies, and integrate with systems that we don’t use at work for example.
How Side Projects Expand My World #
Technologies #
Side projects give me the freedom to explore tools and languages I don’t touch at work. While the office was evaluating security policies around AI tools, I got to experiment with Claude, ChatGPT, and Cursor on real projects. That hands-on work let me discover their strengths, weaknesses, and tricks much faster than I would have otherwise.
As a day-to-day Elixir developer, I typically stay inside the BEAM (queue Tron graphics!). With side projects I’ve had the opportunity to work in meaningful ways with Go, Rust, and even slayed a few dragons by shoring up my neglected JavaScript skills. (btw—when did MDX become a thing? - maybe a new post on that coming soon.) Managing my own Postgres cluster was both a nightmare and an incredible education. Let’s just say I’m glad I didn’t have the opportunity to make those same mistakes during my day job!
Even within the Elixir ecosystem, side projects push me into corners I may not reach at work. So far I’ve worked with libraries for image processing, AWS integrations, payments, and the newest version of LiveView, etc, etc. And some of those LiveView experiences directly shape how I approach current challenges in my job.
Architecture & Design #
At work, I rarely need to set up payment processing or design CI/CD pipelines. On side projects, I have no choice. Things I only thought I understood, suddenly become very real when I have to implement them end-to-end.
Running a project from idea → build → deploy → fix is humbling. I feel every gap in my knowledge. I also connect the dots in ways that are not usually available at work. I have a deeper appreciation for the bigger picture—plus a little more confidence to approach new challenges, both at work and side projects.
Why Side Projects Work for Me #
Real side projects give me room to experiment, fail, and learn fast. They let me explore both new and old technologies in real-world situations where their are enough stakes to matter.
At work, I take a lot of pride knowing my contributions support a product used at scale used by people all over the world. That impact is orders of magnitude greater than anything I could build alone. But side projects offer a different kind of reward: the simple joy of taking an idea, building it, and releasing it to the world. Seeing your product used “in the wild” for the first time is a reward I encourage everyone to pursue.
For me, work and side projects complement each other. My job challenges me with scale, collaboration, and depth. My side projects fuel my creativity and curiosity. Together, they make me more energized, motivated, and grateful for both. I look forward to Mondays when I can dive back into big projects with a great team—and to weekends, when I can bump my head on something new and make progress on my side project(s).
Here are a few lessons from my experience:
Do What You Can With What You’ve Got #
Just start. You don’t need a groundbreaking idea—pick something that is at least a little interesting to you. Worried there are already 20 other products/services like it? Perfect. That just means people already understand the problem and the value of a solution.
Don’t know how to do something? Ask ChatGPT (or another tool) to help you fill in the gaps and learn as you go. Not ready to start a full-on business? Build something small and share it with friends or family. If they start recommending it to others, you’ll know it’s worth taking the next step.
Spend More Time Creating Than Consuming #
Consuming is easy—and fun. I can get lost in the latest Netflix series, and I don’t think that’s wasted time. But if that is all I did during my off time, I am sure I would regret it. Creating things is a lot of fun: write a blog post, record a song, snap a photo, or build a little app. Share what you made! Your conversations will be far more interesting than what you watched or ate.
Get Your Reps In #
Stonecutters swing the hammer hundreds of times before the rock finally cracks. The same is true for creators. Progress comes from consistent repetition, not instant results. Write 10 blog posts and you still don’t have a following? Perfect - write the 11th. Record a dozen podcasts and no one is listening yet? Keep going. Every rep sharpens your skills, even if the audience hasn’t caught up yet.
I heard that “MrBeast” is willing to mentor anyone in video creation, but only after they have made 100 videos. Why? Because by the time you’ve put in that many reps, you’ve probably learned most of what you need to know. Creating is no different from training. You don’t get stronger from showing up once. Get your reps in.
Building Alone Can Still Be Social #
I’ve made some great new friends directly from building things. Putting a project into the world puts you into new situations where people notice, encourage, and sometimes even join you. Most people love cheering on an underdog who’s giving something a try. Build in public, let others know what you’re working on, and you’ll be surprised at the old friends and new opportunities that appear.
Call Your Shot #
Set a deadline. Once you choose your next milestone: picking an idea; getting a prototype running; or landing your first user - set a date and tell at least one other person. The extra accountability requires a future conversation. You can’t just “change your mind” when something gets difficult or unexpected life events happen. It reinforces the mind that you really didn’t know as much as you thought. Calling my shot is something I do probably multiple times a week, and I am still learning Hofstadter’s law.
Conclusion #
Side projects are becoming my personal training ground—a place to make mistakes, stretch my skills, and connect the dots in ways I couldn’t at my job. My day job gives me scale, collaboration, and challenges I couldn’t recreate without it.
Combined, they are making me a more seasoned and well-rounded developer. I encourage you to experiment putting something new in the world. Start small, be curious, and see where it leads.
Reply by Email