How I Became a Software Developer

From civil engineering to coding - the messy, confusing, and strangely rewarding journey.

Published on May 22, 20254 min read

How I Became a Software Developer

From Concrete to Code

I started in civil engineering, thinking spreadsheets, concrete, and blueprints were the height of creativity. Then I watched my cofounder coding and thought, wait… lines of code can actually change how people work, play, and live? Suddenly the world felt bigger, and my career felt tiny. I was hooked.

The Chaotic Self-Learning Phase

I asked my friend, who would later become my cofounder, to guide me through self-learning. Of course, I went through tutorials on HTML, CSS, JS, and eventually React. The pace was agonizingly slow. I thrive in structure, and self-learning didn’t give me that.


I decided to join a bootcamp in Kenya. Six months of pure, hectic, structured madness. Good hectic. It gave me structure, speed, guidance, and community - all the things I was missing. I may have missed some freedom, but the cost of time was worth it.


I will one day tell the story of how I spilled coffee on my laptop during a critical phase transition. I dreaded that week like no other.


Bootcamps give you the basics and a clear picture of the real world. When a task needs a certain method and you have to figure it out in two days, bootcamps train you to research, prototype, iterate, and survive under pressure. The mental strength gained is invaluable.

Post-Bootcamp Realities

Truth: your tech stack matters far less than your skills. Most clients don’t care whether you use Vue or React; they care about results, deadlines, and whether the product works. Pick tools that let you work fast and learn them properly, not copy-paste-pray.


I chose to master the fundamentals of one stack. Once you understand the basics, replicating to others becomes easier. But you quickly realize that every client is different, every proposal is unique, and pricing is tricky. How much should you charge? Price slightly above your comfort zone. If sending a quote doesn’t make you a little nervous, you’re probably undercharging. Adjust for complexity, risk, value, cover tools, tax, time, experience, and a margin for stress.


Great work doesn’t sell itself. Being your own boss is brilliant until you realize you’re also your own manager. Time-block calls, protect deep-work blocks, calendar or it didn’t happen, track time even on fixed-fee projects, batch tasks, and most importantly, rest. You’re not a robot.

Understanding the Product, Not Just the Code

Coding without context is dangerous. Most beginners dive into syntax and frameworks and forget the humans on the other side. I made it a point to understand business workflows, real user pain points, and culture. The goal isn’t to reinvent the wheel, but to make it roll smoother for the people who actually use it.

Learning From Experts Without Copying Them

I watch what industry pros do: UX patterns, accessibility tweaks, subtle design touches. Not to copy, but to understand reasoning.


Some patterns I adopt, some I ignore. The important question is: does this improve the product for the user? If yes, keep it. If no, scrap it.

Specialization? Don’t Overthink It

Everyone wants to know the perfect language or stack. Truth: it matters far less than your ability to solve problems. Learn one stack well, understand patterns, debugging, and workflows. Specialization grows naturally as you face real-world problems, don’t force it.

If I Could Talk to My Past Self

Start building small projects immediately. Don’t wait for the perfect stack or the ‘right time.’


Break things, iterate, learn by doing. Experience beats theory every time.


Watch experts not to copy, but to understand their logic.


Understand users and business processes, it’s the difference between code that works and code that matters.

Your Turn

Thinking about pivoting? Start small. Self-learn, join a bootcamp if you want structure, experiment with projects, and understand the people you’re building for.


Iterate relentlessly. Your first version will probably suck, that’s fine. The goal is to start.


If you want a hand turning your idea into reality, check my services page or get in touch.

You Made It!

Since you have made it this far, why not drop me a message?
Let us see how we can build something great together.

Get In Touch
Gichuki Muchiri | Full-Stack Developer