What does a typical day in the life of a software architect look like? We spoke to Fidelity Investments’ Niall Colreavy to learn more about his role.
Niall Colreavy is a software architect for the Fidelity Institutional website, a client-facing portal at Fidelity Investments featuring portfolios, trading information and thought leadership, among other things.
He works with Fidelity’s business partners and development teams to make sure that the site has “the right content at the right place and the right time” for customers.
Here, he discusses a typical day in his life as a software architect and why communication skills are crucial to his role in technology.
‘People skills are often called soft skills, but this is a misnomer; these can be some of the hardest skills to learn’
– NIALL COLREAVY
If there is such a thing, can you describe a typical day as a software architect?
A typical day for me involves meeting with business partners and development teams, hands-on coding for proof-of-concept deliverables, producing designs that will allow development teams to build next-generation solutions, code reviews, mentoring, constant learning and blogging – there’s a really broad variety!
What types of project do you work on?
I work on a vast range of projects. Right now, I am working on two major projects. The first is migrating legacy applications to a microservices architecture and moving those applications out of the data centre and onto the public cloud.
The second is onboarding a new content management system, which will enable our marketing teams to have more autonomy and control when creating new content for our digital platforms.
What skills do you use on a daily basis?
I rely heavily on my technology skills as they are really the bread and butter of what I do. Having said that, as I have moved more towards architecture and a little further away from development in recent years, I tend to rely on my communication skills more and more.
My role involves a great deal of communication, both written and face to face. It’s important that I can listen to my peers and understand their requirements or opinions, process those viewpoints and then share back my understanding and vision.
What is the hardest part of your working day?
Context switching is the hardest part of my day. I am involved in a fairly large number of projects and initiatives and I am the type of person who enjoys going deep on a particular issue. I often find it frustrating to have to park my thoughts on a particular project in order to jump into another project.
I think this is a fairly common scenario for senior folks in software delivery, though, and I suppose the goal is to try to manage your time better and avoid the context switching where possible.
Do you have any productivity tips that help you through the working day?
I am a big believer in maximising the return on any one activity. If you are investing your time in something, try to get the most you can from that investment.
For example, if I uncover a new technology or pattern whilst working on a project, I’ll make sure to blog about it and perhaps present the findings at an internal or external developer meetup group. That way, you are not only delivering for the project, you are sharing your knowledge with others and reinforcing your own learning.
I take this approach to things outside of work as well. For example, if I am going for a run, I will listen to an audiobook or a podcast on the run so that I can get the benefit of exercise and education in one shot.
When you first started, what were you most surprised to learn was important in the role?
When I moved from software engineering into software architecture in 2015, one of my mentors told me something that has always stuck with me and I am constantly reminded of how true it is. His words were: “Technology problems are easy, people problems are hard.”
I think that is always the case. The technology is out there to solve most of the business problems that we encounter. The hard part is getting buy-in from stakeholders and rallying a team to solve those problems.
These kinds of people skills are often called soft skills, but this is a misnomer; these can be some of the hardest skills to learn.
How has this role changed as this sector has grown and evolved?
I think the role of software architect has changed very radically in my career. I remember in one of my early roles in a previous organisation, we were working on a project and we were waiting for months for the architect to produce the design.
Many months later, the design emerged and it was a text file that had little bearing on reality and was of no help to the team trying to get the project done. It was a classic case of ‘ivory tower architecture’.
I think we see far less of that type of architecture nowadays. Software architects must be relevant and engaged with their business partners and development teams. The days of ‘big upfront design’ where everything is set in stone are thankfully behind us!
What do you enjoy most about the job?
I love the fact that I get to constantly learn. Benjamin Franklin once said: “An investment in knowledge pays the best interest.” I think that is very true for our industry. Technology changes so rapidly that you need to constantly invest in your knowledge base and your skillset if you want to remain relevant.
Fortunately, Fidelity makes it very easy for associates to invest in their knowledge base. We have access to training platforms, dedicated time for learning and communities of practice where knowledge can be shared.
I have always loved learning new things. I am happiest at the end of a day when I have learned something new and my mind starts to think about where I could apply that knowledge to improve our systems or processes.