What the Tech?!

Jack Li

Jack Li

Software Engineer at Wealthsimple

Interviewer: Steven Zhang

Q. Jack, do you mind giving us a quick description about yourself and what you do?

I'm Jack, a software engineer at WealthSimple, and I work on a team called [the] Money Movements Funding team. We work on software that facilitates the transfer of money into and out of the Wealthsimple ecosystem. If you think about whenever you do a deposit or withdrawal within the Wealthsimple apps, a lot of that software is done by my team.


Q. In your opinion, what are the most important qualities for a successful software engineer?

I think there's two main things for that: individual impact and your ability to help your team and broader organization be more effective. 


I think on an individual level, being competent in the tech stack that you regularly work with–so many languages, libraries and frameworks–I think that's very key. And also, you'll find, as you go through your software engineering career, [that] both the industry and also the various teams you work on, various companies, will use different tech stacks. Being able to learn and adopt is also another key thing for the individual level. In terms of impacting your broader team and broader organization, I think the ability to teach other people and also the ability to help them be more helpful and be self-sufficient, and help them be able to develop problem-solving skills is a key because we do a lot of pair programming. And a lot of that involves teaching another engineer or teaching each other. And ultimately, if you're able to spread your knowledge effectively, and help other people develop that thinking process, the entire team will be able to ship more code faster and [at a] higher quality.


Q. Moving on, what is something you enjoy about being a software engineer?

I think one of the cool things about being a software engineer is that it's a lot easier to have a large impact in society. For example, I work on multiple apps, and that's used by millions of people. I think it's kind of a privilege, because in some other industries, you will have a significant impact, but it might not impact as many people. But in software engineering, you can have a very broad impact. 


Q. What are some examples of day to day tasks one might do as a software engineer?

There's like some more obvious ones, some less obvious ones.  one of the more obvious ones is obviously code–we're creating features, we're doing testing, we're doing bug fixes. 


We also do have a lot of collaboration. Like I mentioned, pair programming, and we work in cycles, called sprints–they usually last two to three weeks. How that works is a team decides on a set number of tasks to complete during that sprint. And at the start, we have a meeting–a collaboration session–to pick those tasks, and also assign complexities to them. The engineers take those tasks on throughout the whole sprint. And at the end of the sprint, we conclude with the sprint retro, where we review how well the sprint was, what went well, what didn't go so well, and what type of learnings we want to apply to future sprints to make the whole software cycle better and more enjoyable.


Q. Now, what is a common misconception about being a software engineer?

This is a more lighthearted one. But yeah, I think that a lot of people think all software engineers play video games. That's not true. There's probably a lot. There definitely are software engineers who can [play] games. But there's such a large variety of people and software engineers from different backgrounds who have different hobbies and interests that you can't apply one thing to all of them.


Q. Yeah, for sure. I just want to elaborate on this question just a little bit more. I would like to know how the work-life balance is, as a common misconception I have been told before is how some jobs are project-based, meaning that not all software engineer jobs will be your standard 9-5.

 I think from my personal experience, the work-life balance for me has been very good. I think for a lot of software engineers, it's common to have what's called on-call and that usually happens once every four to six weeks–[I] think it’s very common for a lot of companies. During those weeks, you're basically responsible for solving any system failures and things like that. During those times, if you get paged at an odd hour of the night, you might have to work a bit extra or [on] non-conventional time. But for us, at least, they will give us new time for that to make up for that and help us rest. I would say, from [a] personal perspective, I think for burnout, it has not really been an issue.


Q. Alright, thank you so much for answering that question. And finally, what are some of the biggest challenges of being a software engineer?

So kind of what I alluded to earlier. I think–because the whole industry moves very quickly, there's various languages, libraries, and frameworks that were very prominent inside industry a couple of years ago, but they've kind of been displaced by ones that are better–basically, the ability to learn and keep up to date with these technologies is probably one of the larger challenges over the long term. I think being able to learn effectively and quickly is one of the large hurdles.