After completing a computer science degree, Mike began working in industrial research. From there he worked with a small CMS integration company, moving to Cloudant - a start up - this year to work in many engineering areas, including mobile device development.
What’s your name?
Where do you work?
What's your job title?
How long have you been doing that?
I have been a software engineer for eight years, and joined Cloudant at the beginning of 2013.
How did you get there?
I started programming back in 1998 when I was 15. The Internet was really starting to take off around then so I was able to release my first real program to the world. A few thousand people downloaded it, many seemed to like it and found what I’d made useful: I was instantly hooked.
From there, it was obvious to study computer science, which I took at the University of Bristol. Over the summers there, I programmed at local businesses. My break was getting a summer job at Hewlett Packard Labs (HPL) - HP’s research division after the third year of my master’s. I’d waited until the last minute to apply for summer positions, so I was quite lucky that the posting from HPL arrived. That summer and the following, I worked at HPL and was offered a full-time position on leaving university.
After a few years, I decided I wanted to work in a much smaller firm. I moved to a company called Netsight, which specialised in bespoke content management system development based on an open-source platform. While there, I came to the same key insight as Henry Ford: clients often don’t realise what they need (it wasn’t ‘faster horses’, after all). Clients value programmers who take the time to understand their business needs, rather than blindly following every whimsical request.
Finally, I decided it was time to throw myself into a fast-growing start up, which brought me to Cloudant. The pace of work is quite a change from Netsight, and particularly from the multi-year research timelines of HPL. The feeling of bringing something new into the world, however, is deeply rewarding.
What's the work and day-to-day experience like?
Variable is probably the best way to put it. Since joining Cloudant, I’ve worked on a few projects, each of which have fairly disparate technical skill sets.
A major part of our work is supporting our growing customer base, with each member of the team taking their turn for a few days each month. The pace of learning on a support shift is intense - I certainly feel I’ve learned more, and more quickly, than I would have done having just been put to work on the product. Doing this gives you a great view across the product, and is an excellent way of letting you put forward priorities for work: you know the customers’ pain points intimately.
My first software development project at Cloudant was working on a critical piece of supporting infrastructure that used many of the skills I’d developed over past jobs. Being dropped in at the deep end, but with the support of a great team meant that I was able to be up and contributing within a week of arriving.
What's the best thing about the job?
Working in the open with a supportive team. The team is very focused on building rather than talking, which means that ideas can come from anywhere and are judged based on merits rather than who came up with them.
As Cloudant’s product is cutting edge, it’s also great to be able to apply some of the core computer science concepts I learnt at university.
The chance to work in an engineering-driven company brings many rewards in terms of the influence one can have on the company if one wishes to put the work in. It’s essential to building a product that fulfils future needs in addition to today’s, essential in the technology industry and a precursor to a great place to work.
And the worst?
Probably being woken at 5:30am during a support shift. But we’re working on that.
What stand-out projects have you been involved with?
My first piece of work was on an important piece of the product, which I found very rewarding. There are also good opportunities to travel: the company gets everyone together in Boston every few months, and we’re encouraged to speak at conferences where we are able to contribute to the wider community.
How would you describe life as a working engineer?
At its core, the life as a working software engineer is as varied as you want to make it. I have a deep love of programming and the act of creating useful things, so for me my working life is very satisfying. There are obviously ups and downs, as all work has pieces that are less exciting than others. As a programmer, you can often automate the duller tasks, which is particularly satisfying.
What did you expect when you started work? Was it what you expected or did anything surprise you?
I think I was most surprised at how willing people were to listen to my ideas. Whilst some of the ideas were perhaps foolish when looked at through the lens of experience, others were good, so to be able to contribute directly so soon in my career was very satisfying.
Is there any advice you’d like to pass on to those about to enter a technology workplace?
For software specifically, it’s mostly practice and don’t get stuck in a rut. The way we build software, both methods and tools, is rapidly evolving.
Contributing to open source software is a great way to practice areas you’d like to move into, as is the route I took of building small products outside my day job. Certainly, building up a good-sized toolbox of skills - and confidence in those skills -- goes a long way in allowing you to pick the job rather than the job picking you.
What do you think you'll do next?
It’s too early to tell right now. But I’m sure I’ll continue to build things.