Coding tips from a self-taught web developer digital nomad
Today's interview is with Mike, a freelance self-taught web developer. He is able to live as a digital nomad and work from wherever. That's one of the best things about learning to code! Mike has taught at bootcamps so read on for his tips on learning web development and getting a job.
Hey, so can you introduce yourself?
I’m Mike, and I’m a developer by trade. Right now, I work for myself – I do freelance work and am developing my own digital products. I also don’t have a permanent home – my four year old son, my partner and I are perpetually travelling around the world.
Right now, we’re in St. Julian’s in Malta, but we spent 2019 in various places in Southeast Asia. I am extraordinarily lucky in that I can do this – COVID has definitely changed a few things but we’re looking to continue with a few alterations.
I’m an amateur writer as well – I started out writing angsty poems in my teenage years, and now I try to write articles, blog posts, and am working on a book.
What does a typical day as a software developer look like for you?
My day depends greatly on what I’m working on, but I usually like to start with something for the body. Going for a run or a simple workout gets me ready and focused. When I’m working on my own projects, I spend a lot of my day drawing, both technical solution diagrams but also interface mockups. When I’m working for a client, I’m usually working with other developers so I check in with them, and we discuss (via chat or video call) what we’re working on.
Also, as a freelancer, I do my fair share of business development. I’m always looking for new projects to bid on, doing research on potential clients and trying to work my network for leads on new work.
How did you learn coding?
I was attending Capilano University in Vancouver, Canada for 2 years, taking general studies courses like Sociology and Political Science. I didn’t have a real direction, though I learned a lot of really interesting stuff. A friend of mine from high school had just finished a diploma at Capilano called Interactive Design.
I decided to enroll – it was focused on giving you a bit of everything from design, development, project management, UX – but my level of expertise in development was very basic when I graduated, hardly rising above Wordpress theme level of knowledge.
The program I attended doesn’t exist anymore (I graduated 2010), but it was similar to a bootcamp. Today, I would definitely do a bootcamp, but while doing that I would join an indie maker community (such as Makerlog or WIP).
Not only can you soak up valuable knowledge from people there, successful makers sometimes hire people to help them out with running their projects. It’s a great way to help finance yourself while you look for more regular work.
I really love No CS Degree actually, I wish it existed when I was starting out – it’s time we dispel the misconception that you need to have a Masters from MIT and know how to code your own B-tree sorting algorithm from scratch to do well as a developer. Fully understanding and believing that at the time would have been really helpful! If for nothing else, an ego boost in those tougher moments of feeling like a hack.
How did you get your first job or freelance work?
Initially I tried getting a job as a designer, cause I thought I’m not good enough at development. But while working at a small startup where I interacted a lot with devs, I realised all that stood between me and them was a bit of experience and knowledge. I had the basics from my bootcamp, so all I had to do was keep working on it!
My first job as a developer happened when I was working as a designer, fresh out of school. One of my professors from Interactive Design put my name forward when contacted by my future boss about potential hires.
My first interview was very informal, done in a Starbucks. I was pretty nervous, so I was being kind of shy and reserved – my future boss joked later on that, at the time, he didn’t know if I was a super introverted person or an axe murderer (I’m not an axe murderer, I swear!).
I ended up applying for this job and there were no developers to interview me, so my portfolio and the word of my professor was what they used to measure my technical competency. Actually, I should point out here that there’s quite a few roles such as this out there, and they offer their own unique learning advantages.
You won’t have a developer “senpai” to learn from while working there, but you end up learning at your own pace. Many interviews after that had some kind of technical skill test. Of the assignments I’ve had to do, the fizz-buzz one was a common occurrence.
Remember, that if you’re applying for a junior dev position, they’re likely looking for someone who can learn their tech stack and their way of things. So they want to see someone who is going to be a good learner but can still be relied on to get their work done. I always tried to show that side in those types of interviews.
Sometimes, you can tell in an interview that it’s just not going to work. I was applying for a job once at a Dutch television station, and it turned out the recruiter had not been very good at communicating so my interviewer and I had divergent expectations from the start.
So instead of leaving or faking interest, we sat there for the whole hour and had a conversation like two adults. He gave me some feedback on my CV, how I presented myself and he and I discussed the tech industry and how video streaming was changing television. Best interview ever.
Do you have tips for people who want to learn to code without doing a degree?
As a developer, your next task might involve extending your knowledge fairly often. One might be parsing a calendar invite file, or using trigonometry (that you may have thought was useless in high school maths class) to manipulate images in real time, or connecting to a beer rack to determine if it’s running low and therefore to prompt its owner to order more (these are all real things I had to do).
The key is this: never, ever get intimidated by programming. So you might be just starting out now, but in a couple months you could be building anything. Programmers are not magical beings who know how to do everything when they get their Computer Science degree – they’re people like you and me who break down a problem, figure out its parts and work from there.
Have you ever had imposter syndrome?
Oh, absolutely. My first job as a dev was with one of the biggest brands in my city: the Vancouver Canucks ice hockey team. Hockey is kind of a big deal in Canada! I started there in February, with playoffs to start in April. I was the only developer.
I remember sitting in a meeting with the whole team in charge of playoff marketing – a VP, designers, marketers, my boss... It was all I could do just to keep up with the conversation. And then, they dropped my first project on me – “the big idea” for their digital marketing campaign, a user-submitted photo mosaic.
I wasn’t just building it for work, it would launch and hundreds of thousands of people would see it. To make the deadline I worked long, long hours, sometimes during games in the building. 40000 people, sitting in the arena above my office – I could feel the noise of the crowd when a goal was scored.
All those nights, sitting there and sometimes approaching panic of how I’m going to actually deliver on this (made worse with fatigue and caffeine), thinking about why I would even accept a job like this and put myself in such a spectacular position to fail so publicly. I wasn’t even a graduate of some computer school, what was I doing there, pretending like I knew what I was doing?
Somehow, I managed to pull it all together.
During that time, I pushed through the stress, bouts of shattered confidence and that sinking feeling many times. But after my baptism by fire, I had learned a lot about myself, and one of those things was that I was good at this after all.
The other big one was people didn’t read error messages. So many of my students would get frustrated or feel lost, and not think to look in the console for the error message. Always. Read. Error. Messages. They’re there to help you. They might not always be the easiest to understand, but they give you a starting point.
What are your career goals for the future?
Right now, I’m working on a tool to take meetings to the next level – Parlay. It’s all about taking awesome notes and keeping people (including yourself) accountable on the tasks coming out of that meeting. I’m starting the beta soon, so check it out and leave your email and I’ll send you an invite link!
You can read my latest thoughts on my blog, 80 Days – I don’t post there enough, but I’m working on an awesome blog post right now that many of you might like (and many will hate ;)).
And in terms of my freelancing, I’m trying to specialise in work with a social or environmental impact. I got to work on quite a few of those kinds of projects lately and I have to say it’s really motivating to be using tech for good instead of just profit. Sort of like my 30 Wears project, which is all about Livia Firth’s #30wearschallenge – wearing your clothes more before you chuck them in the bin!