Recently, we sat down with Brendan Wilhelmsen, a Software Engineer at Workday, to talk about his journey into a career as a Software Engineer and what his day-to-day job looks like. Brendan shares some insights with our learners about how his learning experience at Qwasar helped prepare him for a position with Workday.
I am from the North Bay Area in California and have lived here all my life. At some point I hope to live somewhere else but for now I like the area a lot.
In terms of my background, I didn't do any tech stuff until about two years after high school. Up until then, I was fully focused on music. I have been playing trumpet since elementary school so that’s where all of my focus was and what I started going to college for. Eventually, I discontinued college and picked up a coding program and fell in love with that. I had a massive career shift and one thing led to another and brought me to where I am now.
Music is something I am very passionate about. When I switched to coding, I promised myself that I wouldn’t forget about music. It’s been such a large part of my life and I’ve put so many hours into it that I feel like I would just be disregarding more than half of my life if I stopped playing. I still enjoy being involved in the music scene as well as picking up different instruments. Recently, I started learning how to play guitar as well.
Other than that, I focus on trying to push my boundaries, get out of my comfort zone and meet new people. Sometimes it’s scary to meet new people, especially at a new company where there are so many people. It’s good to have those connections so I have been trying my best to branch out and talk to people.
It’s a hard question for me to answer since I have only been in the industry for not even half of a year. Right now I’m at a very large company, so at some point I’d like to get the experience of working for a small startup, where I’m a little more hands-on, and have a little more control over where the product is going, to see what that experience is like. As of right now, what I want is to gain more experiences so I know what I want to work for. I might want to stay at a large company and climb up the ladder there, or maybe I want to do something else. I’m just not sure yet.
I want to stay with my company for at least a few years and pick up a lot of skill sets. I think a lot of people, myself included, have this vision that it’s really cool to work for a startup because you get a lot of say in where the product is going and it’s not just a lot of endless bug fixes, you get to actually work on really cool stuff. Not that I don’t work on cool stuff, but a bit more so. But it’s just an experience I hope to have before I am locked into a position for a long time.
This is going to tie back a bit to the very first question where I mentioned that I started at college studying music and my initial goal was to take a gap year after my first year of college. I was going to audition for a different music school somewhere.
During that gap year I was recommended by a friend to a coding program called 42 which I think many people reading this may not be familiar with. Just for a little bit of context, 42 is a free coding school where you go through an intensive one month bootcamp process to in a sense audition or qualify into the process. That was down in Fremont, CA. I started the bootcamp and that was the beginning of my coding journey. I started from nothing with no coding experience, and it was a trial to see if this was something I wanted to do. There wasn't much on the line since I was on a gap year at college. My work was super kind and let me take an entire month off to go. At the end of it, I ended up really enjoying it. Clearly it was a good fit for me.
After that I was accepted into that program and started that program. 2 weeks into that program, COVID hit and they transitioned to virtual online, which didn’t work for me in the way that they implemented it. I eventually dropped that.
A friend of mine who was in the program, was successful through that program, and I stayed in touch with them, and they eventually sent me a recommendation to Qwasar. I looked into it and was like oh cool, similar curriculum as 42, but much better format online and everything. Because that was the main thing during that period of time. I was looking at other coding bootcamps and everything was crazy expensive for 4 months and the tech stack isn’t something I was interested in. And did I really want to pay $20,000 to learn a technology that I'm not necessarily super interested in. So I was really on the fence about that. So when I was recommended Qwasar, It seemed like it checked all the boxes. Price-wise, curriculum-wise, it was the best thing I had seen and especially because it was inline with the curriculum I was doing before. So I started with Qwasar, worked through projects there, and eventually found myself with a job.
When I first started at Qwasar, I accelerated through a lot of the material since it was similar to projects I worked on at 42. I understand that a lot of people start at zero when they join Qwasar, and I know what that’s like. I started at zero at 42 so when I joined Qwasar, I was able to crank out the first few projects in less than a week. I progressed right away onto some of the bigger projects. Learning the projects is one of the big, big parts of the program as well as learning the skills required to complete the projects.
Also, the structure of the entire project lifecycle, not just completing the project, turning the project in, but it’s also about reviewing other people’s projects, seeing what other people are doing better than you, and getting feedback on your own project. I love that it’s not about a passing grade and you’re not on a strict time schedule. There are no point deductions for being late or hard and fast deadlines for projects at Qwasar. You submit your project when you feel like you’ve done a good job. Someone is going to look at it and advise you where you can improve upon certain things such as formatting, organizing something differently or letting you know that your way of approaching this problem is inefficient. This method allows you to take that feedback, correct it, and resubmit the project as many times as you need to until you have something good and presentable. That whole structure is really cool and awesome.
In terms of struggles I faced, I wouldn’t even classify a rejected project as a struggle, because I think that’s just part of learning. Learning overall is a struggle. You mess things up and then you fix them and move on. One of the big struggles for me though was keeping motivation going when I was alone in my room coding all day. It can be hard to stay focused. Overcoming that involved setting aside a dedicated place to work that wasn’t my recreational computer area, kind of like a pseudo-office as much as I could make one. Also, the Qwasar daily stand-up meetings really helped me stay accountable for my work. Not because they’re pushing me to have something done by a specific due date but because I personally don’t want to attend one of those meetings and say I haven’t worked on anything.
Teaching is something I really enjoy doing. I taught music lessons and still teach music lessons, but I found that it’s not mutually exclusive to music and I enjoy teaching in general. At Qwasar, once I got far enough in the curriculum, I started holding a lot of small group meetings and sessions to help other students out that were starting out in the program or farther along and closer to where I was to provide assistance and explain topics. These sessions were to try and make complicated topics simpler to digest.
I think that is something that I realized that I enjoy doing and it’s cool that I enjoy doing it because it's really beneficial to my own learning journey. Taking a complicated topic and trying to make it simple means that you understand it well. If you understand a topic well, it means that you can explain it in a complicated way or a simple way. Having a good understanding of a topic means that you’re able to pull out the important aspects of that topic so you can present them in a simple way by just hitting the important parts or present it in a more complicated way by giving a thorough explanation. Reinforcing my knowledge and confirming that I actually do understand something that I am talking about is a big part of teaching.
I’m going to give two answers, one which is my favorite project and one which is kind of an honorary mention. My favorite project is MyTar and that’s because I learned alot about file systems and data structures. When building that one, Gaetan had challenged me to approach it in a somewhat unique way and I felt that my structure and the way I went about solving that project was really cool and really clean. I was really happy with my solution to it.
I do need to give a shoutout to Mastermind because it’s a fun project. It's fun to just build a little terminal game. But, my main reason for that is mastermind has become my project for whenever I want to learn a new coding language. It’s the project that I have done the most. All of the other projects I have written once and moved on. I have written Mastermind 4 or 5 times now in different programming languages. In mastermind, there are a lot of different interesting aspects to it and there’s a lot of different ways to organize it. Whenever I am trying to learn a new programming language and get the syntax down for a new language, my go-to is to try and write mastermind in that language. Whenever I run into a problem, I can look up how to solve that problem and go through one hurdle at a time. It gives me a goal to work towards and it’s been a very useful project for me. I have completed it multiple times.
In Spring of 2021, I attended a few NVIDIA-sponsored sessions centered around CUDA, which is NVIDIA’s multi-threading framework for their GPUs. It was a really cool session and after the session I sidetracked from Qwasar curriculum and decided to create my own project in a sense to build something using CUDA. I chose Conway's Game of Life which some may be familiar with that, some may be not. Basically, I recoded Conway's Game of Life in C and then I built another iteration of it and used CUDA in conjunction with what I had built previously to accelerate it and make it multi-threaded and more efficient. That was a pretty big accomplishment because I was able to achieve it and I created the project idea myself. I also wrote a whole blog post published article about it in which I benchmarked all the metrics for how one ran against the other.
If I were to choose one language to get really good at and code in for the rest of my life, I would choose Rust. I worked on Rust a bit at Qwasar and it’s a very cool language. Without sounding like an advertisement for Rust, it fixes a lot of issues that other languages have. At the same time, if you’re new to the language, it can be very frustrating, as there’s a very steep learning curve to it. But, once you get a handle on it, it’s very powerful and everything feels like it’s there for a reason, and I really like that about the language.
Also, I have a special place in my heart for C, because it’s what I learned through the Qwasar program and C is the reason I understand data structures and algorithms to the level that I do. C has an honorary mention, but I would say that Rust is my favorite.
Also, a little shoutout to Kotlin, which I have been using at work a bit. It’s a pretty cool language that feels very clean and simple but not like you’re missing features.
Our world and companies and everything is very very centered around, likes there’s everybody’s handling large amounts of data, different kinds of data, they’re using data for different purposes, and understanding how to best organize, to receive, store, filter that data is super important because you can’t just learn one thing and say this is how we’re going to do it, because if you take that one way of storing data for example and you store it somewhere and say okay cool it works, and then you have a different type of data for a different purpose, and you try and store it the same way somewhere else, it could be wildly inefficient in terms of space and how long it takes to retrieve a certain piece of data that you need. If you need to reorganize that data it could be horribly impossible to reorganize it. But maybe, you have some kind of data that doesn’t need to be reorganized that you want to use something else. Different data structures have different benefits and drawbacks and there’s so many different use cases for data in our current world that it’s good to understand when you would want to use different ones.
It’s a long journey, so stick with it. If I were to give any advice, first of all, when you start learning to code, there is so much stuff out there. I mean I still feel like a complete beginner when I am looking at anything new. You feel like you get really good at one thing and then you click a link in that documentation that you are reading and it takes you to something completely different and you’re back to square zero again, which isn’t an issue, it just is what it is. So, getting over that feeling of feeling overwhelmed because there’s just so much stuff. It's hard but important. And my main advice is gonna be to kinda just when you start learning one thing, hyperfocus on that one thing, understand that one thing, and try not to get distracted by going super surface level on thirty different things at once because then by the time you get back to the first thing you were looking at, you’re gonna have forgotten it anyways. Pick one thing and go pretty deep in that one thing. Oftentimes, that will lead you down other paths. Keep your focus narrowed because it is so easy to get lost in the sea of information that is out there.
I like these questions a lot, they’re cool. They’re pretty comprehensive questions.
We are thankful for Brendan's time in developing this interview and sharing his insights and journey.