Speaking with Senitor: Software Engineering Q&A with Hugo Firth

As one of the UK’s leading IT Recruitment Agencies, we speak to hundreds of people who are passionate about different areas of technology. Whether it’s discussing new projects with our clients or understanding more about how our candidates embrace technology in their daily lives, we are always discovering new things about this industry and we wanted to share these insights with our followers! This is why we have launched our new content series “Speaking with Senitor”, and we are kicking this off with some brilliant software engineering insights from Hugo Firth.

Looking at your LinkedIn profile we can see that you have been in Software Engineering for almost 10 years, can you tell us a little more about your background and why you chose to get involved with this area of technology?

My background with technology began very early, and I was lucky enough to go to a school that insisted every student had their own laptop (starting at 13 years old). I always liked computers, due to too many hours spent playing Age of Empires on the family computer. When I learned web development for a personal project and discovered there was actual money to be made: I had an excuse to be hooked.

Later, when it was time to choose university courses, jobs etc. the choice was obvious. Programming is like playing with the world’s largest Lego kit, and who wouldn’t want to do that?

Is it true that your first foray into your career in IT was hacking past your school firewall at the age of thirteen?

I think “hacked” is a generous term: it wasn’t particularly difficult! But yes. Honestly, I mostly followed a guide I found on the internet for something called SSH tunnelling. Obviously, I then told everyone about it because I thought it would make me cool (yes really).

When did you realise that you wanted to make a career in IT and Software Engineering?

When I was 17 picking University courses probably - I was already messing with a computer but hadn’t thought about a career in it before that.

In addition to your industry experience as an engineer you also have a number of University Qualifications under your belt including a PhD in Computer Science, how would you say your time in education shaped your current approach to the industry?

I think too many software engineers put very little stock in the soft skills. Computer science PhD’s are obviously deeply technical, but they also force you to write, present, network and teach. Building something amazing is no good if you can’t communicate effectively about *why* it is amazing and having a few amazing engineers who can’t teach won’t help you when you grow and need to hire people with less experience.

If someone was debating whether or not to embark on a post-graduate qualification following a degree such as a ‘BSc in Computer Science’ what would your advice to them be?

Students leave undergraduate degrees as generalists without a lot of experience. Masters degrees can be a fantastic way to get more specialised experience to make you stand out when competing for roles at the most desirable companies. They’re also limited in scope (1 year will fly by) and great fun.

Don’t do a PhD to get a specific job, or to be called Dr. The 3-4 years can be quite isolated and very hard work. Do consider a PhD if you love your subject, and if you left a bunch of modules in your undergrad years that only scratched the surface for you.

You joined Neo4j two years ago as a Software Engineer, can you tell us a bit more about the company and what your role is there?

Neo4j is a company which makes a database product (think Oracle but smaller and more interesting) which is very good at quickly finding patterns in your data. It is used by banks to detect fraud, data journalists to detect tax evasion, shops to recommend products etc.

My role at Neo4j is to help build and maintain the “High Availability” version of the product. This is where multiple database servers act together to serve very large numbers of queries and continue to do so even if several of the servers disappear (because one of your datacenters has a power cut, for example).

Working on any distributed system is a challenge, but what makes this one interesting to me is the focus on correctness and safety as well as performance. Banks can’t lose data.

Is there a standout moment from your career or project you have worked on that you are most proud of?

When a significant part of the research for my PhD was accepted to a prestigious academic conference – that was a very proud moment. It wasn’t my first time trying, and proper academic peer review is (rightly) a grueling process. When I finally succeeded, I felt like I had climbed a mountain.

In addition to hands on software engineering, do you get involved with other areas of tech / attend any events within the wider tech community in London?

I occasionally attend a meet up called “Papers we love” which is for software engineers to get together and discuss recent or significant research to come out of academia, and whether/how we can apply it.

As a recruitment agency we speak to a lot of budding software engineers who are looking to take their first step into the industry, is there any advice you could give to these individuals?

When you read job adverts it might seem like you have to be good at everything. True, for every role there will be some required skills. However, once you’ve “checked the boxes” enthusiasm and specialisms go a long way to impressing at interview. And don’t neglect the soft skills!

Are there any new advancements in the tech world that particularly excite you at the moment?

Human interpretable Machine learning. For all that they are heralded as the answer to every problem, “black box” machine learning algorithms are often only good at the incredibly specific things for which they were trained. Added to which they are sometimes avoided in domains where they could be useful due to ethical/regulatory reasons. How can you trust an algorithm to perform sentencing in a Court if you don’t know how it works?

Recent research suggests that we can create Machine learning models whose decision making process is clearly understandable by humans *and* that such models are better than “black box” versions when faces with situations slightly different than those which they were trained for.

What is the biggest challenge that you face in your day to day role?

It sounds boring but I would say debugging. Sometimes there are bugs which appear less than 1 in 1000 times of running a piece of code. In large and complex codebases finding those is way worse than finding a needle in a haystack. It has to be done though and can be fun if you don’t rush it.

The nature of technology means that software engineers are constantly having to adapt and expand their understanding to stay ahead of the curve, are there any new technologies you currently have your eye on?

As someone interested in data engineering and distributed systems, I’m trying to find excuses to use Kafka and Kubernetes in my own projects. Those technologies seem likely to be very important to writing scalable applications in the next few years.

As for how to keep up with the latest trends: maybe don’t. Too many people jump from framework to framework without actually building anything with any of them. Pick a project and a set of technologies then see it through. If the technologies don’t end up being valuable many of the skills will be transferrable to a technology that is. Meanwhile the lessons you learn completing an actual project will be very valuable indeed.

We have just entered a new year and a new decade so everyone seems to be looking ahead – do you have any tech predictions that you feel we will be seeing over the next year or beyond?

I don’t think the tech sector is in a bubble, but I do think we will see a slight downturn, with fewer crazy VC backed valuations and more companies choosing to avoid IPO.

I also hope we will see governments create the market environment for people to compete with Amazon and Google. Many areas are being stifled by the incredible dominance of those companies and startups are often acquired before they can truly compete. Competition is good for everyone (except perhaps FAANG shareholders).

On the subject of the New Year do you have any personal New Year’s Resolutions / Goals that you are setting for yourself?

Yes. To learn the piano. Life isn’t all about computers.

Finally – if you hadn’t entered the wonderful world of software development, what do you think you would be doing for a living?

I have no idea. I’d like to think I’d have become an author or something interesting, but I suspect I’d be working for a bank. Thank goodness I’m not.