Chapter 12: 2019 ->

New Horizons: The Digital Agency, Again?

Listen to the Chapter and Follow Along with the Transcript


After five years of predominantly positive experiences but feeling stuck in a stagnant role, I moved on to join a new digital agency. Unlike my first agency, this one operated at the premium end of the spectrum, catering to high-paying, quality-demanding clients. They didn’t settle for mediocrity, and neither did their customers.

Their office, located in the bustling heart of central London, exuded energy. It had all the modern trappings you’d expect—billiard tables in the waiting area, private focus rooms for deep work, and the hum of ambition in the air. This wasn’t just another agency; it was a well-oiled machine with a solid vision.

A Leisurely Challenge

My primary responsibility revolved around a complex booking system for a nationwide leisure company. The company ran a network of gyms, swimming pools, and golf facilities. Their system wasn’t just about handling bookings—it integrated with multiple third-party providers, managed dynamic schedules, and needed to scale with the demands of a countrywide operation.

The stack was modern: Laravel on the backend, ReactJS on the frontend, a robust AWS infrastructure, and a fully functional CI/CD pipeline. It was exciting to dive into advanced technologies, working with tools like S3, non-SQL databases alongside MySQL, and scaling systems efficiently. This felt like the future of development, and I was thrilled to be part of it.

My Laravel Foundation

My previous experience with Laravel had prepared me well. At my former company, I played a key role in selecting the framework for re-engineering our platform. To make an informed decision, I rebuilt a self-contained portion of our platform using five different PHP frameworks, including Laravel.

I didn’t stop at coding. I profiled each framework, evaluating metrics such as performance, developer productivity, ease of onboarding for new hires, market demand, community support, update frequency, and security patch reliability. My analysis culminated in a detailed report, and while Laravel was a strong contender, the decision ultimately leaned toward Java/Spring, given the specific needs and costs of the company.

That exploration gave me a strong understanding of Laravel’s strengths and nuances, which I brought to bear in my new role.

Leaving a Gift

Before I left my previous company, I ensured to leave them with something that would last—a parting gift. One of their critical modules was responsible for importing large amounts of data daily, a process that previously took 2.5 hours to complete. Due to a third-party module no longer updating, a rewrite became inevitable.

I took it upon myself to optimize the process. By redesigning the solution, I reduced the runtime from 2.5 hours to just 3 minutes. It was my way of showing gratitude for the opportunities I’d had there, even as I prepared to move on.

The Testing Conundrum

Back at the new agency, one thing was conspicuously missing: test coverage. Agencies often struggle to justify the cost of testing to clients. From their perspective, the end product looks the same, whether it’s meticulously tested or held together with digital duct tape. As developers, though, we know the truth: proper testing prevents issues, enforces good structure, and ensures maintainability.

Unfortunately, testing often fell by the wayside, sacrificed to the gods of tight deadlines and billable hours. It was frustrating, but such is the nature of agency life.

The Onset of Chaos: COVID-19

One evening, as I scrolled through my social media feed, strange videos started popping up. People collapsing in streets, suffocating on ventilators. The words “Wuhan” and “COVID-19” began flooding the news. Within weeks, the specter of a global pandemic loomed over us. Rumors of lockdowns sent ripples of panic through our office.

The company had just upgraded to a swanky, larger office space with a steep year-long lease. But now, leadership was in turmoil. What if the government locked everything down? What if clients pulled out? How would we survive?

The solution? A stern email: “Work from home will not be permitted unless train services are suspended. Additionally, to safeguard the company, all salaries will be temporarily reduced by 20%. Thank you for your understanding.”

The dissatisfaction was palpable. One brave colleague quietly organized a mutiny. On Friday, nearly the entire team simply didn’t show up. A silent protest.

A New Reality: Remote Work

By Monday, the message was clear. Leadership called an all-hands meeting. The room was silent until the owner broke it: “We’ve heard you. Remote work is now allowed. But we need everyone to agree to the temporary salary cut.”

Contracts circulated, and begrudgingly, we signed. Surprisingly, remote work turned out better than anyone had anticipated. Productivity remained stable. While we did lose a few clients to the pandemic, new ones filled the gaps—businesses scrambling to move online as physical stores shuttered. The company ended the year with steady revenue, though it fell short of its growth targets.

Burnout and Exodus

For developers, remote work came with a catch: endless extra hours. New clients brought new demands, and the lines between work and personal life blurred. My colleague, the one who’d introduced me to the company, was the first to break. Frustrated with longer hours for less pay, he landed a job at a tech giant. Others soon followed.

As the last holdout, I couldn’t ignore the mounting burnout. The excitement of modern tech and ambitious projects was fading under the weight of overwork and discontent. When an opportunity arose at a fintech company, I took the leap.

Did it work out? Let’s find out in the next chapter.

Next Chapter
Covid 19