- Listen on Apple Podcasts
- Listen on Google Podcasts
- Listen on Spotify
- Listen on Pocket Casts
- Listen on Castro
- Listen on Breaker
🎙 About the episode
Meet Rían Errity 🇮🇪! He's a Scrimba student who started learning to code as a child. Today, he studies Computer Science and Language, a study program that marries his interest in linguistics with his passion for computing. He has also recently completed an internship with Microsoft!
In this interview, Rían talks about his love for computers, growing up with Linux, how he ended up choosing his study program (hint: there was YouTube involved), and whether he actually needs a CS degree. Alex and Rían discuss what self-taught developers might be missing out on compared to developers who are learning to code at a university and what universities could learn from bootcamps and online platforms like Scrimba. You'll also hear all about Rían's internship at Microsoft and learn about his journey from Dublin, where he was competing with 16.000 candidates, to former Skype offices in Tallinn, Estonia!
This episode is jam-packed with actionable advice, but it also brings you an exciting story brimming with enthusiasm!
🔗 Connect with Rían
- How Rían became a programmer: it started with growing up with Linux (02:00)
- What is CoderDojo (02:45)
- Why programming appealed to Rían as a child (04:01)
- On Lubuntu and Minecraft (05:42)
- How Rían chose his study program (by watching Tom Scott) (06:26)
- Computer Science and Language (08:37)
- Do universities give you more in-depth knowledge? (12:34)
- Teaching children how to code as another way of learning (14:17)
- Ad break: If you like the show - share it! And mention Alex on Twitter. Next week, it's Madison Kanna! We already interviewed her older sister (and the link for that episode is below, under Resources).
- What are self-taught developers missing out on compared to the ones coming out of a university? Do self-taught developers have a hidden advantage? (16:58)
- How do you test programming at a university? (20:11)
- Has math been important to Rían as a developer? (21:54)
- How Rían got an internship at Microsoft (23:42)
- Are Microsoft internships attainable to self-taught developers? (26:38)
- How Rían had to compete with 16.000 people and eventually ended up at the old Skype headquarters in Estonia (28:58)
- Does Microsoft care about technical skills or culture fit? (32:48)
- Rían's interview process for a Microsoft internship (35:24)
- What is the difference between coding and programming? (37:37)
- How Rían thought the offer from Microsoft was a spam email (38:40)
- More on Microsoft's interviews (39:49)
- What does being an intern at Microsoft look like? (41:17)
- Rían's advice to anybody who's just starting to learn how to code (45:18)
- Easy apply! (46:40)
🧰 Resources Mentioned
- Tom Scott and Computerphile on YouTube
- Scrimba Podcast: Becoming a Standout Developer with Randall Kanna
- Scrimba's Discord community
⭐️ Leave a Review
If you enjoyed this episode, please leave a 5-star review here and tell us who you want to see on the next podcast.
You can also Tweet Alex from Scrimba at @bookercodes and tell them what lessons you learned from the episode so they can thank you personally for tuning in 🙏
Rían Errity (00:00):
I used to write mods for games like Minecraft. That was just like, "Oh, here I can see real world impacts of my code." Because when you're eight years old, you don't care about a REST API or a code application. You want to see, "Oh, here's a new item in my favorite video game."
Alex Booker (00:13):
Hello and welcome to the Scrimba Podcast. On this weekly show, I speak of successful developers about their advice on how to learn a code and get your first junior developer job. My name is Alex, and today I'm joined by Rian Errity, who just completed an internship at Microsoft. Was he offered a job at the end of the internship? I'm going to ask that you stay tuned to hear how Rian got on. One thing that's very unique about Rian is that he got into coding from an early age because his dad taught him the basics and made it playful instead of a chore. It seemed natural then that Rian could make a career out of it and went on to study computing at university, and this is where he unlocked the opportunity to intern at Microsoft.
But it wasn't like a sure thing by any means. In fact, you won't believe this, 16,000 people applied to the same internship position and yet Rian somehow managed to stand out and crack the interview. Of course, this is the Scrimba Podcast and we'll be going in depth as to what the interview questions were and what the internship looked like. It's also quite unique that we get to learn from someone who taught themself coding essentially before going to university, but then also developed their skills further at school. This way we can compare the experiences being self taught, going to uni, and maybe we can identify some gaps as self-taught developers that we can fill to be even better devs and more attractive junior developer candidates.
This podcast is all about bringing things back to practical advice, but this is also an epic story about how Rian stood out in such a massive list of applicants and then found himself in Estonia working at the old Skype offices. You are listening to the Scrimba Podcast. Let's get into it.
Rían Errity (02:00):
Essentially, my dad is a programmer, so it kind of fell into the family trade.
Alex Booker (02:05):
Rían Errity (02:06):
My dad works as a software engineering manager, although when I was much younger he was just a developer. And yeah, from a young age I had my hands on a computer. My first computer ran Lubuntu on a whole 256 megabytes of Ram on a really bad, I think it was a Toshiba laptop. And because it ran Linux, I had to do everything myself. If I wanted to install a game, one, I'd have to find a game that supported Linux, which was very difficult in 2010. And then I'd have to get my hands dirty with the command line sudo apt-get, and this was at the age of eight or nine. My dad then founded our local community CoderDojo. I'm not sure if you're familiar with CoderDojo Movement.
Alex Booker (02:44):
No, I'm not actually.
Rían Errity (02:45):
So the CoderDojo Movement started in Ireland, but it's now global. It's essentially part-time volunteer led coding classes. You're basically in a room with a whole bunch of like-minded kids where there's adults going around, volunteers who help you and guide you into learning how to code. And I attended this almost every Saturday for the [inaudible 00:03:05] four or five, maybe even six years, every Saturday. There weren't really camps. It was just kind of like you showed up, you worked on what you wanted to work on. If you wanted help, there would be people there to help, and usually it was just parents of the kids. So it was entirely volunteer run, it was free and it was hosted in the local Packard Development Center, which was near the town where I grew up.
Alex Booker (03:24):
And Coder Dojo is still going strong. People listening could maybe check it out and find a chapter in their city.
Rían Errity (03:29):
Yeah, it's aimed at kids age seven to 17 and there is a lot of opportunities, If you have younger brothers and sisters, your own children, nieces and nephews, it's a really good way to get their creativity mixed in because a lot of what they do nowadays is a whole mixer. They do the classic scratch from the MIT. They'll do a bit of HTML TSS, but now the CoderDojo Foundation, they've set up entire curriculums, which the local chapters can use on things like microbits, which I think is a programmable computer that's much more simple than a raspberry pie.
Alex Booker (04:01):
This is awesome, man. I don't think I've ever met someone who had coding ingrained in them from such a young age and like took to it, right? Because I think a lot of parents want their kids to do stuff or they hope they'll share their passions. It doesn't always pan out that way. Was there any way that coding was introduced to you by your dad that made you of gravitate towards it, do you think? What were the things about programming that appealed to you and just kind of kept you going up until this point many years later?
Rían Errity (04:31):
I think it would have to be just the general problem-solving aspect. There are people who like to code in the same way that there are people who like to solve a crossword puzzle or Sudoku. Fundamentally it's very similar. You're taking a stride down a particular path to solve a particular problem, and when you solve it, you get dopamine. Of course, the problems I was dealing with when I was that young were very simple. There was a lot of educational games as well which I was able to play with that were open source. There's one which is called GCompris, which eight year old me absolutely loved, where there's like a little electricity simulator. You could go around drag batteries, set up switches and simple gates.
Alex Booker (05:07):
That's so cool.
Rían Errity (05:07):
There was a pretty big software community to teach kids back then of just how to code. And a lot of that is, yeah, it's just kind of inspiring creativity. A lot of it was games as well. I used to write mods for games like Minecraft and that also was just like, "Oh, here I can see real world impacts my code." Because when you're eight years old, you don't care about a REST API or a code application. You want to see, "Oh, here's a new item In my favorite video game."
Alex Booker (05:31):
I think that was spot on. If you were using Lubuntu is like light Ubuntu, right? So you're kind of showing the power of the computer there running a lightweight operating system.
Rían Errity (05:40):
Yeah, it's Ubuntu for potatoes.
Alex Booker (05:42):
And then obviously having to use a package manager like APT to install and run games. A lot of kids they want to play games and their parents in my case were like, "Alex, you can play games when you do your chores." Your dad was like, "Hey, Rian, you can play games once you've installed it yourself."
Rían Errity (05:57):
Yeah, that's pretty much it. When I originally found Minecraft in the YouTube age, like peak YouTube back in 2011, 2012, I was like, "Oh, I really want to play Minecraft." Didn't own the game. So what did I do? I found a really interesting, I'm not going to say bad, interesting open source version that ran on Linux called, I think it was Mind Test, and it was not very good 10 years ago. And I was playing that for years until I managed to actually get money and buy the game and because it ran in Java, ran in Linux just fine.
Alex Booker (06:26):
But here's the thing, Rian, coding for you was playful and it was a passion. Many kids for example, they might do odds or drawing or something, but that doesn't necessarily mean they want to make it a career because sometimes commercializing your passion can hinder it, right? You lose your love for it a little bit. Anyway, the time came for you to study at university and you decided to pursue computer programming in parts. Was the decision to study computer science obvious to you from the beginning, or were you may be in two minds as to what to study?
Rían Errity (06:57):
Yeah, I definitely was in two minds. I also live next to a flight school, so there was a period when I was 15 or 16 where I was like, "Oh, I'm going to be a pilot, and I'm going to use all that free time that pilots get to keep programming as a side hustle, I guess." Then the time came and then I looked at the 100,000 euro bill it is to actually train as a pilot, and I was like, "Yeah, maybe not for me." I mean I had already more or less decided on my particular college course by then. I had it pinned down from the age of I think 16 or 17. When I was working on my Irish equivalent of the GCSEs, I was trying to pick my leaving cert subjects, my A levels, and I was like, "Oh, what am I actually going to end up doing?"
So I looked for every potential college course in the country and I was like, "Oh, here's one that is hyper specific to stuff I'm interested in, which is learning languages and also computer science." And I was like, "Well, I feel like I'm going to be bored in my first year of computer science degree anyway, let's mix it up. Let's do something which I haven't really done, but I had a minor interest in." There's a relatively famous YouTuber who is a linguist that I followed, so I had a vague understanding of what linguistics was. Tom Scott, if you're familiar.
Tom Scott (excerpt from a YT video) (08:04):
English spelling is a mess. O-U-G-H becomes different sounds in enough, cough, plough, hiccup, although, thought, and thoroughly.
Rían Errity (08:12):
Yeah, he makes all kinds of videos. Computer file contributes to that channel as well, I think.
Tom Scott (excerpt from a YT video) (08:16):
I call it sequel injection, the acronym is SQL. It's a way to attack websites that really shouldn't work anymore
Rían Errity (08:23):
Yeah. And I think he's a very similar person in that he has the computers and the linguistics, which I found really interesting kind of how they mix. His undergraduate degree was in linguistics. He has no background in computer science. It was purely hobby for him.
Alex Booker (08:37):
I just want to quickly point out for international listeners that in the UK we have GCSEs and A-Levels. GCSEs happen when you're 16, and then you do your A-levels at 17, 18, just a few years later. Just wanted to introduce that context and tie it to an age. So what is the subject of your bachelor degree?
Rían Errity (08:56):
So in Ireland, courses work a little bit differently than elsewhere where you kind of go into a program and then that's your program for four years, so you have to make the choice at 17. You can't really switch modules or majors very much. You can in some specific programs and I found one called Computer Science and Language, which is not a very popular course. It had relatively low entry requirements, or at least it did when I entered. It actually managed to become harder to get into than law. But now when I did it, it was very easy to get into. And yeah, it was called at my time Computer science and Language, which is supposed to be the marriage between computer science and then language science, as well as the study of a particular language, in my case French, which is the one I did for my terminal exams in Ireland.
As a first year for example, you're mostly doing the same core modules or classes as any other computer science student where you'll be doing linear algebra, calculus, introduction to programming in general. The second year you do things like data structures and algorithms, but then as you get further into the degree they get more specific. So you're doing things like computation morphology, which is a course which most computer science students won't even have heard of. But it's the use of leveraging computers to build a model of a language's grammar. This is the kind of thing that we start to get quite heavily into. So we are able to build a morphological model of a language of our choosing for that assignment, which was quite cool.
So create finite state automata which can recognize various verbal infections. Of course to any reasonable person who hasn't studied computer science and linguistics, that's going to sound nuts but it has a lot of uses in things like predictive text, grammar checking. It's all relevant when you're doing rule-based approaches. Not so much now when everything is just thrown into a black box and see what comes out with machine learning. But before, it was very relevant.
Alex Booker (10:46):
Thinking a little bit of companies and apps like Grammarly, do you think they rely on that kind of study to make their apps work? It's interesting what you said about machine learning because in machine learning you train a model and after enough sorts of data is being collected, it just kind of figures it out, whereas before it sounds like you had to approach it from first principles and really break it down in order to then produce a useful output.
Rían Errity (11:08):
Exactly. It was something the research group came across as well, because everything they did was real-based. It was what they had built however many years of research on, and then one day were like, "Oh, well actually Microsoft has built this fast speech model, let's just throw all of our training data at that and see what comes out." And it turned out, yeah, it can be significantly better. So while the tools that I'm useful will be applicable to applications like Grammarly and other language related fields like, I don't know, Duolingo or Babbel, it is probably a dying breed in terms of people learning language science and things like that in general because yeah, it's a very specialist program. There's only 20 of us every year that come out of this program, although that's not necessarily accurate either because it has a very high drop-out rate of 50%,
Alex Booker (11:54):
But this is the nature of computing and programming. Things do just evolve and technologies that used to be useful or used to be popular get replaced in some ways. So I think it's kind of unfortunate that you run into that early on in your studies, but this actually leads me to a question around studying at university. Obviously you'd been learning and dealing and dabbling with code and programs for a long time, but then the really exciting stuff happens in the second and third years, where you get to go deeper into these more research based topics. And in that case, using data structures and algorithms and relying on text that you've read from previous white papers and things like that, it all becomes very useful in your studies.
This is in contrast, I think, to a lot of self-taught web developers or developers that go through boot camps because the objective with a coding boot camp or even something like the Scrimba front end developer career path is very focused on turning you into a hireable web developer. And from my point of view, that involves assembling components, interfacing with APIs. In programming, you're always building on the shoulders of giants, right? But I would say that when you are kind of entering the industry as a self-taught web developer, you're sitting on the head of the giant. You're really predicating your work on lots of deeper research. What I'm getting at is that university, sometimes you do go deeper into these lower level things and I just wonder, based on your experience, how you compare and think about that.
Rían Errity (13:21):
It's an interesting discussion because we're split between so many different subjects. We actually do only take a more superficial level at each of our particular areas of study. So for example, my computer science courses in general, I would do my computer science or my algorithms and data structures course and I wouldn't necessarily go further. I don't do anything on computer hardware like Verilog or anything like that the pure computer science students in my university would do. I don't do anything like computer networks, functional programming.
So a lot of my studies would be just getting me a basis in computer science so I can then apply it to my other fields of study. Of course with the option of moving in to working as a software engineer should I graduate, which is mostly of what the graduates micro program end up doing. But because I had a relatively easy first year, I was able to take time to reflect, to build things, to learn a lot more about, I don't know, deployment.
So I've always had a VPs which I can play around with on the internet install software or whatever, especially now that I've kind of moved to Windows as my daily driver OS. And yeah, I was able to take up a job during the pandemic of teaching kids how to code online with an Irish educational tech company, which was pretty rewarding and it also really helped me reinforce a lot of my fundamental knowledge, things like how could you implement gravity in a video game? A lot of the classes there were still processing, so through Java program language I'm very familiar with, and being able to look through that and having to explain all of those principles to children really reinforced my own understanding of those topics. And if I didn't understand and a child asked me a question, I would have to essentially go after class and read up about it so that I wasn't speaking from nothing from the next week.
Alex Booker (15:05):
I totally resonate with what you're saying. Sometimes the best way to learn something is to teach it. Or as the saying goes, when you teach something, you learn it twice.
You are listening to the Scrimba podcast and I will be right back with Rian in just a minute. But first Jan, the producer and I have a quick favor to ask of you, please.
Jan Arsenovic (15:24):
Madison Kanna (16:04):
I was in college and I felt like I wasn't really learning any real world skills to be honest. I was also paying a lot of money for school, so I was just thinking, is this the best use of my time? So I ended up pausing college and trying to figure out what is a great skill that I could learn that would be valuable in the economy today? My older sister, Randall, she actually had gone through a coding bootcamp and she was working as a software engineer in San Francisco. I went to visit her at the tech startup that she was working at and I thought coding seemed really incredible, really valuable skill, and so it all kind of went from there.
Alex Booker (16:37):
In case you were wondering, her older sister was already on our podcast. The episode titled Becoming a Standout Developer with Randall Kanna was originally published in November of 2021, and I'm linking it in the show notes. Stay tuned for Madison next Tuesday. And now we're back to the interview with Rian.
I do like to ask specific questions, they're a lot easier to answer. But since you are such a unique guest in that you partly self-taught growing up, but also went to university, I did also want to dig in a little bit to see how you think teaching yourself compares to university. And is there anything that a self-taught developer should know? Sometimes I wonder what are we missing out on that we should know about so we can become more well-rounded successful developers,
Rían Errity (17:25):
University and self-taught are quite different and you can see that in industry. The mindset of people who go to university and the people who teach themselves are quite different, and I don't think there's necessarily the superior option, which is nice because in this industry we are able to become and go into fields where we're entirely self taught. What I find with university students is not necessarily everyone at university, they're not here because they love computer science, they love programming. They're like, "Mom's making me do a degree, and I have to choose something. Oh, I liked video games as a kid, let's do computer science and I'm going to make video games when I graduate." Realistically, that's not what happens. It's an industry that is highly competitive and a lot of people kind of get themselves into the thought that they're going to be doing things like that, and then the data structures and algorithms hit them and they're like, "Oh, no, wait. This is in a way just kind of applied maths."
And at least in my degree or in my university, we have our core maths modules every year, and we do everything from a more theoretical standpoint. It has changed in recent years to be more practical, they have a new software engineering project system where they're partnering with local tech companies and having the tech companies suggest projects which teams of students would have to work on in collaboration with these companies, usually on the promise of internships and the like or graduate roles. And also it's a module that you attack from both sides. As a second year, you do it as the software engineer where you're doing the grunt of the work. Then the third year is on your team. They're supposed to be managing you and guiding you and teaching you, so you're actually doing both and you do that module twice in your second and your third year.
Alex Booker (19:02):
What's that about? Is it highlighting the importance of the communication and collaboration skills when you're in your third year, not all of being a developer is hands on your keyboard. A lot of it has to do with collaborating with other developers, pair programming and so forth.
Rían Errity (19:17):
I can't speak from first experience because I haven't actually done it myself because like I said, I only do like the core computer science. However, from speaking with my peers, a lot of it is you have to have weekly stand-ups with your team. You have to be held accountable for the progress you're making, and more importantly, you actually have to apply the things you're learning in your introduction to programming course. Because when you're in a university class, you're sitting in a lecture theater, you're surrounded by 180 other students who are there for the same reason you are, to get a pass in that class.
You're listening to someone ramble from the top and you're not necessarily listening to the fullest extent. Whereas when you're self taught, you are usually hands on the keyboard more. You're building things you're trying to prove to the world that you know what you know. Whereas in university, you're kind of just given the piece of paper to say, "Hey, you sat in this class." Didn't necessarily listen, but he was definitely present for the exam.
Alex Booker (20:07):
There's testing, right, to prove that you at least understood?
Rían Errity (20:09):
Alex Booker (20:09):
Okay. All right.
Rían Errity (20:11):
It would be a much more popular university without it. University in terms of testing is quite interesting. I think during the pandemic universities realized that they can't rely on terminal exams. My university is over 400 years old. They were very set in their ways and everything was in-person, on paper exams. I would go into an exam hall and I would write my Java code on paper or I would write my ARM assembly on paper.
Alex Booker (20:36):
That makes my skin crawl, man. I really don't like that.
Rían Errity (20:39):
During the pandemic, they definitely had to rethink a lot of that evaluation, which I think was definitely a positive. I mean, from what I'm talking to my friends who are still studying there, that they are kind of sliding back into more in-person exams which is truly unfortunate. Because they're building software platforms to automatically test and unit test code. So if I had an assignment which I was working on in ARM assembly, for example, I could log on to a website or a piece of software called Samiti. And I could upload my code and it would run some automated tests to verify that my code is correct and it would spit back a result which was, "Oh, this exception occurred." Or, "You passed all of the tests. Well done."
And I think that is a much more practical way of learning computer science, which I think being self-taught gives you the opportunity to use through the things like HackerRank the like where you're building programs with the automated tests next to it. I think in the future we're going to see a lot more platforms like Scrimba being integrated into university, where the focus is less on what you can do on paper come December or come April, and what you're able to apply in projects and assignments that are of greater scope, as well as what you're able to build using a more wide and practical knowledge base.
Alex Booker (21:54):
You mentioned maths earlier and how you have it every semester pretty much. Has maths been important to you as a developer or can you largely do without it?
Rían Errity (22:05):
That is definitely a mixed bag. It really depends on what it is you're working on. In general, I would say maths doesn't overly matter. It's nice to get an overview. For example, when I'm working on my React applications, I have not once used my calculus or linear algebra knowledge or my discrete maths, my set theory, my touring machines.
Alex Booker (22:23):
Rían Errity (22:23):
But it's also nice as a student to kind of see, "Okay, how did we go from touring machines all the way to modern computer architectures?" It is nice to get kind of a grounding or a perspective on computing, especially with subjects like discrete mathematics, which is very theoretical until you start applying it to actually what you're working on. So when you're actually implementing set theory through SQL queries, for example, relational algebra and the like.
Alex Booker (22:52):
It sounds like you already had studied set theory. Did that give you existing context and knowledge that made it easier to learn SQL in that case?
Rían Errity (23:00):
I don't necessarily think it made me learn SQL better. It definitely made me learn in my SQL class better, because a lot of it was grounded in the set theory. When you're learning SQL from a more practical standpoint, it's not strictly necessary. A lot of it you can just learn by iterating on your queries.
Alex Booker (23:17):
Do you think maybe they teach it through set theory because oftentimes one of the prerequisites to computer science courses and modules is a certain grade in maths, and they just assume you probably learned that already, so it's a good jumping off point?
Rían Errity (23:30):
Yes. I definitely think universities use that as kind of a crutch of, "Oh, we don't really know how to examine this properly. Let's just throw in some theory which is really easy to give an essay question on in an exam."
Alex Booker (23:42):
I think we should change gear a little bit because one of the main reasons that I invited you the podcast actually, or I learned about your story, is because you posted in the Scrimba Discord Community. For everybody listening who might not have come across this yet, we have a specific channel called I Got Hired, where Scrimba users and students can post when they get a job, when they get an internship, a freelance opportunity, a promotion or an apprenticeship. And actually Rian, you posted about an internship at Microsoft over the summer. It seems like that was about what, three months long and it's more or less just finished. Yeah, it sounds like you had an awesome summer. I'd love to learn a bit about how that opportunity came about and why it was something you wanted to pursue.
Rían Errity (24:25):
Well, how I ended up where I was, was kind of a stroke in a series of coincidences. I originally applied through LinkedIn like anyone else would. I saw a popup, "Oh, Microsoft Software Development Internship, Dublin. I'm going to click up easy apply." And that's what I did. And because my university works with Microsoft quite closely, or at least that's why I feel like I got the initial screening. Basically just started second year. I started the interview process in August of 2021, and I had my initial screening in September of 2021, which was essentially just a talk with a recruiter, having seen my CV, my resume.
Alex Booker (24:59):
Was this part of your curriculum, like some programs need you to do a placement or something?
Rían Errity (25:04):
My program currently has no requirement to perform any form of placement or internship. It was purely just I saw that I could do it. I felt like I had the skills, so I decided to go for it. I had already set my sites on doing an internship. When I originally applied for Microsoft, I applied for many other companies and I did a whole bunch of other interviews like at MongoDB and a few others whose names are escaping my mind. Dublin is such kind of an active tech space. We've got the silicon docs as it's referred to as. We're basically the European headquarters for every American multinational. So there is tons of opportunities for young developers, for university students. It's not necessarily normal that someone would do an internship just having completed their first year or their second year of their degree, which is why I was surprised to have honestly been screened or gotten through where I did, but it was purely just because I thought I could.
Alex Booker (25:55):
Do you have to be a university student to do an internship like this at Microsoft?
Rían Errity (26:00):
At Microsoft, I think yeah, it's through university recruiting process. So as far as I know, a lot of it is people coming through university. I don't know if that's necessarily true for the other companies, but for Microsoft, I think the focus is, "Oh, when are you going to finish university? When can you... You come work for us after university?"
Alex Booker (26:16):
I think that's the case with most internships across the board. They're generally not that accessible to self-taught developers, especially at big companies. And of course anybody can call a job an internship, Well, maybe there's some laws and stuff, but what I'm getting at is around the world I've seen internships defined a bit differently, but generally speaking, especially in the west, it does seem like it's for university students unfortunately.
Rían Errity (26:38):
It's really unfortunate, because I don't feel like what I had learned at university made me any more ready to do that internship than had I just completed high school and went for it. It's so much just do I have proof that I have the requisite intelligence or whatnot? Whatever those recruiters are looking for on their clipboards of what is a youthful candidate to this company? They're really closing doors on people who have potentially much more motivation, more grit to actually stick with coding and work with coding and be interested by coding from the kind of boot camp and the career change people. Because there are people who potentially had established careers in accounting or finance or whatever people are coming from into programming, and they decided, "Hey, I actually like this much more."
Alex Booker (27:19):
You were self-taught up until a point, and pretty competent it sounds like before going into university, if you felt like the first year was a breeze. That's why I think that. Does it seem a bit unfair that these opportunities are sometimes closed off to self-taught developers?
Rían Errity (27:33):
If I was confident in knowing that I could walk into an internship immediately after secondary school, I would've completely reevaluated going to university at all. So yeah, I would pretty strongly believe that university is a very expensive receipt. It's a checkbox exercise that you've sat some exams when potentially a certificate has the same effect. Could I have done a certificate or sat a formal exam outside of the university's sphere and shown that I have the same skills? Sure. Is that respected in industry right now? I don't think so, but I definitely think we're moving towards a more micro credential or certificate-friendly industry.
Alex Booker (28:09):
For sure, there's something happening there. I think by and large the prospects for self-taught developers are very good these days, better than they've ever been. But equally it sounds like there's more progress to be made. I think there are actually some parts of computer science and programming that you do need to go into a more collaborative and research-driven environment, but it's never exclusively a prerequisite. There are many paths to Rome, as they say, and getting a degree is not the only one.
That aside, I want to come back a little bit to this internship at Microsoft. I did sort of interrupt you at one point, but I think from what I understood based on your description and what I've read on Discord is that you kind of applied to the Dublin opportunity, but they had a huge backlog. So they suggested that you actually jump to the final interview stage at the Microsoft campus in Estonia.
Rían Errity (28:58):
Yes, I like languages, I like other cultures. I'm currently living in France, so I love the opportunity to explore other opportunities that aren't necessarily on the well trodden path. So when I got the email, I had done my initial screening, I had done the codility, the online hacker rank assessment. And I heard nothing for one or two months, and I was like, "Oh, well, this is dead in the water. This isn't going anywhere." So that's really when I started kicking up my other applications. But then I receive an email from one of my recruiters who essentially said, "Hey, we really liked you, but right now there are just so many candidates we're dealing with." I think the number they threw out was over 16,000 people who had applied from all over Europe.
Alex Booker (29:38):
Oh, but so many people. That is staggering.
Rían Errity (29:41):
Yeah. The Microsoft Development Center in Ireland has over 3000 employees and they take in over 50 interns, so it's pretty well advertised across Europe. So you're not just competing against Irish candidates, you're competing against people from Portugal, from Germany, from France, from Italy, all across the continent, because Microsoft is well known for putting you up in accommodation, for paying for that. And that's the opportunity I took just in the reverse sense where I was going from a country which did have a development center to then go to Tallinn, Estonia.
So the Tallinn, Estonia office that was originally Skype. It was the Skype office. They still have Skype branding everywhere. It was actually really cool because part of what I was working on there was part of Skype, now Teams' infrastructure, and I was able to interact with people who had been there since before it was Microsoft. The culture there was still fairly strongly Skype, not necessarily with the Microsoft identity quite yet because they only took on the Microsoft Development Center Estonia name in the past two or three years.
Originally it was mostly Skype, now they've actually branched into more Teams. Some of their AI and data science people are in there, but yeah, for the most part, it's part of their IC3 organization, which is their Internet Intelligent Communications Cloud or something like that. So it's all of their various media services as well as ACS, the particular product I was working on there, which is a zero communication services. It's basically a REST API for the team's infrastructure.
Alex Booker (31:05):
Oh my goodness, that's amazing. I can't believe how cool that must have been just to kind of rock up there and see the old Skype branding and stuff, and some of the OGs maybe who have worked there before the acquisition.
Rían Errity (31:16):
It's very cool. In all of their meeting rooms, they have and printed on this thread, you can see the first Skype conversations. But they're just people complaining about the JIRA being down or whatever.
Alex Booker (31:28):
Oh man, Skype's have been nostalgic as well. I remember they used to have a little indicator at the bottom, how many users are online right now across the whole infrastructure. Every year it went up, it was like seven, eight, 12, 20 million people online at the same time, and now it's pretty much dead in the water. That's remarkable.
Rían Errity (31:44):
If you said that in the office, you might get some dirty looks because actually I think they are on the up and up again, although most of their commercial business and people who are using it before they've moved to Teams, because when Microsoft acquired Skype, it was so much for their infrastructure and the things they had done to work with landlines and VoIP stuff. So teens and Skype, they're the same infrastructure. If you complain about the audio quality in one, you're basically slandering the other product as well because it's the same. But the particular part that Skype or Microsoft Development Center Estonia works on is PSTN, which is the public switch telephone network. So how can we take a computer and get it to talk to my phone, for example, by actually calling my SIM code, not by using an app?
Alex Booker (32:25):
Most developers today, if you want to do that, you'll use an API, right, like Twilio or Nexmo or something like that. But obviously being a company as big as Microsoft, that's not the kind of technology they want to outsource. So they bought Skype to do the same thing, it sounds like.
Rían Errity (32:42):
Yeah, and ACS, Azure Communication Services, that product is essentially Microsoft's take on Twilio.
Alex Booker (32:48):
I'm just going to contain my excitement and go back once that, because I know people want to understand what do these interviews specifically look like? And we did sort of plans over that. You had this credential that helped you get in the door, it sounds like, but equally they are very competitive. You had to stand out. They wanted to ask you some questions as well. I know you kind of said that your credential might have helped you, but putting that to one side, what was it about the interview you think that made you successful?
Rían Errity (33:14):
I think that people looking for the likes of Microsoft, they're very focused on their technical skills. What is it they can do? What is it they can build? But a lot of these companies, they're looking for a particular type of person, a person who will fit into their culture, who they would be happy to hang out with on a Tuesday afternoon just after production went down. So much fit as well is how you present yourself. Do you show that you're capable, that you can handle stress? If you're in an interview and you're giving the body language that you're very uncomfortable in this situation, they're going to be like, "Oh, well, this person also isn't going to be comfortable with being slated in a code review."
So much of it is personality. How will you fit into their mindset? Microsoft is all about their growth mindset. Are you a person who is prepared to basically have all of their belief systems destroyed so they can build you back better? Are you the kind of person who doesn't have a fixed mind? Can you change? Can you actually see a new perspective? If someone challenged you on what you believe and what you're suggesting? Do you have a firm, a firm footing?
Alex Booker (34:15):
Right. Are you adaptable or are you moldable, might be a good word for it, especially don't you think as an intern, because your technical skills are never going to be mind blowing. There's probably not many interns that can do something that's so brilliant. Personality and culture fit doesn't matter. Maybe when you've got 20 years of professional experience and you're one of 10 people in the world who understand a particular aspect of a system, you can be a bit of a dick. But when you are brand new to the industry, showing your humility and potential and just being easy to get along with and stuff, it sounds like that counted in this case.
Rían Errity (34:49):
Yes, and it's something I saw when I was hanging out with the other interns there. So I was one of, I think, 10, and we got along as if we were friends for five years. I just feel like so much of what they were looking for there, was the kinds of people that they'd want to work with. And was everyone the best coder in their university class? I doubt it. I definitely am not the best coder in my university class. So much of it is skills and people skills that you can't learn from a class or a boot camp.
Alex Booker (35:16):
You're kind of making it out like they didn't really ask you any sort of technical questions in these interviews.
Rían Errity (35:21):
That's disingenuous then.
Alex Booker (35:23):
What did they want to know?
Rían Errity (35:24):
The way the interview process works was I had my Codility screening. So this was, okay, can you do elite code type question in 80 minutes? I think I had to do three of them, and I could run them against their pre-computer tests and then I'd have to submit it after the 80 minutes. And no one was watching me while I was doing this. It was just when I had time. I had to have it done by the time I did my first interview, but they gave me two weeks or whatever to actually do it. Following that, I had initial screening with the recruiter. She wasn't of a technical background, so she was just kind of looking to see what I'm like, why I got into coding, things like that. Not so different from what we're doing right now. And then once I made the switch to the talent position, I was interviewed over four sessions on the same day by people actually in the office.
I happened to be interviewed by someone who ended up being on my team when I arrived there a few months later. They were a mixed bag in terms of the actual content, so we had a system design question, which was essentially to design a customer feedback system for Teams, which as I later learned, is a team that is actually working there. So if you leave a Teams call and you get that out of five stairs pop up, the team working on that particular side of the product is sitting in talent right now. They're looking at your feedback and they're collating it and they're looking for duplicates and they're doing all of that. And that first question was someone from that team who was like, "Okay, design our system for us." And honestly, it was overwhelming, and I think it was the interview I did the worst in.
They had me essentially build the entire flow. So from the team's client to an initial ingest server, this server will do some basic things like, I don't know, checking against a block list. Is someone actively trying to abuse this particular system? How does it connect then into a database server? Once it's in the database, what services actually pull from that database? Is it like Microsoft DevOps, which is their JIRA kind of thing, where it creates tickets based on automatic inputs? Do we have a dashboard system which can read in from this database? How does it interact with the databases? Does it modify? And then what do the various tables represent? What are we actually storing in this database? So it was very broad, and those four interview sessions were 45 minutes each, so you didn't really have much time to go through it. But yeah, essentially you're on a virtual whiteboard just drawing out what this system could look like.
Alex Booker (37:37):
This is so interesting because sometimes it's helpful to distinguish coding and programming, and you could say that coding is sort of giving the instructions to the computer, but programming is coming up with the instructions. And thinking like a programmer is about thinking through edge cases, thinking about how things connect, stuff like that. And it definitely seems like this task was there to see [inaudible 00:37:56] and no particular programming language or can they use this tool? It was really trying to test your ability to think a programmer, it sounds like.
Rían Errity (38:03):
Exactly. System design is a pretty well touted thing. You need to study for programming interviews. There's entire books in the subject. I was not prepared enough to know that I'd have a system designs question, so I kind of just rocked up having known a bit of Postgres and a bit of how to make a product up and just kind of stumbled my way through it without knowing exactly what it was they were looking for. It was only when I went and I talked to what the other interns did for that particular portion that I realized, "Oh yeah, I really should have done this from a more strategic or formulaic approach."
Alex Booker (38:33):
Anyway, you were successful in securing the internship. I'm sure the day you got that news must have been very happy and exciting.
Rían Errity (38:40):
I was sitting in a lecture theater and I got the email, which was like, "Congratulations on your offer." I didn't actually see who it was from, so honestly from the template, I thought it was spam. I was trying to read it and it was going off the screen. It wasn't until I had checked later on my actual computer that I had seen, "Oh, that's actually Microsoft." I was expecting a response because it was around a week and a half after the original interviews. So yeah, four interviews and they said they'd get back to me in about a week. So I was expecting it. It was just phrased in such a way it was, "Oh, here's your new Costco membership spam email number 100." So yeah, it was definitely a rollercoaster of emotions.
Alex Booker (39:17):
By the way, after you do an interview like that, do you find yourself eagerly checking your emails and your phone and every notification that goes off, you're like, "Could this be the email?" And then it's like an unknown IP address, log into your Google account or something?
Rían Errity (39:30):
I'm a person like that anyway, I check my email compulsively. But yeah, I definitely added an extra edge to it. It's like, "Oh, is this them?" But then you also have that side where you think you did really badly in an exam, so you don't want the results to come out because you're like, "Oh no." Right now it's Schrodinger's internship, I both have it and I don't until they give me the email, at which point I know.
Yeah, the other interviews were half technical, half behavioral, I want to say. So in the second interview, I have my notes up just be- I don't actually remember this. I took in notes at the time just to prepare myself and it was... An engineer asks you to aid them in finding an unknown bug. So I didn't know anything about the system, what the scope of the bug was. I had to talk in theory about how I would go and troubleshoot an issue, a bug in the system.
Alex Booker (40:14):
Oh yeah, you were definitely interviewing with Microsoft teams, like find an unknown bug. They were just hoping that the genius answer to all their problems was from an internship candidate.
Rían Errity (40:25):
I can't remember exactly what I said, but yeah, it was a lot of vague like, "Oh, have them do some rubber duck programming." Or you have them explain line by line the affected systems and it's go through the logs, things like that. And then the follow-up question in that interview was what could we do with software that could radically change the world? And I was just flabbergasted. I was not prepared to be philosophical in this interview. I was ready to show Microsoft 365 to them. I was not prepared for these open ended. What software will change the world? I can't even remember what I said because I don't think I had anything to say, because what isn't software now? You could argue that everything comes back to software. So any major thing that happens is a big social movement happening online right now. Well, there's infrastructure, there's Twitter, there's everything software aided that.
Alex Booker (41:17):
We've been talking for a while. I'm really loving this conversation, learning a lot. I don't want to finish the episode without knowing a little bit about what happened during the internship. What were the key takeaways for you? And from Microsoft's point of view, what did success look like for an internship employee?
Rían Errity (41:35):
Microsoft has a very high level program for their internship. You're committing to working on a team with ordinary developers, so you're one intern on a team of potentially 10 or 20 and you're working with them on their particular task. Usually though, you're given a very specific scope as an internship project. In my case, I was building a new framework for synthetic testing for the particular platform I was working on. So I knew from the get-go what it is they expected of me in these 12 weeks, and I was able to then have a sit down with my onboarding body, so a particular member of the team who wasn't the manager, to kind of answer all of my questions and just be a general contact. And then as well with my manager to actually say, "These are my expectations. This is what you want from me in these 12 weeks and this is what I want from you."
And Microsoft has this connect system where employees and managers have this kind of back and forth, and as an intern you do a connect at the start, a connect in the middle, and then a connect at the end to kind of reflect on what it was you were doing, how you feel you impacted, what were the actual deliverables from that period. And at the end, did I succeed, did I get an offer to come back a few weeks later? I was able to go through this process and kind of have this structure on how to criticize myself and what I was doing during that time from the day to day. Yeah, you're working as an ordinary software developer. I came in at 9:00 AM, I sat down at my desk, I opened my computer, I looked at my tickets for the day for whatever sprint I had. I prepared if I had a meeting to present to my team.
Alex Booker (43:05):
And you were using a programming language and frameworks and things you already knew, or did you have to learn their stack, which I assume is like C#, asp.net, Azure, all that Microsoft good stuff?
Rían Errity (43:16):
Yeah, it was quite internal. I had never touched C# before. I had never touched asp.net before. I had never touched really any of the Microsoft frameworks because I run Linux, they don't tend to merge very well, but I was able to go in employees there have a lot of resources. I have full access to Plural site and all of these other courses where I could sit down the evenings and look at these pretty informational cutdown things. But even then I had a background in Java and C# is so similar.
Alex Booker (43:44):
Although I've always preferred C#, but I digress. What was the kind of conclusion of the internship for you, Rian? Like what happens next or is it sort of onto the next thing in your case?
Rían Errity (43:54):
Well, I had the final connect. I sat down with my manager, we discussed what it was I built, whether or not they were happy with it. I demonstrated, I gave a presentation to the team. Then on my last day, we all went on a hike. We went out to the forest of Estonia, had a wonderful look at some lakes and things, and I did receive an offer to come back. It was a very difficult decision for me because it would be an offer to spend next summer again in Tallinn, as an intern because I don't finish for another one year after this. So I decided not to take the return offer, but I was very gracious and thankful for the experiences that it gave me over the 12 weeks. And it's like an open invitation to come back, whether it is in Dublin or in Thailand in years to come.
Alex Booker (44:32):
That's awesome, man. I mean, you have to go back and do your studies, and I'm sure there'll be a time where the only thing on your mind is what you want to do professionally, and you've just built these awesome connections, earned a really good reputation it sounds like. And yeah, I'm sure the whole experience probably made you a better developer. You certainly must have got a lot from it, getting to interface with these more experienced developers on interesting projects in an environment like Microsoft. That's really cool, Rian, and I really appreciate you coming on the pod to tell us your story in such a transparent way. I know it's going to be super interesting and helpful to people. Just in closing, I wanted to ask if you had any sort of final advice to anyone listening who might be learning to code and in the pursuits of their first or early junior developer opportunities?
Rían Errity (45:18):
One thing I definitely say is keep with it. It's going to be hard at first. I know I'm the wrong person to give this advice because I started at the age of eight. But yeah, definitely keep with it. If you're stumbling at first, if you don't understand, that's completely normal. What you need is the positive feedback loop of building something small, then increasing the scope, building it further, and then release something. It doesn't have to be huge. For example, the meme generator in the Advanced React course, deploy it, have people use it, have your friends and family use it, get some feedback. All you need to do is to apply yourself and apply what you've learned. If you learn from a textbook, you're not going to learn. You're going to learn the particular exercises in that book. You're not going to learn how to think like a programmer.
You're not going to be able to tackle those issues in a more broad sense. So what you need to do is you need to build software, that is your personal project, that is your resume website, and actually take it somewhere. Make sure it's actually seen by people. You can receive criticism. It's possibly one of the best things I ever did where I built some things, I put some stuff up in my blog, I had people criticize me for it and I was like, Oh, that criticism was totally valid. And it's being able to take that criticism and make yourself better without kind of inflaming your ego and trying to think, "No, no, no, only what I learned and what this textbook or this tutor told me. This is the source of truth." So it's just kind of being open-minded at tackling new problems every day.
Alex Booker (46:40):
Ego is the enemy. Very wise closing words. Rian, thank you so much for joining me on the Scrimba Podcast. It's been a pleasure.
Rían Errity (46:48):
Thank you for having me. It's definitely another new experience where it's like, "Oh, here's new opportunity, click easy apply."
Jan Arsenovic (46:56):
That was some sound life advice right there. Make sure to check out the show notes for all the ways you can connect with Rian. If you made it this far, please consider subscribing. Once again, we are a weekly podcast, and if you subscribe, you won't miss an episode. We will have insightful and inspiring interview for you every Tuesday night. If you're feeling super supportive, you can also consider leading us a review or a five star rating on Spotify or Apple Podcasts, or basically wherever you're listening to this, if there's a way to rate us, please do so. It really helps. The podcast is hosted by Alex Booker. You can find his Twitter handle in the show notes. I'm your producer, Jan Arsenovic. Thanks for listening and we'll see you next week.