When I first got into web development, it was very much the “web” side of things that pulled me in.
HTML. CSS. Making something appear on a screen from nothing.
There’s something powerful about writing a few lines of code and seeing it come alive in a browser. That never really gets old.
But over time, something shifted.
I started caring less about just how things looked… and more about how they worked.
The logic.
The structure.
The “why is this doing that?” moments.
Recently, I built my own testimonial system for my site. On the surface, that sounds simple. Just a form and some displayed text, right?
It wasn’t.
I had to think about:
- How the data gets stored
- How to structure it properly
- Validation
- Preventing abuse
- Connecting front-end to database
- Triggering actions after submission
- And making sure it all behaves in production, not just locally
There were moments where I broke it.
Moments where I misunderstood how APIs worked.
Moments where I thought I’d finished… only to realise I hadn’t accounted for edge cases.
But that’s where the learning really happened.
I realised something important:
You don’t become “full-stack” by calling yourself full-stack.
You become it by building things that force you to learn the layers underneath.
What started as “I want a testimonials page” turned into:
- Working with databases
- Understanding data flow
- Thinking about security
- Writing logic I didn’t think I could write a few years ago
And honestly? That’s been the most satisfying part.
Not the polished UI.
Not the final version.
The messy middle.
The debugging.
The rewrites.
The moments where something finally clicks.
I’m still learning. A lot.
But every time I build something that stretches me a bit further than last time, I feel like I’m actually becoming the developer I wanted to be when I was younger.
And that’s a good feeling.
Top comments (0)