Engineer to Engineer: Transitioning from Developer to Engineering Lead
Written by Stella Kim
In this edition of Engineer to Engineer, our interviewer is Stella Kim, a WWCode Toronto Network Director and an Engineering Lead at Ada Inc. She spoke with Aoife Hynes, a Software Developer and Team Lead at Intelliware Development. They discussed Aoife’s career, her transition to a leadership role, and what she is looking to do next in her professional journey.
I'm really excited about this conversation and I'm also really curious about your work. Can you tell me a bit about Intelliware and what it's been like so far to work there?
We’re a custom development software company that partners with different organizations in various industries including financial services, healthcare, and technology, so we’re basically a custom software shop.
I've been at Intelliware for four years. I started as a junior developer, and have moved into a leadership role, so I focus on technical leadership. I’m on a team with other people, and I do the same as everybody else, but I try to guide them a little bit more and help with any technical questions that they have.
Congrats on the role by the way.
Thank you. It was something I never expected. It's a small enough company, medium size, but it has a really small company feel. It’s more of a family kind of environment than a big company. I worked in a larger organization back in Ireland, and it didn’t have the same heart. Intelliware is also always organizing social events which are really fun because sometimes we don't get the opportunity to hang out with people on different teams. It's a good place.
That's great, and I can definitely relate considering I just switched from a big company recently as well. Can we talk about how that closer-knit IT group works together, and what collaboration and communication look like between and within the teams?
There are two sides to that. Obviously, it's changed a lot with everything that's going on in the world. Pre-COVID, each team would work independently on their project. Most projects wouldn’t really cross over. Sometimes in terms of technology but not in terms of business requirements.
You would work within your own power and were accountable to your own team working to achieve whatever the client needed. In the project room, everything was done as a team. We'd have our sprint rituals, and whiteboard sessions, some pair programming. It always depended on the sprint. Some people would take tasks individually, and some would work together. It always depended on the requirements of the project.
With the world as it is now things have changed a lot. It's a lot more of an online collaboration now. We use Microsoft Teams company-wide, and that has been our savior for the past couple of months. We do all of our sprint rituals the same, but it’s all via video chat, and I message them all using Microsoft Teams. We’ve also scheduled pair programming using Teams, which is an interesting experience. It's really good, and it helps, but if you have a slow internet connection that can cause confusion.
As a Lead, do you feel like you're more playing the part of trying to make sure people stay in touch and communicate as much as they have been before?
It hasn't come up so much for my team because we’re a smaller team, but especially with some of the bigger teams in the company, I’ve been trying to instill that same “project room” feeling. A lot of different teams have set up a half-hour over lunch to catch-up and not actually talk about work, but just talk about life. We’ve been calling them water cooler meetings.
It sounds like you're all doing your best to adjust. When it comes to between teams, you said that each team is very much autonomous, but have you found the need to share knowledge across teams so far?
Oh, absolutely, yeah. We all know something. Some people specialize or have more knowledge than others in different areas.
We realize that everyone’s levels are different, and they have different experiences, with so many different technologies. That’s why we feel it is important to continue with education through Centre of Excellence (CoE) groups that range across all areas from DevOps, Front End Development, Mobile, Machine Learning, and team leadership training, among others.
Intelliware actually provides paid time away from your project to focus on learning through the CoEs or other ways like courses, study groups, research weeks.
That's awesome. I think there's a lot that companies can do to improve diversity and inclusion and to make sure they're part of the culture, but is there anything you've seen that is critical and actionable so far?
As a woman and immigrant, I've never felt myself to be in a situation that wasn’t diverse and inclusive at Intelliware, even though the industry is male-dominated. It is what it is, it comes with the territory. But I’m seeing more and more women every year joining through different groups, or watching conferences on YouTube, so I feel women really are coming out and there is more of a culture of diversity. And recently we had a project where there were four women developers on the team, which was amazing. It’s the first time I’ve ever had more than just me on a team.
One highlight of working at Intelliware has been that I have gotten a mentor and a sponsor within the company. My mentor and I work together and we talk about various aspects of work from leadership to technology, and even sometimes just because I was having a bad day and needed someone to talk it out with. One of the women that I've worked with recently, she's one of our delivery directors and we're just getting on so well. She's taken me under her wing and we talk every two weeks about everything we need. The company as a whole does value equal opportunity and I've never felt that as a woman that I would be held back in any way.
Obviously, there have been a lot of stages to your career at Intelliware, and it's really great that you’re in a leadership role. Can you share one or two really impactful experiences that helped shape you as a developer?
When I first joined the team, I was very junior. I worked on a lot of legacy code previously. Doing that, you don't really get a chance to put your stamp on anything because it's just a matter of “don’t break the baby.” When I started, I did a lot of pair programming, but since it was my first time doing it, I was absolutely petrified. The first day I couldn’t even get my fingers to work on the keyboard because there was someone sitting beside me expecting something of me.
But I learned to enjoy it, and I learned how to work with that person, and we've ended up becoming really good friends. We made it fun. He would explain things and I would ask questions instead of just sitting there. It's very easy to sit there as a second person on someone's screen and switch off. You have to be engaged and work.
I think Google is a programmer's best friend. So ask a question, but then try not to spend too long on it. I try and always do that with any team where I’m a leader. If I see someone who has struggled for a while, I ask them if they need help. It might only require a minute, or two. And then when you get that aha moment everything clicks and they understand.
Just a few days ago I had a situation that I had made a mountain out of, and I didn’t know what to do. So, I called a colleague on another team and within a minute they had told me “you don’t need to do that.” Problem solved.
Yeah, I definitely think that's a great thing to do as a lead on a team.
And then I suppose when I first started as a developer, I was just trying to do my work and finish my deliverables. But as I’ve gotten more comfortable as a team lead, I’ve become a little bit like a mother hen protecting a child. You just want to make sure that they're all okay and they're getting through everything. The only downside has been that I don't get as much time to sit down with my hands actually on the keyboard.
There’s also a few more meetings and more questions, but if I can’t get my hands on the keyboard I try to carve out a little time every day or every two days so that I can sit and pair with somebody.
I’d like to talk a little bit about that switch to taking on more responsibility as well. Now that we're starting to talk about the lead role in particular, is there something that surprised you or was completely new to you?
Definitely, when I started, I tried to control it too much. I've grown up with the idea that everybody is a manager, but we’re quite flat at Intelliware and don’t micromanage.
When I first started taking on the leadership role, I tried to control everything myself, but you can't do that. It's physically impossible and it's exhausting as well. I had to learn to share the load, maybe not with the individual developers, but with the architect on my team, or with the delivery manager, or the business analyst. We cross-over in a number of places. Learning to share the workload and not trying to completely control everything was definitely one of the biggest learning curves I had.
As a developer, you really understand what your output is. It's really straightforward so you feel like your performance is easy to understand for yourself. For you to mention that, it really resonates with me as well, because how do you define your impact as a leader? It’s a little bit nebulous.
You don't want to come in like “you do this, you do that.” Everybody can take what they want to work on, and it's about trusting your team and your team members and knowing that they have the ability to do what needs to be done and that you're there to help and guide them, not to control them. Everybody that’s in software suffers sometimes. They come in and take a story and work on it until it is ready to deliver. That gets monotonous, but it’s the wheel.
When you’re a lead it’s like you're taking on a little bit of everything and getting them through it. It is harder to measure your level of deliverables. Whereas if you’re a developer and you finish two stories and go to a
sprint, and do some code clean up, you know what you accomplished. Whereas as a team leader I have no idea what I did yesterday, I just ran around the place.
How do you discuss your impact on the team when speaking to your managers? And how does that affect your career?
It’s always been in peer reviews for us. Anyone on my team can review me. We sit down every year with my manager and someone from the People team and go over the reviews. I've always liked them. I think they’ve gone well. I think once you show some initiative and use some good work ethic, there’s never really anything to worry about, and I feel like that is true for every job in the world.
It's nice having your peers review you. It’s just the teams that I worked with who are involved and provide feedback. So, if I were on two projects this year, two teams would review me. And they know me best because they see me every day, eight hours a day, in the office. I feel a lot more comfortable with them reviewing me than my delivery manager. I might see my manager once a week or once a month and they might not be at every meeting I am or know everything going on with the team. It is quite interdependent when you get going, which is nice. It gives you the freedom to grow.
What are your next steps in your career? What are some longer-term career plans?
I’m definitely staying in my current role, for now anyway. I'm not going to make a career jump just yet. With the current situation, I consider myself very fortunate that Intelliware has stayed open. So many people lost their jobs due to everything. For what’s next, architecture is interesting to me. A project I've been working on has a big architecture aspect to it. We've always had an architect on our team and I've always worked pretty closely with them because their role and my role cross over quite a bit. So that’s something I'm really interested in and what I’m moving towards at the moment.
Do you want to speak to what it's been like to learn more architectural lessons so far?
When you are a developer, you get your story and the work is somewhat straight forward, you do what you are assigned. When it comes to architecture it's a little more vague and open to different interpretations. The last few projects have been with financial institutions, so a lot of security comes into it on that side, and it's pieces of security I haven’t looked at before.
When I’m coding I can focus on the language and gaining my skills. But when you're doing architecture, you're looking at security and DevOps, it crosses so many platforms. And then even just diagrams like architectural diagrams. The first couple I worked with were diabolical. But you learn more, and luckily the architect that I’ve worked with on every project has been the same. We work well together and he is a really good teacher as well.
Is there one piece of advice you would give to people who are considering switching into leadership? Let's say, they've been a developer for a while and are about to go through the same things you did. What's the advice you would give?
Don't try and do everything yourself. Try and be a leader, but also don't forget where you came from. It may sound cheesy but, you were a developer before, and you are still a developer now. It just changes slightly. You do end up having a few more meetings, but don't be afraid to delegate to other members and try not to over-control things because it leads to burn out really quickly.
What makes you a great developer doesn't always translate to being a great leader. I think that's what we're getting at here.
Yeah, absolutely, and I know some people that have tried it and found out that it was just not a good long term fit for them. And that's completely understandable, it's not for everybody. After my first project, I was even unsure. I had to step back, and I had conversations with the people on our team, one of the managers, and my mentor. They asked me what the issue was, and I told them, “I just can’t do it, there’s too much work.” The answer I got from my mentor was “then don’t do that work, pass it off to someone else.”
It sounds like you had a kind of wake-up call when you got that answer. You just don't even see it, you're doing it sometimes, right? That's also the hallmark of a really great mentoring relationship, where someone can give you something to push you in a direction but not necessarily handhold you through a problem.
Yeah, and it’s the same as I was saying. If you are stuck on an issue trying to figure it out yourself is really good for your confidence. If you don't get the full solution you don't get it and that's fine. At least you gave it your best shot, and everybody fails. Nobody is perfect. You just have to have some confidence in yourself and push through.
———————————————–
Aoife Hynes is a leader that cares about the people she works with. Her commitment to helping everyone on her team succeed in their projects is an inspiration, and her philosophy of asking for help is one that can be taken to heart by people in any profession. Intelliware is an avid supporter of the WWCode community and is always keen to meet potential new team members. Interested applicants apply here!"