From Zero to CTO: Adam Dunkley is in the spotlight

Adam Dunkley

Name: Adam Dunkley
Current position: Interim CTO

Bio:

Typically, I was a nerd from quite young. I got into computers as my dad was an electronics engineer, so we had computers around the house from since I can remember. I remember booting up DOS and Windows 3.1 and playing game demos, like Little Big Adventure and Cool Spot, that came on floppy disks from PC magazines. 

Getting into web development in my spare time at school gave me my first job building websites for local businesses at a design agency in Cambridge when I was 15. Luckily, Google Maps just launched their API around the same time as a Cambridge newspaper asked for a map on their website of their local business listings. They didn’t understand how I could create an interactive map in about 2 days and thought I was a genius (it was about 10 lines of largely copy and pasted code).

I naively thought that this was an easy way to make money, not realising that a) it was luck and b) technology would progress quickly. The increase in complexity meaning I couldn’t stumble across easy jobs much longer. I needed to learn! So I went off to Nottingham to study Computer Science, taking part time programming jobs along the way. As I graduated I was lucky enough to land a job at graze.com as their second technical employee, shortly after it had launched. 

Outside of work I’m a massive fan of all sorts of arts (from books, poetry, theatre, film, TV, music…). I’m a science, DIY and electronics hobbyist. I’m somewhat involved in leftie, queer and environmental politics (if I get the time!). I’m also a fair weather cyclist (so like 2 weeks of the year with British weather ?).

Tell us about your life before leadership – what kind of roles and projects did you work on?

Growing as a developer has a very coming of age movie arc to it. The feeling of invincibility, that you have a super power, in your early career gives way to humbling blows as you realise that programming is as messy as the people building and designing it. So in my first jobs when I was a teenager, when I was building sites for local companies, I definitely got myself into hot water more than I blew people away. I was tasked with building a CMS, the scope of which ballooned and I didn’t know how to push back and to give myself space and time to plan and estimate. Inevitably I failed to meet deadlines and learned some pretty tough lessons.

During university I was lucky enough to get a couple of jobs. One was working for a local e-learning company – firstly building interactive content (in Flash and Javascript) to ensure electrical engineers knew not to touch a live power line, then in building features in to the CMS that powered it. Despite being significantly younger than everyone in the company they really empowered and supported me to learn and the iterative nature of building slightly different e-learning modules over and over allowed me to hone a craft in building little web apps quickly.

By the time I arrived at graze in 2010 they had built out a first version of the product and had a steady amount of loyal customers. What I found, almost immediately, was that a small team meant there was no insulation from the business around me. Initially it was daunting gathering requirements directly from the CEO and other stakeholders, making sure to get down the details, but ultimately it sparked a real interest in the machinations of business. It helped that everyone in the business had incredible business smarts. There was also a depth of technology I hadn’t experienced before. On the surface graze just looked like a snack company, but underneath we were building our own high tech food production facility, algorithms to choose the snacks you’ll get in your box and features for e-commerce that you couldn’t find off the shelf at the time (even subscriptions were novel!).

Seeing graze grow, both in team size and in revenue was eye opening. I got to understand the different inflection points of scale, both in the tech and also of the team itself.

How did your first leadership position come about, and was it intentional on your part?

Towards the end of my time at graze I knew that I loved business, not just the technical aspects, and that I was a people person. Despite everything the role had going for it I felt the urge to progress and, after graze was acquired in 2013, I took the opportunity to join a young company called Yearbook Machine (yearbook.com). In this new role I would be able to build my own tech team to solve a different set of technical problems. I met the CEO on a London tech Slack group and knew that the company would initially just be me (as CTO), him and 1 other person (in customer service), giving me huge scope to shape the role and the team.

Yearbook Machine was essentially in 2 parts: a social network for students to collaborate on bringing together content and an engine which automated InDesign to lay out a yearbook that could be sent to be printed and bound. They had paying customers but the codebase was brittle, slow and riddled with basic security problems (query string SQL injection attacks, anyone?!). It was a typical patchwork of code put together by a series of outsourcers with no one looking at architecture and how it relates to the business’ strategy.

How did you manage the transition? What came easily / what was difficult?

To begin with, as is quite normal, I played lead architect and sole developer at the same time to overhaul the legacy system they had. My strategy was simple: Every system I replaced I would hire a developer to take it over, building the team to 5 engineers (covering the “book builder” InDesign scripts and the “social network” PHP application).

Retrospectively there were very few things from this that I would come to identify as real leadership. The things that came easily were how to find and motivate a great team, but I struggled with how to form a cohesive strategy and what the interplay with product and design should be.

What was your biggest failure in that first leadership role?

We focussed on the wrong things at the wrong time and didn’t spend enough time listening to what our customers really wanted. We spent too long on features and improvements that weren’t going to move the needle. Although the CEO was the “product owner” I didn’t yet realise that it is the CTOs job, regardless of if there is a separate product owner or not, to guide and improve that product process so that developers are not taken up the garden path (and the burn on finances that ensues).

What made you keep doing it?

I’m a firm believer that you can only learn one big thing at once and that hindsight is the best way to learn something fundamental. Each step, whether inside a company or in a new role should be based on introspection. After Yearbook Machine I joined Bloom & Wild (bloomandwild.com) as Head of Engineering and, although I certainly had other issues with how I managed things, I learned to be much closer to the product and to weigh in from a business point of view as much as a technical point of view.

Tell us a fun fact that (nearly) nobody knows about you

I can lick my nose and my elbow.

What are the three key skills you think every lead needs?

Humility – You will frequently need to hire someone smarter than you at a job that you’ve been doing for a while, to “give away your toys” and to allow someone else to shine. Taking pleasure in what others create is essential to maximising your potential as a leader.

Compassion – You have to like people, it’s that simple. I was once given advice about leadership not to make friends with the people that report in to you. I think the gist being that you lose some authority, as if authority is leadership. Command and control management may get short term results, but by actually caring about and understanding the people you work with, by being their friend, being there for them, you will have longevity as a leader. Don’t mistake this for not telling people that they’ve made a mistake (google: ruinous empathy) – being compassionate dictates that you must do the best for people that you work with, even if it’s tough.

Breadth – As you give away your toys you will invariably lose the technical depth that you once possessed as an individual contributor. While it’s always important to keep up to date with technology as it changes, it’s equally important to realise that by understanding enough about a lot of things you are the most helpful to a company that needs someone looking at the bigger picture.

What have you learned about acquiring and retaining talent?

On hiring:

Make it personal (see above: compassion). If you’re in a small lesser known company, as I have worked at through my career, you lack a lot of things that larger companies with brand recognition have. You don’t have a huge (or maybe any) talent team, people probably don’t know who you are before you reach out to them, your product might not seem all that sexy, you probably can’t pay much above the 75th percentile (sometimes even the 50th!).

As a startup it’s usually prudent to focus on the things bigger incumbents can’t do in order to muscle in to the market. They can’t react as quickly to market forces because they’re bulky and decision making is old fashioned; they may have had public failures; or they could have boxed themselves into a generalist part of the market and you can take a niche segment by tailoring your product to it. Exploit similar weaknesses in recruitment!

Take more time to find fewer more specific candidates and write them the most specific message you can. Avoid the temptation to automate your outreach, avoid the temptation to put someone in between you and the person you want to reach. It’s time consuming, but it’s impossible for a larger company hiring 10x more people to do that. There are many things about startups, and probably more about your specific startup, that could appeal. Find the thing that will get that person excited and speak directly to that motivation.

On retention:

Easier said than done is to find what motivates people and to give it to them. I find that 99% of the time there is something that sits above salary in their hierarchy of needs (so long as their requirements are met). So pay people well, but if they want to learn a new skill find a way for them to learn it. If they want to work from home more, find a way to make it work. People don’t want to feel stagnant and they want to feel that their contributions are appreciated. Make sure you have a structured way to record and acknowledge their achievements, to lay out what the path for their progression might look like and give them a space to be heard.

I’ve seen lots of excuses not to do this, normally that it’s expensive to waste time when people aren’t working on exactly what the business needs 100% of the time. However, ultimately, the most expensive thing you can be doing is raising salaries to fill a void higher up their hierarchy of needs and, more expensive still, to have to recruit someone to fill the seat of someone who quits because those needs weren’t met.

How do you motivate your team and manage their stress levels?

I motivate my team and manage their stress levels by understanding and sharing in their problems. This is not about solving things for people but by being available to help (even if just by providing them with the resources to help themselves). Of course there are structural ways to ensure that stress doesn’t get too high (ensuring the roadmap is achievable, that expectations from the business are well managed etc) but ultimately by showing that you’re there to make sure they’re successful will motivate them to dig in when they need to and to shout when they’re overwhelmed.

How do you manage your own stress levels and productivity?

Stress is a sprint, sooner or later the lactic acid is going to give you a stitch. So I give away my toys, if budget permits, by hiring smart people and passing on the things I cannot cope with. When budget doesn’t permit, I have a pleasing tendency, which has led me into hot water in the past (I’ve struggled with expectation management my whole life). I am constantly learning better ways to set and communicate achievable goals within a chaotic environment. Understanding that as a leader, as the most senior technical person in a company, it is your job to say what is achievable with the resource at hand. To not say “this is not achievable in that timeframe” is to set you and your team up to collapse before the finish line.

The only “life hack” that has boosted my productivity, counter intuitively, was to give up caffeine. Caffeine kept me awake but I was less like Popeye after a can of spinach and more like Frankenstein’s monster. I was unable to focus on a task, constantly distracted. In lieu of caffeine I try to get 8 solid hours of sleep and not to work through problems when exhausted.

How do you stay in sync with other parts of the business?

Membrane! Lots of people use the word “interface” but I prefer “membrane”. The role of a CTO is to be the membrane between technology and the rest of the business. The space between the two differs from company to company, from product to product, but it always exists. This is where breadth comes in handy, so make sure you’re talking about the business with others outside of tech and understand the mechanics that drive it. Find other stakeholders across the business and make sure to understand what they need from technology and take the time to explain what technology can and cannot achieve for them. Set up a regular session where this can happen (and possibly roll it up into a company wide stakeholders meeting), the act of finding out what people around the business need will keep you in sync.

Where do you see yourself in 5 years’ time?

My passion is business, so I hope that I would have started my own company. I don’t particularly mind if it’s even a technology company, as long as I love what I’m building and that it’s something people will find useful.

What product do you wish you’d invented?

The british plug.

Thanks very much, Adam!