Code Like Nobody Is Watching: On Community, Learning, and Finding the Right Culture Fit, With Scrimba Student James
James Marriott (00:01):
Maybe I don't have the best solution, do you know what? Maybe someone will come in and tell me a better solution. That's a good thing, I'll learn something. The perfect is the enemy of the good. "Oh, I don't have the best solution to this problem, therefore what I write is rubbish," that's not true. Working code is good code and that is something I learned from that experience.
Alex Booker (00:19):
Hello and welcome to The Scrimba Podcast. On this weekly show, I speak with successful developers about their advice on how to learn to code and get your first junior developer job. I'm Alex and today, I'm joined by James Marriott, a Scrimba student who recently got their first junior developer job. He joins us today to tell us exactly how he did it and what the interview process looked like. Before learning to code, James was an English teacher and project manager, which is quite a world away from what he's doing right now, working professionally as a developer, building out web applications with JavaScript. If you're wondering what made James learn to code and change career, well, like many people changing career, actually, he wasn't too happy with his current job and when the pandemic and the lockdowns came about, that afforded him some time and breathing room to retrain and learn to code at the age of 42.
(01:10):
Now, I can't wait to get into the conversation with James, I think you're going to learn a lot, but in particular, this is an insightful conversation about how to get a job in tech by demonstrating not only your coding skills, but your personality and culture fit, as well. There's a lots of practical advice in this episode. Something a bit unorthodox, but also kind of impressive, is that James would send out 10 applications a day and to say positive, he set up a Gmail filter to automatically delete any emails from companies with the word unfortunately in it. I just hope he didn't get email from some quirky hiring manager saying, "Unfortunately, you're going to have to see us again, you've got the next round."
(01:51):
The actual funny thing about getting a coding job is that coding and doing well in coding interviews isn't necessarily the same thing. The questions are a bit contrived and there's someone looking over your shoulder, which adds pressure. Unfortunately, this caught James by surprise during his first ever job interview and he choked it, but determined not to repeat that mistake again, he had the brilliant idea to livestream himself coding, doing JavaScript challenges for weeks, just to feel more comfortable with this idea that someone's looking over your shoulder and, as is always a good idea, become a better developer in the process. You are listening to The Scrimba Podcast, let's get into it.
James Marriott (02:31):
So, when I was a child, I actually studied programming at school and I loved it, I did computing, and this is 25 years ago. The languages we were using then, I don't think JavaScript was even invented, so I was doing stuff like BBC BASIC and some other simple languages. I really enjoyed it, however, it was very much seen at the time as a toy thing and not really much of a career, unless you were going to go and work for IBM, so I didn't pursue it. And then I had a whole different career for about 20 years, project management, essentially, not in the tech sector. And then about three or four years ago, I started to think about what I was doing and how I was not particularly enjoying what I was doing, and I began to start looking at some development stuff, began picking up some courses, some freeCodeCamp and that sort of thing. When the pandemic came, my work situation changed and I had more time to spend actually becoming a developer and then that's when I decided I really wanted to make this a serious, full-time thing.
Alex Booker (03:41):
Was coding on your mind all those years?
James Marriott (03:43):
My motivation in life is often, I get satisfaction from creating things, I like making stuff. I've always been kind of creative, I've always enjoyed making little stories or music, writing songs, that kind of stuff. I enjoy making stuff, that is the bit I like about coding more than anything. I'm not someone who loves algorithms and the intellectual problems. I've met plenty of people, I work with them now, and they're like that and I'm not like that. I'm someone who enjoys making stuff that people can use and that is where that came for me.
Alex Booker (04:18):
I really appreciate you making that point, because I think that great developers can come from anywhere and we all have different motivations. How did you go about deciding what specifically to learn and once you decided, what resources did you turn to?
James Marriott (04:31):
I began with looking at what people were doing in terms of creating web applications and then I started with HTML and CSS and then started moving to some JavaScripts. Of course, then naturally, the frameworks, the JavaScript frameworks came along. I felt at home once I began using those things. There were a lot of technical challenges for me, personally, but once I began to start making little, interactive games and stuff that people could use and I could send to my friends, and then I thought, this is not a million miles away from stuff that is produced commercially. Now, hopefully, I can bridge the gap between having some fun making little static websites or whatever it is, with some small amount of JavaScript to actually making much more fully featured things, which people will enjoy and use.
Alex Booker (05:26):
There's a lot of courses and books and newsletters, podcasts, conference records, there's so much information out there. It sounds like you had a good idea about what order to learn things in, at least, but how did you close this gap between being a hobbyist and being a professional?
James Marriott (05:41):
So, I began with some of the free courses, like many people do, YouTube, freeCodeCamp, that sort of stuff. Also, at one point, I'm not sure if they're still in business, but Udacity, I did one of the little nano degrees with them and that was a beneficial experience, but it was a bit lacking. Then I found Scrimba, which I can't remember exactly when, I suppose couple of years ago. I don't know when the front-end developer career path was launched, I found Scrimba just before that, so I started with some of the courses that Scrimba offered, the free stuff, and then came the front-end developer career path. Once that was launched, I signed up for that and it was remarkable value, because I had paid a ton of money for Udacity beforehand, which I didn't feel was great value, in terms of what I got back.
(06:31):
However, once I moved to Scrimba, I was paying a fairly small monthly fee, from my point of view, and the valuable thing that I got was the community. I love the technology, I love the Scrims, I love being able to interact with code within the browser, that's all fantastic, particularly when you're not familiar with VS Code and setting up your own environment, it's just brilliant that you can get started straight away. But what was most valuable was the community. I connected with Tom when he was a student, and Tom's now a Scrimba instructor and course leader.
Alex Booker (07:06):
Yeah, that's right.
James Marriott (07:06):
So, we connected, as I said, a couple of years ago and I learned a lot from him. Our personal relationship was very beneficial for me. We were swapping code back and forth saying, "What's going on here? What's the problem? Can you help me, mate?" And, "Yeah, no problem. Ah, I think you need this," and doing that pair coding stuff together, that is really valuable. Not just him, but many others within the Scrimba community, giving feedback and support and so forth, that, to me, was the most valuable thing, particularly... I was basically me and my computer in a basement trying to figure this stuff out, trying to get a new career, and there's this whole world out there of people in Scrimba that were supporting me and making it possible. Because it's hard going slugging away by yourself, but when you've got people out there supporting you, it makes a huge difference.
Alex Booker (07:55):
We launched the front-end developer career path in the summer of 2020, so that dates when you started at Scrimba, which, if I remember right, was in the middle of the global lockdowns that were happening, or at least there was a period towards the end of that year. Many people described that as a very lonely and uncertain time, how did you reflect on it?
James Marriott (08:16):
Absolutely. The work I was doing then was mostly education-focused, so I was doing a lot of teaching online, but again, quite lonely, in that respect. I wasn't engaging with people physically in a room on a day-to-day basis and that was very isolating. However, I also found that this is a period which is time-limited, which is an amazing opportunity to learn something new and transition and do something that I really want to do, but I just haven't had the time or the money or the focus, mainly the time, to actually invest in that. So, then I got that opportunity, during the pandemic, as I saw it, to work through and learn a heck of a lot of stuff connected with development.
(09:02):
That, for me, was amazing to have the community which I found with Scrimba and I think without the community, I probably would have given up, because it is very hard not to get any feedback on what you're doing, not to get help when you're banging your head against a wall. It takes someone with incredible personal motivation, I think, to keep going month after month, particularly when you hit bugs that you just can't fix and you don't know why, and that support was massive.
Alex Booker (09:30):
And you had a job while you were learning to code, as well, which it just makes everything so much more stressful, I think, because you don't have the liberty of unlimited time.
James Marriott (09:40):
Yeah. I had a job, I had children, I had a lot of commitments.
Alex Booker (09:45):
Hopefully, you still have children.
James Marriott (09:46):
I have children. At the time, I had children that needed a lot of care and attention, they were younger, they're a little bit older now. I'm a bit older myself, I'm 44 now, and that was part of a challenge, full-time job, kids, so forth. If you're 21 and you've got 18 hours a day to spend on coding and learning and building communities, that's great, but when you've got a short period of time every day and you've got to make it work and you are doing a full-time job. As you know, I was a freelancer teaching and I was getting paid hourly, so my hours were valuable and that was also an awful lot to juggle.
Jan Arsenovic (10:29):
Hello, if you're looking to change careers, but you're afraid of learning a new skill as an adult, then you should check out our interview with Quincy Larson. Quincy is the founder of freeCodeCamp. He's also a self-taught developer and a career changer. Recently, he spoke to The Scrimba Podcast about why learning to code as an adult might be easier than you think.
Quincy Larson (10:51):
Adults can actually learn way more efficiently and effectively than kids can, because they've got this big, existing associative network. The older I get, the more efficient I get at learning. Any sufficiently motivated person can learn coding. I didn't start coding until I was 31 years old. I was a school director and I just wanted to make our school more efficient. I remember very many people telling me, "You're running this school and everything's great, you should just keep doing what you're doing." You know what? If I had stayed in that school that I was running, COVID hit and the school went under. I'm going to have to climb down this hill, if I want to climb up that bigger hill, but it's worth it.
Jan Arsenovic (11:25):
I am linking this episode in the show notes.
Alex Booker (11:28):
I will be right back with James in just a minute, but first, Jan, the producer, and I wanted to remind you that this is the 91st episode of The Scrimba Podcast. We're well on our way to 100, but more importantly, there is a massive backlog of incredible experts and successful junior developers for you to learn from, which you can check out while you wait for the next episode. We also want to ask that you share this episode if you're enjoying it. The other thing, Jan, is I'm not sure if everybody understands how the podcast and how we alternate episodes works.
Jan Arsenovic (11:58):
Well, we are a weekly show and there's a new episode every Tuesday. We haven't missed a Tuesday for a very long time. I think I joined The Scrimba Podcast in April of 2021, so that's a lot of weeks, and I think we plan for at least as many. So, if you subscribe, you'll get a new show in your feed every week and it will be really insightful and uplifting. The way we do that is by alternating between different types of guests, so one week, we talk to a recently hired new developer, like James, and then the next week, we talk to an industry expert. One week from now, you guessed it, it's an industry expert. Alex Lee, also known as TechRally, will be on the show. He's a front-end engineer at Amazon and he also helps aspiring developers break into the tech industry.
Alex Lee (TechRally) (12:49):
I studied mechanical engineering in college, I really wanted to work on cars or airplanes. Funny enough, after I graduated, it was really hard to find a job and it came to a certain point where I just took any job that was willing to take me. I somehow was coding a little bit here and there, trying to figure out if that's what I wanted to do, but doing part-time coding while working full-time was just really, really difficult, so I made a internal business issue to try to do a coding bootcamp. I was able to eventually find a job three months after that.
Jan Arsenovic (13:23):
That's next week on The Scrimba Podcast. Now, we are back to the interview with James.
Alex Booker (13:30):
Changing career in your 40s, it always strikes me as such a courageous thing to do. Would you describe it as an advantage or a disadvantage, breaking into tech later in life after already having one career?
James Marriott (13:42):
If you'd asked me six months ago, or even 12 months ago, I would say absolutely, a disadvantage, without hesitation. However, in the company I'm working for now, I'm already seeing the soft skills that I have from project management experience being very useful, and some of the things which I thought I'd never think about again have become very relevant as my company's doing a bit of internal reorganization and were pivoting a bit, say, it was surprising to me that those things are valuable, when I hadn't really thought about that.
Alex Booker (14:20):
But it's just like you described, learning to code, full stop, takes a huge amount of perseverance and dedication. If you go to university or something, there's so many extrinsic motivators, you've already invested all this money into your degree, you don't want to drop out now. You also have the benefit of a support network, because you're in the foxhole together with everybody. Maybe there's an element of social pressure there, where you can compare your grades to others and get a sense of how you're doing. Say you're self-taught, you have none of this. You really have to set your own direction and self-motivate. I think doing it a little bit later in life, after you've already had a career only, makes it harder in some ways, because, well, you might think you're starting from scratch and have nothing to show for the previous stuff you did, but from what you are teaching me, it sounds like that isn't actually true.
James Marriott (15:05):
I would say everything that you've experienced does contribute to where you are today. One of the things which I found a little surprising is that my work motivation is very, very high, in that I will just keep going until I fix something. Now, it may take me a lot longer than someone with years of experience, however, I am doggedly pursuing that. I have that kind of mindset that I will not let a problem defeat me and that I will get to the bottom of it, I do think that that is a valuable asset. I suspect, from being in years of work, that that is something which I have got. What you've got to do is just get the job done and sometimes, that means personal sacrifice. It means waking up early, it means doing the difficult stuff, it means not doing things you want to do.
(16:06):
Actually, the years of slog in various jobs have been a benefit in that, let's say, focused attitude to work, which not everybody has in their early 20s. I think perhaps people that are a little bit older, perhaps in the 40s or whatever, they have invested that time in jobs and whatnot, that they know what commitment gets the job done. I think also you're a little less personally focused like, "This is not about me, this is about the job, the product, this is about supporting the company, this is about supporting my colleagues, this is about getting the result we need to do." It's not so much about skills, but it is, perhaps, more about experience that gives you that understanding of the world is not how you want it to be, but if you can make things work within whatever paradigms you're working within, then that is going to be very good for you personally and good for whichever company you're working in.
Alex Booker (17:03):
That kind of experience and, I think, maturity you're describing certainly comes with time. Where does the drive come from? Is that a learned thing or do you think there's an element of personality to it, as well?
James Marriott (17:16):
I'd say personality is crucial, absolutely crucial. The company where I'm working at the moment, they hired me not because I was the best coder, in fact, I probably wasn't the most experienced applicant for the role and they spent quite a long time, in fact, we had about five interviews I think before we were done and I was hired, basically, examining whether or not I was suitable for the company. Because the way we work in our company is a very flat structure, everyone needs to take personal responsibility. We don't have managers doling out tasks, we work collaboratively, and that means that people have to be highly focused in terms of personal motivation, able to do self-starting, get tasks done, ask for help when needed, but also get on with stuff by themselves, as well. So, they hired me because they saw I could do those things and I had experience there, not necessarily that I was the most brilliant coder. That made more of a difference for me getting hired, I think, than any other factor.
Alex Booker (18:23):
While we're on the subject of getting hired and succeeding at the job interview, can you tell us more about your approach to finding your first developer job? It normally starts with a question, which we've all asked ourselves at some point, am I ready to apply at all or should I keep studying and apply later?
James Marriott (18:40):
I don't think there's any harm in applying for jobs, even if you're not ready, I think it's a good experience for you. There's going to be a lot of rejection. Unless you're very lucky or you are in a unique position, the reality is it's a numbers game. There's a lot of jobs and there's a lot of people looking for jobs, there's going to be a lot of rejection and you can't take it personally. The sooner you learn to not take it personally, the better, so you may as well get that done while you're still not ready. And then it's like practicing coding, you do certain things badly at first, that's inevitable. Anyone who ever learn to do anything well started off by doing it badly. The same goes for applying for jobs, you'll do that badly, too. That's also a skill that needs to be learned. Gradually, I finessed that skill at the time I was applying for jobs and I was getting disheartened with the rejections, at times.
Alex Booker (19:32):
Oh man, it happens. Can you give us some idea about the numbers?
James Marriott (19:36):
I set things up that the rejections I didn't see, I wasn't interested, so I just set up Google filters so that the emails were just automatically deleted with unfortunately keyword or whatever it was.
Alex Booker (19:49):
Dude, what if you got a job which was like, "Unfortunately for the other candidate, James, you're hired"?
James Marriott (19:54):
Do you know? I think they would probably pick up the phone.
Alex Booker (19:59):
But you're serious about that, you set up a filter in your inbox just to-
James Marriott (20:00):
Absolutely. Because I was sending out a lot of applications, 10 a day at one point, and I didn't really need my inbox clogged up with rejections. I don't need to read a rejection email with a standard format, why bother? In fact, I have filters set up for tons of stuff, stuff I'll look at later, stuff I'll never look at, stuff I'll maybe look at. Black Friday sales, that can go into a filter, so why not? Maybe it didn't go straight to the bin, but I put them into a folder where I maybe scan through, flick through, see if anything's relevant.
Alex Booker (20:32):
Why were you doing that, was it because you can't do much in response to rejection? There is some good advice which is you can follow-up and try and learn more about what to do differently, but you don't have to do that and it has a limited rate of success, anyway. People aren't always forthcoming about the reasons they didn't want to hire you. It sounds like you would rather just focus on the things you can control, which is the next job application and the next successful email.
James Marriott (20:55):
Absolutely. I think there is a difference between sending an application and getting a rejection or not getting a rejection. If you've had an interview and then you get a rejection, I would never have an interview and then not follow-up on that, because the number of applications they probably get for an open position could be in the hundreds, probably thousands sometimes, however the number of applicants they will spend time interviewing is an indication that they see some potential in this applicant.
(21:25):
Actually, I only have had three companies that interviewed me, and the first one. I absolutely tanked and it was embarrassing and it taught me a lesson that you need to be prepared. If you want to if want me to talk a little bit about that, I will. And then the second experience I had was good, but it was a very small company and I didn't have enough experience with what they were working on, but I did pursue that one quite a lot afterwards to try and find out where I was lacking. And then the third one is the job I actually got and I had several rounds of interviews with the same company, but it was only the third company that I interviewed for that I got the job.
Alex Booker (22:07):
Over what period of time did these three interviews happen, by the way? Was it back to back, almost, or was there more of a gap?
James Marriott (22:14):
I think over a course about three or four months, I would say.
Alex Booker (22:16):
That's really good to know, because this is sometimes how long it takes and I think that's important for people to hear. I would actually love to learn more about this first opportunity, because it sounds like something you were interested in, but your prep just wasn't quite there.
James Marriott (22:30):
I think the first one I had a technical task do during the interview, however, I wasn't really prepared for a technical task and it was just thrown at me and I panicked.
Alex Booker (22:41):
You got blindsided a bit?
James Marriott (22:42):
I did and I choked. I literally panicked and choked. It was basically one of the simple coding exercise that you get thrown in interviews, if it's divisible by three, print "Fizz", if it's divisible by five, print, "Buzz."
Alex Booker (22:57):
FizzBuzz.
James Marriott (23:00):
Yeah, FizzBuzz. I completely choked, I screwed it up, and I sent the browser into an infinite loop. I crapped everything.
Alex Booker (23:07):
You have to laugh, don't you? That's brilliant.
James Marriott (23:13):
It is. Do you know what? I felt such a fool afterwards. At the time, I'd been doing a lot of stuff with React and I hadn't done much and Vanilla JS for a while and there's no excuse, really. I thought to myself afterwards, what on earth happened there, James? Why did this happen? You know this, you can do this, but you panicked. So, that was bad, but a good lesson, never assume you're not going to be asked for a technical task, I suppose.
Alex Booker (23:40):
Do you think that preparing would have made you less likely to choke, essentially, as you describe it? By the way, I just think there's enormous pressure in any job interview and this was your first technical one, so it's not actually surprising that it was easy to overthink things and maybe overlook the simple solution, which you obviously knew. I'm just wondering, what changed about your mentality going into the second and third interviews?
James Marriott (24:04):
After the first interview, the next day, I did two things, I went on to YouTube and I started livestreaming me attempting to solve some code challenges like Code Katana or whatever, one of these websites. I knew no one was watching, but the fact that I was livestreaming it meant somebody could be watching, so that made it a bit different. So, I'm actively saying to myself, "Here's the problem, what do I need to do? Can I make this work?" Imagining that someone was watching me was a really good thing, because that's what killed me in that first interview, I'd never had anyone watch me live code anything and that's what freaked me out. I still, today, if anyone's watching me code, I type the wrong stuff, which I do not do.
Alex Booker (24:49):
It's human nature, though. If somebody's watching me type my bloody email, I scramble it. But oh my god, what a smart idea to livestream and put yourself in front of an audience, or even if you weren't looking at the view account, you don't always get a bunch of viewers when you do your first livestream, still just knowing that this was probably in front of people, very much mimicking the experience of an interview.
James Marriott (25:08):
Yeah, and that really helped me. I kept doing it for about a month, every day, I would do 10 minutes or something. Occasionally, people went, "Oh, that's cool, nice." But also the experience was very good, because I lost that, oh my god, people are watching me code, I'm terrible, imposter syndrome, I can't do this kind of thing. I was like, "Maybe I don't have the best solution. Do you know what? Maybe someone will come in and tell me a better solution. That's a good thing, I'll learn something, just to try and chill a bit. The perfect is the enemy of the good, and that is something which like, "Oh, I don't have the best solution to this problem, therefore what I write is rubbish," that's not true. Working code is good code and that is something I learned from that experience.
Alex Booker (25:53):
I also think solving a problem in front of someone, as weird as this might sound, it's kind of intimate, because you're showing your thought process. If I'm coding by myself, or more likely these days, actually writing, because I write a lots of content on the Scrimba blog, link in the show notes, by the way, if I'm embarrassed of my drafts, and sometimes I have the weirdest processes to get to the perfect text, at least in my view, I'll write it as a list and make it a paragraph, I'll write some gobbledygook and then try and refine it. With coding, it was similar, I'd call my variables X, Z, Y, FU, BA, BAZ, whatever, make it ugly, and even though I arrived at the solution in the end, it is hard not to want to perform a little bit and impress them with your speed, but actually, probably the point of the interview is to get an insight into how you think.
(26:44):
Because if your first instinct is, "Oh, I'll Google this thing," that's obviously fine, there are many times where you should and you can benefit from Googling a snippet, but there won't always be a snippet available for the thing you're trying to solve, and so working through the code a little bit, I think it's what they want to see. It's sometimes helpful to remind yourself that nobody loves to be watched to code, really, unless they're very comfortable with it due to practice and experience, maybe they livestream, James, like you did and they're very used to it, they might not be going so hard on you, because they know how it feels.
James Marriott (27:16):
One of the things that I found most useful, as well, is explaining your code to other people, this concept of rubber ducking, particularly when you've got a problem. The idea is, for those who are not familiar, that you have someone standing behind you and you just explain what the problem is and where you've got to to solve the problem and they just nod like a rubber duck. You don't even literally need a person there, at some point, you can just explain it, verbalize it. This magical thing happens quite a lot, where you go, "Oh, I assumed something to be true which isn't true and that's where the problem is," and yet, you've stared at that code for an hour and not been able to get to the solution, however, just the process of explaining it and going step-by-step gets you to the fix. That is a beautiful thing and very, very valuable, so I would say that having someone to talk about that.
(28:11):
Coming back to what I mentioned earlier with some of the other students from Scrimba, when I was able to talk to them about a problem and explain the problem, that was extremely valuable. I don't think you have to necessarily have a solution. Often, it's enough to just explain the problem and then to go, "You know what? Let's work on this together, guys, let's find it out." I do that today, so I do a lot of pair programming with some of the senior devs in my company, and those are the best experiences I have in my working day. Initially, I was like, "Oh my god, they're going to figure out I'm just an idiot who knows nothing." And then I embraced my ignorance and say, "I don't know. I know stuff, I know what I know, and you know what? I'm not going to learn if I say I know stuff I don't know, so I'm going to ask the dumb questions and just be that person who says the things maybe not everyone else wants to say, but perhaps are thinking." That's a great way to learn.
Alex Booker (29:10):
I really appreciate your transparency and I think it borderlines on a little bit of vulnerability, as well, because you're telling us the things that you struggled with, like wondering if the senior developers might oust you, for example. It sounds to me a lot like imposter syndrome, and I'm just wondering if this is something you've experienced and how do you think about it these days?
James Marriott (29:30):
Completely. The senior developers I've spoken to also say, "We still feel it, you can't know everything, and we have to Google stuff. I look up stuff in CSS tricks and I've been a developer seven years, you can't know everything." There's always new things coming out and that's just how it is.
Alex Booker (29:48):
Well, it strikes me that you were teaching other people, and you probably saw students come in with no knowledge and you'd never think badly of them, because you just know they haven't been taught something yet, and yet, you probably weren't as kind to yourself, it sounds like.
James Marriott (30:01):
Completely. Also, that's something else I did quite well, I taught coding to students online, children, basically, HTML, CSS, a bit of JavaScript. What I was always interested in, as a teacher, was the thought process. I'd like to know your approach to this problem, where are you seeing the things that need to be fixed here? Perhaps you're way off base and you think about the wrong problem and maybe I can refocus you on the problem with certain questions. Again, some of the nice senior developers here have done that and asked me to think about this issue and, "Well, that's an interesting solution, but if we did this, what about this?" Ah, very good point. So, I think if you're a good mentor or teacher, what do you want to call it, you are good at getting the student to focus on the right question and solve the right problem and that's, I think, a valuable way to learn.
Alex Booker (31:08):
Coming back to the job you ended up getting, were you looking for any specific sort of company or were you just applying for everything? Because I happened to notice with the company you interviewed with and now work for, they're very much focused on having a positive impact on the environment and reducing things like climate change.
James Marriott (31:25):
I was looking for any job. I think if you are a first-time developer, you can't be that picky. You have to see what's on offer and you have to be enthusiastic for the opportunities that are there, that's just the nature of the market, but it doesn't mean you can't hope for something better. Also, I think you stand out as a candidate if you are actually genuinely interested in what the company is doing. For me, I've worked for a long time in political development, I've always been very interested basically around democracy and trying to strengthen democratic values and so forth, so I've always been very interested in how you can achieve change. So, that, to me, was very attractive, when I saw a company that is pursuing the most challenging and difficult technical problem of our time, which is how to fix the environment and that was, I think, something that came across.
(32:27):
When I got into the interviews. I could talk about this with confidence because I was genuine and I think that's what comes across, more than anything. If you're going to work for, I don't know, a bank or something, perhaps they don't really care about anything beyond your technical ability and your ability to fit into the team, but if you are going for a mission-driven company, and there's quite a lot of startups in this space, then I do think they really want to see some commitment to what they're doing. For me, that probably was the clincher, that I was genuinely committed to this range of products, actually, that we're making. So, the short answer to this is you have an advantage over other candidates if you can demonstrate genuine interest and commitment to the company you are working for or who you wish to work for, let's say. They see it, people see stuff. You're not going to convince anyone with insincerity, people have very good senses for that sort of thing.
(33:27):
I can tell that a mile away if somebody's not interested, it's obvious. But when someone's genuinely committed to something, I think they will say, "Maybe he's lacking this technical skill, let's train him up, but we see potential." It's the reason they hired me, they saw potential. They didn't see a wonderful, sparkling career of coding development behind me, but they saw, "Actually, this guy, he's good, he can do it, but he's also committed to this company and he's committed to the course." Ultimately, for me, I'd like to spend my career working for positive change, not just money, because ultimately, money is just stuff and I would prefer good things for the world, when all is said and done. If I can use my technical skills, which I have developed and continue to develop, to make the world a better place, my goodness, that's got to be a life well-lived.
Alex Booker (34:19):
That's the kind of motivation that burns slow, but it burns long. I think most employees, whether they're juniors or seniors, they really hit their stride after anytime over a year. Once they've learned the ins and outs of the company, the values, and they've learned the code base, for example, why would you then want to hire somebody who quits after a year, only after you've invested in them? I think it's super important for employers to see a logical path as to why you might stay at the company for a long time. My key takeaway, though, from everything you're telling me, from just now and earlier in the interview, is that there are three important things when it comes to getting hired as a developer. Are you ready for this, James?
James Marriott (34:57):
Go ahead.
Alex Booker (34:57):
Well, the first thing you pointed out is coding, which makes a lot of sense, but you described the next two things as having equal, if not more, gravitas. The second thing is personality, you mentioned that before, so having good communication skills, humility, a willingness to learn, and the third thing you described as something that really made a difference in you getting a job with this company is a shared value, you believe in their mission. When you have personal values and the company has values and they match, that's what we typically describe as culture fit. It only goes to prove that it's not about hiring the best candidate, it's about hiring the best candidate for that particular role in that particular company. What you're trying to do when you're looking for a job is you're trying to find a good fit and that hasn't got everything to do with coding skills. Of course, you need the competence to get started, but you don't have to be the final product at this stage, when you are a junior, you can demonstrate potential, as you described, James.
James Marriott (35:53):
Completely. I think that's an excellent summary. I would say the most important thing of all of those is humility. Being honest about what you know and what you don't know is actually really important, because I can tell you, a senior developer can look at what you've written and know exactly what you know and what you don't know within seconds. So, don't bother to try to pretend, be honest about what you don't know and be confident in what you do know, and be prepared to ask for help and say, "I don't know this, I'd like some support here."
(36:26):
Do you know what? If people ask you directly for support on a specific thing, it's almost impossible to say no. People want to help, particularly senior developers who are experienced and wise and knowledgeable, they will also do it. Also, here's a fascinating thing, when you work on a problem with the senior developer and they go, "Well, I don't know. You know what? This one, it's not going to get fixed today, let's leave it, do it tomorrow." That's also a good thing to see, they don't have all the answers, they're not gods, and you know what? Everybody is just imperfect, but we're all trying to get a bit better.
Alex Booker (36:59):
Well, tell us about the interview process then. Was it challenging?
James Marriott (37:03):
Yes, it was, for a number of reasons, which is we're based in Norway, where I live. I'm British, but we're based in Norway, our company.
Alex Booker (37:11):
Do you speak Norwegian, by the way?
James Marriott (37:12):
Sorry, I'm not going to start speaking Norwegian. I speak poor Norwegian, but I didn't find that a relevant factor in the hiring process, because certainly in terms of the tech team, it's pretty distributed nationality, and our working language is English. Some of the people in our team speak no Norwegian, I speak okay Norwegian, but I don't use it on a daily basis to work, but it's useful now and again, but all the interview process was in English. I had the initial interview and that was just a 15-minute interview, where I got the feeling they were talking to a lot of people in those short, 15-minute slots.
Alex Booker (37:52):
What were they trying to find out in that 15-minute slot?
James Marriott (37:55):
I think it was just, "You sent us a CV, are you the actual person that is this CV?" Because you probably wouldn't be surprised, but sometimes, people claim to live in a place they don't live in and they just have to check the fundamentals, this person is actually who they say they are and they know what they're saying, in terms of their basic competency here, they do know what JavaScript is.
Alex Booker (38:19):
They probably want to check for you have the right to work in that country, for example, as well, just quite administrative things.
James Marriott (38:26):
Absolutely. If they say they're going to give visa support, then by all means, go ahead and apply, but I wouldn't waste people's time with [inaudible 00:38:34] applications claiming you have residency, if you don't in that country.
Alex Booker (38:38):
Another thing I've experienced is the recruiter at the beginning talking about salary expectations, because from their point of view, if your expectation is so far from what they're offering, it's kind of a waste of time to go through the whole interview process, even if you're successful, because you just will be too far apart.
James Marriott (38:53):
Luckily, with my company, we set our salaries based on what we say we need, so we don't set our salaries based on the industry averages exactly, we have an upper limit. Because we're a sustainable company, we're not on a race to push salaries up all the time, we ask employees to tell us what they need for whatever their lifestyle and their [inaudible 00:39:17] and ambitions are. So, that discussion, actually, for me, came at the end, after I got the job, not at the beginning.
Alex Booker (39:22):
That's very interesting.
James Marriott (39:23):
For most companies, that would be a strange approach.
Alex Booker (39:26):
What was the second phase of the interview process?
James Marriott (39:28):
So, the second phase was the technical challenge. I was given a Figma design and I was given a bunch of boilerplate code and then asked to make a little React implementation of basically a module, like a component. They said, "Do that, spend no more than two hours, upload your code to GitHub, and share it with us. Please share your commits and then we'll review that and if we like it, we'll invite you to an interview to talk about your process here."
Alex Booker (39:57):
This must have been a bit of a relief, there was no need to code in front of someone in that case?
James Marriott (40:01):
That was wonderful, from my point of view. I will be honest, I spent slightly more than two hours on it. I was making the commits, I was pushing stuff, they could see my process, but I was also honest about that in the review.
Alex Booker (40:14):
Maybe I'm wrong, but you sound a little bit sheepish about it. Why shouldn't you spend more than the allocated time on the project?
James Marriott (40:21):
So, I would say that there is this, particularly when you're a junior and you're inexperienced, you spend more time doing stuff than more senior developers, because there's so much baked-in knowledge and you've got to research stuff and you've got to look stuff up sometimes. I was asked to do something which I was familiar with, but not super familiar with and yet, I probably could have said, "Two hours and I'm done," but I decided to finish with the module I was working on, in order to put my best foot forward. I think it paid off, I got the third interview.
Alex Booker (40:59):
There is this temptation to impress and the more time you spend on it, probably the better it's going to be. But on the other hand, the downside, I think, is that if they expect you to do it in two hours, say you do it in five, they're going to have a false expectation of your pace, when junior developers sometimes need a bit more time to do something. I think that can be a trap, actually, because say you get the job and then you're always behind on your deadlines or something, because they assumed you're faster, that's just not a great way to start things off.
(41:31):
But at the same time, I think if you do want to spend a bit more time on it and be forthright about that, you are always selling yourself in a job interview and this is you saying, "Hey, my name's James, I'm going to spend two and a half, three hours on this, but I'm going to be forthright about that. Hey, but check it out, it's good. Maybe you like it enough that me spending an extra 45 minutes an hour on this is agreeable."
James Marriott (41:55):
Exactly. That is exactly what happened in the third interview, where I said, "I spent more time on this, but I wanted to finish the job and for me, it was an interesting problem," which is true. I wasn't lying, I actually enjoyed solving the problem and I wanted to continue working on it beyond the two hours. I said, "This is a fun problem for me to deal with. I wasn't just doing this for the job, I was doing this because it's great fun experience learning, for me, anyway, so I decided to get it done." So, I think if you're honest, no problem. If you're genuine and you're clear, and as I say, they could see when I was making the commits, they could see when I was pushing whatever, there was a track record there. I wasn't hoodwinking anyone by pretending to be quicker than I was. If you're honest and upfront, that pays off.
Alex Booker (42:37):
Was there any more of a technical aspect to that? If I was just to hazard a guess, oftentimes, once you've done a take-home task and discussed it, they're really just sizing you up to see if your personality is conducive to being successful as a junior, humility and all that, and also just understanding, a bit, your motivation to work at the company. Was there anything else to that interview that we're missing?
James Marriott (42:58):
So, as I said, the third interview was a reflection on the technical task. That interview was very good for me, actually, because then I was able to talk with them about what I found the difficulties with the task and what I found good with the task. That is where they were assessing, anyone could have sent the code in that I sent in, so they wanted me to actually talk a little bit and explain a little bit about my process and just be sure, again, that I did write this code and I did send this code and I know what's going on here. So, that, I think, is important to validate, because I was doing all these interviews over the internet, we weren't physically meeting.
(43:37):
I think after that, then that's when I had the fourth interview, which was the culture fit interview, which was the longer one. So, all these interviews I'm describing beforehand were 15-minute ones. I think those short interviews are just validations saying, "This person is who there are, this code is written by them, they do know what they're doing, they do know what they're talking about." And then the culture fit interview was the fourth interview and that's when the HR, the human resources people came in, and those were the longer interview, let's say.
Alex Booker (44:08):
The fifth one, what was that about?
James Marriott (44:09):
That was kind of a, "We think you are the right fit, let's just check," not exactly, "We're going to make you an offer," but I got the feeling that the offer was in the offing and they just wanted to sure that they had made the right decision. So, I'd say, in terms of the most relevant interviews, probably the fourth one was the most in-depth one, and that's why we went into culture and expectations and talked a little bit about that thing that you talked about earlier with the imposter syndrome, how do you handle problems that you can't fix yourself and where do you go for support and what's your approach to that, and then what's your self-motivation, in terms of getting tasks done, self-management stuff? That is where the human resources were very keen to make sure that this person can work within the self-management system that we have. I don't think that system works for everyone. Some people need direct tasks, they can't self-manage and they need someone on their back.
Alex Booker (45:09):
Fair enough. There's nothing wrong with that at all, actually.
James Marriott (45:11):
No. But if you want to work in a very hierarchical company where that is the system and you feel secure and safe working in there, then that's great, absolutely, good for you, but this is not the company I was working for and it's not what works for me. I like the freedom, I like the, hang on, I'm going to go down a rabbit hole for an hour and investigate this little thing, which may be small, but I'm going to do it, and that is my kind of self-management. I will get the task done, but I'm going to spend more time than, perhaps someone will say, strictly necessary.
Alex Booker (45:42):
No, totally. I remember when I started my career, I always wanted to be responsible for my projects and that meant two things, the responsibility, I have to deliver, but also I like the autonomy to deliver it the way I want to and to self-manage, in many ways. That suits me really well, it sounds like it does you, too, James. If I'm being very honest, I used to not really understand why people would want to be tasked with things, but over the years, I've realized just absolutely how valuable it is to have both, because in a lot of ways, you make up for each other's weaknesses. No matter how you like to work, you can be a massive value to a team. I want to hear, James, where were you when you heard the news that you got this job and how did it make you feel? How did the news come to you?
James Marriott (46:23):
I was in the supermarket shopping when I got an email on my phone that was like, "Dear James, blah, blah, blah, we'd like to make you an offer." I'm like, "Ah." It was so funny, I was so excited. The funny thing was I didn't even read the email and I felt like a fool afterwards, because they sent me an email saying, "Please review this contract and blah, blah, blah," and I just immediately replied saying, "Yes, I accept the job."
Alex Booker (46:50):
Oh, James.
James Marriott (46:51):
And then I was like, "Uh, I just read this email properly," five minutes later, "Yes, I will send you all of the information. Sorry, I'm rather excited." They loved that actually, they're like, "No, it's wonderful to see the enthusiasm." But we obsess about little things that really don't matter and sometimes it's hard, because you get self-critical like, "Oh, every little thing I say and do matters," it really doesn't. Focus on the things that really do matter. Sending a slightly embarrassing email? Eh, whatever.
Alex Booker (47:19):
Was this the email where you had to discuss salary and stuff, or maybe that was part of the fifth interview we just didn't quite get to?
James Marriott (47:25):
That was actually part of the fifth interview. That was where I was asked to present salary expectations and salary needs. As I said, my company is a bit different, in that they ask you to not come with a figure, not exactly a justification, it's not like that, but it's more like, "What do you need? Whatever lifestyle you're living, what do you need to make that work?"
Alex Booker (47:48):
Can I be honest? I really don't like the sound of that. I understand where they're coming from. What you need is a salary that's good enough to allow you to lead a happy life where you can bring your best self to work, and obviously, somebody with a mortgage and kids needs more money to sustain a similar quality lifestyle to somebody in their 20s. But I'm in my 20s, I started my career when I was 20 or something, and I brought a lot of ambition and experience to the table, and I want to get paid what I perceive to be fair and equal, based on my efforts and work. I don't think I would get along with that sort of justification, but there's a chance, as well, I'm not quite understanding how it works.
James Marriott (48:29):
So, I would say there's a reason not many companies do this, it can lead to unfairness. We actually have a system whereby we have a maximum salary and you can apply for the maximum salary. So, developers or whatever have a specific salary range that we expect them to be in, you can basically ask for less, but you can ask for more, so that's the way that we work it. However, this is not a one-way street, we don't do it in terms of you bring your needs, you wants, and that's that, and then you're expected to work like a dog. No, you can also bring other things to the table like, "I also need this time every day to myself."
(49:13):
For example, in our company, we have one hour a day on self-development time, paid self-development time, that's clocked in every day. You can do whatever you want with that. It doesn't even have to be coding, it can be if you want. I use it to learn skills. In the moment, I'm doing a lot of a polygraph QL stuff, so I'm spending time doing that. But if you just want to learn to play the guitar, you can do that for an hour paid every day.
Alex Booker (49:38):
Oh wow. That's cool.
James Marriott (49:39):
So, this style of self-management, it is like, "Here's the maximum salary I can get within the market conditions, but that means every second of the day, I've got to knock out code, I've got perform, perform, perform. If I'm not doing that, people are going to go, 'Hang on, we're paying you top dollar, what's going on here?'" If you say, "Hang on, this is a salary which meets my needs, which I want from life, but also in the system of self-management, I'm going to take time to learn things which are good for my career, good for me, good for the company, and good for my mental health and keep me sane," that's a good thing. It prevents burnout and we know that developer burnout is a major thing. If you keep developers knocking out features hour after hour, day after day with no break, it doesn't really matter how much they're getting paid if they can't keep the pace up.
Alex Booker (50:32):
The company being focused on sustainability and climate and stuff like that, is there an element of if you take less salary, that affords the company more to then have a bigger impact and get closer to their mission?
James Marriott (50:45):
Exactly.
Alex Booker (50:46):
That sounds pretty cool, actually. If you're really focused on getting the max salary, maybe you're just not a good culture fit, actually.
James Marriott (50:52):
Exactly. Because, ultimately, what are you looking for the max salary for? Ultimately, what is your life's ambition here? We know that the pursuit of endless growth is the reason that we've got this problem, ever-expanding growth is not sustainable and ever-expanding growth in salaries, you end up with these spikes and troughs, where they hire in massive bursts and then they have to fire a ton of people when the stocks crash or whatever, because they've hired too many people with too high salaries, because that's what they could get at the time, which we're seeing across the tech sector, very junior people getting hired with massive salaries. That, to an individual, looks wonderful, I fully understand that. Oh, you can make $200,000 with a short experience? That sounds brilliant to people. I completely understand why people will be attracted to that.
(51:44):
But at the same time, for the sector overall, let's say maybe we have more, but perhaps less well paid developers, but there's more of us and more contributing, personally, I would go for the second one. It's still going to be pretty well paid, it's still a hard technical job. It's not easy, not everyone can do it. Most people who try, don't succeed in this career. It's not an easy job. Rather than pursuing that ever smaller number of incredibly well paid developers, would it not be great to have a larger pool of slightly less overworked developers earning slightly less money? In my point of view, I would say yeah.
Alex Booker (52:25):
Actually, James, I think there's some wonderful notes to end on. I really appreciate your transparency and perspective on this, and I think it just goes to highlight that there's more to life, even though it might not feel like it when you're searching for your first junior developer job, you might be super excited and even a little bit stressed if you are working alongside some savings or something, there's more to life than just work, and you have the ability to find the company that suits the lifestyle you want and your personal values. Maybe it looks like the company James works for, maybe it looks a little bit different. Maybe it's the total opposite, but it's all individualistic. That's actually the really cool thing about coding, is that there are so many paths into tech and places you can end up. James Marriott, thank you so much for joining me on The Scrimba Podcast.
James Marriott (53:07):
Thank you, Alex. It's been a pleasure.
Jan Arsenovic (53:10):
That's it for this week's Scrimba Podcast. Make sure to check out the show notes for all the resources. If you liked this episode, tell somebody about it. If you're sharing it on Twitter, make sure to mention Alex, he does read it all and he usually replies. Also, if you have a particular takeaway from this interview, why not share that, as well? If you made it this far, you can subscribe to the podcast wherever you listen to podcasts and if you're feeling super supportive, please consider leaving us a rating or a review on your favorite podcasting platform. I'm your producer, Jan, and we will see you next week.