Dominic Monn gives an interview today about becoming a Machine Learning Engineer at Doist. Dominic is also an indie hacker who runs Mentor Cruise, where you can find an experienced coding mentor. It was great to chat with Dominic about how to get a machine learning job without a degree, finding a remote developer job and his tips for indie hackers.
Hey, so can you introduce yourself?
Totally! I got my start in tech around 7 years ago. I am lucky to grow up in a country where we have a lot of career opportunities outside of taking on 5-figure loans and going to college. So when I was 15 and in High School, I walked into this dev shop in a tiny tiny village with 2,000 residents and got myself an apprenticeship in Software Engineering (that’s very simplified).
That’s pretty much how it all started. I stayed there for four years, worked on all sorts of apps, websites, webapps but felt like there must be more than being a full-stack developer. I think I am not built to do one thing for the rest of myself, so I tried out all sorts of funny stuff: UX Design, Game Development, 3D Illustrations, until I ended up quite liking AI and Machine Learning.
I got lucky, to be honest, and was able to work at NVIDIA for a while as an intern in Machine Learning, which was quite cool. As a guy without a degree and just starting out in Machine Learning, that was quite a door opener. I first got interested in remote work around that time. First because I was just sick of commuting, but later because I really saw it as a substantial shift in how we could work in the future.
I have had a bunch of other gigs since then. I worked remotely at a Silicon Valley startup, did some work for O’Reilly (the programming books you all love and read), started a bunch of my own projects, some of which are still live today, many of which I have killed, and some of which I ended up selling. Since earlier this year, I work at Doist, the fully remote company behind Todoist and Twist and live in Zurich, Switzerland.
What does a typical day as a Machine Learning Engineer at Doist look like for you?
I haven’t been at Doist for long enough to get a routine, but I think it’s not too different from what you’d expect. At Doist I work on all sorts of Machine Learning products. I am a team of one currently, but Machine Learning is ingrained in Doist’s DNA and definitely nothing new. It’s a fun and challenging position, where I can deep dive into the product, see what issues there are and how we can make life easier for our users, and then see whether a data-led approach can help with that.
The experience at Doist so far has been really great. I think it’s no coincidence that Doist has such a great reputation. I feel like I’m not just blindly hacking away on a product, but helping to build a company. I had a warm welcome, and enjoy being part of that team.
The nice thing about Doist is that it’s not only a company that is remote-first, but async-first as well. That means that work can be done when you feel productive, which has been a huge relief and sense of freedom. Sitting at a desk when you are unproductive or tired is the worst feeling ever.
How did you learn to code?
I actually didn’t pick up a ton of coding before my apprenticeship. Sure, I could write a bit of HTML and CSS and get a super ugly 2000-esque website together, but not much more than that. So I quite literally walked into this company on my first day without really knowing to program a lot.
I also took courses and went to school one day per week besides that. In school, I learned C++ and Java in quite a clinical environment. At my work, I was building apps with Objective-C and backends with Python for real-life customers. It was interesting. Until today, I enjoy learning by doing / with projects a lot more.
Midway through I started focusing more on Python and Django, and got quite good at it. It’s my language (and also web framework, for that matter) of choice today.
Ace technical interviews with Algo Expert- "NOCS" gets you 15% off.
I believe you got your first internship by tweeting the boss. Can you tell us about that?
Yeah, funny story. So I was determined to get into Machine Learning somehow. Took courses, took nanodegrees on Udacity, studied all night, but I wasn’t really hireable. So what will I do? I could have taken a Django dev job locally. With a few years under my belt, I was actually getting quite good at it, built a bunch of packages, talked to one of the leading agencies for it and built some nice connections. Or, I could take a leap, jump in the cold water, and see whether someone would hire me for Machine Learning.
So one day, I browse Twitter and see this tweet from Bryan Catanzaro. Bryan was a lecturer for one of the Udacity courses that I did, so I decided to reach out and ask whether he could see if anything was possible at the Zurich office near me. Now, Bryan isn’t just anybody at NVIDIA, Bryan is a Vice President of Applied AI/Deep Learning Research, quite literally one of the highest positions in this megacorporation.
So, he got in touch, it took a few weeks and I got an email back from a hiring manager. We met, they were impressed with my background, wanted to give it a try, and the rest is history. I worked on some of the most exciting tech around Gaming AI and Reinforcement Learning while I was there, so that was really fun.
Find a new way to find the best coding bootcamps
I really like your MentorCruise project. Can you tell us what went into building that and being an indie hacker?
Would love to. I was into building my own stuff for quite a while. A lot of them died at the idea stage, some of them turned into open-source things, one other thing I put on Kickstarter and got funded with $1,500.
When I was doing all these self-taught courses, I really enjoyed having a mentor for some of them. Getting to connect with a pro over these platforms felt like magic: There is really somebody else on the other end of the line! I don’t know exactly how and why I ended up landing on this specific idea, but I decided to build a formal marketplace for mentorship, a place where you can just go and experience this exact feeling yourself, so I built it in 2018.
I am always cautious to say this, but I think that succeeded. Today, you can choose between 300 mentors on MentorCruise. You can get coding help from folks at Google, work with award-winning designers, get mentored by successful entrepreneurs and YC alumni. It’s quite a special place, and only getting started.
The ins-and-outs on how I started and got it where it is now is probably a blog post in itself, but I explained it a little bit on the IndieHackers podcast, when I went on it. This project has taught me a lot since I started, and I am happy to see that it’s going somewhere. We have people who have done whole 360 degree career changes with a mentor, or who have successfully launched a business. That’s great to see.
What advice do you have for someone who wants to get a machine learning job without a degree?
Well, I think you are at the right place. Nowadays, I really don’t think a CS degree is a must-have anymore in the tech industry. Sure, the big players like Google and Apple like to look at it, if you are young and inexperienced, but startups and small companies are hiring talent, not degrees, and increasingly do so remotely!
What you need to have is grit and determination. Especially when you are the underdog and don’t have a degree, you can never become too comfortable with your situation. That counts for people with a degree as well, of course. If you know where you want to go, and work towards that every day, you can get everywhere, degree or not.
Once you have your foot in the door, nobody really cares. If you worked on some cool stuff and people like you, your chances are just as good as if you got that degree.
What’s the most fun thing about programming for you?
To be honest, I always saw programming as a means to an end. I don’t necessarily like to nerd out over the newest tech, go deep into that cool framework or analyze architectures. I love programming, because it allows me to automate stuff, it allows me to build products, it makes me money and I can do Machine Learning with it. I use programming to create stuff, and that’s a lot of fun.
I am happy that I am proficient in Python and a set of languages and frameworks which allow me to do that. Honestly, whenever I try and pick up something better (I got my hands dirty on React and Vue a while ago) I just get frustrated. If you are super proficient with something, you know how to build what you want to build before you even wrote the first line of code and can do so super fast. If you ask me to build you a fully fledged SaaS platform in Django, I’m finished in a weekend. That’s so powerful. Unless you really love trying out new tech, stick to a stack and perfect it, I think that compounds.
What are your ambitions for the future?
I think it’s no secret that I want to run my own business one day in the not-too-far future. I think that was a dream of mine for the longest time, although I really just pinpointed the ‘why’ in the last year or so.
I really like freedom. I think that’s the reason why I love remote work so much. I think waking up at 6am every morning, sitting on the train during rush hour, typing away at an open-office desk and then getting back home by 7pm is the ultimate absence of personal freedom. Except for a few hours per day and maybe the weekend, none of your life choices are really up to you.
I work at a place where my personal freedom is valued and respected, and that leaves me with a lot of room to breathe, which is just amazing. The next part is financial freedom. I want to work somewhere because I love working there, not because I would be short on rent if I didn’t. Having your own business back you up and cover living expenses gives you back another piece of control. I like to think about that.
Building a business is also just a ton of fun. I think in this niche that we both operate in, there are a lot of clever and like-minded people. Getting to help others is fun, seeing revenue going up is great and putting your work out in the public is really empowering. I love it.