The CareerExplorer Discord Community had the opportunity to speak to Ivo Marjanović, a full-stack software engineer and product lead, in a live, fireside Q&A.
Ivo Marjanović is a full-stack software engineer, currently leading the Product and Engineering teams at Sokanu in Vancouver, Canada. He spent seven years as a self-taught freelance web developer before graduating with a computer science degree and joining his first start-up.
Ivo splits his time between management and development work, primarily in Sokanu’s stack of Python (Django) and Typescript (React). Realistically, he jumps around all day helping the team solve problems and get things done.
Originally from Sarajevo, Bosnia, Ivo grew up between Vancouver, BC and Redmond, WA. He has a Bachelor’s Degree in both Political Science and Computer Science from the University of British Columbia and continues to reside in Vancouver.
The transcript below has been modified and abridged from the original conversation.
How difficult was it to learn something as intimidating as code?
I’ve been into computers from a young age, but certainly remember a time when it was very intimidating. Frankly, it’s kind of like learning a new language — the more exposure you get to it the more you start to understand and the less intimidating it becomes.
Is learning programming worth it while in high school?
If you’re asking if it’s worth learning on your own ahead of the degree, I’d say it definitely is. It really depends on what you want to do, but my degree was a lot less focused in reality than I hoped it would be, so I had to learn a lot on my own (we barely talked about web development at all, for example).
You started off as a self-taught freelance web developer. What programming languages would you recommend to those that want to self-teach?
If you’re trying to learn yourself, definitely focus on things you can actually build projects in.
What is your opinion on programming bootcamps?
I think there are good ones and bad ones, but ultimately it depends on what you put into it. I’m not sure how all employers view it, but they can definitely help you get started on the path to a solid career.
That said, I don’t think many people are getting FAANG (Facebook, Amazon, Apple, Netflix, Google) jobs from bootcamps.
Choosing the University Route
What made you decide to go to university?
Frankly, I just wanted a more solid programming foundation, and I wasn’t all that great at motivating myself to learn the more ‘science-y’ side of computer science on my own.
It was all good hacking and slashing my way through projects, but it’s also really helpful having a solid understanding of the principles that make up the foundations of good code. Going to university has definitely made me better at what I do.
Were any of the skills you learned in your political science degree transferable towards your current role?
I don’t think the skills are directly transferable between the two, but there is always value to being a more well-rounded, multifaceted person. It certainly helps with things like communicating, presenting, and creating documents, which are more and more a part of my job these days.
How challenging was it to change degree paths? Do you regret doing that, or has it been beneficial?
I don’t think it’s harder or more challenging, it just takes more time and money. I’m very happy that I went the route I did and I think it’s helped a lot in my career, giving me a leg up on others in terms of being able to write, research, and communicate.
We have a few people with multiple degrees on the team, and the skills they learned in their other degrees are clearly visible too.
Was the computer science curriculum difficult? Do you have any tips for those just starting their computer science degree?
I don’t think anyone will tell you a computer science degree is a walk in the park. There are some objectively hard courses (algorithms, networking, data structures, etc).
Ultimately, don’t beat yourself up about not being at the top of your class or not getting some concept immediately, because we all have different skills. In the end, not all aspects of the course will be directly useful to your career, but it’s just great to be in a situation where you get to focus on learning and growing. I’d just focus on that.
How much math do you need for computer science? Is it something you use daily?
It really depends on what you’re doing. If you’re doing graphics work, you’re definitely going to be using advanced math daily.
For me, it tends not to go beyond the basics on a daily basis and I have to look things up and re-learn anytime I’m faced with trig or calculus. There’s a lot of logic though, and studying and understanding that is essential.
What is your take on being self-taught vs. getting a degree when it comes to getting a job?
I’ve seen great self-taught programmers and awful programmers with a degree. We’re in an industry where there’s just so much information online that you can definitely do it on your own, but some people learn better within the structure of school.
It’s a thing where you get what you put into it, regardless of how you learn. Degrees can help in terms of getting employment, but it’s a unique industry where having a solid portfolio of projects under your belt is more important than where you received your education.
What is the best way to prepare for a job interview? Will you be expected to do some programming on the fly?
That’s a tough question. Personally, I hate brainteasers and forcing interviewees to whiteboard on the fly, but it’s definitely commonplace at a lot of companies.
There are many great resources online to practice for typical interview questions. But in general, know your stuff, don’t be scared to ask questions, try to relax, and talk through your reasoning a lot.
At least when I’m interviewing, I’m just trying to make sure you’re a decent person and capable of thinking through a problem, not necessarily solving it on your first try in a stressful setting without any external resources.
Working as a Software Engineer
Can you talk about the adjustment of transitioning from freelance work to office work?
I think the biggest difference is that you have to learn to work with other people more collaboratively. It requires different tools and skills, and you’re trading in freedom of control and your schedule, so there’s definitely a learning curve.
Ultimately it’s great because you get to actively learn from others and you can accomplish a lot more as a closely knit team than you ever could alone.
Do you prefer working as an individual contributor or managing people?
It’s a question I often struggle with. I really like looking at things from both a high level and a granular level, so I’m being pulled in both directions. For others considering the decision, that’s how I’d look at it. Right now I’m managing to straddle the two, but it’s a really hard path to maintain.
When starting a project, do you see a whole project from start to finish and visualize what the in-between stages are? Or do you have a different approach?
I tend to view where I want to get to, and then break it up into reasonable steps for how to get there.
Often that means laying down a basic minimum viable product to test hypotheses, and then building incrementally from there. It really depends on the project though, it certainly isn’t a one-size-fits-all approach.
How do you keep up with current trends and advancements?
I spend a lot of time on curated subreddits and Hacker News, so I think that helps with keeping abreast of trends. I also like to have a side project or two floating around, playing with new tech or ideas. My side projects are not big things — small bots, scripts, or websites — but just something to keep myself sharp and to try out new tools.
How stressful and time consuming is it being a software engineer? Is there time for another field of interest?
The stress level definitely ebbs and flows, and depends a lot on your company and situation. Sometimes there are big pushes with long nights to get something out, and that can be stressful. But then there are also periods of calm where I am able to focus on cleaning things up properly and set the stage for future work.
Being a bit more senior, I think there is less routine programming in my future, but it’s certainly an achievable goal for anyone who goes down the pure individual contributor route.
As to the second question about having time for another field of interest, I do manage to have most of my evenings and weekends free, so I think if there was something I was really passionate about I could manage that.
I think tech is among the better industries for things like that, as companies tend to be a bit more amenable to offering alternative schedules (e.g. part-time, four-day weeks, etc).
How do you maintain your health while constantly having to work with a monitor?
I have a bad habit of staring at my screen for long periods of time, but it’s something I’m trying to be better about. I have blue-light reduction monitors and do what I can to try to keep my eyes happy.
Taking smaller breaks throughout the day, changing your sitting/standing position, and trying to have non-screen-based hobbies are essential to maintaining your health long term.
Has COVID-19 revealed anything to you — about yourself and how you work?
Interesting question! I think I’ve learned that I, unbeknownst to myself, enjoy the 9-5 routine. As much as I would have said I enjoy working from home before, I really miss my bike commute to work and seeing people every day, so maybe it’s a lesson that we just need a mix of things in life to be happy.
I also think it’s revealed that we have a great team here, as we’re still managing to get things done and have great communication despite the distance, purely due to everyone putting in the effort to make it work.
If you could go back and do it all again, would you do anything differently?
I don’t think so. I wouldn’t be who I am without all the experiences in my past, positive or negative.
Any final thoughts for those who are considering this career?
Do it! It’s a great time to be a programmer and there’s a growing demand for them. Always try to be learning new things, and don’t be intimidated if there is an area you find tough or don’t understand.
There are so many niches to fill within the industry. You can always find a place where your unique skill set is useful.
Find weekly Live Q&As in the CareerExplorer Discord Community.