Table of contents

  • Introduction

    Why tyingshoelaces.com

  • Connect the dots

    Looking back, everything becomes clear

  • I'll work for free

    Probably value for money

  • Conclusion

    So why tyingshoeslaces again?

May 31, 2024
By Edward.
Introducing PrivacyTrek blog image

Introduction

Like most everything on the internet, it starts with Steve Jobs.


You can't connect the dots looking forward, you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future. You have to trust in something -- your gut, destiny, life, karma, whatever

Steve Jobs

At my entry point into Software Development as a novice I was already 27 years old, and had essentially failed as:

  • A Banker
  • A Barman
  • An Entrepreneur
  • An Estate Agent
  • An English Teacher

In the 13 years since, I've scaled Software Development businesses, hired and trained teams of developers. I've worked on huge websites, founded startups of every flavour. I've worked alongside some of the world's best programmers.

So how did I end up here again? And where is here? This isn't a blog about how to triumph in business, or indeed in Software Engineering in general. Any definition of success is completely relative and I neither claim nor desire to be any kind of mentor or even know what the top looks like. Mine is almost definitely exactly the same as yours, anatomically speaking.

This is simply my story about how I ended up where I am. My definition of success is that against all the odds, I have a profession I love, a life I enjoy and have ended up in a place the younger version of myself never thought possible. The moral of the story is one of hope, not of triumph. I'm grateful enough to recognize that my professional journey is one that many young people aspire to and fight for. I'm lucky.

Back to Steve Jobs; and looking back, it all makes sense. 27 years old feels like a late start, but all that frustration, experience and dead ends build up. It builds strength. Time that feels wasted rarely is. Effort equals growth, even if not in places that you recognize or that haven’t yet manifested. It builds character and resolve. Although the release of success hadn't yet arrived, the process made it inevitable. Like every path to success, there is a process. Like every process, it requires training. Repetition. Hard work. Trust the process.

  • 1. I started work…
  • 2. I hit a wall…
  • 3. I kept moving in a new direction…
  • 4. I failed...
  • 5. I started again...

Until one day, I didn't fail anymore .


Success is going from failure to failure with no loss of enthusiasm

Winston Churchill

Connect the dots

I'd finished as a banker aged 23 before I’d barely started. I moved to Spain with no work and unable to speak Spanish. I couldn’t find interesting work. I started my own business again. I won meaningless awards. I made no money (again). Changed approach. Got nowhere. Keep moving. Trust the process.

All of a sudden, I’m 27, living in Spain and working extremely hard with not a penny to my name and living amidst the worst financial crisis in living memory with seemingly dubious prospects… 

It's a long way from where I am now.

Shutting the door to my business again, without irony, my now wife was telling/coaching me to overcome my pride and accept my life as a self-employed English teacher. The rest of my days were to be spent teaching English to Spanish children in Valencia, Spain. 15e an hour were premium rates.

So here I am, a spectacular failure, a washed up 27 year old at the end of another failed endeavor. I take stock of what I’ve learned and achieved in the last 5 years of my professional life. I stare folernly at 10 years of working hard and take stock. What if I've got nothing at all?  

I load up a computer, browse the internet and send off samples of Drupal websites to some UK agencies. Drupal websites?

Drupal 5! 

The common denominator of a failed entrepreneur through repeated failed business ventures with no money is:

  • a. They need an online presence.
  • b. They can’t pay anyone else to do it.
  • c. They aren’t afraid of hard work.
  • d. Open source is free.

How do you setup a digital business if you can't pay anyone to do it?

It's engraved in my brain, muscle memory. Trust the process. Drupal in 2011:

  • LAMP stack -> Linux, Apache, MySql, PhP
  • SSH into EC2, install PHP
  • Reboot Ubuntu, you've probably already crashed your system.
  • SSH in again, hope you've setup perms properly and aren't locked out.
  • Need a database. Install mysql.
  • Need admin permissions. Do some devops.
  • Files won't write. Chmod 777 that bad boy. Make sure you are in the right dir.
  • Don't chmod your system files, your logs will hate you and you ain't never fixing that
  • Images won't work. Find some obscure php module that needs installing.
  • Edit hosts file, map your url to the Drupal installation
  • Install Nginx
  • Cross your fingers and pray that when you click on the domain you see an error page (work first time, hah).
  • Go generate an SSL certifcate. The free type that is probably owned by Russian pirates.
  • Open logs, figure out which of the above steps had gone wrong.
  • Probably need some extra php module in some settings file…
  • It works! (I believe this was the actual mocking message you'd see after installation).
  • Install drupal in your now connected database.
  • We can actually start to use this beast…

At this point I'd spent long days and cold nights fumbling around to get the best possible version for my businesses online. Bashing a blunt instrument against a wall. Repeatedly. Honestly, I'd no idea that I'd accidentally become a programmer. A bad one. But no-one becomes good without being a beginner. No professional is born with innate skill, skill is carved through hours of hard work and dedication. Trust the process.

It’s fair to say that sophistication wasn't my superpower, but I'd shown an ability to get the thing done and I'd been introduced across the stack. From idea to working software. As I was to find, my lack of sophistication at this point was soon to become rocket fuel for my professional growth.

I'll work for free


Give me a chance, I’ll learn and do it for free

Edward - 27 years old

Three emails, three replies. Everything has a price. Free was fair value.

One of the replies was from Zoocha, a small at the time independent UK development agency. Significantly bigger by the time I left.


Thanks for getting in touch, we’ll give you a chance, and we will pay for you for your time even if we don’t go forward

Zoocha - 2011

Result. 

Before you knew it, I was on an expensed flight to the UK to meet my new teammates. I took my first vacation in 3 years a few months later (A cruise around the Mediterranean).

Things had changed rather unexpectedly. Things were going pretty well…

I learned pretty quickly that the Software Development game was an exciting and engaging world to be in. Full of intelligent people, interesting problems, it was a world that was full of life. 

I haven’t left it since and probably never will. I also realized something else.

I was really good at it…

But this is the interesting part. 

I wasn’t really good at Software Development because I was the strongest coder. I’m rarely either the best or worst in the room, and I’ve been in some pretty spicy rooms.

I was good at Software Development mainly because of one thing. I would get the job done. Come hell or high water. I'd get the job done. I’d seen the real world, and it is a harsh place to thrive. There is no problem with pixels and binary code that isn’t a pleasure to solve compared to spending your days in a “real” job. 

At this point in 2011, I’d never written a custom module (PHP functionality to extend Drupal). In fact, with hindsight I don’t mind admitting that I was scared to. At that time I would have bitten your face off and chewed your toenails before saying that… 

So how did I smash it? How could I be good at something that I’d only just started?

Having a limited coding toolset meant that I needed other tools to solve problems.

In those days; I was using the tools I had available to solve peoples software problems to deliver value. Sophisticated coding solutions were not part of my skill set at the time. But I had other skills. 

I liked talking with people, this immediately gave an advantage in being able to actually understand the problem I was trying to solve.

I’d run my own businesses. This gave me great empathy with our clients, who were mainly small businesses not unlike what I’d aspired to run myself. I knew what they wanted, because I’d wanted it myself. Digital success. 

I wasn’t afraid. I mean, I was terrified of being “found out” or that I wasn’t “good enough”, so in a way I suppose I actually was. But this felt like such a chance and an opportunity to make something of myself that I’d attack every problem with aggression. Every piece of work was an opportunity to prove myself. It was an opportunity to improve myself. 

Desperate to succeed, I took in some of the dynamics around me. I was laser focussed on value, the business, impressing. Solving problems. I'm amazed to this day how people tend towards the most interesting way to solve a problem rather than finding a simpler and superiour solution. People think inside the problem, most problems can be solved from a higher abstraction at far less cost.

By the way, this is not an irony that is lost on me. 40 year old Edward is in fact right now coding his own CMS and blog from scratch instead of using any number of battle-worn solutions. I can’t really argue in favour of this approach for any other reason than that which proves that after all this time I have indeed become a real Engineer. It is more interesting. It’s fair to say that 27 year old Ed was better in this area than 40 year old Ed.

Back to the grind, it didn’t take me long to observe some fundamental truths and problems in the world of Software Development. 


1/ There is an enormous disconnect between what people (product stakeholders internally and externally) want, and what programmers ‘think’ they should be delivering. This is basically a lack of alignment, and a root cause is that Engineers often view problems from a different world view to that of businesses.

2/ Programmers enjoy solving problems; the harder, the better. Generally speaking, solving problems is fun. Therefore, the more complex and interesting the problem the better. There is no incentive to simplify, I.e. deliver value. It is important to understand that Engineering hierarchies are not mapped to business objectives.

3/ 1 and 2 together lead directly to inefficiency. Stakeholders want fast and efficient solutions to make a great product. Programmers want to sate their intellectual curiosity and often scratch their itch for perfection and engineering excellence. There is a massive culture of competition amongst programmers, but delivering value to the business doesn’t even register as a point of discussion.

4/ Many programmers have had smooth careers. High salaries, reasonable expectations and frankly have never known what it is to fight for their working life. They are the teen prom queen from the clichéd American high school. Clients paid top dollar, to be largely met by indifference. Engineers expect to be spoiled, because they’ve never seen anything different.

I had the perfect solution to all these problems…

It was all me…

I’d speak to the clients directly to understand the ‘what’ and the ‘why’ behind their requirements. Given this ‘why’, I’d use my limited engineering toolset to propose the ‘how’. Building and maintaining an engineering solution wasn’t one of my skills at the time. I'd use a higher abstraction to solve the problem, less code, the better.

What was the result? 

The clients had a direct outlet to explain what they wanted. I’d be massively motivated to simplify their requirements. I’d often be uniquely placed to make suggestions that were better than the original proposal, all while being true to understanding the what and the why behind their requirements.

So many times what a client or stakeholder wants isn't what they think they want. A 5 minute conversation can optimize weeks or months of work. Many engineers would literally rather sink months into inventing a solution to a non-existent problem, than change their perspective and try to re-frame the problem in one that was easier to solve. Men are from Mars, Women are from Venus, and Engineers are from Neptune. 

I love Engineers, they are the most interesting, intelligent and incredible people as a whole. But there is a fear around dealing with this different mindset. This misunderstanding between "muggles" and non "muggles".

Muggles are equally culpable, they find it hard to relate to Engineers, so they resort to treating them like children with prescriptive instructions and child-like processes. There is a gap between the real world and Engineering that both sides find it hard to breach. I empathize with both technical and non-technical folk, and find the silliness and inefficiencies that arise from this lack of understanding frustrating for both parties. 

I’d gone from one-side to the other, and even while I was still beginning my journey to becoming an Engineer, I’d developed a superpower. I could cross the bridge between the real world and code. In almost every business on the planet, this is the core tenet of delivering digital value. And most large businesses these days are digital ones at heart. I respected and understood both sides of the divide, this remains a superpower to this day.

Conclusion

So dear reader, we reach the end of Chapter One. If you haven't joined the dots and connected the laces, tyingshoelaces is my interpretation of Jobs’ Connect the dots metaphor. It is about using skills and interests from disparate and unrelated paradigms, and bringing them together to wield as a professional skill. Joining the dots, tying the shoes. 

It’s about bridging product and technology, it’s about understanding engineers and the people and processes who work together to build software. 

It’s about random and completely unrelated concepts unraveling and falling together to create beautiful patterns. 

It’s my belief that Software and businesses are much more delicate ecosystems of multidimensional people than machines. That we should understand and build through the prism of creative interpretation, software is probably more art than science. That we as people are complex and multifaceted beings with limitless potential, and Software is a manifestation of that complexity. 

It’s my strong belief that those who are obsessed with rigid structures and processes in the aim of control; are those that harm and block the process of creative productivity. It it my inner rebel who thinks that these approaches cause more harm than good. It is why endless hours arguing about variable naming frustrates me, but I would happily spend months building beautiful software to non-existant problems. We are all the sum of our wonderful contradictions.

It’s my story, which hasn’t yet ended. My story of how, by focussing on the complexities of people and teams, with a dash of empathy and a dollop of understanding, we can build ecosystems that thrive. And thriving, creative, healthy ecosystems create great products, build on great software. Just don’t try to understand it with a rigid mentality, or your simplistic structure are the shackles on the potential of the people you are working with. 

So here I am, Chapter One, a shitty Engineer delivering enormous amounts of value, against all the odds. Thriving. 

The first deft flick of a hand, as we thread the laces through the shoe.

Welcome to tyingshoelaces.com