University of Waterloo Grad’s Journey To Becoming A Software Engineer


Nick Cosentino is a University of Waterloo Computer Engineering grad with a passion for the industry like no other! After finding his passion for computers and electronics when he was just in elementary school, Nick knew that a career in computer engineering was for him.

From developing his own video games in high school to hatching a career as a Team Lead Software Engineer by his mid-twenties, it’s obvious that Nick is the ideal candidate to talk to about hatching a computer engineering career.

We had the opportunity to pick Nick’s brain on what a career as a computer engineer looks like and how his passion gave him the boost he needed to pursue a future in the industry.

Q: Where did you find your passion for the computer engineering industry?

A: When I was really young, I learned that I loved computers and electronics. Early in high school, I took programming classes and loved it! I’d program my own things outside of class as a hobby – so much so that I went from playing video games to making my own instead.

Q: How do you think the opportunity to be in the U of Waterloo co-op program has helped prepare you for your career?

A: Without a doubt, my co-op experience prepared me better for my career than time in class. Every one of my co-op positions played an important role in getting me to where I am.

Co-op was certainly an eye-opener for me and showed that no matter how experienced I think I am there’s always something new to learn. I think that’s definitely a key take-away point for the software industry.

Q: During your studies, you were highly involved in extra-curricular activities; why do you think this type of involvement is beneficial for students?

A: I think that it’s important to get involved in activities outside of one’s studies. There’s a lot of really interesting things going on at universities for students to participate in (clubs, charities, organizations, etc.) and it’s an amazing opportunity to network.

I feel like a lot of students forget about the networking aspect of things until it’s time to find a job, and then it’s basically too late. There’s lots to learn from others and lots of opportunities to meet up with like-minded individuals. The hardest part of networking is finding the time to do it and balancing it with school!

And just to reiterate, one key aspect of university is learning to manage time. It’s important to get involved in the things you like and it’s important to learn to balance them. If you get a full time job and you never enjoy your hobbies, you’ll burn out. If you only enjoy your hobbies, you may not do well at work.

Q: How did you transition successfully between graduating from the University of Waterloo and working full-time?

A: The transition from school to work was pretty easy, and I think co-op is responsible for that. If you performed well at a co-op job, employers were always willing to have your back – especially as a full-time employee.

Q: As a Team Lead in software engineering, what do you look forward to the most when heading to work?

A: Time to work alone. Sounds kind of funny as a team lead, but I spend most of my core hours with other people – mentoring, designing, and planning. Because my role is not just leading people, I still have software development tasks.

The only real time I have to get my software development in is before and after core hours. As a result, I often end up working extra hard so that I can get my leadership tasks done and still feel that I’m making my own contribution to the software development side of things.

Q: What has surprised you the most about working in software engineering?

A: The rate at which things move. I worked in start-ups and small companies during co-op and felt things were pretty fast paced then. When I started working in my current role that was the real shocker for me. It’s amazing to see the rate at which software is developed and the speed at which a business can grow.

Q: What do your days usually look like?

A: I try to get into the office a couple hours before the majority of my team so that I can either get some development time in or plan for any administrative things. This is my “alone time” at work, and it feels like one of the most productive times for me.

Once people start rolling in, I spend a lot of my day mentoring and designing. Specifically, I spend a lot of time with the other developers trying to reinforce best practices and teach them something I may have picked up in my experience. Similarly, I engage in design and architecture meetings with all facets of the software team to help ensure the software side of things is moving in the right direction.

I generally stay in the office pretty late to take advantage of development time. I get a chance to do code reviews, do any additional planning and get some actual coding time in. Usually the days are long, but it makes a world of difference when you really enjoy your job.

Q: How have you been able to progress so quickly in your career? Where do you think a career in this industry will lead you?

A: I’d attribute my quick progress to a couple of things – experience and soft skills. I think that university offered a great experience (including an amazing co-op program and great course work), but I think the really important experience is what you gain from outside of the classroom/workplace.

You can really elevate your skill set when your hobbies are aligned with your career. I was able to develop my software experience just by kicking back and doing the things I like to do. It really worked out nicely. Having projects on the side was definitely a key factor to gaining experience developing software.

I hope that my career will lead me to more of a high-level architecture position while still maintaining a leadership role. I love both aspects, and I don’t want to focus on only one.

Q: As a Team Lead in software engineering, what is your biggest strength you bring to the table every day?

A: I think my biggest strength is being able to listen. It sounds cheesy, but it’s really important. When someone comes to you with a problem, you can’t help them until you’ve actually listened to what they have to say. A bad leader will interrupt and tell a person what to do. I believe a good leader listens to a person’s problems and throws ideas into the conversation. I never like telling people to do something a certain way. By listening to someone’s problem, I can come up with some ideas and let that person tell me what they think.

Q: If you could give one piece of advice to those aspiring to start their career in software engineering, what would it be?

A: Program your own side projects. This is hands-down the most important thing. Your marks in school and work experience are one thing, but nothing shows passion for something like when it’s your hobby. Employers love it, and your work speaks for itself. It’s an amazing way to learn and grow your skillset!

Want to learn more about careers in engineering? Check out TalentEgg’s Engineering Career Guide!