Q&A with Mike Roberts, Senior Software Engineer at pi-top

Mike Roberts is a Senior Software Engineer here at pi-top. Mike joined the team in the company’s early days, over three years ago. In honour of Programmer’s Day, celebrated on the on the 256th day of the year, we decided to sit down to have a chat with Mike about his experience working at pi-top, and what advice he would give to all new and future developers out there. 

Hi Mike, tell us more about your position at pi-top.
I started at pi-top three years ago, and I am currently the lead developer for all things pi-topOS. We work closely with the hardware team in Shenzhen, China to ensure that all of the hardware plays nicely, and also with the learning team to meet our educational objectives. We stand on the shoulders of giants to develop a great Raspberry Pi experience for people who want to get involved with project-based learning. I also work closely with key community members.

Can you describe your average day?
I typically work from 9.30am to 5.30am, as this works best for me and my team. We will usually start with a standup meeting to calibrate before we start the day. I like to keep my mornings free from meetings, as this is when I am most productive with my programming. In the afternoon, I will have any meetings that need to happen and also deal with my email. I always try and keep 15 minutes between my arrangements, to allow me to collect my thoughts and ensure that I have digested what has happened and prepared for the next meeting.

A648E067-0DA0-4EA7-AC3C-E0EB3AA4683E
Mike (right) with the team pi-top at the Bett Awards 2018

What have you learnt in these three years at pi-top?
A tonne! I had worked with Raspberry Pis at university (I built a facial recognition system which opened a door when it detected my face – to mixed results – and also a microphone-operated vehicle detection system as a proof-of-concept for a PhD smart city lighting project), but I was forced to learn a lot as the job required. The main skill that I have acquired in the last three years is becoming very good at searching online for solutions to the problems that I am having in a way that will maximise my probability of finding an answer. As developers, we all stand on the shoulders of giants, and paying forwards through the community is an important part of this.

11037049_10153316631643334_7017138881593823166_n
Mike at the first ever pi-top office

What would you say is your biggest accomplishment?
This is a hard one. I don’t see any one part of the work that I have done to date as the “biggest” accomplishment, as the context is always important. However, a notable mention goes to pi-topPULSE, which was one of the more visually exciting things I have worked on (who doesn’t love shiny RGB LEDs!). Of course, there is work that I am doing currently that I am not able to talk about which I am just as proud of, if not more so. It’s great to be able to work somewhere that allows me to continue to progress and push myself to achieve things that I didn’t know that I could do before I started.

15418586_10154777285888334_4196646669921490641_o
Mike with one of the first pi-tops

What’s the biggest challenge you face at the company?
Software programming, as with most things, is a battleground for trade-offs. Trade-offs between performance and reliability and development speed within a project, and even between entire projects, to only scratch the surface. It is a constant challenge to know what is the most pressing thing to be working on, without also spending a disproportionate amount of time worrying about it or trying to quantify exactly is the most important thing at any given time. Sometimes you just have to commit to something and see it through. It’s messy, and that can conflict with my desire to see things nicely organised, but it’s a necessary part of the process that you have to learn to live with and hopefully even find a way of enjoying a little bit.

What advice would you give to anyone that wants to become a developer?
You will feel like an imposter. We all get that feeling from time to time, that we have no idea what we’re doing, and we’re out of our depth, and everyone is only one question away from finding out how useless we actually are. Don’t let that feeling stop you from asking for help. Also, admit when you don’t know, but try anyway. It’s far better to have persistence and determination with an accurate understanding of what you are capable of than to shy away totally or agree to do something that you will only have to admit later that you can’t do.

What are the three key skills developers need?
Communication skills, patience and a growth mindset (the belief that you can improve intelligence, ability and performance).

Finally, mash potatoes or chips?
Chips – the microprocessor kind. 🤓

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s