“The role of the software developer is constantly evolving.”
As Simon O’Callaghan, a full-stack software engineer at Oath, rightly points out, you have to be prepared to keep upskilling when wading into the fast-paced world of software development.
As such, any professional working in the industry needs to be always honing their skills. What’s more, those skills need to be actually relevant to the demands of whatever enterprise they’re working with.
We chatted to O’Callaghan about how he and his team at Oath ensure they have the most industry-relevant skills so that they can not only do their job, but excel at it.
I’m a full-stack software engineer for the media brands team here at Oath. Our team has primarily worked on Aol.com and all its international variants as well as some other brands such as Engadget, TechCrunch, Autoblog and Build. More recently, our team has also started to share resources with the Yahoo homepages team.
Our primary job is to build, maintain and optimise our consumer-facing websites, but we also work on tooling for editorial teams. Our front-end servers handle more than 2,000 requests per second on average, so our team also develops middleware architectures and services so that we can operate efficiently at this scale.
A typical day will start with a slice of toast and some coffee while I go through my emails and Slack messages and check for any high-priority requests. Our team works in an agile environment and we often deploy code to production several times a day, so the format of each day usually depends on what you have on your plate and what phase it’s in.
I could be coding, carrying out code reviews, deploying code to production, testing features or collaborating with colleagues to refine requirements. We tend to do most of our meetings in the afternoon, including our daily stand-up because several of our team members are based in New York.
We work on lots of different types of projects. There is a constant stream of updates and/or new items that we get asked to build across our pages. We also build custom landing pages for topical events such as the Oscars, the World Cup 2018, Olympics or the 2016 US election.
We also work on tools for editors to control the content across our site and work on projects which can help give them insight into the popularity of the content they publish. Throughout our projects, we focus on accessibility and SEO and site performance, but occasionally we will go through a review phase to ensure we are following best practices in all these areas.
As well as that, we would work on projects as a team to improve our own processes and try and automate as much as we can to keep our processes nimble.
The ability to independently manage your time is important.
You need to be comfortable communicating with both technical and non-technical colleagues. It’s critical for managing projects across teams, getting to the bottom of issues and just managing expectations because a feature might not be technically feasible or be practical to maintain on a long-term basis.
Finally, problem-solving skills are a must, whether it be the ability to pinpoint an issue without full information or take a big-picture view and develop a solution. Taking a problem, breaking it down and finding solutions is something we do every day.
The hardest part of my working day can be scheduling meetings with other teams and product owners from across the globe. It can just be hard to sync up with some teams on occasion when there is very little overlap in time zones.
I find that when I’m coding, listening to music is a good way to cut out a lot of other distractions and just focus on the task to get it done. I like to break my day down into blocks and just take a small task at a time and get it completed.
You would think that when working as a software developer you would spend most of your time designing and developing software. In reality, the bulk of your time is spent reading code, so writing maintainable and easily readable, clean code is an extremely important part of the job. In our Dublin office, we’ve run coding boot camps, and industry experts in the area have come in to deliver talks and training on the topic.
The role of a software developer is constantly evolving. There are common job titles that exist now that weren’t as common five years ago, such as QA software engineer and DevOps engineer.
The demand for increased output, higher quality and shorter turnaround times means that all engineers need to have a good understanding of applications testing frameworks through to deployment process. It isn’t much more common for a team to take responsibility for all aspects of the application than being in one dedicated area.
In the last five years, we saw our team move from deployments that took a team of engineers about an hour or two, to a situation where one engineer can manage a deployment and it would take about 10 to 15 minutes. As a result, we deploy code two to three times a day instead of two to three times a month.
I enjoy the diversity in the range of tasks that we get to work on. It provides on-the-job learning opportunities so I can continually broaden my areas of expertise. Oath is a big advocate of open source tech and the public cloud, so the skills being developed are also industry-relevant. It’s also great being able to work as a part of a team and to collaborate to deliver on big objectives and projects.