96: Advocating for Junior Developers with Joe Karlsson of SingleStore
Published November 16, 2021Run time: 00:57:01
The job market for mid-to-senior level software engineers is booming, so where does that leave developers who are just getting started in their careers?
Software engineer turned developer advocate, Joe Karlsson of SingleStore, chats with Tim Bornholdt of The Jed Mahonis Group about why it’s challenging to land that first job after bootcamp, where entry-level developers have the most value within organizations, and what others in the industry can do to support juniors.
In this episode, you will learn:
- How a developer advocate marries the needs of the developer community with company goals
- Why traditional marketing and sales don’t work when targeting developers
- What’s changed in getting started in tech
- How the nature of programming is failure-oriented
- How to work in tech if you aren’t good at programming
- Why it’s hard for junior developers to get jobs
- How mid-to-senior level developers can advocate for juniors
- How developers can take advantage of today’s job market
This episode is brought to you by The Jed Mahonis Group, where we make sense of mobile app development with our non-technical approach to building custom mobile software solutions. Learn more at https://jmg.mn.
Recorded October 18, 2021 | Edited by Jordan Daoust | Produced by Jenny Karkowski
Show Links
JoeKarlsson.com | https://www.joekarlsson.com/
Joe Karlsson on Twitter | https://twitter.com/JoeKarlsson1
Joe Karlsson on LinkedIn | https://www.linkedin.com/in/joekarlsson/
JMG Pricing Page | https://jmg.mn/pricing
Connect with Tim Bornholdt on LinkedIn | https://www.linkedin.com/in/timbornholdt/
Chat with The Jed Mahonis Group about your mobile tech needs| https://jmg.mn
Rate and review the show on Apple Podcasts | https://constantvariables.co/review
Are you a Rails developer looking for a new gig? Email us at careers@jmg.mn
Episode Transcript:
Tim Bornholdt 0:00
Welcome to Constant Variables, a podcast where we take a non technical look at building and growing digital products. I'm Tim Bornholdt. Let's get nerdy.
This episode is brought to you by The Jed Mahonis Group. We build best in class iOS, Android, and web apps. We do this by integrating with teams that lack mobile expertise. And we work together to deliver creative mobile solutions that solve real business problems. To learn more about us and to see our pricing something, we're very transparent about, visit jmg.mn. That's JMG.mn.
A small request, before we jump into this week's episode, we're trying something new with ratings and reviews for our show. We obviously know that these asks are annoying, but they're very valuable to us. So as a thank you for actually taking the time to rate and review us on Apple Podcasts, we will give you and or your company a shout out on the show. Leave a rating and review on Apple Podcasts, get free advertising. It's that simple. Even simpler, you can go to constantvariables.co/review. And we will take you right there.
Today we are chatting with Joe Karlsson, senior developer advocate at SingleStore. Joe has a huge following online. He is hilarious, he is insightful. I just love this guy. And I'm so glad that I finally got the chance to meet him. If you are a junior developer or you're interested in breaking into this industry, this episode is for you. We spend the entire episode talking about getting into software development, how juniors can break in, how we in the industry can help juniors to get into this field. It is jam packed. So if you are looking for a new career in tech, this is the episode for you. So without further ado, here is my interview with Joe Karlsson.
Joe, welcome to the show.
Joe Karlsson 2:03
Oh my gosh, thanks for having me. Tim, you and I, we've been Internet friends here for a while and we finally get to chat, at least virtually and hopefully someday, in real life.
Tim Bornholdt 2:14
I agree. I've been following you for a while on LinkedIn and just am constantly laughing at the stuff you put out on Tik Tok and not only laughing but also pretty informative. And especially for the topic we're gonna be talking about today with kind of getting jobs in the tech space, I thought you were a very perfect guest for that. So I'm glad you're took the time to help out here.
Joe Karlsson 2:34
Oh my gosh, Tim, you can't tell but I'm blushing right now. Thank you.
Tim Bornholdt 2:37
Yeah, we turned video off. You were bragging about your Gigabit Ethernet earlier, so not all of us have that luxury, I guess.
Joe Karlsson 2:44
Yeah, that's right. No, that's right. No, thank you. I'm glad you get to put up with my posting online. If anyone else here that's listening too, definitely follow me on Twitter, Tik Tok, of course LinkedIn too. I'd love to connect with anyone who's listening to this too. My name is Joe Karlsson. And yeah, no, totally so glad to be here.
Tim Bornholdt 3:04
Well, your daytime job isn't necessarily just posting awesome Tik Tok videos. You actually do have a job outside of that. So I'd love for you to give us an intro into yourself and what you do currently.
Joe Karlsson 3:15
Yeah, absolutely. So I am a Developer Advocate and software engineer. I currently work for a database startup called SingleStore based out of San Francisco. And, previously, I was at MongoDB as a developer advocate as well. I think developer advocacy is kind of a tricky thing to, like, define. And I think every company you go to, you're even going to have like differences in what that looks like. I tend to be a content focused Developer Advocate, though, which means I'm like producing documentation, blog posts, videos, technical talks, live streams. I don't know, whatever, like kind of technical content developers need, I try to go out and figure out what that is and make it for them. Yeah, but actually, like, sometimes my job is posting online, you know what I mean? Like, especially in the age of COVID, the only ways we're able to engage with developers because we can't have online events or in person events is Google SEO. Developers searching for stuff or them finding it organically on social like, that's the only two places you're like reaching developers right now. So having like a strong online presence is super important.
Tim Bornholdt 4:25
It's kind of like how technology is just everywhere. And you can't really be a business without having technology these days. It's the same with like, you can't really have a job if you're not posting something online at some point, you know.
Joe Karlsson 4:37
Oh, totally. And like, honestly, like, so as a developer advocate, like the job's been around for like 20 years, but like COVID has been a major game changer. Like I've seen demand for the role just skyrocket this past year. I think it's because everyone realized how important having an online community is, especially when we can't meet in real life. You know what I mean? It's like jobs are through the roof right now. Pay is skyrocketing, and there's a ton of new positions and new companies all the time.
Tim Bornholdt 5:03
So really like your role as the developer advocate, then, because that was something I've been trying to figure out. I've never worked in a company large enough to require one. But effectively, you're doing community building, right, like kind of helping. The advocating you're doing is more to convince developers to come in and use the products that you're selling?
Joe Karlsson 5:22
Oh, totally. Yeah, I don't think there is another, so I'm based in the Twin Cities in Minnesota, but I don't think there is another developer advocate working in the Twin Cities right now. I've tried to get it going in a couple of local companies, and it hasn't really quite stuck yet. I do think it will be happening soon. But who knows. But anyway, it's yeah, it's a online communities like engaging. It's like, I don't know, it depends, like I find my job is like trying to figure out what the developer community needs. And then what the business goals of the company I work for are, and I'm trying to marry the two, right? Like, you know, they may have, the company may have new features, new things they want to like talk about. They need to get that word out about it. I can help do that. Or like the developer community needs some sort of, you know, then we want a new Slack channel, cool. Let's go make that, or we need to start answering more questions on Reddit or Slack or Stack Overflow, or whatever. Cool, let's go figure out what that looks like. Or we need like a demo with Java and Spring. Okay, let's go figure out how to make one of those, you know, but yeah, it's like trying to, like marry the two of those. It's kind of a balancing act of trying to, like, make the company happy, but also make the developer community happy as well, you know.
Tim Bornholdt 6:32
Yeah, it's nice to have that person that's able to, I always think of the Steve Buscemi meme of, like, you know, Hello, fellow children, that kind of thing where it feels, a lot of times, when you're a company that's trying to talk to developers, you don't really have a good lens by which to engage with them. And you kind of speak in your corporate terms, and you talk about alignment and parking lots and whatever else. And developers are like, I don't know what you're talking about. So having someone like you there, that's kind of a Rosetta Stone in between to be like, Okay, this is what you actually need to know. And here's what's actually helpful for your job. And, kind of, you know, not to like dismiss people that are in, you know, those corporate environments, but sometimes it's just the way you communicate and the way that you actually, you know, can speak developer is a really a valuable skill.
Joe Karlsson 7:20
Oh, totally. Well, and the thing is too, like, traditional marketing and sales do not work on developers, right. Like, we've all seen, like handing, like mailing a brochure to a developer, that's going straight in the garbage or email marketing campaign. Like, I think developers traditionally have a super high bar for, like, smelling bullshit from sales and marketing material.
Tim Bornholdt 7:40
Yeah.
Joe Karlsson 7:40
And I do think those are, like, so important and so needed, but like, they don't work. They don't work on developes, and the word I think of all the time is trust. Like, I think if a sales or marketing person walks into the room, when you're like evaluating a new tool, like, developers is shut down. I think you really need someone who can, like, speak their words and like be a trusted resource. This is why I think it's so important, like what metrics you're being judged on professionally impact your ability to do your job, especially as a developer advocate. Like, I don't get judged on my ability to sell a tool like, my tool may not be the best way to solve your problem. And you need to be able to trust that I'm going to help you solve the problem, regardless of whether that's our product or not, you know, you know what I mean?
Tim Bornholdt 8:28
Totally, it really is. And I think one thing that really helps, you know, with your reputation is that you actually have a computer science degree and you've got the chops to do it. So, you know, one thing that I wanted and kind of the thing we're gonna move this conversation around was, your journey into tech appears pretty intentional. What has changed in the last decade around for starters, hiring for tech roles, but also, how do you step into tech and grow one's career in the industry?
Joe Karlsson 8:56
No, yeah. Great question. So background on me too. I was actually the lead technical instructor at one of the top 10 best developer boot camps when I was living down in Honolulu, Hawaii. And when I graduate from college, like boot camps weren't a thing, didn't exist. There's either like, there was a couple self taught engineers, but it's mostly CS majors. Obviously, the industry's been kind of changed massively by the boot camp model kind of growing up. Yeah, and obviously like being a lead, like being that lead technical instructor in a boot camp, you see, I've seen, I have massive success stories of like stories, my students, you know, getting jobs at Microsoft and Google and all the big companies and small startups or, you know, whatever, making their own companies. Yeah, I don't know.
And so the three main ways of like, of getting into tech today are traditional computer, like four your computer science degree. You go to boot camp or you're self taught. And all of them are legit ways to get into tech. And for me, I think the key thing too is just like understanding what you need, like, obviously, there's time and money constraints on different ones. And like, if you're self taught, it may take you seven, eight years before you get a job. Boot camps are faster, they're obviously expensive. You're going to be spending probably 10 to $15,000. And then, of course, colleges can take two to four years. I mean, you know, I don't know, depending $15 to $100,000, or maybe even more to graduate, right. I don't know. Even like locally in the Twin Cities here too, like, the bootcamp model is a legit way to get a job in the Twin Cities. I think it's still kind of slowly moving up. Big tech companies are still kind of struggling, I think, to adopt that model. Sometimes, it depends, but I don't know. It really depends. It really depends on like, what you want to do, I think the key too is just like not, it's like liking it. If anyone's like listening to this, and like thinking about whether they want to get into programming, I would suggest like, try it out. Try to do as many free things online as possible to determine whether you want to do it or not. I will say too, I started programming, I hated it. I was so bad at it. I got my four year computer science degree. All of my computer science professors would be absolutely appalled that I was talking to you right now, Tim, about getting into programming.
Tim Bornholdt 11:15
Same.
Joe Karlsson 11:16
Yeah, I sucked at it. I hated it. I didn't understand it. It was too abstract and theoretical. It wasn't practical. And I just struggled with school. And it wasn't till I graduated, right, like I started to enjoy programming, when I could, like, explore it on my own.
Tim Bornholdt 11:30
I'm really glad that I met somebody else who like suffered through computer science school. I'd sit in class and hear terms being thrown around like big endian. And, you know, floats and and all these things where I'm like, you know, I always, I've been programming for a really long time. But the things that in Seaside what computer science programs teach you is that theoretical like, the old joke of, you know, teaching rocks how to think. That's effectively what computer science is. And that part to me was never really the interesting part of software development. The interesting part was actually getting to see what you do on a screen or in your hand and tap and things happen.
So, you know, when you're talking about the, what's changed over the last several years with getting into this space, I think it's that the tooling and the ways that you go about building software have become way, way easier to understand. And once you and be able to actually go from not knowing anything to that fun experience of seeing something going in your hand. Because it's, you know, when you're talking about careers, I think, you know, I've always thought being a doctor would be really cool. But I also don't like reading books. And so that's kind of a problem. Same with being a lawyer, like, I don't like sitting and reading legal briefs. So it's the same with development. Like, if you want to do it, I think your advice is spot on, like, go and try it and see if you actually like it. And if the spark is there, then this can, you know, determine whether you want to go down and learn the theory behind all this stuff, which would be the traditional four year program, or if you actually want to get going go to a technical school or go to boot camp.
Joe Karlsson 13:07
Oh, I totally agree. Yeah, I totally agree. I wish more colleges did take advantage of the practical side of software development, like just making a visual web app or something like that instead of, I don't know. I struggle with that. I'm sure I'm not the only one. So many people struggle with just staying engaged with something that's so theoretical. And I think it gives programming the impression that you need to be good at math in order to be successful at it. Which isn't true at all, you know. I do very little actual math day to day. Not saying that all programming, like, doesn't require math. There certainly are jobs that do but most of them don't. I don't know, you know.
Tim Bornholdt 13:46
Oh, yeah, there's certainly applications where you do need to know math. I'm thinking of like, one developer I know, was really interested in building a watch widget for the Apple Watch that showed the moon, like what phase the moon was in, and they wanted to have the picture of the moon be accurate. So like, when you look up in the sky, it would show exactly the kind of moon you were doing. Well, he had to learn like this whole lunar math, like all this crazy, he was going into, like, you know, PhD level math to be able to write the correct algorithm to do it. And it's like if you were to just start at the beginning and have to learn that lunar math and sit there and be like, Why am I learning this crap? You probably would burn out really quick. But the fact that he's like, No, I want to get this right. And it causes you to ask questions and get curious. Like, I think that's the best way to becoming a programmer.
Joe Karlsson 14:35
No, totally. I totally agree with you. And that's what I always tell people too. It's like, everyone learns differently. The important part is know how you learn. But for me, I have to pick a project that I'm interested in in order to be successful learning a new tool or technology. And like, you know, lunar cycles isn't my thing. But like, if that's your thing, like, go make that thing. Go learn it. And I like to throw new tech into that. I have this problem I want to solve. And then I'm gonna go Google the shit out of that, as I figure out how to make that thing, you know? And that's how I learn.
Tim Bornholdt 15:08
And that's, I think, one thing that, you know, it goes underscored as a developer. And when you're first jumping into this space, I think people have this conception that it is a lot like wizardry, where you're kind of saying the right incantation, and then something magical happens. Where it's more like when you're looking at something like out of Hogwarts and the kids are zapping stuff and things are exploding, and they're turning into cats, and there's all this chaos going on. It's a lot more like that when you're starting, where you're spending so much of your time like bashing your face into the keyboard, trying to figure out why is it not doing what it says it does? And why does it just keep saying syntax error? That's not helpful at all.
Joe Karlsson 15:48
You know what I see in like, a lot of tech, I mean, tech especially but all things it's like, I think juniors have a hard time understanding how failure is a part of the experience of learning it. Like they see a error message as a sign that they're stupid and a failure, not as a part of the journey of actually programming. And I see that even like developer advocacy, I speak at aa lot of conferences and like, people don't see getting rejected from 50 conferences before you get accepted into one as part of the journey. You know what I mean? I think that makes it hard for people. Just like, the nature of programming is very failure oriented. And I think people don't see that side of it. I think it's important to share that that's accepted and okay. And that's part of programming, you know what I mean?
I even flip it too like, specifically with like, public speaking like, instead of trying to get an X number of conferences I'm getting into, I try to get as many failures I can in a year. I think I'm going for like 100 rejections per year right now. So I'm like that incentivizes me to apply to bigger conferences, and I think I could probably get into, more ambitious, and then I might actually get one, you know what I mean? And then yeah, but it's worked well. But even like, I don't know, I feel like there could be an equivalent for try to get, getting bugs is a sign of success while you're programming as opposed to a sign of failure, or being dumb or not, not good enough, you know?
Tim Bornholdt 17:21
Oh, yeah. I think with developing, I find that you spend 80% of your time just mad and frustrated and tired. And you're going through this big trough of depression. But the 20%, where things do go right and do go well are so rewarding, and you get so high off of that like success. That's kind of what for me at least keeps me going through when I'm stuck on a tough problem is knowing that as soon as it's licked, and I figured out all of the right ways to get around whatever I'm dealing with, at the end of that is this moment of euphoria. And that's something that I think newer developers could, it's like you said, it's something that you kind of have to learn and feel if that's something that is right for you. If you like having predictable success happening every time, software development probably isn't the right industry for you.
Joe Karlsson 18:14
Oh, Itotally agree. You know, this makes me think of too, is like, also you can work in tech and not be good at programming. I had a lot of students of mine in my boot camp that were like, not great programmers, but they end up being, like even that experience of going through the boot camp made them really successful at their other jobs, like project management or being a business analyst or product owner, or product. You know what I mean? Even having that, like having a basic understanding or even design, right. Like, some of the best designers have some basic understanding of HTML and CSS, and maybe even some JavaScript to, like, help understand how to make the designs work better with engineers. I don't know, you know what I mean? Like, you can still get into tech without being good at programming, too. That shouldn't be a barrier, either.
Tim Bornholdt 19:02
I think it's just like, when you go and get your driver's license, and you learn how to drive a car, you know. You're not going to be driving Formula One race cars right out of the gate, right? You got to start somewhere. And I think most people are never going to drive a Formula One race car, right. But at least knowing how the car works, and even if it's just at a level of accelerate, slow down, turning, like understanding the rules of the road, just having that base understanding of how cars work is so helpful in so many other areas of your life. And I think with programming, if you can at least learn like a little bit, enough to know what, make it so it's not that whole, like, you know, Moses descending from Mount Sinai with the 10 Commandments or a wizard going into a cave, whatever. That's how I feel like a lot of people think of technology is that it's just this irreproachable, unlearnable thing and once you understand that it's really not that, that really anyone can at least grasp the basics of it. Once you have that base level, then you can take that knowledge and apply it to anywhere else in tech, and like you said, have a pretty successful career.
Joe Karlsson 20:05
Yeah. Oh, I totally agree. Yeah. You can't go wrong understanding how computers work today, you know. Even just if you're like, even just have a computer at your own home, I feel like it's just not a bad skill to have. That being said, I don't think everyone needs to learn how to program, but it certainly doesn't hurt. Like, whoops, you accidentally learned how a computer works like, whoops, dang it. Shucks, this will be not useful at all. Yeah, I don't know. I think it's a strong push, like, a lot of parents are trying to, like, get all their kids to learn how to program, which I don't know if that's gonna be, that's necessarily a good idea, either. But understanding computers work, I think is a good idea.
Tim Bornholdt 20:45
I think there's a difference between knowing how to build and design software versus how to use software. And basic tech literacy is absolutely something that everyone needs to understand. There's so many debates, like, you know, think of like political or think of just in your own internal company, there's so many issues around technology that just people's concerns are born out of ignorance. And if you just took a minute to understand, like, what encryption is and what it means and how you can't just design a backdoor into it that only special people can access. Like, that's not how math works. Yeah, you know, I think that just understanding those basic things, because I don't understand how encryption works. But I at least understand the downsides to putting a backdoor in an end to end encryption. It's little things like that, that I think if more people understood and had that literacy, we'd be in a much better place.
Joe Karlsson 21:38
My worst fear in life is to look like one of the congressmen or some like senators whose grilling the CEO of Google or Facebook and having like no idea what they're talking about.
Tim Bornholdt 21:50
Senator, we sell ads.
Joe Karlsson 21:51
Yeah, exactly. What is Finster? I don't want to be that Senator as I get older. Having a basic literacy is probably important.
Tim Bornholdt 22:00
Oh, yeah, the Finster thing actually threw me off because I was like, I thought it was something with FinTech cause I just saw the meme. And that was my old person moment, then. And lately, I've been tapping my foot along to a lot of like, when I'm at a gas station, for example, and there's music playing overhead. I'm like, Hey, this is actually a pretty good song. And I'm like, oh, no, that music is designed to appeal to a certain aesthetic. And now I'm in that demographic, where I'm tapping my foot along.
Joe Karlsson 22:29
I've been targeted. Yeah, I feel the same way. Every time there's like an Instagram ad that like, it's actually something I want. I just feel, I feel awful. It's like targeting me. Yeah, it knows me too. Well, I mean, I feel shame.
Tim Bornholdt 22:44
Well, there's no shame in that. That's, you know how the algorithms work. So it just means that the algorithms are working.
Joe Karlsson 22:51
Yeah, exactly. Yeah.
Tim Bornholdt 22:53
There's actually, you know, we've been talking about this. There's a blistering hot job market right now for tech. And I think demand for developers is even higher than before the dot com boom, you know, if at least if you're a mid to senior level developer. But I think, I think one area and where I kind of wanted to focus the rest of our talk today was around junior developers. Why do you think it's hard for junior developers to break into tech?
Joe Karlsson 23:17
I would love to hear your thoughts on this, too. I think there's two prongs. First is like, it's companies don't want to invest the time into training up junior engineers. They want someone to hit the ground, they don't have the infrastructure set up for it, they don't have the resources set up for it. It's like, go, go go, like just pump out feature farms, right? Like, there's just no time to slow down and help a junior engineer out.
And then two is, juniors don't know how to market themselves to make themselves appealing to a company that may be looking for someone. Like I think the companies are looking for him. Just like juniors don't know what to do to stand out or be interesting, right? It's like, if I go to a boot camp, or I go do a Code Academy course I'll get hired. Like no. You're going to need to do some different stuff or position it or like fix up some of your stuff to make you look more appealing. And it's tough right now too, like, there's been talk for years now of like the oversaturation of juniors from the boot camp market. But I think Boot Camps are like pumping out junior engineers. And if I'm honest too, like boot camp grad students are very hit or miss on like where their abilities are, where they're going to be a good fit internally. Like you do need to do a certain amount of like assessing to see if they're a good fit. Like just having graduated boot camp is not enough for me to assume that you're going to be a good team member. So it's like, it's just like an oversaturation of the market. And then like not knowing how to do it, and then companies also being hesitant to hire and support people. I'm curious, does that not resonate with you? Or do you have any, like any other thoughts about what you think might be stopping that up?
Tim Bornholdt 25:05
I think those are probably the big, the big ticket ones. I mean, you know, it's a, I think a lot of times, again, we kind of in our industry think that we're cutting edge and state of the art and you know, we're above any other type of thing that's ever happened in human history of people organizing together to solve problems. One thing we've been trying to do in our company is try to take a look at other industries and how they bring up junior talent and one area that we've been focusing on heavy at Jed Mahonis Group has been kind of taking it like how an electrician would rise through the ranks. So you typically like if you're going to have a new, let's say, you're building out a giant warehouse. You wouldn't have a apprentice come in and lay everything out and get going, which is what I think a lot of times in tech, a lot of companies will just hire a junior developer, because they just have the word developer in their name, and say, Go forth and build this scalable system to support millions of people. Where they clearly should not be doing that. In an electrician metaphor and that kind of mental model, you've got a master electrician who will go in and lay out how all of the wires will go in, what gauge they are, all of that stuff. They'll kind of lay out the whole building, then you bring in a journeyman who will come in and actually do the work. They'll put in the circuit breaker, they'll run the cables, they'll run everything. And then they'll bring in an apprentice to be watching the whole time. But also they'll be screwing in like faceplates and putting in light switches and doing the like very easy basic stuff to get them going and expose them to new problems and things like that. And that kind of mental model is what we've been trying to do with our group is, is make sure that we are keeping our senior developers doing senior developer tasks, having our junior developers available to do the junior developer tasks. And then the mid level people are really doing the grunt of the work while you know helping kind of train up the people under them and also taking direction from people that are above them.
Joe Karlsson 27:08
Yep, no, I love that. Oh, I totally agree. I mean, that should be the depth of like, imagine like a pyramid or triangle shape, right? Like you have leads who are kind of helping keep things moving and unblocking people, but mids and juniors kind of helping, you know, supporting each other, but kind of doing the actual day to day programming work. But everyone's kind of guiding and helping there. And you have that like depth. And I think it's also important too, we talk a lot about supporting juniors, but we never talk about how juniors can support your team like your mids and senior members too. Because like leadership is a huge part of growing as professionals and like, I think a lot of engineers want to be in the position where they're mentoring and growing and helping guide other team members, right? Like you can help grow your team internally, and like make more fulfilling careers for your team by having junior engineers for your team to help support, you know. It's a win win.
Tim Bornholdt 28:02
It really is. I think one other thing that kind of just came to my mind too, and I wanted to throw it out before I forget it was, you know, when I was learning web development, it was back in like, 98, 97, like, sometime in that timeframe. There was not much to it, like, it was very easy to, you know, right click and view source. And there were like, different things that it was so easy to build a website. And, you know, they looked easy as well, like, the quality that I could do as a third grader was as quality as the Space Jam website could do. You know, like, we were not that far apart, where I think, you know, I've had 25 years to build on that experience and come up with Flash and jQuery and like, you know, kind of go through the ranks to now React and View and everything else that's out there. Where coming in today, you kind of have to get like dropped into the middle of like, it's like you're watching the soap opera unfold for 25 years, you're just starting at the last episode. And you have no context for all of the stuff that's come before you. And I think part of the problem is that we kind of drop junior developers into, Hey, build a Docker application that can scale with all of this and do all of that. And I'm still sitting here, like as someone that's been doing this for a really long time, and trying to keep up with all of this stuff that's coming out. But I at least have the benefit of being like, Oh, okay, Docker is like, you know, Capistrano or it's like, whatever. Like, I can kind of walk back through the trace of all these products that have led to Docker, where a lot of junior developers, you just kind of get thrown into the crap and you have to figure it out.
Joe Karlsson 29:38
Oh, totally. Yeah, I totally agree. A lot of the structure of the bootcamp that I ran was kind of based on following the history of web development through like, web one, web two and then, like, programming models, right. Like caise I totally agree. I think we've had the benefit of seeing how it grows and kind of stepping through from a simple development cycle into like massively distributed web scale applications, with like massive team members, but yeah, you're totally right. Getting thrown into that's wild and you shouldn't. Like understanding why and how we got here is like, I think important, that context. Not saying you have to know all that history to like, become a programmer, but like, if you want to become a lead, I think it helps to understand the context and growth and kind of why we make these decisions.
Tim Bornholdt 30:24
Well and it's just like with that lunar math example from before too like, you don't need like, I think a lot of times, when you're starting out in a field, you don't really know where to start. And you don't know what is important. So you're kind of just absorbing all this information all at once. And it's so hard to parse through like, Okay, do I actually need to know what a blink tag is? Or is that just a funny relic of the past? You know, I think that's probably a big chunk of it is that it's hard to, again, when you're starved for developers, like, you know, the entire industry is, you kind of just want someone to be able to come right in and not have to get them caught up to speed. But I think we're thinking of the problem backwards, where we really do need to have, like, people sit down and help bring people into the space and say, you know, You don't have to worry about that. You don't have to worry about that. Just focus on this thing. And then as you're going through this thing you're going to get exposed to, you know, why is there a marquee tag in this, you know, code or whatever? And you're like, oh, okay, that was from this, this and this. And then that context, all of a sudden makes a lot of sense. You just kind of have these facts thrown in the back of your brain that you need to recall on demand. It's so hard to just pull those up.
Joe Karlsson 31:32
Oh, totally. I love that you brought that up about the just getting guidance on what's important or not important. And there's so many things, it depends on what industry you're in too, to kind of knowing what that looks like. And I think you're right, it gets very overwhelming. Actually I call programmers who are jumping from one shiny tool and technology to the next Magpie programmers. Mag pie birds are typically drawn to shiny little things, right? But easily distracted, and it's hard to build depth or like a deep understanding of stuff if you're constantly jumping from one thing to the next. Yeah, and it takes time and kind of guidance on that, too. And Tim, I'm sure you've been there, too. I've been there too, like overwhelmed. There's just so much stuff. I don't know where starts. I don't have time. I don't know what industry I'm interested in. I don't know what I want to do. I'm just kind of trying everything to figure it out, just kind of get the lay of the land, you know.
Tim Bornholdt 32:23
It's funny you say that like cause I think that's the question I wanted to actually bring up next was like, I think all of that is because people are trying to get experience and trying to figure out like, what is the right kind of experience? And what do I need to learn? Like, what do you have, what do you have on that front of like, how do juniors actually get the appropriate experience?
Joe Karlsson 32:42
Oh, I know. Yeah, you know the worst. I see this too. I have a lot of, I guess my younger friends who are like coming out of college. I think they're like looking for purpose and guidance on that. And the worst thing I've seen people do is just like, sitting around at home, playing video games and doing nothing and expecting this answer to come down, you know, like a shot of lightning to, like, infuse them with a knowledge of what their purpose is and what they like to do. But I mean, it doesn't happen, right? Like, the best way to know what you want to do is to do anything. It doesn't even have to, it doesn't have to be good, doesn't have to be what you want to do. Worst case scenario, you learn what you don't want to do, right? Like it's like this, I hate this. Okay, cool. Now, you know.
I don't, especially when you're first getting started, I think the best thing to do is just kind of play around and explore. I like to have fun. I'm just working on like fun goofy projects that I like. They don't even have to be good. You don't have to publish them, don't have to know about them. But like making something, you might make something interesting but it doesn't have to be. You don't have to make money. You don't make a business out of it. But just like playing around with new stuff.
Personally what I do now, I don't program all the time. Like in the summers I don't program very much. I program mostly in the winter. And I like to do art projects or like digital humanity type projects personally. But every time I start a new project, I try to incorporate at least one new piece of technology into that stack. So I can kind of explore what that looks like. I'm just like constantly slowly kind of trying stuff through time, right, like I don't know. Learn by doing I guess. That's what I do. I don't know. Some people like videos. I don't. I'm probably one of the few people who makes more videos than they consume. I make them but I do not watch. I don't know what that says about me but I'm probably one of the few out there that says that. But I just like to make stuff, you know. Yeah, I don't know. How do you learn new stuff? How do you pick up new stuff, Tim?
Tim Bornholdt 34:46
I think your points were absolutely right of how I consume content as well. You know, I can sit and watch a go rails video for example. I think they make phenomenal videos but at the same time, it's really hard to just kind of watch somebody else do it and then copy and paste the code and be like, Alright, well, I copy and pasted some code that really didn't teach me much of anything. Yeah, I think the point you made about exploring, I mean, I think you should be exploring your curiosities is really the best way to get experience. Because in this space in this market with this time, where we're at in history, again, technology is everywhere, and everybody needs help with technology. It doesn't matter what kind of organization you're running. If your kids soccer team, for example, needs a website, that's an easy way to go and explore. You don't even need to build a website. You can go to like, you know, Squarespace or something, just like get a website started. And then when somebody says, Hey, we should do this to the site, and you've hit your limits, explore that, dig into that, say, How can I get a calendar to embed on a website? Or how can I get, you know, how can I integrate with this other scheduling program, and that might lead you down to API's and learn how to interact with that. There's all kinds of, of problems out there in the world that can be solved with technology. And frankly, a lot of them have like, you know, the quote, unquote, the real problems we have in our lives have been solved with technology, at least people have tried to solve them with technology. So there's all kinds of ways. If you see a problem just go on and Google and find a GitHub repository that has that problem and try to read the source code, understand it, try to run it yourself and make changes to it and see what happens.
Joe Karlsson 36:31
And if it's already been solved, who cares? Go solve it again. You know, like, my first web app ever built was a Twitter clone on Ruby on Rails. That's how I learned how to do servers and back ends and MVC. Twitter's been solved. Who cares? I made a Twitter clone. I learned a lot. Awesome. Yeah, you have a wedding coming up? Cool. Make a wedding register website, or your wedding information website. Anything. If you need something, go make it, even if it's solved or not. I don't know. Make it as easy or as hard as you want. And I totally agree with you. Like, if you make something, you start like getting down a rabbit hole a bit like, Oh, this feature would be cool. Cool. Figure it out. Go at it. I'm gonna add, embed Google Maps on it. Cool. Give it a Google, you know.
Tim Bornholdt 37:18
Go do it.
Joe Karlsson 37:19
Yeah, exactly. And it's so hard for me to tell, because people ask me that all the time. Like, how do I learn how to program? And I sound like a pretentious, like idiot just like how do you learn how to program, like go program, something, which I don't know how helpful that is. I think there's an art to learning how to Google, there's an art to learning how to read documentation. And that can be really scary, too. I would encourage people too, as they're getting in there, try to find peers that are doing it. And there's so many open source projects. There's a ton of developers, there's a ton of meetups, if you're listening here in the Twin Cities, about learning how to program, start going to them. Get help, ask dumb questions, you know what I mean? You don't have to do it alone. But I encourage you to do something.
Tim Bornholdt 38:02
What do you think could be done to, like from us, from our high horse that we're riding on right now? What can we do to make life easier for juniors to get into our industry?
Joe Karlsson 38:15
I think each of us has our own thing and own like, capacity. I have like a small audience online, and I'm trying to use that platform to make it less scary. I want to try to be more vulnerable in showing the blood, sweat and tears that goes into it. I think often with my job producing demos or blog posts, it looks like I just come down with a fully formed working demo off the mountain right? Like Moses, right? But there's not right. There's a lot of bugs, lot of googling. That's why I do like live streaming to show like all the bugs and errors I run into while I'm programming. I want to show that side of the process, the development side of it. And then maybe you've seen some of my Tik Toks. I try to be vulnerable about like, errors I run into or mistakes I've made what programming and I try to do it with humor and jokes. But I'm not currently a tech lead. I was though at BestBuy, so I had a team, like a team I directly managed right. There's a lot of things you can do if you're on a team and you're like a mid or senior level member, having good internal documentation about how your tools work, making it really easy to set up, having DevOps make it really easy to deploy and also making tests in place and enforcing those so that it makes it harder for juniors to fail or to cause a catastrophic failure before pushing out code. Teaching, sharing like experiences, celebrating think non feature type work can be really important if you're a technical lead. Something I see a lot of organizations running into a lot is only celebrating major feature work and not celebrating you know minor optimization wins or some bug fixes that maybe a junior did right, like the type of work you celebrate and compensate for also tells a lot about your culture and what can be celebrated. Yeah, and I don't know, just making okay to like ask them questions, having an internal information source like a Stack Overflow type thing internally to like answer questions or forum tab to have dumb questions. And also receiving feedback two ways, right? Like asking questions from juniors about what they need and want, and what could be improved and then trying to make the space and time for that to be improved. Depending on the size of your org, it's probably going to may or may not be in place. And that's okay. But working and showing that you're working on that can go a long way for helping make your lives of your junior engineers better, you know? Yeah. What do you guys do? Is there anything else you guys are doing at your company to like make that easier?
Tim Bornholdt 40:46
Now we hate juniors here.
Joe Karlsson 40:48
I'm sure.
Tim Bornholdt 40:52
The thing with my company is, you know, we're pretty small. And we haven't really, we're working on building out process right now to make it easier. And I think that's, that's the first thing I think is, is being honest and upfront about what kind of support you have for junior. Because I think a lot of times people like to say they're good with junior developers. But then when you actually talk to junior developers, they're less than impressed with what you've done for them. I think that one thing, one piece of advice that I took away, I can't remember if it was from my time working with Prime or what, but they had somebody brought up that when you're working with somebody, and this goes, this could be in any context for anything but especially in software development. I think a lot of times what happens is, people feign surprise frequently, which like, so like, what I mean by that is, if a developer, let's say you have a junior developer, and they're working on a new feature, and they say, you know, how do I do this thing? And you say, Oh, just go on, you know, XYZ website, and they're like, what's XYZ website? And you go, you've never heard of XYZ website before? That feigning surprise, like everyone does it, right. We all do that. But what you don't realize is how it makes the other person feel. Because at best, you're not really, it at best, it doesn't do anything. It just shows off how good you are, and how much you know, and how little the other person knows. At worst, you're making this person feel stupid, and that they should know the answers.
So I think there's little things like that of just how you interact with people. When you're dealing with somebody that is asking you about questions that you know a lot about, and they don't, that's one thing I've been working really hard at is trying to meet people at their level. And instead of seeing somebody asking about such a thing, and you say, Oh, you've never heard about that? Instead, approach it with enthusiasm and say, Oh, yes, I get to explain this new thing to you that's about to blow your freakin mind. Here is this new thing that's going to open up your whole world. It's like, I think those kinds of interpersonal skills, I guess, are something that I've been working really hard at with our company at least.
Joe Karlsson 42:53
No, I love that. Having the empathy for like, how, responses and being talked to. Yeah, cause you don't to be condescending, or, you know, yeah, talk down to someone when they're like learning something. What this reminds me of too, is there's a quote from Mr. Rogers, an interviewer asks him, like, How are you so good at talking to children? Like, how do you know what to do? And Mr. Rogers says, like, Well, we've all been a child before, like, it's just like, tapping into the inner experience of how you wish you had been talked to as a child. And I feel like the same thing as a junior engineers, right? Like, we've all been in that position, someone's taken a chance on you and I Tim to, like, learn new stuff. And like, the content I'm creating today is stuff that I wish had existed when I was learning how to program. I'm making the thing that I wish I had had. And it's not going to be able, the stuff I make doesn't work for everybody. And that's okay. But I'm trying my best. And I'm learning and I'm getting feedback on what does or does not work. But I don't know, just like remembering that all of us were new, and someone took a chance on us and like trying to remember what that feels like. I think it's important, having that empathy.
Tim Bornholdt 44:00
Yeah, it's really stepping into, I know that there's something out there that I read recently about there's a term for the bias that once you learn something, and you know something, and you're a master of something, that it's so hard to put yourself in the shoes of somebody who is not in that position anymore. And that's what like, I still volunteer with prime Academy. And I've been doing this for so long now that when people are asking like, Okay, so how did you get into development? I'm like, Well, I remember sneaking off to the library and checking out books on HTML, and then reading them at church, like when I'm supposed to be singing along or whatever, but I'm sitting in the back just reading HTML books. That point of reference has zero relevance to like anybody anymore because who goes to a library, who buys a book, who, you know, the list goes on and on. So it's like, the way that I learned is so completely different, but I still try to put myself in at least the mindset of, I had a thing I wanted to build, and I don't know how to build it, so I'm going to just try to open my mind and learn from as many sources as I can. And I think now that we have the internet, we have the ability, like, I think it's easy for senior developers to just say, Go on Stack Overflow and do it. But for me, it's kind of like you said earlier of knowing what to Google for. I honestly think that's probably 95% of my job now, as a senior developer, or whatever. I know what to Google for now. And I know how to get to a solution.
Like the other day, I was working with a company that's building something with Raspberry Pi and Python and a camera. And they, the developer was using this framework that I had never used before. I had never encountered, and they're like, can you figure it out? And I was like, I'll take a shot. And I just kind of knew, because of how long I've been doing it, I knew what to Google for, and ultimately figured out what the problem was, and showed it off to them. And I'm saying that not to pat myself on the back. But I'm saying it because I've done this long enough that I was able, the developer who had did this was junior and instead of coming down on him and saying, Why did you architect it this way? That's not the right way to do it. I said, Okay, here's why the way you did it was wrong, just so you have that understanding. And then here's some possible ways of getting out of this problem. And he took that and went back and he's currently fixing that up. And I hope at least that that was more productive than me kind of coming in with my neck beard and telling everybody how great I am about programming.
Joe Karlsson 46:23
Yeah, totally. No, I love that. That's amazing. Yeah, it's, well, I just posted something on LinkedIn, it was, there was a much better way of like, a really great name for it. But it was like, giving help without unasked for help, or like, giving help in a way that no one wants or needs. I think it's a hard time for programmers. We're just used to kind of saying, I don't know, the solution or kind of walking someone through it too. And maybe that they didn't ask too, and yeah trying to give feedback in the way that they want. I think you're right. The best way to know how to do that is to just ask, you know, like, maybe junior developers just like complaining about something, and they just need to vent? Ask to see if they actually want help on it. Or, you know, are they looking for a solution? Do they want to spend more time on it? Asking for what they need can be really helpful and go a long ways. I don't think we do that enough.
Tim Bornholdt 47:19
Oh, yeah, I agree. I mean, a lot of times, it's again, in this market, everyone has so much tech work to get done. And we don't actually take the time to train people on how to get caught up to speed. And it's one of those things where it does suck sometimes to have to sit down and explain to a junior developer how to do A, B, and C, and especially when you're have timeline pressures that you're trying to get something out the door. But the more I've been doing this, the more I've been realizing that if you take that, like 20 minutes to sit down and explain something to somebody and you set them off on the path, then all of a sudden it frees you up to be able to do stuff down the road. You now have somebody that is built up to be able to do those things. So I guess, I think, the what can be done? You know, going back to the original question, what can be done to make it easier for juniors is for us to just get over our egos and actually meet people at their level and help them figure out how to get into this space.
Joe Karlsson 48:14
Tim, engineers don't have giant egos. We're famously known for being very...
Tim Bornholdt 48:20
Humble.
Joe Karlsson 48:22
Having a lot of self, being self critical. No, you're totally right. As for our egos, absolutely. I was thinking too like, I think it's up to like seniors and technical leads to advocate that time for their junior engineers. I think a lot of times I see like, Oh, we just hired X, blah, blah, blah. And they are, they're slow and can't figure things out. Like, it's up to you to advocate for that time, either for you to like get to train them up or create materials, help them or just directly help them. Because juniors, I think have a hard time advocating. I mean, I understand they'll probably blame themselves. And like some engineers, some juniors just don't get it. And that's fine, too. But like, give them a shot. You know, you got to, like, give that time and help fight for them if you can.
Tim Bornholdt 49:05
Well, I think one thing I've been trying to work through in my own life has been thinking more of myself in the way a doctor thinks of themselves. You know, I think a lot of times people come to developers and say, This is how we need to do it. It's ABCD and E, where I don't think, maybe I'm in the wrong, but I would never go to my doctor and say, There's this rash on my arm. I know for sure it's this, so you need to prescribe that. It's like, you know, that's not how it works. And I think that from in this particular standpoint, if you are a senior developer, and you've got a team of junior developers, I think it is your duty and responsibility to go to people higher than you and say, Hey, we need to set up a better program for A B and C and you need to help me carve out time in my schedule so I can support these people and help them get caught up to speed and that's only going to help everybody in the long run. It can't necessarily have, you know it shouldn't come from the top down in that regard. I think it should. But if it's not, then it needs to be from the bottom up and help explain to your bosses that we need to have these programs in place.
Joe Karlsson 50:11
Yeah, totally. I feel like without that pushback, the business will just continue to ask you to produce more business features, which is fine. That's their job. But it's also our job to help advocate for what we need too, right. We need better testing, we need a better DevOps flow, we need to support juniors, we need documentation, we need to refactor this. Like, the business won't know and they'll continue to just consume your time unless you are advocating for that.
Tim Bornholdt 50:36
100% agree.
Joe Karlsson 50:37
It's dangerous to wait for the business to make good decisions for what your team needs, because it won't happen. It won't happen. I guarantee you. You're gonna be very sad, over, over and over and over again. It's like you got to advocate for it, man. You got to be strong in that regard. That's hard. That's hard. Pushing back. I've gotten like some nasty fights with product and bosses before around advocating for things we need too, like it can say a lot about the culture too. Like if it's okay to ask that kind of stuff, too, you know?
Tim Bornholdt 51:07
Oh, yeah. And it's a lot of the stuff where it's like, I always say it's kind of like going to the dentist and getting the question of have you been flossing? Well, a lot of times, you know, maybe some people are perfect at it. I certainly am not. I'm terrible at it. And I know I should be doing it. But here we are. A lot of times you have to go in and be the dental hygienist and make people feel uncomfortable for having bad practices and find ways to floss more.
Joe Karlsson 51:34
You got to bring up, yeah, totally, bring up uncomfortable stuff is hard. I mean, that's part of being a senior engineer too. It's just like you see some technical problems or production went down and security flaws, you got to like, there might be some uncomfortable conversations you got to have. That's part of why we get paid.
Tim Bornholdt 51:51
Exactly. Last question for you, Joe. It's kind of a two part question. So it's kind of the summarization of all of what we've been talking about. So what advice would you have for junior developers right now in the Fall of 2021? And then in parallel, what advice do you have for companies that are hiring tech talent right now?
Joe Karlsson 52:12
So like, fall 2021, Tim, I don't know if you've seen this, like nationally the tech market has fundamentally changed in the last three months from what I've seen. I just switched jobs a couple months ago, and I got a massive pay raise. And I think across the board demand has only gotten higher. It was already high before. It has gotten higher. And I think that it's most, I think it's affecting everyone in that it's trickling down to the junior market, too. I'd say if you've been in a job for about two years, 100% look for, like anyone, any skill level, look around for a new job. Juniors, I guarantee you, you are being underpaid. I guarantee you if you've been a job for two years, you're being underpaid. Look around. Money's not the most important thing in the world. But it does, it is nice, having more money is nice. Look, look around for new jobs. And if you're a company hiring right now, again, the market has fundamentally changed. Look at how much you're paying your engineers. I guarantee you that they're being underpaid, and you need to like look at how to and you might need to adjust your pay raise or your like pay market. The market is insane right now, for sure.
The other thing juniors like just have a decent portfolio. If you don't just have a decent GitHub and make sure your READMEs are great. Make sure that like it makes it easy to set up and you have working links to your product or your work doing something, doing whatever it does. The worst thing I can see is a GitHub full of half finished projects with no links and no documentation on how to get their projects working. I want to see some interesting work after you graduate from a boot camp or whatever. Yeah, I think that's about it. Look around, the market's wild right now, look around.
Tim Bornholdt 54:02
I think from both sides I guess it's this point in history that very rarely happens for any kind of class of employee where you really do have the pick of the litter. And I think that like you said, money isn't everything. There are obscene amounts of money being thrown around for jobs right now. But that being said, everyone is throwing around obscene amounts of money and what you really need to be, you know, basing your job search off of is culture and finding companies that will care about you more than just giving you a, you know, the money is kind of a baseline thing at this point. What you really want to do though, is not step out of a situation that's good for you right now and then into another one that's really crappy for you for what one reason or another. It's hard to kind of gauge that but that's one thing like I would say like for advice for companies hiring right now is do those things that we've been talking about throughout this whole episode, like, make sure you've got like good support in place for juniors, make sure that you're listening to your team when they tell you that you've got technical debt and you need to invest in making your stack more secure.
Joe Karlsson 55:09
Oh, I totally agree. I totally agree.
Tim Bornholdt 55:11
Joe, this has been incredible. I'm so glad we got a chance to talk. You mentioned it at the top of the show, but just in case now you've won more people over, how can people get in touch with you and follow you on all the socials?
Joe Karlsson 55:22
Yeah, my name is Joe Karlsson. I work for SingleStore, check out SingleStore.com We're a database for data intensive application. So if you like you've maxed out your database, your relational database, you should for sure check us out. Two, I'm on all the socials, you can check out, I'm on Tik Tok. I make funny tech videos. Twitter, please follow me there. LinkedIn, YouTube, Twitch all the things. I'd love to hang out there. Best place to follow me probably is on Twitter or LinkedIn, honestly. You should go check those out too. Again it's Joe Karlsson.
Tim Bornholdt 55:56
Awesome. Joe, thank you so much. I really appreciate you taking the time to come on today.
Joe Karlsson 56:00
Absolutely. Tim, this has been amazing.
Tim Bornholdt 56:03
Thanks to Joe Karlsson for joining me on today's podcast. You can learn more about him at JoeKarlsson.com.
Show notes for this episode can be found at constantvariables.co. You can get in touch with us by emailing Hello@constantvariables.co. I'm @TimBornholdt on Twitter and the show is @CV_podcast.
Today's episode was produced by Jenny Karkowski and edited by the quick witted Jordan Daoust.
Like I mentioned at the top of the episode if you could take two minutes to leave us a rating and review on Apple Podcasts, we will give you a mention in a future episode as a thank you. Visit constantvariables.co/review and we'll take you right there.
This episode was brought to you by The Jed Mahonis Group. If you're looking for a technical team who can help make sense of mobile software development, give us a shout at JMG.mn.