I have recently joined Findmypast in Dundee as a Senior Software Engineer and I’ve been happily developing solutions in some of my favourite tech stacks (Node, C#, Docker to name a few).
With a very volatile job market in 2020 I wasn’t exactly expecting much apart from a steady job.
However I was in for a treat.
Not only did the company prepare a comprehensive onboarding experience but also the day-to-day work has shown that remote software engineering can be done right.
Here are some of impressions from joining Findmypast.
The company had set up specific day, week, month, quarter goals so that the amount of information would not be too overwhelming on the first day. This has proven very effective in getting up to speed with specific technologies, team methodologies and the overall company policies. I was lucky to have my company-wide induction on the first day getting some exposure to the business side of things and better understanding what we are actually delivering to our customers. The management was open to answering questions about the current ways of working and reporting.
In 2020 it has become apparent that the term “home office” is here to stay for a while. When joining a new company you have to know if working from home can be done effectively or not.
Thankfully, the teams at Findmypast know how to use tools such as Slack and Zoom efficiently. The company culture allows for meaningful communication between individuals and teams. Working time is well-structured and lets engineers get into their “programming zones” without much distraction. The leadership team allows for a good degree of independence among development teams. You are not left in the dark either as regular company updates let you know how the business is doing and what direction we are heading into.
Using gitflow previously when developing software solutions I was initially sceptical about trunk-based development.
However the combination of Pair Programming, continuous integration, test and deployment pipelines facilitates this methodology. The codebases adhere to clean code principles and unit testing is encouraged. You take responsibility for the piece of code you are adding or changing and you see it through all the way into production.
Given my QA Automation background I was excited to see Cypress in action for acceptance criteria browser testing. I was not disappointed. It’s a fantastic tool for rapid test development that allows your programmers to quickly verify if their core works or not.
I’ve pair-programmed before in my career but it was never the standard way of working in any other company. Most managers see this technique as wasting time when 2 programmers who could be working on separate tasks at the same time.
At Findmypast this is seen as adding value and it’s hard to deny it when after a week of reviewing code and exchanging experiences you find that the solution contributed in the repositories is of sound quality.
Not only do you end up sharing the technical knowledge, eliminating the anti-pattern of “tech silos”, but also it leaves very little time for procrastination. You can switch the “driver” roles and carry on developing effectively, regardless if you are based in the same office or remotely. Having core pair programming hours facilitates discipline and you are never left to wonder “what next to do?”
See Pair Programming at the Agile Alliance.
Final point to mention is the equipment that the company provides. With a plethora of programming languages used you sometimes need to run multiple IDEs at the same time. Some of them better supported on Microsoft-based systems, others are easier to set up in Linux environments.
The laptop came with both Windows 10 and Ubuntu Linux giving me multiple options on how I want to develop the software. Being an old-school Linux user I was glad to be back in my natural environment. With enough processing power and RAM under the hood running all the software required is a doddle!
If you would like to join the team, please head over to the Findmypast Careers Page.