Tum | Modo | Postea

Published: (December 9, 2025 at 03:38 PM EST)
6 min read
Source: Dev.to

Source: Dev.to

tūm (pronounced /tuːm/) — “then,” “at that moment”; a glance back at what once was and the moments that shaped the beginning.

mŏdō (pronounced /ˈmɔ.doː/) — “just now,” “only now”; a grounding in the present, the point of clarity from which everything is assessed.

postĕā (pronounced /ˈpɔs.tɛ.aː/) — “afterward,” “later on”; a forward‑looking view toward what may unfold from this moment onward.

Given that I’ve re‑kindled my interest in this little blog of mine, and that it’s almost Christmas, it seems a fitting time to get a bit Charles Dickens and have a look at my past, present and future. Part of the reason I have picked this thing back up is that I finally feel settled in the job I’ve been at for a few years and actually have a bit of time now because I’m not constantly trying to catch up with everyone. Not that being in a catch‑up loop was a bad thing—it was a huge opportunity to learn a tonne and really add some serious strings to my web‑developer bow. I think it’s a worthwhile exercise to look back at where I was when I started out, honestly assess where I’m at currently, and then see what avenues I’d like to go down in the not‑too‑distant future.

Then

Back in November 2023, I took my first flight back to the UK for work to attend my initial training for a job at Fusions PIM Ltd. I had already been working in web development and with Laravel for a couple of years, so I wasn’t totally green. My CV at the time listed core skills like:

  • Laravel (2 years experience)

    • Built customer‑requested features into an existing project
    • Built a CRM and knowledge base for a subscription‑based retail company from scratch
  • Docker

    • Comfortable working in development containers
    • Hosting Dockerised web applications on bare servers
    • Using containers to “try out” different elements of tech stacks
  • Open Source

    • Started and managed a small web‑crawler project aimed at offering beginners an opportunity to try out OSS

In fairness, I hadn’t made a bad start considering my first exposure to this world was when I did my first Laracasts tutorial in 2021. But my actual real‑world experience and impact on the industry would have been negligible. Looking back, I’m a little astonished that this long‑established company took a punt on me, and I’m very glad they did.

What I lacked in experience I tried to make up for with soft skills: clear communication, not being afraid to look a bit daft by asking a silly question, and constantly trying to up my levels. I’d been lucky in previous roles where I had a huge amount of freedom to manage myself and my workload, and that didn’t change when I arrived here, even though the company technically had to be more “organised” for customer transparency and coordination. I could literally ask any of my new colleagues for advice or help as needed, and I still had time to just read and read and read.

The codebase I’m now working in had been around since long before I’d learned a single function of PHP. Some classes still used syntax from years ago—a true legacy monster. Even though much of it had already been converted into a Laravel app, there were still plenty of old quirks that were too fundamental to the business to risk changing, so they remained as they were. It felt like being locked in a time‑rift, but that had more benefits than I realised at the time.

Context of the conversion in progress

  • The application already had a structure very similar to a Laravel app from the start.
  • Many of the Symfony components that Laravel is built on top of were already being used.
  • The parts that differed most were older‑fashioned security concerns.

Now

Skip ahead a few years and that same mysterious and enormous PHP application has been converted almost 100 % to a modern Laravel app, thanks to the efforts of colleagues old and new—and myself. The main takeaway from being part of this conversion was that I had to gain a deeper understanding of the Laravel framework because the remaining parts to convert were the most challenging. I think the areas I got my teeth into the most were Eloquent and Commands, but I definitely routed around almost all areas of the framework codebase.

Eloquent

A lot of the older parts of the codebase used classic PHP syntax like:

$sql = "SELECT * FROM `some_table` WHERE `x` = 'y'";

so I got plenty of practice reading and understanding raw SQL and rewriting it with Eloquent queries. Much of the application involved search filtering based on model relationships, so I had to master defining and using relations for querying. Over the years, Eloquent methods for querying relationships improved week on week, and I was constantly presented with ways to improve both performance and developer experience.

The main thing I love about Eloquent is how well it reads, especially around relations. Often there’s no need to think too hard about what’s happening because methods like:

withWhereHas('relation', fn ($query) => $query->condition())

tell you exactly what the result will contain.

Commands

My appreciation for Symfony knows no bounds because I’ve really been in the trenches of the docs for just the console, and it’s pretty awesome how fundamentally simple it has been kept. In my humble opinion, Laravel has obscured some of that simplicity in the parts they’ve borrowed. For instance, when you combine the testing helpers:

$this->artisan(Command::class)->expectsTable([...])

Laravel makes a huge assumption that you’ve defined the table styling. If you haven’t, you’ll be momentarily stumped why your tests are failing, because the default style for tables in Laravel is not the same as the default style in Symfony 🫤.

Aside from these small quirks, the capabilities of commands are fantastic and even inspired some speculative thoughts that I’ll explore later.

Overall

Having spent this time writing code, as well as reading and reviewing a lot of high‑quality code, my style and thought process when solving problems have improved greatly. I am happy with where I’m at currently, but I can certainly see the edges of my own scope for improvement and will continue to chase after it.

I’ve kept up with practicing outside of work with things like CodeWars, and I try to maintain my interest in languages beyond my 9‑to‑5 use of PHP and SQL—mostly Bash and Go, but also recently delving into C++. Because I’ve reached this comfort level, I’ve picked up a small side project and hope to be able to maintain writing again, as it definitely contributed to developing my own understanding.

Back to Blog

Related posts

Read more »