Fidelity Investments’ Shane Tully talks about the most important skills engineers need and the future tools he expects to use.
Shane Tully is a software engineer on Fidelity Investments’ UK mobile team. A graduate of Dublin City University and Fidelity’s Leap programme, Tully has spent the last two and a half years developing his mobile and web development skills.
In his role, he works on hybrid-mobile applications for the pension market. “I was delighted to be placed on this team after my time in Fidelity’s Leap graduate programme, as I have been able to continue to hone my web development skills while also delving into mobile app development,” he told SiliconRepublic.com.
“I’ve always gravitated towards web development, one of the reasons being the constant feedback loop and seeing my work live in production for our users. It is where most people begin their journey as an engineer, but it can grow in complexity very quickly, which keeps me on my toes and always learning.”
‘Being able to effectively communicate technical implementations is an important skill to have’
– SHANE TULLY
Can you describe a typical day in the job?
Each day is different than the other, but they all follow a general structure based around the meetings of the day and the size of my current task.
As an agile team we have most of our meetings in the morning time, including daily stand-up and sometimes sizing sessions. These meetings generally do not take long and are kept concise, to the credit of the business side of my team.
After that, it’s time for me to work on my given task. If it’s a big piece of complex work, I may keep my head down for the rest of the day working away.
If it’s a straight forward piece of work, I will jump between my task, giving feedback on pull requests, and other side-tasks I have on the go. It’s rare two days are the same, as something new inevitably always crops up.
What engineering skills do you use on a daily basis?
Problem-solving is a more obvious skill that is used on a daily basis, but it can’t be understated how important it really is. An extension of this is being able to reverse engineer.
Going from being a college student to a full-time engineer, the problems I faced naturally became harder. With these more complex issues, it is not as simple as copying and pasting an error message into StackOverflow.
Unless you’re lucky, you won’t find page after page of quick solutions for what you’re currently facing. Instead, you will find very few, if any, search results that are either not relevant or have no solution to offer.
This means taking initiative and delving deep into the code to get right to the source of the issue. At first, I found this tough, but with time came more familiarity with my debugging tools and a knowledge of where to look for the usual issue-causing suspects.
What are the hardest parts of engineering?
An ideal day as an engineer would involve working on your assigned task and being able to solely focus on your task at hand. This is rarely ever the case, as throughout the day there are various possible distractions that are part of the job.
From pull requests, to meetings, to jumping in to assist others with different tasks, there are many times in a day where your focus has to shift. This can be difficult particularly on a task you are deep in the weeds on.
I like to think I’ve gotten better at handling this context-shifting as time has gone on, but it is still something to be cautious of and to avoid as much as possible.
Do you have any productivity tips that help you through the day?
I have found that familiarising myself with the tools and software that I use on a daily basis has been my best method for increasing productivity. This could be something as simple as shortcuts in applications for basic actions, to automating tasks that I have to repeat regularly.
Almost all the programs we use have a significant degree of customisation possible, so I have found a great return in value taking the time to make changes in order to make myself more comfortable with my set-up.
What skills and tools are you using to communicate daily with your colleagues?
Working on a team consisting of both technical and business people requires effort to be able to communicate with both sides, both separately and together.
Given I studied enterprise computing in Dublin City University, I was offered a perspective to the business-side of software development, which I believe gave me an insight into how to communicate with people who aren’t engineers.
It’s easy to get carried away with the technical details of a task, but being able to present information concisely without the technical jargon is an important skill.
The flipside of this, which I didn’t anticipate, is being able to communicate with other engineers. When working on a task, you are given a level of insight that other engineers on the team may not have regarding that piece of work, no matter their years of experience.
Being able to effectively communicate technical implementations, whether that’s during pair programming or on a pull request, is an important skill to have. Having this skill makes collaboration and knowledge sharing a more straightforward process.
How has this role changed as the engineering sector has grown and evolved?
It was only around this time three years ago I was finishing up my final semester in college virtually due to the start of the pandemic, so my perspective of the industry changing is somewhat limited compared to others.
Regardless, I have noticed there has been significant changes particularly related to the tools engineers are going to use. I believe that a GitHub Copilot-like tool will inevitably become standard to our integrated development environments, the same way linting tools and auto formatters are.
I can also foresee something like OpenAI’s ChatGPT being the virtual colleague sitting beside us, who we can pester with technical questions all day long that we would normally Google ourselves.
Technically, these tools are now available, but their full potential is nowhere near complete. I look forward to using these tools in a professional setting.
I know there has been some fear online about how these AI tools will impact engineering positions, but for the foreseeable future I see them as just another tool in an engineer’s toolbox, albeit a big one.
What do you enjoy most about working as an engineer?
As an engineer, there is always something new to learn and problems to solve, which can sound like a downside but is one of the most enjoyable parts of the role. The work that is the hardest and takes the longest ends up being the most satisfying to complete and offers great learning opportunities.
No day is the same, and there is an endless amount to learn if you are up for the challenge. I have been fortunate to work with many talented engineers, and being able to absorb their knowledge is something that has benefited me greatly. Working with these types of people makes engineering work a lot easier.
What advice would you give to someone who wants to work in engineering?
It’s very easy to get carried away trying to chase the latest technology stack or whatever else is trending at any given time, such as the many JavaScript web frameworks. My advice would be to focus on the fundamentals, as well as transferrable engineering concepts and skills.
While my current technology stack looks nothing like it did during college or my internship days, the fundamental skills I learned during these times are still as present now as they were back then, and they continue to evolve.
It’s great to become a subject matter expert in your current stack and know it back-to-front, but at a foundational level, I believe core software engineering skills are most important and a good place to start – specialisation will come with time.
10 things you need to know direct to your inbox every weekday. Sign up for the Daily Brief, Silicon Republic’s digest of essential sci-tech news.