If you're not getting callbacks or you feel like you're just not growing, then honestly, you need to find a support group or a mentor that you can trust that's experienced in the industry that can help understand where you're at and guide you further along.
Because there are skills and things that you just don't know that you need, or there are improvements that you need to make that only somebody that is very experienced can come in and help hone you to get you to that position. Welcome back to the Free Code Camp Podcast, your source for raw, unedited interviews with developers. Today, we're talking with Shashi Lowe. He's a software engineer at Microsoft who grew up in a family of refugees.
Shashi abandoned his art school program and taught himself how to program so he could start saving money earlier. He was able to land freelance clients and still freelances today on top of his full-time job and raising his four kids.
Support for this podcast comes from a grant from Wix Studio. Wix Studio provides developers with tools to rapidly build websites with everything out of the box, then extend, replace, and break boundaries with code. Learn more at wixstudio.com. Support also comes from the 11,384 kind folks who support Free Code Camp through a monthly donation. You can join these chill human beings and help our charity's mission by going to donate.freecodecamp.org.
For this week's musical intro with yours truly on drums, guitar, bass, and keys, we're going back to 1990 with the Metal Gear 2 Solid Snake theme. ♪
Joshy, welcome to the Free Code Camp Podcast. Thanks for having me, Quincy. I am so happy to be here.
Yeah, man. I've been looking forward to getting you on the podcast for quite a while. You're somebody who has a lot of domain expertise, both as an engineer and as somebody who has a background in art and cares about aesthetics, cares about craftsmanship. One of the things that I wanted to start with asking you is I know you deal with a lot of pull requests over at Microsoft, and you're constantly having to do code reviews and things like that. What is the right size –
That is a difficult question to answer.
I say that because sometimes, obviously you want small ones that are within 20 lines of code changes, simple. You look over it, you understand what's happening, and then done. Or you add one comment or whatnot, and it's good to go. And then sometimes you get ones that are large. When you say large, what is a large pull request that would be unwieldy?
a large pull request is like something with 50 code changes um thousands of lines of changes uh even hundreds sometimes right because it's a combination of file changes and lines of changes that's when it gets massive where there's too many dependencies everywhere and then you have to track them down uh to figure out what's happening and yeah sometimes it's like
easy because the PR is the same thing that somebody or your team is implementing. Let's say it's a new service, right? And it's the same thing. Title, products, display, all that is very similar. Then that's pretty simple, straightforward. But if it's something more nuanced and it's a new feature or whatnot, and then now you're changing multiple things and there's a lot of dependencies,
where you could have decoupled this PR into multiples, smaller tickets and sub items, that would be helpful. And then creating a milestone branch that you can push that into and then you can test the feature there, opposed to creating this massive PR that now,
If there are 10 changes in there, it takes you the individual couple of days or a day to change that. Come back, no way to re-review it again. It could cause regressions and it might be out of dependency. So it's just like a lot of back and forth.
Yeah, so maybe you can walk me through the ideal process of getting a code review done, which is something like code reviews. For people who are uninitiated, what is a code review and why is it important? And then what would an ideal code review look like for you? Yeah.
Yeah, absolutely. An ideal code review would be a small set of changes that are created into a review. And as an individual goes in to review that piece of code, it's easy for them to understand the changes that are occurring. You can look at the PR and you can pretty much read it like a sentence or like a paragraph.
where you're understanding what's happening and you're understanding the changes that are occurring, even if you have to go to the main ticket to understand the changes that are being implemented. Yeah, and when you say the ticket, you're talking about maybe like a GitHub issue on open source. People are like, hey, this is broken. That would be like the ticket. And maybe at like...
Microsoft, you have your collaboration software. Maybe it's like turbocharged version of GitHub or something like that. But for open source projects like FreeCodeCamp, we just create issues and then every PR should reference an issue because we don't want to be able to try to fix things that aren't broken or something like that. Things should be thought out and there should be a problem case described before you start going and changing things in the code base generally. So when you say take it, I just want to be clear. That's what you're talking about.
Absolutely. Yep. Yep. Yep. Those like bug tickets, feature tickets. If it's asking, hey, there's a bug in this navigation is going to the wrong page. Right. You go in, make that change. Then you just make that little change and you write unit tests if you have the code base has unit tests as well.
And then all that is within the pull request itself. It could also be a feature change where, hey, we're adding a new course to FreeCodeCamp. We need to go in, add all this content, connect it and display it. And also it's a new formality that we're trying to add in. Like all these things,
They take time. But planning it and also decoupling these features will help a lot too because then not only will it be smaller PRs, but other individuals can also contribute and make this process more streamlined. Because in the end, you...
As a reviewer, you... Like for myself, for Microsoft, I have a bunch of work to do already. And if I have to review code as well, I have to take time out of my day to context switch to review code and to provide comments and stuff. And a lot of the times...
People just skim them. And it's a lot of work to go in, understand the work, understand the changes that are happening and all that. And they're just like, well, this looks pretty good, so let's just let it go. But for myself as a reviewer, I am very diligent with my reviews. I want to make sure that the quality is there. I want to make sure that we have ample unit testing. There's no regressions, right? That's the biggest thing is...
When you make a change and it causes a regression in another area. A regression, like a screw-up, basically. Yeah, a screw-up somewhere else. Something gets worse than before. It regresses to a poorer state, essentially. Exactly. And then a customer comes back and says, hey, I can't access the JavaScript course in FreeCodeCamp.
Oh, I didn't know that the thing I changed caused a regression over there. I didn't know that there's other things that were tied to this feature or function that I touched. And so those are things that you definitely want to mitigate. Yeah. And when that happens, it's the fault of the dev who broke it. But it's also the fault of the reviewer who did not catch it. So if you're one of those people who are just smashing the thumbs up, looks good to me.
LTGM, right? Yeah, yeah. And then moving on with your day. Well, hey, guess what? You're culpable in that failing because you gave that person false confidence that their code was good to go. That's a great point. At Microsoft, what we do is when any changes cause a regression and we have a custom report of incidents that come in through our ticketing system,
Whoever approved of that PR is on dock to fix it and explain what happened. Even though their dev made the changes, you are the last stop, right? You are the one that reviews it. You are the quality control. And yes, it's partially the developer's fault too. But you are the one that says, hey, this is good. I'm going to let this go.
And oftentimes we have like currently we have a QA team too. So they'll take that after you merge everything, they'll look at it. They'll analyze the changes that came through for that night, ensuring there's no regressions as much as they can. Right. Because there's unit testing and end testing and all of that.
But QA testing will manually look through stuff. And sometimes they'll catch things too. So there's like a lot of like bottlenecks that happen. But if you don't have that, then you are the one. You are the one that is approving these changes that goes through. So be very diligent, very careful. Yeah. So just to recap.
First of all, make your changes atomic. Make them small enough that you will not give people an excuse to just kind of like skim the PR. But actually, if it's like 40 lines of code, like, okay, maybe I can grok that and figure out all the different places it touches and be like, okay, this looks good to me. But if somebody sent you a PR that was unwieldy and you couldn't do that, would you say, hey, can you make a smaller PR? Can you break this down into several PRs?
Yeah. I think that's ideal, right? The best thing to do is like separate it or if not, then go back to the ticket itself and say, Hey, we need to separate this ticket out and break it up and decouple it so that it makes much more sense from a coding standpoint, because all these changes could have been done incrementally. We could have done the API first and then done the UI or done the components first, build them out and then go build the page. Right. Um,
being able to do that will help you along the way because then it's kind of progressional where if there are any breaks along that point, any issues that happen, then it's easier to understand that. And also from a reviewing standpoint,
I don't have to review a thousand lines of code. I can review 20 at a time, 20, 50, 20, 50. It's a lot easier to understand that. And then by going to the milestone branch, like I was saying is like you have 10 of these tickets that go into this milestone branch that hasn't gone to production yet. It goes to an environment where you can test it out, make sure you can test for breaking changes, um,
Um, and all of that, and then ensuring that all these 10 things go into this one milestone feature branch, then you can confidently say, okay, like everything that we've done that goes in here, even if it's incrementally now it's, it's solidified. Now we can push it out there and allow, um,
and push it out to the public. Yeah, man, they should get you giving talks over at CrowdStrike because they blue screened everybody by just not doing what you just said. Yeah. Literally, like I had tons of friends who were like, their flights got canceled and stuff because people didn't practice this kind of like,
of new code before getting it into production, right? So I think like the lesson from what you just said, break things down into bits, smaller bits, and do not be afraid to push back and ask other people to break things down into smaller bits. Because if you don't,
Because a lot of times an issue could actually be many issues and you don't necessarily know it until you start talking about that issue. And that's why GitHub has the nice threaded conversation on the issue page as well as the PR page. It's not just for reviewing the code, but reviewing the actual instructions that people are like, what is the actual thing you're trying to accomplish? At the end of the day, coding is just trying to implement in a systematic way what you actually want to happen in certain situations. It's almost like you're writing laws, but those laws are acted, you know,
through coding or something like that. Like, if this happens, then this shall happen. And lending some determinism to otherwise stochastic processes. But let's go ahead and jump into a little bit more about you. I'm really intrigued to learn about you, Shashi. You're somebody who I first met
Here in Plano, where I live, and you're based in Texas as well. Yes. Yes, I'm in Austin. Yeah. And your family, my understanding is your family came over back in like the 80s. You are Hmong, which is H-M-O-N-G. Yes. Kind of like a mountain...
From Laos, from the mountains of Laos. And your family came over to the U.S. after helping the U.S. during the Vietnam War as refugees. Can you walk us through your family's recent history and how you all got over here? Yeah. Thanks for asking, Quincy. It's very unique and interesting because every time we...
are introduced to somebody that doesn't know who Hmong or the Hmong people, we always have to tell the story. And it's a very unique story and awesome story too, because my parents are born and raised in the mountains of Laos. And then during that time, the Vietnam War occurred.
And the Hmong decided to help the U.S. because in Vietnam, this is just a bunch of jungles, right? Like there's no maps. This is just a bunch of jungles. And the Hmong people understood the land and the land and everything, right? And so they helped the U.S. try to navigate the jungles and navigate the landscape.
And in doing so, the Vietnamese started to dislike the Hmong people because we were helping the enemy. And so what happened was the Vietnam War was ending and the U.S. was going to pull the troops out and everything. And so everybody that was living in the Mounds of Laos had to immigrate over to Thailand because that was safe haven. But by doing so, there was this river called the Mekong River, and they had to cross over that river to get to Thailand.
And the Vietnamese soldiers knew that. So they were already on the border, right? Waiting all day long. And if you cross that, like you will get shot down or whatever. I'm sorry. But they were just like waiting for people to go. And so you had to wait for the right time at night or something to cross over.
And all the Hmong people wanted to do that because the Vietnamese were finding the Hmong people and imprisoning them or hunting them down.
And so what my parents had to do was they had to find a boat or swim over. And my parents, like they're from the mountain laws. There's no electricity there to cook. They had to use wood, fire, all this stuff. Right. And there's no electricity, no running water, really nothing up there, but just dirt. And they built homes from wood and all that stuff. Right.
And so they, I don't even know if they know how to swim. Like, to be honest, I think they just, they got lucky because one of my uncles knew of a boat, a canoe. And so they would hold on to the canoe and canoe over. And so they were able to do that to cross over. But in doing so, the ones that didn't know how to swim, some did not make it and some did. And it was a tragic story. But as they made it over, then they had refugee camps in Thailand. Okay.
And so they could go there, the Red Cross was there. There's a lot of help to help the Hmong people because they knew of their story and why they were coming over. And so by doing so, some of the Hmong people stayed in Thailand and made a living there, but some were able to come to the U.S. And the U.S. said, hey, if you have sponsorship from the churches, then you and your family can come over.
to the U.S. And so my family, my mom and dad, and I think my grandma and my dad's sisters and all of them and brother, they were all able to come over, but because we're sponsored. So we came into a little city called Farmington, Wisconsin. And as they were there, right, now they're there in U.S.,
They have no money, no food, no clothes. They don't know how to drive a car. They don't know how to operate a microwave or anything. There is all this learning they have to do. And my parents are saying, they don't even know English. So they have to communicate somehow, some way to get food, to get a job and all that stuff. So they built themselves from the ground up.
And before they came to the U.S., they already had my sister and my two brothers. And then my older brother than me, myself, and my younger sister were born in the U.S. So three and three, the six of us total. And so they had to feed us all.
And make a living for us, right? And so as we grew up, my parents have no savings, right? They had to build everything from the ground up and they had to work extra jobs and all of that. And so I think that's where my freelance spirit comes in is working, not just full-time job, but working freelance to gain more income for my family to build it up because I
Um, what my parents went through, like they just had to work extra. They worked, I don't know, 80, a hundred hours a week just to make ends meet.
Yeah. And one thing that I think a lot of people underestimate, of course, and I'm like a fourth generation American. So I had my grandparents. They were here in the country with me and they'd already gotten this big head start. Like most, I guess, aside from American Indians, the Native Americans, pretty much everybody
At some point. Yeah. Immigrated to the U S we're, we're a nation of immigrants, but a lot of families have been here for hundreds of years. So it's not that big of a deal. They've got kind of that intergenerational familial moment. Right. But when you're coming over and you don't even speak the language and you're
I mean, I can only imagine how difficult that is. They don't have any sort of safety net. There's no family that they can reach out to this nearby to help them. Uh, if they come upon hard times, uh, nobody to help them bootstrap with like childcare, uh, or giving them a loan or anything like that. I had to figure out all that stuff. So do you think that like, this is kind of a leading question, but do you think that resourcefulness, uh, that your parents were forced to develop, uh, building, uh, make,
making a living for themselves and forging kind of a household here in the States. Do you, do you think that that has, uh, played a big part in how you approach your adulthood? Uh,
Yeah, absolutely. Seeing it for myself, I've seen them work a day job. My dad was a mechanic. He worked a day job. After he was done, he would come home and eat and go straight to the garage and work on other people's cars from the city. And so they would pay him to fix...
their cars and he would do it in our garage and he would be there until nighttime. Like, I mean, when I go to sleep, he's not even coming into the house yet.
And when I wake up, he's already up already. You know, he's like up before I'm up. He goes to sleep after I sleep. Like, I don't know what, like, how does he have this like, like energy and, you know, momentum to do it. But he did it for us. Right. Like, like he did it through his actions. He, he worked hard so that we can have a better life. Um, we, we got a house, we, we, you know, we had cars like used cars and all that stuff, but
We were able to go around. And then as we grew up and to become teenagers and to adults, right, he was planning for all that already. He had the longevity thinking of, hey, it's not today. I'm going to plan and save all this money so that eventually when my kids grow up, they'll have things that they need like a car, like clothes, food. They can grow up better than we can and whatnot.
And I think that just is a testament to my work ethic too. And also to my mom too. My mom worked a full-time job and then she would be a translator at the hospital or something, right? Something else. She was always doing something else to help the family as well. And so both of them doing that, I got to see it firsthand. And for myself, I want a better future for my children too. So I felt like, okay, well, if my parents could do it, then I could do it, right?
And so I worked full time and then I would get some freelance clients as well and to work additional hours at night and whatnot just to catch up and to be able to go on vacations or get some things that we're looking for, like a newer home or a newer car or something else. Because like you said, we have nothing in our bank account, right? And we need to build that up for our family and my children and my children's children.
Yeah. So I'm excited to hear about your family, but first I do want to hear about your story of like high school and, and, uh, of course you went to art school and like that, the, the decisions you made during that period and, and like put them through the prism that is, you know, your parents journey to the U S and, and,
Maybe how you felt different from the kids that just grew up here and had multiple generations of parents who had given them that momentum for whom maybe life was a little bit easier than what you and your family went through.
Yeah, I can speak about high school because like I love sports, right? I love playing sports. I love watching sports and all of that. But I knew myself that my parents don't make a lot of money. And if I wanted to like travel and get new clothes and just like the latest things, right, that people had like a phone or a pager, right?
You were with me there. I got a pager when I was like 18, 19. Yeah, like those things that you want because other people have it, you have to make your own money. And so I had to sacrifice not playing sports for school and going to work, right? So at 14, I worked at a pizza buffet just making $150 a day.
every two weeks or something just so that I can go out with my friends to have dinner at night after we played sports, right?
And then I graduated early from high school because I had enough credits. It wasn't that I was smart enough. I don't think I was smart enough. But I was smart enough to game the system and graduate early. I graduated a semester early. And then I started working full time. And so I worked full time to just make additional cash so that I can save up for my own car.
And then throughout my whole high school career, I couldn't play sports after school because I went to work, right? I went to work and then I would play recreational volleyball or basketball after hours just so I could catch up. So I never got to compete for my high school because...
I just felt like, you know what? Like my parents are already struggling. Like I don't want to like ask them, um, to pay for my travels and all that stuff. Right. Cause it's a lot of money. And my, I have three older brothers and sure I could ask them to support me, but that's not who I am. I'm like, no, I'm, I want to be independent. I want to make my own money. I want to make, spend my own dollars. And so, um, I was able to do that. And so by doing that, I sacrificed a lot, um, just to, um,
Become an adult faster, I'd say. I...
I forced myself to kind of make my own way. That way, I wasn't relying on anybody else. And my parents could support my younger sister and all that. And sure, yeah, they did help with some things like cell phone bill, car insurance, and stuff like that. But I had the additional cash to travel, to get my new clothes, and do other things. So it was a tough decision. And that's why I worked so hard because...
I want my kids to be able to just be kids, right? Just, just, just to live life until they go to college and then they can figure out what they want to do. Obviously. Yes. I do want them like to get it, like a little job, like an in and out or something. I think car wash, right? All right.
and just do it like just so they can build that mentality of being in the workforce, but not like me where I'm like, Hey, after school, I'm working four to six hours every single day so I can make a paycheck so I can, um, get new clothes or I can do things that I want to do, uh, opposed to being able to play basketball for the school, play football for the school, um, do other things. I decided not to do that because I wanted to, um, build, um,
a financial outcome, better financial outcome for myself as I was still in high school. Yeah, that makes a lot of sense. And let's talk about like, so you graduated a semester early so that you could just have more time to work and stuff and get started with school. Cause it sounds like the, the impression I get from talking with you is like, you were just like,
Okay, let's go. Let's get this thing done. Let's get the money in the bank. Let's start progressing toward our goals and kind of almost like a compulsion to keep making forward progress, to make up for the starting line. Yeah.
The illusion that everybody starts at the same place, but a lot of people are starting... The starting line for them is not at the racetrack, but it's two blocks away. And they have to run to get to the starting line. And so what you kind of described kind of gives me that vibe. You were two blocks from the starting line that a lot of the other kids were going. And you're like, let's make up for that distance. So...
What inspired you to go and study? You said you went to art school. And there, I think you did say you did some programming there. And you learned some web design. At the time, probably something similar to web design. Because this was like the early 2000s, I would imagine. It was. Yeah. Yeah. So, yeah. I...
In high school, I loved computers, right? I loved forms. I loved like building stuff. And back then there was this website called Asian Avenue. It was similar to MySpace, right?
And obviously not Facebook because within Asian Avenue, you could modify the JavaScript and CSS of your own profile page. It's kind of like Neopets. I think MySpace, you could customize it a little. Yeah, MySpace was like that before. But then they cut it down and so it was just really strict. Facebook, you can't do it at all. You just have what you have. Yeah.
But with Agent Avenue, it was kind of open-ended. You could inject things in there. And so you could create these awesome pages that had animations and stuff. And it was like a really nice portfolio website and stuff. And so you could put pictures in there and all that stuff. So I was really intrigued by the aesthetics of really nice-looking websites that were simple, elegant, had good animations and stuff and things like that.
And so that's where my love came of wanting to get into design and development. And so that's where I decided, hey, I want to go to a place that can provide that for me. And the Art Institute, which is an art school, provided that for me. I can go be a web designer, developer, as well as continue to hone in on some of the art skills that I had. I'm not a great drawer by any means, but...
I still really enjoy it. And so by going there, like...
I actually was trying to go for my bachelor's degree because that was the thing back then, right? You just always go for your degree. Always. Well, I mean, if you look at the numbers, there's almost no point unless you're getting some vocational thing. You're becoming a mechanic or you're becoming a tech who works in a certain – does a very specific thing at a hospital or something like that. There's not really much economic value to getting an associate's degree. I hate to say it, but like –
I've seen lots of things where like university degree, GED, and associates, they're all kind of like lumped into the same kind of level. And then getting the four-year degree basically doubles that. Yeah. Right? And then graduate school like has a marginal – diminishing marginal returns to getting additional education. But the four-year degree is absolutely the gold standard in the US. And that is what gives you access to most of the good knowledge worker jobs.
Yep, yep. And that those are the stats and the numbers that I was going based off of. And I said, well, I have to get it. Plus, you know, my parents are like, go get it for your degree. It's going to help you. Right. Because they didn't know any better either. They just said, we just know that if you get a four year degree, you're going to have better opportunities, better career, yada, yada, yada. And and so it was always ingrained in us. And my brothers, they were all going for four year degrees, too. And I said, well, OK, if I go here, I'm going to go for my bachelor's.
Not until my friend brought up the point. He said, Shashi, why are you going for a four-year degree? I'm going for my two-year degree, which is the associates. When I'm done in two years, guess what? I'm going to be working in the field. I'll be two years ahead of you.
And I said, huh, that is a very good point. Because as I was saying with my whole history so far, I wanted to build a financial future for my family or for myself and my family, right? And if I could shortcut that, you bet I'm going to. So I decided to switch and go for the associate's degree.
So by doing so, then there was less learning from the design development side. It was just a shortcut of things and courses.
To be honest, I really didn't learn much from that school. A lot of my learning came self-taught afterwards, being able to grind it out and whatnot. I was fortunate to get an internship right away and then eventually work in the industry as a web designer developer after six months. And the thing I always say this too is I think I was just blessed to fall into this industry, right?
I love development and designing. I just love it. I never went for the money. Back then in the early 2000s, this career, it wasn't a six-figure career. It was like, oh, you'll probably make 30 to 50 grand a year and maybe six figures if you get very good and very lucky later. It wasn't the gold standard. And I was like, I don't care. I love it.
I love building stuff and I love computers. So that's what I'm going to go into. Yeah. And I fell in love with it. And I would say that too, is if you're not like fully invested in it, in development, then it's going to be very difficult, right? Because,
When I'm done with work, I research new technologies. I read books. I do tutorials. I talk to people about it. I go to meetups about it, all that stuff. I know people that get tired, right? After work's done, they're like, I'm going to decompress. I'm going to shut it down. And that's it. In this field, the technology moves so fast and changes so quickly and fast.
in six months, you're already behind. Right. And if you're not catching up, then you're going to fall behind. Yeah. And I feel like that's something that is, I'm blessed with is that I went into this already loving it. You have intrinsic motivation to, to be able to continue to refine your skillset. 100%. And so, so this is like you're calling essentially, you feel like you're in the right place. Exactly. Yeah. This is,
my calling for sure. It's my skill set. It's my warehouse. I love it. And I always tell people I could do this for free. Like, and I do actually, I volunteer for my church organization to help them as a creative director and it coordinator. And then, um, I also am partnered up with the, uh, an individual I met in Austin. I, I, I don't, um,
take any money from them. Just like a, um, equity partner, like a partner helping them out and building their business up and hoping that one day there'll be some return of investment. But,
Uh, at the same time, it's just like, well, sometimes it turns into nothing, but it's a risk I'm willing to make because I love learning. I love growing and building things. Yeah. And just to be completely clear, like the reason why you even have the luxury of being able to do things for free, which I think is totally commendable. I don't want to diminish, uh, helping out your church, helping out your, your friends. Um,
But that is because you have been successful because you worked hard to get – you kind of bootstrapped your way through a whole bunch of freelance clients to ultimately getting jobs and ultimately working at Microsoft, which is kind of like the pinnacle. Like if you want to be a software engineer, it's one of the top places you can work, right? So I just want to be clear that like somebody who is already like –
It can come across as – and this is something that comes up a lot. Like I did pro bono work even when I didn't necessarily have a lot of things going on just because I wanted to get practical experience. I don't think there's anything wrong with doing free work to build out your portfolio. But a lot of people –
on Twitter and places like that will take issue if you're like, yeah, don't tell people never to work for free and stuff like that. And I don't think that's like, if you need money, you should not be spending time and energy working for free. Uh, but, but if you do have the luxury of like, okay, I've got like enough money in the bank that like the next six months are covered and I'm not like in a dire situation. I,
I'm going to go ahead and take this opportunity because it allows me to kind of expand my skill set a little bit or I really care about the mission of this organization or something like that. So I just want to caveat that do not feel obligated to work for free or what I'm saying. But I do want to touch on something else that you said there. I think you're very passionate about –
software development and design and like your day-to-day work is also kind of something you're intrinsically interested in. So you are constantly like topping up your skills. And when I meet physicians, when I meet lawyers, uh, that are like doing well in their field, it's the same thing with software engineers. Like they're going to conferences, they're spending a lot of time reading like medical journals or law journals or something like that. Like being a software engineer is intrinsically a hard job.
kind of like not all encompassing, but much encompassing career. It is difficult, right? It is potentially possible to kind of like just work a 40 hour week and not really care that much about what you're doing in some fields. But I don't necessarily think software engineering is such a field. And I often tell people like, if you're not intrinsically interested in this, you probably shouldn't be pursuing it. But yeah,
Even if it seems hard and it seems kind of boring at first, if you do it a lot, people start to like what they're good at, right? And you will get practice and you will gradually get better. You're never going to necessarily develop a passion for software development if you don't give it a serious try. So that's a kind of grab bag of advice there. But I wanted to contextualize what you're saying because I do think it's important.
I have often been like work-life balance shamed because I do like to work a lot. And, and, uh, you know, a lot of people on the free code camp team work a lot and they enjoy it. And I tell people, Hey, don't ever feel obligated to work more than 40 hours a week. Just try to like target that and take time when you need to and stuff like that. If, uh, you know, but I do think it's great when people feel that intrinsic motivation. And I don't think people should be ashamed for enjoying working hard and, and getting things done. Uh, so, uh,
That has to be done sustainably. You have to, do you sleep a lot? Like, like how do you structure your life so you can sustainably work? Because you've got four kids. I've got two kids and I'm already like pretty tapped out with two kids, but you have four kids and you've also got this full-time job and you also still do this volunteer work through your church and you help out, like do some freelance work on the side and stuff like that. How, what is your like way of getting this done? Yeah.
I don't even know when people ask me, I'm like, I, I, I just do it. Like, it's like, like, like I think because I feel this way is because when I care about something, I will put my time into it. Right. And so, um, I mean, obviously my job, like I care about my job, I care about growing, I care about getting things done. And then I'll do that obviously first. And then my children too, uh, when they come home from school, um,
I try to be done at 5 or even earlier and then spend time with them until they go to bed around like 8, 30, 9 or 10. It depends. The school day is earlier, obviously. But on a weekend, then it's a little bit later. And on weekends now, I try not to do any work at all unless if it's freelance work. But...
My children are very important to me. And then also, like, my wife, too, right? Like, when you have a spouse, it's important to spend time with them to just cater towards their needs and stuff, too. And so me and my wife, we have this balance now where it's work.
And then in the evening, we'll spend time together watching a TV show or a movie or something to spend time together because that's our quality time that we spend together. We both enjoy that. And so it works really well for us.
Um, and then sometimes, you know, during lunch, because I work from home, um, we'll go to lunch together and then we'll come back. It doesn't happen often, but it's enough. And I think, um, the both of us had to learn that it's okay to not always be together. And there's one night, uh,
every week that we give each other, like do whatever you want kind of night, right? I'll play video games or I'll do some extra coding or whatever. And then she'll watch her own TV shows that I don't watch. You know, it's a great time to kind of decompress and do whatever we want. And so that allows that time to happen. And then when I have these freelance opportunities or whatnot, I just try to communicate best to my wife after all the kids things, right? The schooling, the homework, the sports, everything.
I try not to cross those with any of the things that I do. And then I give that time to those organizations or the things that I'm trying to accomplish. And then, yeah. So at night, yeah. I mean, sometimes when my wife and I spend time together, we usually go to bed at 10, 11, 12, and then wake up at 8, sometimes 7 o'clock in the morning. So it's not like I...
don't sleep. I do, but sometimes yes, I get less sleep than, and then sometimes I don't, but I always try to, whatever I put my effort into, whatever I really care about, I try to squeeze it into my schedule, right? Like this podcast, I really wanted to be on here with you Quincy. And I know we had to reschedule, but I wanted to squeeze this in so that it worked. And then, um,
Like just with other things that I do too, like I try to find an opening in my schedule to do that. And then I communicate it with my wife because she's the most important person to understand if I'm going to be busy, if I'm going to be free, whatnot. And to also like just keep a happy household too, just to understand what's happening within my own world. And so these things, I think that when you care about something, you'll give it time.
When you don't, then it's kind of like, oh, whatever. It happens. It happens, right? So everything that I give time to, I put like 110% into every time. Yeah. So you're living in Austin? Yes, correct. Does Microsoft have like a satellite office out there? Like how often do you go to an office? Yeah, Microsoft has an office here, but it's mostly sales.
So we are not required to go into the office and I have not gone there because there's no room for us. If we go, we would have to kind of reserve like a remote desk or whatever. Um, and you're just working at the house then. So I'm just at the house. Yeah. I'm just the house. Um, five days a week, remote, fully remote. That's cool. So am I. Uh, and that is a nice luxury. Like I realized a lot, there's like this back to office movement and I had,
friends have to move across the country because there was like this back to office mandate. And I'm a huge advocate of remote work. And I also think it makes people more productive and there's lots of evidence that suggests that as well. So we don't have to go off on the, I'm not going to give a big sermon on why I think remote work is great, but it sounds like it's working really well for you. And, uh,
Maybe you could talk about how you work effectively at home because a lot of people, when they're at home, the fridge is right over there and the video games are right over there. How do you actually carve out a space? Do you have any tips for working at home? Yeah, I definitely do because I started working at home before COVID happened already. I worked for a couple of companies that were hybrid.
Um, and so I think I started probably 10 years ago or so. And some tips, um, definitely find your own office space in your, in your house, apartment, whatever it is. Um, it's going to make a world of a difference. The reason why I say that is this, if you're working on your kitchen table, like right now, um, guess what? You're going to eat there too.
Guess what? You're probably going to lounge there too. Guess what? When you want to decompress and you go sit there in that area, you're going to feel like you're still working. Your brain never shuts off because work is that space, right? And so if that's the case, then you're always working, right?
So you need to isolate yourself away so that when you really need a break from work or you need to just decompress and unwind and do something different, that you can go to a different environment, a different space altogether and feel that way. Because if you're in that space, you're always going to be like, oh, well, I can just pull up my computer and put another line of code in. It's fine because you're already in that mode of working. But
As human beings, we really need to decompress and just unwind and get away sometimes. When we grind, yeah, grind it out. But when we don't need that, we need to find a space that's safe or we can get away from what we're used to so that we can do that. I think the other item is if you have a spouse or kids, right?
My wife has been at home with me for a while and it was really hard at the beginning because I would work even if I had my own office, right? Doors close and everything. Opens the door. Hey, Joshy, can you come help me do the dishes? Or hey, can you go to the store with me? Or hey, can you go to the store and get some more garbage bags? Like this is like 1 p.m., right? And I'm like...
dude, I'm working. I can't just do that. And the other thing is when I take a break, because sometimes you're in a meeting or you just got your feature completed. It's 2 p.m. And you're like, you know what? I need a quick 15-minute break.
You go out there and you hang out with your spouse or your kids and you're like, okay. And then you're like, hey, since you're here, can you go do this chore? I'm like, no, no, that's not the kind of break I'm doing here. You kind of establish limits or like what my wife will do when she knows like I'm working on something. You kind of just stand.
In the doorway. And she won't say that. She doesn't want to necessarily interrupt, but I'll be able to look over and like kind of give her hand gestures or something like that. Or she'll say, she'll message me on signal and I can be like, Oh, okay, cool. Yeah. Yeah. Yeah. So, um,
Yeah. So you've worked out a system for that, I guess, so that you're not constantly upsetting your spouse? It took a long time. But again, it's all about the communication and the learning. And so now when the door is closed, then she knows that I'm in a meeting or talking to somebody and it's important. And sometimes I forget to open it and she would knock and be like, hey, are you done?
But that's my fault too, right? Like we need to adhere to that system. But then now, yeah, yeah. When she knows that when I come out of my office and I go talk to her or eat or something, it's only for the time that I feel I need or I'm available for. Unless I'm like, hey, let's go for a walk. Let's go for a 30-minute walk. Okay, cool. Let's do that. But if I'm like, hey, I'm just out here for five minutes. I got to go back.
then don't be upset because I just came out here to spend a little time with you, talk to you, update you on some things and go back. And so she's understanding that now. But it took years. Like, Quincy, it took years to get there for the both of us to understand and communicate and get to this process. Because now it's a pretty good process. Now, even my kids understand when my door is closed, they won't bother me. But sometimes you'll see me
My little one, he's little, he's like, oh, whatever. He just comes through, walks through the background and all that stuff. And it's like, okay, great. But it is tough. But like having your own space and just communicating and understanding like what
what you and your family's needs are as you're working from home is a big ordeal. Yeah, well, it's an investment. You've kind of invested in building out this system, and now you don't have to spend a ton of money and time commuting. You don't have to spend – you didn't have to get a WeWork or something like that. I do have friends who just couldn't focus in their home or it was just too distracting or it was too chaotic in their house. They didn't have a big enough place that they could carve out that special space.
There's been several hundred dollars a month on a WeWork, right? Like, but, uh, I just kind of like, I knew that if I just kept putting in the time and energy to like refine this system, like I could make it work. I had faith that I'd be able to make it work. And it sounds like you kind of came upon a similar, uh,
kind of process along the way. So that's really cool. I want to talk about how people get to this exalted position that you have. Like you have gone through this very lengthy process of like freelancing, getting clients, building up your reputation and, um,
As I like to say, like bootstrapping your reputation into getting a job at a big tech company, you know, one of these many coveted jobs that, you know, they're hard to get and they're hard to retain. Yeah. Right. You can't just slack once you get that job. It's not like getting like some professorship where you get tenure and then it's kind of like not as hard anymore. Like,
You know, it's somewhat precarious, especially with their layoffs and things like that. And, of course, I'm not trying to jinx your role at Microsoft or anything. But I do want to put it into context because there are a lot of people out there who are like, oh, I'm never going to be able to get into big tech. It's just like all the jobs are gone or they're going to be automated or there's no path anymore. They're not hiring junior devs. So how am I going to get started? And a lot of people are kind of just...
not making progress with their, their skills or building the reputations or going out and actively networking or anything with the kind of like what I think is mistaken impression that like,
the party's over, go home, you know? Yeah. Uh, how do you feel about that? And, and what would you say to somebody who feels deflated with, you know, the interest rates went up and suddenly there's like in the pandemics over, like I always tell people like the, the cause of the contraction in the job market is not necessarily that there's not work to be done. It's not necessarily that AI is so phenomenal. Uh, I, I certainly don't believe that AI is replacing complete, like wholesale lock, stock and barrel developer roles. Um,
But a lot of people do have that impression and they think that like these roles are not going to be here much longer and it's a fool's errand to like put in all the time. I mean think about how much time you put in learning your skill set, right? And like is it worth learning to code anymore? And a lot of people are kind of coming to the conclusion that it's not. So what would you say to somebody who has that perception and how would you convince them that –
Assuming you believe this, that there is still a long, prosperous career ahead of them in working in software development if they put in the time and the effort. Yeah. I mean, that's a great point that you brought up. I would say this, number one, if you're thinking that AI is going to take over your job or that companies aren't hiring anymore,
I feel this way about the industry right now because of everything that's happened. It's given them an opportunity to cut weight that they've always wanted to do, like all the layoffs that are occurring. Some of them are like research and development groups and stuff, right? And that's fine. But then some other ones are just opportunities
opportunities for them to like let go of people that they've wanted to before um because i have also seen that some companies are hiring for entry-level individuals obviously they're starting from the top they're starting from senior down to mid and then and then as they have individuals that come in that can help groom the juniors then they start opening up junior positions but i
I would also say this is that there is still room for everybody if you really work hard. And I say that is because AI is, I think AI is only going to make us more efficient. It's not particularly going to take away too many jobs.
It will take away some task, right? Some things like entry level or entering in data or stuff like that. Like AI does that really well. And honestly, nobody wants to do that anyway. So it's kind of like great. But you still need individuals to build the prompts. You still need individuals to run applications. And guess what?
My application at Microsoft is so old that AI can't take it over. It needs people to go in there to build features, to maintain it and all that stuff. And a lot of companies are still going to be in the same situation where they just need real human beings to come in to understand the use cases, work with product owners, work with designers and implement these things. Because
these, if you don't have a developer and you have a product owner, like build a prompt and put a code in, I don't, somebody needs to oversee it, right? Somebody needs to oversee it and somebody needs to do it. And so,
There's still a lot of opportunity there. And the other thing is also if you feel like you're stagnant and you're not getting callbacks or there are just no openings, the market is getting hotter. It is getting warmer. It is not going to get as hot as I think two years ago. But a lot of people are going to hire and they're...
I already know some juniors that are being plucked in and being interviewed and being hired. And so that's a good sign that the industry is turning around and other companies are going to start hiring. But if you're not getting callbacks or you feel like you're just not growing, then honestly, you need to find a support group or a mentor that you can trust that's experienced in the industry that can help understand where you're at and guide you further along.
because there are skills and things that you just don't know that you need or there are improvements that you need to make that only somebody that is very experienced can come in and help hone you to get you to that position and and that's kind of why i created the great survivor apprenticeship is because i saw that gap when i was reviewing it like like hundreds of portfolios from juniors
It was the same projects or it wasn't nothing very thorough or very advanced. I was like, well, this is nothing that's going to stand out. And then in talking to some of them, I was like, okay, what have you done? What processes have you worked with? Oh, I use Git, but I just use it on myself.
and all that. So it tells me that you haven't worked really in a team setting. You haven't done merge conflicts, you haven't taken a task and completed it or gone through thorough code reviews, right? So all these things are things that I implement in that apprenticeship program that I have because I feel like it's the missing pieces or some of the missing features and skills that a self-taught individual needs to get their first job.
And by them understanding and learning these things in a group setting and with an experienced individual, they will then start to hone in on really good junior developer skills. Because as good as you think you are, if you don't have real-world industry experience working in teams or working with companies...
you don't have experience yet. Like you only know as much as you know. And there are so many things that you still have to learn, like, like, uh, time boxing, uh, understanding when to, like, we were talking about what PR is earlier, uh,
understanding when a feature is too big and you say hey i need to decouple this we need to split these tickets up because it's too big you know you're probably at the point where you're like oh i'll just do it because it's a task i'm just gonna do it all and get it all done but um the reality is like yeah no we need to split them up and make them smaller and just work on the items that you're working on so we can get them through
Um, and then also the pull request too. Like a lot of these individuals that come into the program think, Oh, I'm just going to create this PR and it's going to go through. We'll be fine. And then come back. I give them 20 comments of like nitpicky things or things to fix, or why are you doing this? Or how does this work? They're like,
I thought this was going to be a lot faster. And I'm like, well, it's not like I'm going to treat this like an enterprise level application. And if it's not safe, if you don't know what you're doing, I don't know what you're doing, then it's not going through until you understand that and learn what you're trying to implement, what you're trying to put into this application.
then we can push it through because the learning from that will progressively get better because the features they're working on are tiny. As they get larger and larger, they'll start to understand and grasp the concepts of how to build more efficient and maintainable code.
And so adhering to standards, adhering to code structures, adhering to this process is so new to these individuals. And it's helped a lot of them to understand that, hey, I thought I was ready for the industry, but I'm not. If this is what it kind of is like, then I'm so happy I did this first because I
I thought I was ready, but I didn't know how to scope a ticket. I didn't know how to collaborate with other individuals that have different personalities and communication styles.
all these things that come in play when you work in a structured environment. Not to say a hackathon wouldn't be bad. It's good. It's a good experience. Hackathons are good, but it's just like a one-off. Exactly. There's no code maintenance collaboration. It could be, hey, you do the back end. I'll do the front end. Let's go. Let's get it out. It's radically simplified. Yeah. But it's a great start for sure. But if you put it...
If you simulate a real-world company and a process and it's slow, you have to write unit tests, you have to go back and make sure there's no regressions, and you have to explain your work, and you have to research before you do the work.
All these things just opens your mind to think more like a better engineer, opposed to doing, doing, doing, doing, doing, doing all the time. Where now you're like, hey, I need to understand this. I need to learn this. Back when I was first starting, I copied and pasted a lot. I was like, oh, it works. Let's get it going. It's done. The agency fashion where it's like, get it going, get it done, get it done fast. No unit test, just get it done. So that was my mentality.
So I didn't learn as well until I slowed down and said, what am I copying? What am I implementing? What's happening here? Let's reverse engineer this and figure this out. Then I started to gain way more knowledge about the concepts and the application, how to put things together.
These things are things that I stop my team from doing. I say, hey, what is going on here? Explain to me what you just implemented. And if they can't, I say, go back and figure it out and then come back and tell me because this thing you're doing is pretty complex. And if you don't understand it, then why is this going in? Until you understand it and why we're doing it, then we'll move forward and then figure it out.
Because we can't just be putting things in because it works. It does work. But once we start to understand it, then the next feature that comes up that's similar, those concepts, they translate over. And that individual then starts to grasp and understand like, okay, I can't do this because Shasha is going to tell me again, like, why am I doing this? So I'm going to understand the why and the how even before I tell him to review it.
Yeah, 100%. I just want to add that basically everything you just said there, and I'll recap real quick, understanding why things need to be done, understanding how things should be done properly, making sure that you are sufficiently verifying that things are being done properly, coordinating with other people, understanding the dynamics of working with the people, understanding the implications on the greater code base, all this tacit knowledge.
this is precisely what AI cannot do. If you're just copying stuff over from cursor and throwing it into a pull request, you're doing everybody on your team a huge disservice. And I'll tell you, we do not extensively use it at Freecode Camp. We use it as reference. We use it for some things. I'm using AI to generate the transcript for this podcast and generate the timestamps and stuff like that. I think it's good for extremely limited things like that, but
A lot of people really have this mistaken notion that like, Oh, you know, like,
it's all good. Yeah. Whatever. Like, let's, let's go ahead and just build this like house of cards and whatever. And you know, that's good if you're the only person using the product and nobody else cares about the longevity of the product and everything like that. But there is a very important reason why people create specs and why there's like all these different agile development methodologies and why people use Jira or, um, you know, GitHub like projects or whatever. Like there's a tremendous amount of communication and thought that goes into what to build.
It's not just like, Hey, here's a UI, create the HTML and CSS for this. Okay, done. Let's move on to the next thing. You know, it is, it's not that simple, even for things that, you know, in theory, I would be able to do. Okay. Like create some basic HTML for like a website or something like that. Like there are almost always perturbations and deviations and, uh, you know, buggy code or insecure code that creeps in there. And if you don't understand it, you're,
You're just setting yourself up for dealing with bugs down the line and interoperability issues and all that stuff. So anyway, I'll get off my soapbox, but I just want to emphasize that not only are these things that you learn through actually working on big projects with other people, they are also things that you need to know if you want to be able to have a long, lengthy career. Like the era of the kind of lone wolf dev era.
That sort of stuff can work when the project is small enough. A lot of people will point to like Peter Levels, Levels.io, and he'll build these projects out of like PHP and MySQL and he'll do it all by himself. He does everything by himself. And when you have everything done by yourself, you don't have any communication overhead. Like the perfect number of people working on something is one because you don't have the communication overhead. Yeah.
Second, you had a second person, boom, like all this communication overhead and cultural difference, linguistic understanding. Like, uh, and that's not just, I mean, like when I talked to another person who grew up in the same region, like they grew up in Texas and they, you know, they speak English natively and stuff like that. There's still going to be lots of misunderstandings and things like that. Right. And that all just gets magnified. Uh,
combinatorial explosion of people that need to talk to one another and understand one another. Anyway, so I just wanted to reinforce what you just said there is very important that people understand that and that agree or disagree. Open source is great training wheels for working on a big distributed team. Yeah, I agree with that because a structured open source...
project already has a lot of these processes in place, right? You have a ticket, you have to take it, you have to create it, you have to create PR, somebody has to review it, somebody has to merge it, it goes through. Like that whole process is
is golden. Like just to do that, but not on your own, right? You have to do it within like at least with one more person or within the team setting. It is golden because also that project, they have coding standards, they have component libraries, they have things that are in place already that you have to adhere to
You are not the architect, right? Like you said, when you're the architect, it is so easy. There's no overhead. You can make all the decisions. You push it through. It's all good. Like nobody's going to say anything. But once you start to go into somebody else's code base and
and they have these limitations and they have these decisions they made or products or like plugins that they've chosen, you have to adhere to that. And that's when the tension happens and that's when the difficulty occurs. It's like, wait, why are you doing this way? Why can't you just use this plugin where I've used before? And it's so much easier. And they can just say, well, it's because that's what we chose and we have to use it. Don't install the one you're using because we already have one.
Figure out how this one works instead. And that's where it's like, oh, wow, that's so difficult. I'm so used to doing this, but this company does it differently. Well, guess what? That's what happens. Every company I've been to,
has a different tech stack, right? They might use React, but they use Redux or they might use some other state management tool that you've never used before or never heard of. I went to this startup and they were using, I don't even know what,
I forgot what it was called. It wasn't Git. It wasn't Mercurial. It was something really old. And I was like, what is this? I don't know what this is. I haven't even heard of it. And it's a startup company that just started four years ago. And they're using it. And I'm like, why don't you just use Git? Maybe somebody sold some CIO. Yeah. Exactly. Yeah.
Yeah, and it was just like, what in the world? This just makes things even more difficult. But you have to adhere to it, right? You have to learn it. And these things are just limitations. And when you go to an open source code base, whatever they decided, whatever they're using, you have to adhere to those standards.
And that process. And the nightmare is you're doing something related to like healthcare in the U S and you have HIPAA and you have like all these other, you know, things are education. You got FERPA, you got like all this legal stuff. You also have to comply with. And then of course you can literally get sued like Domino's pizza did. If you don't have sufficient accessibility and accessibility is very important. Everybody should learn accessibility, but you have to learn it and you have to implement it. And it's not like a secondary consideration, you know, performance.
You can't necessarily figure out how to fix bad architecture. Like look at YouTube and the fact that they have the question mark V equals, you know, all that junk in the URLs, right? Look at Reddit and like they're stuck with their extremely inefficient architecture because to completely re-architect would be a massive ordeal. And that's just how it's going to be, right? Yeah.
And I'm sure there's lots of stuff in Microsoft. Like, you know, the infamous, like, why isn't there, like, a Windows 9? My understanding is they didn't...
Do you know the story behind this? I don't. Okay, well, so this could be apocryphal, but what I heard was the reason why there will never be a Windows 9 and when they skipped directly from Windows 8 to Windows 10 is because of Windows 95, and they had like wildcard type things, like if it's Windows 9X, because there was 95, 98, and they didn't want to risk a whole bunch of bugs associated with it, so they're like, oh, we'll just do Windows 10. Oh.
Makes sense. And I mean, it's like a massive code base that like no single individual understands how everything works. They have to,
reference it and read the docs and figure out how to integrate with other, you know, APIs and stuff constantly when you're in a big code base. And that's how most of the world works. Most of the world is not, you know, create react app, you know, let's go. Yeah. It's not like startup projects or hackathon projects. It is big, messy balls of code that you don't even necessarily know why the decisions were made the way they are, but it's very difficult to go and unwind those decisions and,
and override them and re-architect. So...
We only have a few minutes left and I want to fire a lot of questions at you really rapid fire. Shashi, let's go. You good? All right. So agency life and running an agency. Like do you ever fantasize about going back to just running an agency and working with different clients instead of working at a big company? Yeah. I think that's one of my dreams is to own an agency and work for just, you know, many different clients and building different applications and stuff. Cause I,
Even though I love like the software engineering world where it's low pace and you're just like building features and you're like making sure things are not breaking. Agency life is awesome because you're building different things like every six months, right? And if you have multiple clients, you're building four things at a time and you're feeling, you know, you're always doing some cool things. You're using new technologies. You're pushing the boundaries, you're pushing the edge of technologies and just
Just being able to also like put things in public. I think that's something that I always enjoy is public facing applications or websites so that I can share it with my families or like go to it and visit and kind of see the user engagement and the UX and get some data behind it to say, hey, the things that I'm doing, is it working? Is it not? And seeing it come to life. Yeah.
Well, I have to tell people that doing freelance work is a great bridge into building your reputation, building your skills, building your network so that you can –
kind of level up to working in a big tech job. But of course not everybody wants to work in big tech. Like the, the, the most coveted jobs at, um, you know, Google and Microsoft and places like that. There are probably lots of experienced devs who'd rather work in an agency life. Why would somebody choose working at an agency over the, I guess more state or, or doing freelance work over the more stable, uh, just like,
paycheck and organizational stability than having one of the biggest corporations in the world like Microsoft get you? I can think of a couple of things. Number one is there's a lot of red tape, right? When you go to big corp, a lot of leaders and stuff have to make the decisions for you. Like if you're going to choose a tech stack or a certain new application, you have to write a whole spec
uh, you had to, uh, do a presentation. You have to say why you have to explain it all. And then you have to like do that pros and cons and why you're choosing this one over that one, all this stuff too. Right. And then leadership has to approve of it. And it's like, well, why can't I just build it? Well, that's because that's how, how big tech works. Like
uh, all the leaders that are on top of you. Um, I don't know what level it goes to, but there's like multiple layers, like three, four layers. They have to understand what you're doing because then they need to explain it to their leadership as well. And so there might be like six, seven layers deep at all. Uh, and,
you just don't understand like why well it's because like they want to understand like from a team standpoint how are you using resources how are you using their money how are you all this stuff right because all that in the end they don't have enough like at the top level they are given certain number of resources certain amount of budget year and if you go past that or whatever then they can't use it for other things so there's a lot of things that you need to understand
And then number two is like, because I work for big corp, I'm on call. Like I'm on call 24 seven for a whole week, three, I don't know how many times a year, maybe four times a year or five times a year. And you have like the literal pager duty. Yeah.
Do you carry a physical pager? No, no. It's just my phone. They just call my phone. When I get paged, they call my phone. I have to wake up. And I've been woken up 2 in the morning, 3 in the morning sometimes just to go on and figure out an issue. And then also sometimes I'll go into meetings where there's a severity that occurs and I'm in there even though it's not directly towards me. I have to stay in that meeting because –
Um, it has something to do with our service. Right. And so you might be in there for four hours, six hours, and that could be after hours and all that stuff. So you're taking time away from family, from other things that you're doing and all that stuff. Um,
And the other thing is just like there's a lot of old legacy products, right? Like a lot of things that we have are super outdated. And in order for us to bring it up to par, it would take an amount of resources and time and effort to do that. And most of these companies and groups do not have that sufficient resource or time to do that. And so you just build on top of it, build on top of it, put patches to it and all that stuff.
And it's not really fun, but it pays the bills and sometimes it just gets you by. Whereas an agency, you can choose whatever you want. You can choose the latest tech stack. You can choose Svelte if you want to. You can go with Next if you want to. All these...
things that you can decide to go with and build them and go quickly. Uh, it's really fun because then there is no red tape. Right. And, and, uh, unit, I always make fun of this agency. Don't unit test because they just want stuff out there. Yeah. So you just get it out quick and you're like, Oh great. I don't have to write tests for this. Cause you know, I don't know who's going to test it. We'll just manually test it. It's okay. Yeah.
Yeah. It just works. But then that also allows you to grow pretty quickly because you're building and growing and failing fast, right? Whereas in the big corp world, it's small features or big features that take a long time. Like I just completed a feature about six months ago. It took four to six months of planning, got into it. It took about four to six months of development. And then it took another few months just to release it and to get it tested and
And that whole thing, if it was at an agency, we could probably got that done in like four weeks. Right. But because we have to do the presentations, we have to do the logging. We have to ensure leadership's on board. We have to do all these things. It takes that much more time. Yeah. Okay. I'm going to recap because I think that was an extremely exhaustive answer. And that is like an incredible answer. So first, yeah.
You have to work with mostly legacy code and you're maintaining old tech. You don't get to go and learn the newest stuff, which at an agency, if you're constantly starting new projects, you can use contemporary tools. You're not straddled with old decisions that were made way before your time. The other thing you said is just the speed with which you get things done. A small team, like literally a team of one can just do
do something right. And there's no permission that needs to be done. There's no communication overhead, but you can have like a big feature that you're doing that takes months of planning and equal amount of dev and then a whole lot of, you know, testing release. And then the other thing you said, lots of meetings, uh,
Again, when you're in a big organization, there are a lot of people that you need to converse with, and then you're on call a lot. So those are some great reasons why. But let's say somebody hypothetically does want to go work at a big tech company, or it doesn't necessarily have to be Microsoft, but it could be like a big bank or like a big hospital chain or something like that.
what are the most common reasons that people are not getting callbacks when they're sparing up their resume and trying to apply for these jobs? Like when you mentor people, what are the most common things that you see that people are not doing right? Yeah. I would say, um, number one is these groups are looking for somebody very specific, right? If they put out a job description, um,
It might not even be exactly that. They're looking for someone to replace or someone special to come in and take care of something that they can't. And you might just not meet that need.
And number two is your resume and portfolio are not standing out, right? Like you are going to go against hundreds and thousands of candidates. And if you don't stand out some way, somehow you won't even get past the first iteration of the resume reviews, right?
And I think that's going to be key too, is to get a call back. Obviously, like having experience and all that stuff would matter. And then also, like if you have a portfolio, having an aesthetically pleasing portfolio really makes a big difference because we're reviewing portfolios within seconds, right? I pull it up. If it doesn't look good, I'm like, nope, I already have a thousand other ones to look at. I'm going to look at the ones that are worthy of my time.
Unless if it's a straight referral, then yes, right? And that's the other thing too, is if you have a referral, you will more likely get looked at. It's not a guarantee you'll get a callback, but you'll at least get looked at.
Uh, in most, in most companies you will, and that gives you a chance, right? But when you get that chance, you better make sure that you do a great job with that. Making a solid, you know, solid portfolio, solid resume, having your talking points on point. That way you can get through to the next round.
And then the other part is, um, maybe it's not callbacks. Maybe it's visibility where if you were to build in public and like to share your story and all that stuff, um,
you would be able to get a callback without even code applying because then the network that you build, the people will start to understand what you do, who you are, where you're at on your career level and all that stuff. Certain companies, certain recruiters will identify you and start following you and start like this, just tracking you. And you'll even get an interview without applying, right? They'll reach out to you instead. And I think that's been happening a lot lately on social media.
is just having people understand what you're doing and stuff. I had an individual, she was building in public and she didn't know what she was doing. She was like, oh, I'm just going to do some stuff and do design work and development.
And I reached out and I said, hey, your designs are fantastic. You should do them more. And she's like, are you sure? I want to be a developer. And I said, no, you can do both. You're one of the rare ones that can do both. The unicorns. A unicorn. Yeah. And so she did that. And then the first job that she got was a contract that turned into a full-time job. She asked them, she said...
Why did you choose me? And they said, oh, we've been lurking and looking at your profile for months. And when we had the opportunity to hire somebody, we wanted you. And then she backtracked and she said, I have no likes from them, no views from them. They were like ghosting behind the scenes. They were lurking behind the scenes and she didn't even know it.
And so same thing with everybody else out there is you just don't know who is like paying attention to the things you're doing and like keeping an eye on you. And sometimes it's a lot of people. Sometimes it's a lot of recruiters and people are just following your story and all that stuff. And once they have that opportunity, guess who they're going to call? You.
Right on. That's excellent advice to end on. I just want to kind of recapitulate what you just said there because you communicated so much. So aesthetically pleasing portfolio, making sure that you're putting yourself out there, you know, learning in public and also just having confidence that, you know, you are probably on people's radar that you don't even realize, you know,
Just because somebody is not going out and actually like, like for me, when I see somebody that does something impressive, sometimes I'll actively say, Oh, I'm not going to like this. I'm not going to let this person know that I, because like, I don't want, I don't have time to like deal with like, Oh, free cocaine is not hiring. By the way, if anybody wants to get a job with free cocaine, we only hire prolific open source contributors to free cocaine, right? Like,
literally every single person is like 32 people on our team came up through the open source. So, so don't worry, I'm not going to reach out to you. You don't need to reach out to me about the job if you haven't prolifically contributed to the free code game code base. But, uh, I think that that is so awesome. Just thinking in terms of how do you stand out and feeling confidence that, that you do stand out in some way. Um, and knowing that, uh,
If you keep at it, eventually people like Shashi are going to notice you and other people that are actively hiring and that there is a path for you. Any parting wisdom for people, anything that you can say to people to keep them going when they're going out there, going through the utter grind that is applying for a job in 2025? Yeah.
Yeah, I have two things. Number one is to continue to build, continue to fail, and continue to learn. Repeat that cycle over and over again because the more that you build, the more you'll learn, and the more the failures, you'll learn from those as well because that's all development is, is understanding how to do things. If you don't do it, you won't even understand how to do it, right? Because debugging is one of the
the key skills in engineering, you'll get a task that says, Hey, there's this bug. I mean, you'll get probably like hundreds of them, right? And then you need to use those skills to go find that bug and figure out how to figure that solution out. And that's the same thing with when you're building a bunch of applications and features, like you're going to repeat that cycle over and over again until you get that muscle memory to gain more knowledge. And you can't never learn enough.
Number two, I would say if you're not a part of a development group or you don't have an experienced mentor, find one. Find a support group. Find a supporter because you only know as much as you know.
And when you find somebody that you trust, that you believe in or a group that will help you, that goes a long way with your journey. Right. They're supportive. They're there to help you. And honestly, find somebody that is truthful and honest with you that tells you, hey, when you really suck and you need to improve, they tell you that and say, hey, like you need to improve this area because of that. But also being able to tell you like, hey, you've done a great job. Keep improving and keep doing these things because you'll get there.
Those things go a long way. I see a lot of individuals out there that are mentors, but don't provide the honesty and just say, hey, good job. Just keep going. And it's like, wait, how do you grow from there? And then they say, oh, I applied for 100 places, but no callbacks.
Well, it's probably because you weren't honest with them and telling them that their project is just not there yet. Like push them more. Push them to the boundaries where they can become excellent at what they do because that's what it's going to take to get in the industry. And that's what it's going to take to stay consistent and continue to stay in the industry is the grind, the growth, the understanding, and just the awareness of like what's surrounding you and how to get to where you need to go.
Yeah. Keep building, keep failing. Uh, that's, that's what I took away from what you said there. Uh, finding a mentor, just a quick note, like it's hard sometimes to find this mythical mentor who's going to be like Yoda to your Luke Skywalker and teach you how to use the force and stuff like that. It can be really hard. Uh,
If you can't find such a person, just leverage communities. Leverage, for example, the Free Code Camp Forum. We've got the You Can Do This section if you need motivational help. We've got review and feedback on projects and stuff like that. And get involved in the Free Code Camp Forum and use the entire community as your kind of mentor, so to speak. I think that kind of like it takes a village to...
type approach can really get you far. So, Sashi, it's been an absolute pleasure learning from you, sharing your wisdom with the global Free Code Camp community of devs. Thank you so much for coming on the show, man. Thank you for having me, Quincy. I enjoy this very much and I hope that this interview will resonate with many individuals and help others find their first tech job. Absolutely. Well, until next week, everybody, happy coding.