How I went from stacking shelves to popping stacks

Colin Broderick
9 min readMay 29, 2021

Introduction

This is not an unusual story by any means, but I think there are a lot of people out there who would be interested in software development or other technical fields but see it as an unattainable goal. I’m here to tell you that it’s not unattainable.

But I’m not here to tell you that I know how to do it. I got there by a circuitous trajectory, featuring a non-negligible quantity of luck. I’m going to tell a little of my story and hopefully you can take some inspiration or insight from it.

I’m going to give you a step-by-step guide which you definitely should not follow.

1. Make bad choices

I made all the wrong choices at school, due to a variety of emotional problems. I was a good student for many years, simply because I was interested in the sciences and mathematics. But towards the end of my school time my emotional problems got the better of me and I slacked off. I was certainly one of the ones you’d expect to go off to some big university … but I didn’t. I didn’t even apply. To this day I couldn’t tell you why. But I’m sure I would have made a mess of it anyway, so in hindsight I think it’s good that I delayed it, intentionally or otherwise.

I ended up in retail and similarly-soul crushing jobs in the local small town. This was just before 2008 so getting a job was still relatively easy. I spent almost ten years in the job, which I hated.

2. Do what you love

After a few years in that job, I developed a desire to go back to study. I hadn’t thought about it for years, but a friend started talking about the Open University, and the rest is history. I started to study physics because I missed it from school. At the time I had no intention of getting a degree — it never really occurred to me — and I wasn’t studying for work. I was just doing it for leisure. And I certainly found pleasure in it. But I still had to work full time as well.

After a while I started to realise that I got more enjoyment from the mathematics itself than the physics. Obviously they go hand in hand, so I now think of myself as a mathematical physicist.

It was during this time that I first dipped my toes into the programming pool. It wasn’t very sophisticated stuff; some simple numerical problem solving in Python. Humble beginnings. I enjoyed it and started to look for other opportunities to use it, but it was only ever in the context of my studies.

Eventually a degree started to appear to be a real possibility, so I took aim at that. Part way through my degree, I quit my day job and tried to make a living tutoring mathematics. I just about managed it, but it was a stressful way to live. I lived in a small town and at the time was not able to drive. Business was unpredictable and even when it was good it was barely enough. That word of mouth magic you hope for in that kind of pursuit never materialised. Maybe I just wasn’t that good? And again, small town. Simply not a big enough customer base.

3. Do what you have to

Eventually I decided the tutoring experiment had run long enough, and took a job in a pub. That was one of the things I never ever ever wanted to do. I am not an overly social person, and I don’t want to deal with the public if I can avoid it. But I was stuck for money, with bills to pay and no real amount of support.

Surprisingly I did learn to like it. It was a small village pub so I really got to know the customers as people, rather than just customers.

After a couple of years I took over management of the pub when the owner became too ill to continue. Eventually that pub was sold and I took the opportunity to re-evaluate my life yet again.

4. Do what you love again

I decided I wanted to study. Again. This has now become a theme.

So I went to study a mathematical physics MSc at the University of Nottingham, thanks to the then-brand-new postgraduate loan in the UK. One of the best decisions I ever made, but also one of the most stressful things I’ve ever done. I had (more or less) a full head of hair before that, and now I’m my profile picture.

To be clear this is still not studying towards a job. I have never done that. I only ever studied what I was interested in. I wouldn’t have been capable of anything else. I was never going to study management or sales to move up the ranks and pay scale. I just don’t have it in me. So I studied the stuff I found exciting.

At Nottingham I met my good friend Mark. We still correspond often. He is currently teaching himself to be a programmer and is advancing at a frankly terrifying rate! The capability he has built in barely a year, compared to what I learned in 5+ is astounding. But like many of us he doesn’t see it. All he sees is all the stuff he doesn’t yet know and finds it difficult to see the value of his achievements. I used to think impostor syndrome was just for me, but now I realise everyone suffers it and I’m not special. He certainly knows a lot more right now that I did when I got my programming job, so I’m not worried for him.

Mark and I often discuss programming topics. I think he sees me as something of a mentor, which is great. It goes both ways though. I learn a lot from him and having a friend to discuss the topic with helps with inspiration for personal projects. I recommend it if you can find it.

5. Continue to struggle

After Nottingham I moved back to Wales where I still paid rent on a house with my partner of the time. I had been commuting between Wrexham and Nottingham on a weekly basis; weekends with her, weeks at study.

Again I entered the job market. As I said, I didn’t get a master’s degree in order to get a job, but still, once you have something like that under your belt you do hope that maybe it will get a little easier. It didn’t really. So again I was forced to take a job in retail. But this time I didn’t languish in misery. I was immediately and actively looking to move onto something else.

6. Accidentally get onto the first rung

I found something else in an online clothing retailer. Another weird choice maybe, but it took me away from the front line of public interface, and the web activities of the business interested me. It offered to be slightly more technical than I had previously experienced.

And it was. Much more than I expected. Within the first couple of weeks I started spotting huge opportunities for automation. The first thing I automated was the simple printing of serial number labels for the clothing. I did it all at home, because at this stage I didn’t have the confidence that I would be able to carry it through, and the owners had no reason to let me spend time on it instead of doing the job I was hired for.

This was something that was taking the owner about forty minutes every morning to do manually, which is immediately obviously crazy because it was just a sequential numbering system, starting at a given number, with a particular category code.

So in week one I saved the business forty minutes of labour out of every single day. That was the start of something big for me — my mathematics and physics obsessions now had company in actual programming with intent. The owners immediately gave me free reign to do whatever I wanted, provided my ‘real’ work got done. And get done it did, and then some.

It’s hard to count the hours but I probably saved them a thousand hours of labour cost in the first year alone, which is huge for a company of (at that time) three people. Most of this was achieved through automation of as much of the data processing as possible, which was a lot, given it was a web business adding hundreds of new items every day. I also offered my thoughts on less-technical parts of the processes, ranging from the layout of the workstations to the organisation of the warehouse and the dispatch procedure. Productivity went through the roof.

I liked this job, mostly. There was sometimes a little friction with one of the owners, but nothing intolerable. However, I had now seen that software didn’t occupy an ivory tower that could never be climbed. Any idiot (me) could do great things with the right motivation and the right support.

Speaking of Motivation: this is the one piece of advice I’m sure you’ve all heard before. I don’t believe any prospective programmer really learns how to do it without some actual project to work on. This can be something you come up with yourself, but I always struggled with that. This job really opened the flood gates and suddenly there was an endless list of projects with real, obvious value to sink my teeth into.

The business grew, helped by the processes and software I had developed. I started to think I could really be a programmer, so started applying for jobs again. I didn’t hate the one I was in, but the challenge had gone out of it so I felt it was time to move on.

Unsurprisingly, it was the usual story of rejection and despondency. Even though I was in a pretty good job, my apparent inability to do the things I wanted to do was starting to make me give up on life. Around that time my girlfriend left for reasons I never really understood. Life all round was miserable. But a friend convinced me to apply for a job I was never going to get. I mostly did it to shut her up, and prepared for the six-month wait for the rejection letter.

7. Get extraordinarily lucky

And now I’m a systems engineer. I was invited to interview, talked about what I could do and what I cared about. They mentioned machine learning and my eyes lit up. I think that enthusiasm is what really sold me to them. I knew nothing about it, and didn’t pretend to. I said I’d love the opportunity to learn all about it. They were hiring for a project with a strong research component, so knowing the answers ahead of time was not a prerequisite.

Now, on a daily basis, I might be doing any combination of the following:

  • Using my physics and mathematics background. This is the most important thing of all for me, and the occasions when I can spend all day developing some physics-inspired algorithm on paper are the best days of all.
  • Writing Python code to tease out interesting features in some data.
  • Writing C++ to run AI (of types running the gamut) and algorithms of my own design on embedded and other systems, solving interesting and novel problems.
  • Writing C and C++ driver code for sensors and other peripherals.
  • Writing JavaScript for quick and dirty visualisations.
  • Writing VBA (*groan*, but I can live with it) to assist the administration team in some task automation.
  • Using CAD software to design, and 3D printers to manufacture, enclosures for the devices I’m creating.
  • Drawing system architecture, process, and sequence diagrams (I actually enjoy this; quite soothing and the closest I get to being artistic).
  • Assisting in day-to-day IT support for the small company (not my first choice but it all adds value and increases knowledge, which is all I’m about, and the scale of the company doesn’t yet justify full time IT staff).
  • Helping my workmate with his personal robotics project.
  • Popping stacks.
  • Stacking shelves; we do have storage to deal with after all.

Fin?

Is this it? Am I where I want to be forever more? Who knows. I have no plan to switch companies as long as they continue to offer the opportunity to learn and work on novel problems. But if you’ve learned anything from my ramblings, it’s that I have no idea what the future holds. I don’t even know what I’m doing tomorrow. But finally I love what I do.

The lesson I want you to take away is … what? I don’t know. Maybe just accept that there is always going to be some element of luck in your trajectory, and don’t be too hard on yourself if you struggle to get where you want to be. Do what you love, insomuch as doing what you have to for rent allows it.

--

--