Welcome back to the free code camp podcast. I'm Quincy Larson, teacher and founder of free code camp.org. Today we're talking with Joe Hill. He's a software engineer who works on a data platform for NASA. Joe taught himself programming for four years while working as a janitor as the single father of two autistic boys. He first used his programming skills to build an iPad app to help them learn how to talk.
We talk about data engineering and wrangling Department of Defense data into a central data platform. We talk about the role of soft skills and getting things done in big organizations. We talk about the need for patience and practice in self-teaching and how to stop jumping from one tool to another and instead go deep. And finally, we talk about tips for parents raising kids with autism. Joe Hill, welcome to the Free Code Camp podcast. Hi, Quincy. Thanks for having me.
Yeah, it's great to have you here, man. You and I have corresponded, I don't know, for practically a decade, and we got to meet in Brooklyn for a Free Code Camp Top Contributor event a while back, before the pandemic. A long time ago, right? It seems like forever. It does seem like forever. It was like another life, basically. But you are somebody who is a huge inspiration to me because you have taught yourself pro
programming. You've taught yourself data engineering. You've gone from working as a janitor to working as a data engineer with NASA and with the Department of Defense and other big organizations that have true big data to munch and work with. I wanted to learn a little bit more about you, so I'm thrilled to have you on the show. It's great. It's been a long journey, and I'm still on it. It's been a lot of fun.
Before we get into your journey, which we're going to hear about, I do want to ask you just about your tools these days because a lot of people who are interested in data engineering may wonder what somebody who's working at such a high level is using and where they might focus their time. So maybe you could walk us through some of the tools you spend most of your day in and what those tools do.
So, I'm using primarily three languages right now, which is SQL, PySpark, and Python, and within an environment called Databricks. And I've also, in the past, worked with mainly SQL in order to work and transform data with Microsoft Stack. So, I'd be using Visual Studio, not Visual Studio Code, but Visual Studio, which has
SQL Server Integration Studio, SQL Server Reporting Studio, and then also there's SQL Server Management Studio. And so I worked with those as well. But mainly right now it's Databricks and Python, PySpark, and SQL. Yeah, what is PySpark exactly?
PySpark is a language developed by Apache. It's used in Databricks. It's kind of like a hybrid of SQL and Python. When transforming data or querying data and finding ways to display it or even interesting ways to transform it, you can use it for that. I use it mainly for displaying data after I've
created data frames and ingested data from an outside source into the location where I need to be working at. And mainly I use Python to do all that as well. So when you say data frame, it's kind of like a staging area for your data. Like you said, ingest it from outside sources. So maybe you're pulling it from like data.gov or some, you know,
more secret, uh, you know, channel than the public data that's published on data.gov or, or just maybe like external, you know, uh, APIs and stuff like that. But, but you're taking all these data and you're putting them into kind of like this build space. And from there you're able to, is that accurate?
Yeah, I kind of think of them as I don't tend to think of data as abstractly as others. I think of it more as a like physical thing. So you need just like water or oil whenever you're moving things around. You need to you know where the location is. You need to bring it in and build pipelines to move it.
The data frame is essentially a container to store it while you're working with it. And data engineers do a lot of transformations. They do a lot of analysis on data, what it looks like.
And we do a lot of fitting square pegs into round holes. So you have your container that has a certain way of storing that data and needs to conform to that. So you need to transform that data in order to make sure it fits. Yeah. Yeah. So, I mean, you mentioned doing a lot of SQL, you know, probably like migrations and transformations of data to try to get like data from one
you know, schema into another schema. Exactly. Yeah. And sometimes you'll even know the schema that you're working into. So you have to find ways to display that and understand it. And so that's...
That's a big part of the job is not even necessarily writing a ton of writing a ton of code, but definitely doing a lot of analysis, understanding, ingesting data yourself as a human and finding ways of, okay, well, this, this looks like, you know, these are numbers. This looks like that. And so sometimes it's common sense and sometimes it's not. So yeah, data analysis is a big part of the gig.
Yeah, so a lot of thinking and kind of visualizing and then figuring out kind of abstractly how you're going to go from this multidimensional table to like this. I imagine that being computationally intensive on your brain. It can be. I find...
asking a lot of questions about what the data needs to be doing if we don't have contact with the data source. And sometimes that might be the case. Like in one case, I was ingesting data from the treasury. We didn't have any contacts at the treasury. So you're having to answer a lot of questions on your own. But sometimes it can be as simple as
And in the past, working in a company where all the data that you're working with and transforming is an Excel sheet that's been maintained by one person for years. And more often than not, you're going to find that that database was just an Excel sheet run by Linda up the hallway. And so being able to stop in and ask questions about that is very important. So knowing how to approach people and...
say hello and be friendly, I think gets you... opens a lot more doors than you might think in this realm. You're almost kind of like a private investigator. Like, not a private investigator, but like a detective going around... Like forensics. Yeah, trying to figure out, okay, how did this Google Sheet transform this way, or more likely...
Excel spreadsheet transform over the years and like, why was this added and this added? And like, you know, because you have to get into the mind of the person who's been maintaining it because a lot of the world's data is stored in Excel. It's not stored in, you know, like this well-architected, you know, database. It is not. Yeah. Especially when you get like the smaller and smaller, like down to like local governments and stuff and like small businesses and stuff like, like free code camp. Like I, I don't,
I use Google sheets extensively for just tracking, like doing payroll and stuff like that. And I don't necessarily sit down and say, I'm going to build this, you know, enterprise level, uh,
database when I'm the only person who uses it doesn't make sense to do that necessarily it may make sense over time to do that but like yeah what happens if you've accidentally hit a comma where you wanted a decimal right and whenever we're whenever I was in previous jobs you know an entire you know an entire ingest job was wrecked
Because on line 11,958, there was a comma instead of a period next to dollars and cents. And those keys are right next to each other on the keyboard, and they look very similar if you're working with small text. Yeah.
So that might take a day where you're having to go through line by line figuring out, okay, why did this break? And do you break points and things as you run your jobs? Find out the step that it broke at. And then you have to kind of – an experience will do this, will allow you to work backwards from that point and be able to find where the bug is.
Yeah. Support for this podcast comes from a grant from Wix Studio. Wix Studio provides developers 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,189 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.
And we should note that throughout this conversation, you and I are going to be careful not to – you have security clearance with the federal government. So that's another reason you don't have much of a web presence is my understanding. It's like you can't use the web – like you have to be extremely careful about what you say publicly. So if anybody is hoping to get some juicy details about crazy things that go on in the government, we may not be able to discuss.
disclose too many of those things. But, um, and, and I should, I should note in case Joe's employers are listening, he hasn't disclosed any of that to me privately either. I don't have security clearance. Thankfully NASA is a little bit wider open. So that's good too. Everything they do is, uh, I think it's very, very, uh, few things are classified. So that's a good thing. But yeah, I worked in, I worked in DOD for a couple of years. I can't really talk too much about that. I can talk in higher level terms, but, um,
And that's one of the things you have to consider whenever you're getting a clearance and as a programmer, because the government needs programmers just like any other place. And so I've, I've only been a contractor for nearly three years now. Yeah. But before that, you know, I was in finance and stuff and you had to be careful about what you did online and things like that too, because you,
Again, you're being trusted with personal data, a lot of PII. Personally identifiable information. And DOD stands for Department of Defense. I always make a point to spell out acronyms. Yes.
So in finance, like a lot of – like if you say something – you say the wrong thing, you get like fine. People might use that information to trade on and you might cause people to lose a bunch of money. Yeah, or even from a security standpoint, if you're sharing a lot of information like my favorite movie is Sneakers.
I love that movie. I love it too, right? But a lot of people might use SeaTech Astronomy as like a password or something like that. And if you're working in sensitive areas like with data or something like that, SeaTech Astronomy is a reference to the movie Sneakers in 1989, by the way, guys. Too many secrets. Yeah, too many secrets. And so...
I'm going to link to the trailer if anybody wants to watch it. Great 1980s movie. I believe late 80s, early 90s. Oh, and it's probably like 92 or 93 because it's after the fall of the Soviet Union. Anyway. Yeah. But people can pick up on those things. And so if you're sharing a lot of your personal data online and you're working within the realm of –
or anything else people can, will use things like LinkedIn and other things to get access to you. So unfortunately, that means less of an online presence for me, but it does help because it helps you to lock things down a little bit and stay safe in that regard. Yeah, one of the most common passwords of all,
like they do these like dumps of like common passwords. One of those common passwords of all time is NCC1701. You know what that is? Yeah, that would be the Enterprise. Yeah. Yeah, so lots of Trekkies just use that as their password. Think they're like, oh, nobody will guess this random string of characters. Oh, yeah, they will. Trek minds think alike, apparently. Yeah, a lot of people use that. So if you disclose too much about your interests or your hobbies, you could get hacked. Yeah.
Yeah. Use a password manager. Use a password manager. That's what I do. Uh, and, and, you know, I know, uh, um, I started using a, uh, one password, uh, which they charge for, but I started using that, I think about 10 years ago and I haven't looked back. So yeah, we use last pass, but then they got breached. And so we had to migrate to one password, but you can, even if, if you just want a free one, I think, uh,
Firefox and Chrome both have password managers. Those should be sufficiently secure. Apple's integrating their own now too, their own password managers. So there's that too. Yeah. Anyway, like random public service. Yeah. So pros, you know what I mean? So, so you weren't always like, you know, a contractor for the department of finance for NASA. You weren't always working at big tech companies.
or big finance companies banking on data engineering type stuff. There was a time when you were just mopping floors.
And I want to get into your origin story, but I also want to acknowledge that your family has a history of working with the federal government and your parents had security clearance. It's like three generations of hills. Yes, something like that. When you get up in the area I live in now, which is Norfolk, Virginia, it has the world's largest naval base. We have...
Yeah.
Uh, my grandfather was in the Navy for 38 years. Uh, they had to kind of force him out. He was a master chief gunner's mate, um, which caused my dad to move around a lot. My other grandfather was in a, was in a Marine and then he worked in aerospace technology. So, um, that's kind of how that started. And my parents worked for, uh, retired as civil servants recently for the Navy and army. So, um,
I kind of stumbled into it after I had been a coder for quite a while. So thankfully, you know, I do have a presence on LinkedIn. So somebody gave me a call from a small contractor out of Scott Air Force Base in Missouri with US Transcom, and that's where I got my first job.
job in DOD, but I had also been in the Army for a couple of years, way back in the early 2000s, where I was injured and wasn't able to complete with that, so...
But anyway, I've had a multiplicity of jobs. Can you talk about your service at all? Is that classified or are you able to? Yeah, I was, like most people, I was in my early 20s. In the early 2000s, I had a degree in theology, which meant a long career with a lot of retail jobs.
And so, I mean, I was selling jewelry or clothing or doing other shoes and really wanted to do more with my life. And so I decided that the Army was going to be a good way to do that. And so I joined in 2003 for...
it was, uh, at the time it was an experimental program where you could, uh, sign up to be special forces and they would take you through infantry school, jump training, ranger, uh, ranger school, fast rope, and then, uh,
Hopefully selection after about three years. So it's a long road to haul. I got to jump training and I got injured there. What is jump training exactly? So, I mean, you're trained to be airborne infantry. So jumping out of C-130s and hopefully...
hopefully landing on the ground with both feet. I didn't. I found a gopher hole. And so one leg kept going into the gopher hole and the other leg hit the ground. So it wrecked my knee. And so...
That was pretty much the end of my military career. I did rehab. I tried to go back in, but I was eventually injured again in the training. And the Army at the time had plenty of recruits and said, thanks, but no thanks. And so I was medically discharged. Yeah.
Well, that's a bummer, of course, that your knee got injured. Like, to this day, do you still – do you have the consequences of that? Oh, yeah. I have a good fractured patella, you know, from the second injury. And so that left a nice little bump. And patella is your kneecap, essentially. So that cracked in half and I was able to –
Thankfully, he'll, but I'm not the best runner, as you might notice. But at the same time, I still do a lot of exercise, like lifting and things like that. So I quite enjoy it. Yeah. And I guess strength training and things like that aren't super straining. Do you feel it if you're doing a deadlift or something like that? I feel a lot with squats. I have to be real careful with squats because it just feels...
It just feels like it's going sideways, you know? So it just doesn't, doesn't quite feel right on my right knee. Yeah. And like, I'm, I'm not like you and I are both in our forties and like, I basically stopped doing like those power lifting type exercises because I mean, like you think about it, like everything is going down your spine. Like at the end of the day, like that's the only support like is that spinal column. And like when you got like 200, 300 pounds on your shoulders, you're putting a lot of stress on that to the extent that like,
After you've done a bunch of squats, you're actually slightly shorter because you've compressed your spine. You're compressing it, yeah. If you've done it for a number of years and you jump onto a pull-up bar and you just let yourself hang, you're going to tell whether or not that spine is compressed or if anything is a little bit wonky in the lower back. You'll know real quick. Yeah, I've migrated almost completely to cables and free weights.
But how about you? Do you still do the headlifting? I'm still doing the trying to be a young man and doing the powerlifting thing and things like that. But it's not as...
I think, I think as I get older, it's not, it's not as much of a competition in my brain anymore. I'm finally starting to come around to that and start to realize that it's, uh, you know, you're, you're not going to compete with, you know, time is a straight line. You're still getting older and everything. You're not getting any younger. So start to do stuff that's going to work more. So I'm trying to, trying to do that. Um, trying to understand, uh, just different movements and, um,
um, are just as effective as powerlifting, even though the powerlifting thing is just so much fun. It's just, it's just such a, it's such a primal thing in my brain. I love it so much. So it's great. Yeah. And I talked to a lot of usually younger guys that are powerlifters. Although, you know, weight training is one of those things you can do into your like eighties and nineties and stuff. There are people who've done it, right. People that are like totally jacked in their eighties and nineties and stuff. And, uh, at that point, you know, so,
Yeah. But, but there is like, you have to be sustainable in how you do it. And like, I, I'm not going to do any more heavy squats or heavy deadlifts. I think. Yeah. But, uh, but you've got two young sons. Uh, are they interested in weight training at all?
My oldest is. Both my sons have autism, so it makes things a little bit interesting when it comes to training or just learning new things, especially with my oldest. But he has developed a hyperfixation on hockey and football.
in training that way. And he, he, I'm a big hockey fan as well. And so he, he and I talk about that quite a bit, but he's at his, at his high school, he's starting to talk to the strength coaches and what, what,
uh, he wants to know what hockey players do, but we don't really have a hockey team. So at his high school, so he is learning what football players do. And so he's also developed a love for that as well. So it's been, it's been great. Yeah. Yeah. I want to get into the, uh, like, like raising two sons who are autistic and the additional, um, considerations to come along with that. And, uh,
I think it'd be great if we could go back so we don't have to keep jumping around in time and talk about like, okay, you are growing up in Norfolk to a large extent. I know you lived abroad a lot with your family. The work took them over to Europe and places like that. But can you talk about like your early days and what ultimately kind of planted the seeds for being interested in computers? Yeah.
Yeah, I... So, around the time of 2010, I had been...
I had been in the army. I had worked as a cable technician as a disconnector. So I climbed telephone poles and disconnected people's cable who had either moved or whatever. Um, so carrying a lot of ladders around, um, and then I was able to become a technician. So I was crawling underneath people's houses and pulling cable and doing things like that. And then, uh, had moved on, uh, at that point had gotten married, had a couple of kids, but, um, my oldest was, uh,
At the time, he was three years old and still not speaking. He was non-verbal, and so that meant a lot of screaming and yelling, and my youngest was displaying some of the similar tendencies there. And so it was really stressful on his mom and I. His mom and I have since divorced, but at the time we were still together.
And so, and then finding out, getting the diagnosis and understanding what that meant developmentally from just motor skills and schooling and language, things like that. So it was a lot to take in.
But I had always been interested in computers. I had always loved tech from the time my mom brought home an old Tandy for her work. And that's just a black and green screen for anybody who doesn't know. It was a great way to play Dig Dug on big five and a half computers.
you know, inch floppies, which are very thin. But I'd always loved it. And I knew that there were tools out there, but I started to explore things like iPad, because the iPad was brand new in 2010. It was around that time, looking for tools that would help my son learn to speak.
And there wasn't too many. There was a couple of very expensive apps. At the time, I was working as a financial planner and I was trying to find clients. So I was like, I want to help families like mine who have kids who have special needs and need help saving money and things.
And I was not a very good financial planner. I was doing my best. But, you know, when you're brand new, it's tough. But I was still getting appointments to sit down with people and talk to them about their families and their needs. And one lady said, Joe, I really appreciate you talking to us about finances, but really I need tools to help my kid. I just need something to help him communicate. And so I was like, okay, so I'm not the only one.
So that caused me to get an appointment with a speech pathologist here at a children's hospital here in Norfolk. And I sat down with them and I said, what do you guys use to help, like in the way of software? What do you guys use? What tools can I download? You know, can I use the iPad? And as soon as I said the iPad, he goes, the iPad's a toy. Nobody uses that.
He goes, we have a tablet here that we can use. And it was like this. He pulled it out. It was like this very thick tablet.
tablet. If you remember Windows CD at the time, there was this mobile technology that Windows had. It wasn't the best, but it was what they had. It was a Pex tool, so it had all these pictures on it and stuff, and you can touch it, but it was just very convoluted. You had to go through several menus. You needed a lot of help in order to use it. It wasn't very intuitive. I came up with an idea. I was like, what if I just made an iPad app that
I could take pictures with it because I could take pictures of the iPad, but I could also record my voice into those pictures. So my son could tap on it and they'd hear my voice or his teacher's voice or his mom's voice. And so I grabbed an objective C book and at that point started to learn what it was to code, you know, what an iPad application was.
And my first iteration was really bad. I didn't know what I was doing. But it allowed me to talk to other developers in the area who were working with Objective-C and making iPad apps because everybody was making apps at the time. Everybody. iPhone, iPad, everything. The iPhone was three years old at that point.
And so they helped me, and I became more of a project manager, and they took on a lot of pro bono work, but also just some paid work in order to make Division complete, you know?
And we were able to launch, and I thought I was going to make this big business out of this. But it turned out on day one of the launch, I had one sale, and that was it. I was going to sell it for, I believe, $20, which for an app is a lot. It's a big ask. But I figured there were so many people with special needs children, it would get a big...
you know, a big launch. It was a good story, you know, a dad, you know, trying to help his kid out, and I was. But, you know, it got me into newspaper, got me on Inc.com, it got me into TechCrunch and a few other places. But at that point, I started to learn a lot about
project management, what it meant to manage, uh, just manage expectations and have to make some hard calls on features and things like that. When it came to building software, um, get really involved with product. Um, so it was, it was, uh, it was kind of a trial by fire there, but it really started me down the road of, um,
Meeting a lot of programmers and being like, hey, they can pay their bills on time. Hey, they don't have to take a bunch. I was working three jobs at the time. Yeah. Eventually, the financial planner gig fell through, and I had to take a job as a janitor. And I was working several janitorial jobs.
And at that point, I just said, well, the programmers seem to really like what they're doing. They can probably help me start down this road here. And by this point, it was like 2012, I believe, 2013-ish. I was going through a divorce. And so I just said, I really need some, I need to find something here that's going to work. And that's when I decided to start to learn to code full time.
Um, and, uh, we can get into that, but that was really the onus of, um, of this whole journey. So, yeah.
Yeah, so you get a lot of media presence with this launch of this app, which, again, it has a compelling narrative behind it. Dad wanted to help his kids, who's literally caught himself from reading Objective-C handbooks and stuff like that, and has built this app and published it.
Whatever became of the app? Were you using it yourself? We were using it ourselves. That was a good thing. Deacon, my oldest, really liked it. Gunner, my youngest, not so much, but he was enjoying it. One of the things that really unlocked
for them was being able to communicate about the games they were playing and things like Angry Birds or others, you know. And that was a...
that was a big turning point for us. So, uh, but they did use it. It did help. Eventually a lot of the therapies that we were paying for helped as well. Uh, they had really good, we got really lucky with the schools and their, um, their teachers and helping them and coaching them through the motor skills and stuff. Um, it would be described now, uh,
For some folks who understand that autism is a spectrum, there's a lot of different degrees to this. My oldest still has learning difficulties, but he is graduating from high school this year. We're going to try to find him a good job. My youngest is doing very well in math and science, but he loves plumbing. He takes old
uh, plumbing, uh, supplies and rehabs them, uh, things like toilets and stuff. He finds them and people are throwing them out and he, uh, cleans them with, you know, special cleaners and acid and replaces the parts inside of them and sells them. Uh, and it makes, and he's only, uh, you know, he's only 16 years old. Yeah. Very well doing that. So, um, it's been a long journey, but we got really, uh, they, they're fantastic kids, no matter, you know,
no matter how they are, they're just absolutely fantastic and I love them dearly. But there are concerns as a parent that you want to make sure that your children will be okay if you're not there anymore. And I think that's the biggest concern for me and yet another reason why I started this coding journey. Yeah, absolutely. I mean, this is a very real kind of imperative issue
it's something I spend a lot of time thinking about myself, you know, free code games, the charity, I don't have any equity in free code camp. Like if I stopped working on free code camp, my compensation goes away and yeah, I've got to go find a job and stuff like that. And I don't want to leave, you know, my, my family in a lurch if, you know, I get hit by a bus or something like that. So, and, and you have the added dimension of like you're,
Sounds like one of your sons who's doing all that plumbing, like in theory, if he's really interested in plumbing, he could turn that into a business of some form, whether that's being a plumber or whether that's just working with plumbers and –
refurbishing gear and stuff like that. Yeah, I think he's way more driven than I was at his age. And when I was 16, I had a little Jeep Cherokee that I drove around and I was working at like Fuddruckers, right? But I think to be able to try to find a trade early on, that's something I'm trying to drive into them because of my life and having to wander around so much of my
my 20s and early 30s before I finally found something. And it's set me back a lot, I think. And so finding a trade or finding something that you're good at or finding something that you can work at so you can work your way into that and utilizing everything that you've learned in your life is
Um, that, that's, that's, uh, that sounds more complex than it is because a lot of times you'll fall into it, uh, kind of the way I fell into coding. But, um,
but at the same time i've incorporated a lot of things that i learned in retail uh and dealing with customers at their homes when i was a cable technician even you know in the army or whatever or research when i was in grad school which i didn't complete or in college i've used all of those things in in coding and so i try to teach them at the same time it's like it's okay if you don't figure it out right away but
Find the trades. Find something that you can make a good living at at first and then start to explore. And then that's fine. There's no harm in that. Yeah, and then you'll always kind of have that to fall back on. 100%. I can always fall back on just going and teaching English or running an English school. And that gives me, I guess, a...
Kind of like if you look at the Maslow's hierarchy, uh, you know, you have like the basic physical safety and stuff like that. Like I could probably go get a job, uh, doing something else if, if everything went to hell. Um, and similarly, like, like the work that you're doing with data engineering and stuff like that, uh,
I mean, the amount of data in the world is not going to suddenly go away. It's not going to... Like, all the random, like, Excel spreadsheets that are managed by Lindas of the world are not going to just magically all coalesce and be like this, you know, universally accessible API or something like that, right? Right. I think it gets to be really interesting when we...
You know, we're in the tech industry now, and I come across, and thanks to Free Code Camp, I learned to code. And, you know, I'm in a coffee shop working the other day. There's a student sitting next to me, and he's going to Old Dominion University here in Norfolk.
um he noticed all the stickers on my laptop one of them says data and you know another one has a you know a couple a python sticker a few other things that i have and he says are you a programmer and i said yes i'm a i work i'm a data engineer and he says he goes oh that's so cool he goes uh how did you get into that you know and kind of told him my story about how i learned how to code and
Finally, I fell into what I call the tiger trap of data engineering. I didn't know that data engineering existed when I got the gig. Well, at the time, it was a business integration engineer is what they called it. My first job was at a credit union here in Norfolk. And that involved a lot of SQL queries and reporting, not really dealing with the APIs because other guys dealt with that. But I was learning to query the data and
construct reports based on what people needed. So I had to, you know, a lot of people could, Hey Joe, I need a report from, um,
this date to this date that has this information in it. Can you get that to me? So I had to learn how to do the queries and SQL and things like that. And if it was repeatable, write what they call a stored procedure. So it's like a little SQL program that would be stored and ran every day. And then I started to learn that you could have that automated where you can tell SQL,
server to email that report to that person. And I also found out that in banks, they don't like that. So they shut that down when I was doing that. And so I found out that you can write Perl scripts and things to automate to run at a certain time to take that report that was stored in on my on my machine and email that to that person based on what I needed to do.
store it, archive it once it moved and after it ran every day. And then I started learning about SSIS. Anyway, I started telling him about all of that. He goes, I didn't know any of that stuff existed. And this guy's a computer science student at a university, right? And so being able to sit down and talk to them about, hey, this isn't...
This isn't linear. You're learning what you need to do. You've got a foot in the door already. And there's just a lot that you can be doing to get better at practical things when you graduate so you can get a good gig. But Free Code Camp and other tools I've used have opened so many doors and conversations to people who are
looking for a job or concerned that they're not doing enough to get a job in coding. And I can tell them about my story and be like, I, it took me three years before I got my first job before I really, you know, was able to buckle down and learn to code every day. So yeah, it's, that's okay. There's no, there's nothing wrong with taking time to learn this stuff because it's
Nobody's journey is the same at all. And so you never need to be comparing yourself to others, especially people who might have more of a fast track because they've been working on this stuff since they were a kid. Yeah. Wow. A lot of things that I want to recap from what you just said. First of all, working with a credit union in Norfolk, a lot of...
entry level programming jobs are not going to be at like Google and places like that. Like you're going to start somewhere that is maybe not even in tech. Two thirds of jobs are not even in what we call tech. They're working at hospitals. They're working at, um, banks. They're working at, uh, just like local kind of like manufacturing operations, things like that. Right. Um, and another thing that you said that I thought was really interesting is, uh,
Being able to gradually figure out stored procedures and things where you could start to automate the work as you learn because...
The beauty of programming is code is infinitely reproducible. And if you figure out how to do something, you don't need to just reinvent that wheel every time you need to do it. You can kind of like save that script. And then you can just run that script. And you can automate things and you can keep moving kind of like – I liken it to kind of like climbing farther and farther up a mountain. Like you're here and you figure this thing out. And so that kind of becomes a foundation or maybe like almost building a mountain as you go up.
uh, building a ladder as you go, uh, in terms of just being able to like, you know, have that solved problem and that's still running and you're still getting that stuff done, but you're able to turn your focus on the next big problem. Yeah. I, um,
When I was learning, the big push was open source projects, right? Find an open source project, go on GitHub. And that's great. That is correct. But I would go on to GitHub and I'd look at these things going, I don't know how I'm going to contribute here. I don't know. It looks fine to me. I don't know. There's a problem. You know, what can I fix?
And so my way of approaching more practical issues was things I ran into on the job, which was, hey, Joe, this report, I need the date at the end of it. So every report I was sending, I was typing in the date. And then I realized that I bet I could do a script where I could put this file in a certain spot. I could tell the script to look for this file.
move it, make a copy of it, move it over here, append the date, send that one, and then the original, go ahead and append the date as well, and then move it to an archive folder so I can keep track of it. And I could do all of that on Windows Explorer, you know, and just, you know, in the file structure, go rename and put the date at the end of it and move it up to the file and make a copy and move that to where I needed to. But as soon as I discovered that and I took care of it in about,
you know, a second. I, uh, and I was able to see it moving and doing things. That's where, you know, the pupil dilation happened. I was like, Oh, okay. So, um,
programming can be really practical and it solves a lot of these problems rather than just chasing down bugs or doing bug bounties or anything else that I didn't really understand or didn't, to be honest with you, didn't have an interest in. I don't, I don't want to chase down bugs for somebody else and maybe they'll pay me 50 bucks or,
Okay, you know, or a pat on the head with an open source project. I mean, that might sound that might sounds a little selfish, but it just wasn't, it just wasn't computing for me. Right? I get it now, because I'm working on open source projects, and I, and I try to contribute where I can, or I'm helping other people with their problems and their programs.
But at the time, as I was learning, it just wasn't something that was gelling really quickly for me. So, I mean, the other day I wrote a Python script to go through, to loop through my file structure on my computer to make all the files with spaces have underscores and make everything...
camel case and now it looks a whole lot cleaner and I love the way my file structure looks and it took me a couple hours to look all that up and learn how to do it and see if I could get into more secure files without having to worry about stuff. So all of these, it led down to several rabbit holes, but it was a practical little project and I got it done and it worked and it saved me a lot of time. So...
scratching your own itches, so to speak, became like this compelling way for you to learn. You weren't learning because some other person had a problem. It was like a first person, like, I really have this problem. I really want to fix it. And that served to spur your curiosity and give you kind of a reason to continue to learn. Kind of selfish. Hate to admit it, but kind of selfish a little bit. But at the same time, I, I,
Time is always of the essence for me, and I just wanted to understand why I was doing something. And so I think when I was learning, the big picture problems for me weren't really falling into place. Like, why am I learning variables? Why am I learning arrays? Why am I learning...
these things necessarily, the building blocks, right? And it wasn't until I, like with FreeCodeCamp, my first project was the calculator project. So I really didn't understand anything until I started to be like, oh, I need to store the results here in this variable. And I need to write a function that's going to be able to add, subtract, multiply, divide, these things like that and call those functions so that it would work.
So it was just, you kind of get into the weeds with the small stuff and the difficulty is keep going until you start to build those, you start to see why the individual Lego bricks are eventually going to build something bigger, right? And in the same way with any programming journey for me was, yeah, it became way more practical for me to
Tackle those little things at first. And then it kind of led to data engineering as well, because those are,
building blocks upon one another. And that's one of the things that really appeals to me when it comes to, especially data engineering is I know I have a physical thing. I need to move it. I need to build the ability to move it. And I, then I can work with it and then I move it someplace else. And then we can do other things with it. Right. Those, that, that, that, that, that, those steps made sense to me because I have, I,
I hate to say it, a weird hybrid brain between soft skills and programming. I know how to program. I know how to do those things. But it helps me when I'm explaining things to people who are like, why are you coming in here to mess around with Linda's spreadsheet? Some people might not understand. They might be resistant to your work that they hired you to do.
And so you have to be able to explain to them like, hey, this is this is Linda's spreadsheets working great. You know, it's been working for years. But what happens if Linda leaves? What happens if Linda puts a comma in where there should be a period? What happens if what I am doing is setting up a table here.
We can query so Linda can continue to do her job, but you can do your job and not have to wait for Linda to email that spreadsheet to you for the day. Do things like that. Give them practical solutions to how they're using their data. It's super important to be able to explain that to people as you're working as a programmer.
So one of the things that is occurring to me is you did spend time like being kind of like a financial advisor and a huge part of that is explaining, okay, this is why you need to do this. This is why insurance or this is why this investment vehicle or why this tax consideration is important.
So you probably spend a lot of time kind of like breaking things down and explaining things to people who are like, oh, I just don't want to have to deal with this stuff. Right. And I imagine that's how it is with a lot of people in organizations. They're just like, I just don't want to have to deal with this. Like, why do we need this? So you are able to kind of come in and articulate the reason and make it palatable to them and make them accept it. So they'll kind of step out of the way and give you what you need so you can do your job.
Absolutely. Yes. And you surmise it there perfectly. When I worked retail, one of the jobs I had was at Best Buy. And it was explaining – as I was getting an app developed for me, I was explaining iPhones and things like that. But –
whenever you're selling, you have to break down, Hey, this is what your need is. This is what you want. This is how this might be a solution for you. Um, and I always like to, whenever I was selling something, I wanted to believe in what I was selling because if I didn't believe in it, or if I knew it wasn't great, I wasn't going to sell it. I just, yeah, there's just a personal code. And not only that, it's just like, I just didn't want to have to deal with the problems that might happen afterwards. Like the person will be unhappy because it's not working anyway.
So you're trying to, that's carried over now into programming. You want to be able to think ahead as to potential problems that people might have. So you can take a project
that has A, B, and C, but you can also add, you know, D, E, F, whatever you need to in order to think ahead, in order to deal with those potential problems as well. And explain that to them. But, you know, doing a data visualization from
from an old Excel sheet and be like, hey, you have this here. Do you want to be able to see these metrics as well? And being able to walk over and say, I understand why you're doing this, but this metric should cover it. But I don't think you really need
This is kind of redundant here on this aspect. And they can be like, well, we need it for this or that. And then you start to understand their business a little bit better. And that allows you to program for it a little bit better as well. It's all about being able to communicate there. Because again, if you're not doing that, you're stuck in
well, I'm creating this variable, I'm creating this array and everything else. And then nobody is satisfied. It gets boring. It gets, you know, just kind of stagnant. So being able to have that, well, at least for me, being able to have that communication and work together with people who don't know how to program, um, when that starts to gel, it feels really good. And, and that's when the project, and I think that's something I've been discovering the last couple of years, um,
After coming from straight SQL reporting to actually doing data engineering, um, it's
Having that type of relationship with stakeholders is a lot of fun. I enjoy it. Yeah. And just to put this in context of getting buy-in so that people actually understand why you're doing it and that they care and they respect what you're doing and you're not just, oh, the damn data guy keeps bothering me. What the hell? What does he do this time? Like, no. Now can I empathize a little bit with what you're trying to accomplish? Yeah.
And they can look forward to... Oh, yeah, this is actually going to be a big game changer for me because I won't have to do XYZ anymore and stuff like that. So essentially, it's...
It's just a communication problem. So much of life is communication problems. And it sounds like in your previous work in retail and in the financial world, you were able to build up this kind of like empathy for like, I know you're busy and you got to do X, Y, Z. Let me help you with this. And so you're able to kind of give this clarity of purpose. And then that facilitates cooperation instead of adversarial relationships or just kind of like apathy. Yeah.
Yeah, I, you know, if it becomes just about, and for those who are just learning or are students and haven't worked professionally yet, there is an aspect to the job that
Where you have tickets assigned, which you need to hunt down bugs, you need to fix this, you need to write this program, you need to write this report. And if you're not careful, you'll just be a ticket completer. And that's great. But the way I think that you build a profession is by...
not just being a ticket completer, but also understanding why the tickets are being written, understanding what's being asked of you, going deeper than just the tools that need to be used in order to accomplish this. It is, what is the problem that needs to be solved here? Is this ticket going to complete that or is it related to another issue? It leads to a lot of things and that's where I think you
you can be more than just, uh, an engineer that's just taking orders. You're, you're an engineer that is thinking, uh, business wise in order to how to make the business better or how to make the department better or how to make, um, better tools or tools that,
It leads to better conversations about tools that you want to use as well because then you can give reasons why what you're running into as a programmer, you're giving reasons why things can be improved or move faster or whatever and make your life a little bit easier at the same time and the stakeholder's life easier as well.
it becomes way more of a fun environment when it's like that rather than you just coming hat in hand going, can I please have this program? And they just go, no. Right? Because you're going to run into that a lot too. So thinking systematically, kind of geeking out over the problem, not geeking out over the tools to solve the problem. Like a lot of people, I think fix,
fix it, hyper fix it on the tools, which is why we don't talk about tooling extensively. We don't have like, you know, uh, these, these debates about like, Oh, this tool versus this tool and stuff like the tools are just implementation details. Um,
The big challenge is usually understanding the actual problem and helping other people understand the problem. And that's why I like a lot of people are allergic to meetings. They're allergic to like, I just, I just want to clearly defined, you know, issue so I can work out like most developer jobs. You're not like in your, you know, cube all day and like just,
solving like perfectly articulated tickets and stuff that some, like if, if you have one of those jobs, consider yourself very lucky because some other person has been working very hard to groom those issues for you. So they're all teed up. So you can just, you know, hit them off, uh, in practice, uh,
Getting things done is messy and it does involve a lot of communication overhead and there are going to be a lot of meetings and there are going to be a lot of stakeholders that have opposing interests and stuff like that. You're going to have to resolve conflict. You're going to have to figure out clarity. People are going to ask for a faster horse when what they really want is like an automobile, but they don't know how to articulate that. Those kinds of things are going to come up.
all the time when you're working with a large, diverse coalition of people trying to get something done, like putting up satellites or putting up the James Webb. I can only imagine the administrative overhead with getting James Webb up there. I can't even begin to fathom it, right? And one of the things also just –
as a government contractor, right? I am, I am contracted by an entity to come in and solve problems, right? And not only am I working with my contractor boss, but I'm also dealing with my government boss who sometimes might not be a hundred percent in line because the contractor has to think about,
cost and how they're charging it and if they're going to get paid for it. And the government boss has to think about the cost involved as well, especially at NASA, because it's a very tight budgeting when it comes to that. DOD is a little bit different, but
There are those considerations. So a lot of communication has to go into that. And if you're in a corporate job where it's not government contracting, you still have the consideration of I'm an employee. It's being paid a certain amount of money. I have an idea.
I'm going to put forward this idea and sometimes that idea might be shut down, you know, because either they don't understand it, they don't understand the problem, they don't understand the solution, or it's just not the right time. Yeah. All of those things had to be considered. So much of my time as a young programmer was spent like, why won't they listen to me? I clearly know the solution.
This is clearly going to help if we get this particular text editor approved. And it just wasn't. And becoming tool agnostic is one of the biggest strengths you will ever have as a programmer. If you walk into a place and they say, we use X, you go, great, I'll learn it. Roll with those punches. There's no need to be
uh, fighting immediately, uh, a tool stack because you're used to another tool stack and that's what you like. Um,
There are two mantras I live by. One is everything is fixable because everything is fixable. If something breaks, it's okay because I get worked up and scared when my code doesn't work or if I try to start my car in real life, the car doesn't start or something like that. Everything's fixable. It's just a matter of time, effort, and money, right?
The second is simper gumby, which is always flexible. You need to be willing to be flexible on some of these things and understand that the person sitting across from you is not you. They don't have your brain. They don't have all the connections that you're making in your brain to these problems. And so try your best to understand that. And if it's your boss who's just
shutting down every idea you have just be like all right well okay you just have to kind of let that stuff glance off of you because either that boss won't be there forever or you won't be there forever and you can move on to something that's better or but learn what you can when you can and try not to let those things frustrate you too much because it's life's too short
to worry about stuff like that. And it's just way better to try to learn as a result. Like I didn't know Databricks a couple of years ago. I was used to SQL Server Management Studio. I liked querying in SQL. I liked being able to get that. I liked being able to do everything that I could, create stored procedures and stuff like that. But if I had gone in and be like, well, I like SQL Server. I don't like Databricks.
then I would have missed out on an opportunity to learn a really good data platform. And I'm still learning it because it's huge. And there's so many opportunities with it and so many integrations with it that I'm able to learn other tools like Tableau and Power BI and other stuff that I have to use
I wasn't used to before. Yeah. It's just another opportunity. So Semper Gumby, always be flexible. Becoming tool agnostic is one of the best things you can do as a developer. And it's going to open up a lot of opportunities for you to learn new tools that are assigned to you that you might've been like, I'm already good enough with this tool. And like, this seems like just another tool that's very similar to that. But by virtue of,
just kind of like letting a lot of your ego and a lot of your, your past, I guess, uh, competence kind of like slide a little bit and just, okay, I'm going to, I'm going to do what my boss told me and I'm going to learn this new thing. Uh, or this stakeholder told me, uh, that, that has opened up a lot of paths to learning for you. I think so. Yeah. And, um,
I know that we've kind of jumped around time-wise in my conversation here. I apologize. It's the nature of being ADHD and jumping from thing to thing. But yeah, that's one of the biggest takeaways I've had is – and one of the good things about being a self-taught, I think, engineer is you don't have to have a lot of ego going into that. And a lot of ego is built on –
expectations. If you have a high education or something to that effect, people are going to expect a lot more out of you than, say, a self-taught person. Use that to your advantage. Don't let expectations of yourself that you've put on yourself or others have put on you limit you in the ability to have an open mind on things. Because, like you said, I was a janitor 10 years ago.
And now I'm working for NASA. That's a big leap. But there's a lot of learning. I mean, it's arguably like the biggest conceivable leap. Yeah. There's a lot of learning that went into that personally. A lot of hiccups, a lot of mistakes, a couple of layoffs. But at the same time, that's why I say everything is fixable. You have a skill now once you get your foot in the door with this.
that will, whether it be programming on the front end or app development or data development or whatever, it allows you to have a perspective and a trade that's not easy to find. And people might say, well, AI is going to take over all the jobs. I'm like, guess what? AI is great. It's a great tool. I use it myself when I want to write queries real quick and get a good baseline and understand where that's coming from.
But it can't always account for the comma where a period should be. It can't always account for variations in code or data that needs to be analyzed. And while that all happens, you still have a job. And at the same time, too, if somebody came in tomorrow and said, Joe, AI has taken over your job. Okay, I've scrubbed floors before. I'll do it again if I need to.
But I don't think we're necessarily at that point yet. Yeah. And so if you have anxiety about
AI taking over or doing other things like that, or why should I even start? Oh, because it provides an opportunity for you to have a better life. It provides an opportunity for you to develop skills you wouldn't normally do, like when it comes to troubleshooting or soft skills or build connections. That's why you do it. You know, it's not supposed to be easy. Anything worth doing is going to be difficult. So, you know,
You're going to have to try. Even if sometime in the future it might be eliminated or something like that, that's okay. It'll be fine. And I'm talking to myself through this as well. But you just have to learn how to deal with that potential disappointment. Yeah. Yeah.
I mean, AI has been taking jobs since John Henry, right? Driving spikes and then they bring in the spike driving machine. And you know what? People have always found new, like higher skill things to do. And people who like you or Simper Gumby, always flexible. I've always figured out
a way right to, to continue to get things done. And, uh, I mean, I personally think that AI is greatly overhyped and that people have a vested interest and their market capitalizations are based on, you know, convincing people that they can just have a developer in a box. Absolutely. I think, uh, I think that there is that aspect to it. And, um, a lot of, a lot of, uh, a lot of things I'm, I'm easily swayed by marketing. I'm, I just am. Yeah.
I walk through an airport and I see big banners about
advertisements about whether it be ai or data storage or anything i'm easily swayed by wow that must be that must be the next thing it could be or it could be gone in a few years so if you're a tiny cog in a big wheel like i am the best thing you can do is just well so far so good i'll just keep working at this and keep learning and being open yeah um and then
you know, yeah. Everything you learn, like all, all the time you spend learning, you're actually getting better at learning and learning is the key. The real skill that developers have is the ability to be flexible and to just adopt new tools and flex with the situation. Um, and I, I certainly admire your, like I've scrubbed floors before. I'll scrub them again. You know, I, I admire that about you that you're willing to just do whatever it takes to provide for your family and, and, uh,
Do the work that presents itself as needing to be done. That's one thing that I always tell people is just, you know, to some extent, you know, you can swallow your pride and you can do a day job like work at a Starbucks or work as a janitor or do whatever you need to do to pay the bills while you're learning this. You took like four years learning this. You mentioned earlier that you talked to like a computer science student who walked up to you and was asking about the stickers on your laptop and they didn't know about a lot of the tools you were using because you're
Tech is freaking huge. There's tons of different tools or tons of different disciplines in here. Just merely going and getting a computer science degree doesn't necessarily prepare you. I talk with CS grads all the time who are struggling to find jobs. It certainly helps, and I encourage people to go get a CS degree for sure. But
uh, you need to really work on that muscle, uh, that is like learning and, you need to build it up to where it can, where you can pick things up faster and faster. And you have that giant associative network in your brain of like, Oh, this is kind of like that tool that I learned, you know, three years ago. And, and like,
every time you learn, you're going to get a little bit better at learning and faster learning. So that's the real key developer skill in my humble opinion is the ability to flex and to learn new things. And I would describe working as a software engineer as more about like,
than it is about actually implementing solutions. Because if you learn about the problem, if you learn about the tools to implement a solution to that problem, then you're already most of the way there. Abe Lincoln's, if I had eight hours to chop down a tree, I'd spend the first two hours sharpening the ax. And that's essentially what you're doing when you stop thrashing in your editor or stop just...
Googling frantically for tools and you started actually kind of unpacking the problem and thinking about all its discrete components, thinking about like all the different potential solutions and kind of like doing a high level before you start diving deep. And it sounds like that's something that you've learned to do over the years. Do you think that coming into tech,
from an outside perspective, having studied completely different stuff in school, having worked in completely different fields, do you think that that does grant you not just the disadvantage of not having been writing code as an undergrad and everything, but do you think that that also gives you a lot of additional perspective that's useful for getting things done? Yeah, in a lot of cases, I think so. I think that... I've been on a few interviews where...
Um, the entire panel, you know, it's a technical interview and the entire panel are CS grads who are looking for a CS grad. Right. And I can tell right away if that's going to be the case. And I can also be honest with them and be like, like they'll ask you a question of why did you do X in this situation? And I, and I, you know, early on I said, because it worked, um,
I didn't know of another way to make it, to make it happen. And I had been running into a wall and eventually I discovered this and this, this is why I discovered this can stack overflow and it worked. And they said, well, you could have done this. I'd be like, great. I did not know that. And if that was the case and I would have learned it and moved on from there. And I didn't get hired for those roles because I wasn't what they were looking for. I am very practical when it comes to that, to those considerations. But, um,
But yeah, I mean, it allows you to have more perspective on some things and you're not going to be perfect for every role. Sometimes you're just going to miss out on some things because you don't have the bona fides. The way you get them, though, is by going to work every day. And also, you have to realize that if you aren't getting a position, it's just not the right timing.
you might end up in a role where people just like you. It is like your vibe is like being able to talk to you. They just want you on a team, man. He doesn't know. He doesn't know, uh, SQL, but he can learn SQL pretty quickly. I'll teach him if he's willing to learn, you know, we'll go from there. That's kind of the chance that you need being, being, uh, gregarious, you know,
You and I met because of Free Code Camp and the Free Code Camp community, right? Being able to make those little community groups way back when. When I was learning in Free Code Camp, I became really passionate about it and started like a little meetup here in Norfolk. And...
Started a little Facebook group, started answering questions, started getting my programmer friends to come in and do demonstrations of things like React and other tools that they were using or GitHub or whatever, just doing little intros for people. I met so many people who were either CS students or people getting out of the military who were just super highly motivated people who did not have a background in tech and
but knew it's the future and knew they wanted to be part of it and whatever it took. Some went on to become programmers. Some didn't because it just didn't work for them, right? But being motivated is a good first step. I was talking with a restaurant manager at the restaurant that I go to quite a bit, and they're interested in learning the code. And I asked how it was going. She goes, I haven't done anything for two months.
And it's kind of like working out, right? You meet people who go to the gym and they get really stoked and they, then they hurt themselves and then they don't go back for, you know, six, seven, eight, nine months. Eventually they come back. They might feel bad because they feel like they're failing at this. And I'm like,
Hey, you haven't done anything for two months. That's okay. Get back to it when you can. Yeah. The timing needs to be right for you. If you're learning, if you're learning a new skill, if you're learning to a new hobby or whatever, you know, I have a cutting board that I just finished here yesterday sitting next to me. That's, you know, that's now dry and stuff. Like a woodworking thing where you're like gluing, gluing wood together to make a cutting board for like cooking and stuff. Yeah. Yeah. Yeah. Actually, that's cool. I can show it to you. Yeah. Hold it up.
I'll just finish this guy. Oh, man, that's beautiful. Yeah. And it's one of those things I just learned from YouTube about in 2018, and I still make them on occasion. I'm making one now for me just because I gave away my old one because I really liked it. But somebody needed one, so I gave it to them. I made a new one for me. Very cool. But it's like one of those things where
you know, it's just, it's just this, uh, kind of like you can be motivated and, but there has to be a need there. And when the need is there, like for me, I was scrubbing floors and I was like, I want to be able to pay my bills. And, uh, went through personal setbacks cause I couldn't pay all my bills. I had a car repossessed while I was learning the code, had to ask my parents for money and pay that back. Had to go, uh,
you know, kind of couch hopping and stuff like that. There's a lot of setbacks. You know, you, you look at the end result, you're like, wow, that's great. You know, there's, you're not going to have the same setbacks as me, but at the same time, I'm not going to have the same setbacks as you. It's just about kind of being willing to be a little bit stubborn and keeping it at the back of your mind. And if it really is, uh,
Something that you want to do. You can do it. You can. It's just even if you start and stop, start and stop, start and stop, you're still starting. You're still retaining. Eventually, you're going to get there, and that's okay. Yeah. I love the analogy of gym because you and I were talking about weight training and stuff like that. You get sick, and you just take a couple weeks off to fully re-exercise.
recover. And that's what I would recommend. I wouldn't recommend going and hitting the weights hard when you're sick. Cause you're just going to protract your illness. Uh, but like a lot of people do have like a burst of motivation and they're on there and they're, they're doing it. And then they like something happens, they get injured or life gets in the way or, you know,
for whatever reason they stop. But every time you go back, you still have a little bit of remnants of the progress you've made. It's not like you completely forget everything about programming. It may feel like you've completely forgot everything about programming, but once you start doing it, like you start to realize, Oh, okay. I do kind of remember this. And every time you start from scratch, even if you're starting from scratch over and over, you do start with like a little bit of maybe invisible baseline, right?
that you're not even aware of. And that's one of the things that I just tell people, like, hey, if you haven't used FreeCooking in a while and you want to come back, just start over. It's not a big deal. Like, worst case scenario, you review something, you're just going to blaze right through it. And that'll also give you confidence when you start over again and you rebuild a project or something like that. I had to look up how to do a temp table the other day, you know, because I hadn't made a temp table in years. And it's very simple in SQL when you just, like...
you know if it doesn't exist and create this tim table and do the put this data here or whatever um
I had to look it up because I hadn't done it in a long time. Am I a failure because I forgot how to do something? No. No. I mean, I'm just a normal person who has a limited brain functionality. Well, we've kind of normalized like, oh, you don't know how to perform XYZ procedure and you're an engineer or you're a physician, heaven forbid. There's kind of like this culture of like,
projecting confidence and any sort of chip in the armor is something to be very embarrassed about. And I think with software engineering, it's just so complicated and things change all the time and you can easily look stuff up. Like you shouldn't tie your ego to like, Oh, I know how to make a temp table. Like,
That is something any confident dev could probably look up and figure out how to do with a little bit of time and reference, right? There was a Scrubs episode. I don't know if you've ever seen the show Scrubs. It's comedy and everything else like that. But one of the funny things was there was this older doctor who came out. I think it was Dick Van Dyke who was actually playing. I'm not sure. But he was like a mentor to like one of the top –
guys in the hospital he was an attending right and this guy like i don't know his name but quigley let's call him quigley quigley knows everything and then quigley was going to do this procedure that was pretty outdated uh on this patient but uh it's still there but it was just outdated and maybe not the best and the attending was like hey don't you want to do this and he's like well i'm
uh, yeah, but, uh, I know how to do that. And he didn't know how to do it and he screwed it up and he ended up hurting the patient. Right. And, um,
So not having that ego as an engineer, thank God we're not working on patients, right? Yeah. And we're not working on live data. We're working, hopefully, in a decent testing or dev environment before we pump it up to production or something like that. But there are those scenarios where you want to make sure what you're doing is correct and everything else. And if you have to look it up, look it up, man. You don't have to go by memory on this stuff. Yeah.
It's fine. Overconfidence can kill. It literally can kill. And, you know...
military operations like you know I'm a big Star Trek fan and like one of the big things about the Klingons is they have this like warriors pride in this it's meant to like be like kind of like almost like toxic masculinity manifest in the sense that they're just like they would like go to their death fighting some sort of vendetta it's rather than sit down and like talk it out or so like and they would believe so firmly that like some line of attack is the way the honorable way to do it that they do the entire ship and
You know, uh, go down with the ship fighting. It's like, well, you just lost a ship, you know? Okay, cool. You have honor, but come on. Yeah. And to some extent, like, I do think that like, there is a tendency to like, never let them see you bleed. Right. To, to just, you know, try to barrel through it. And, and, uh, I, I,
can freely admit that when I was learning software development and going to conferences and stuff, sometimes people would be like, Oh, you know about this? Oh, sure. I guess I know that, you know, like fake it till you make it right. But like, that is not the right approach. Uh, and I'm just like in a job interview, you're much better suited by saying, Oh, you meant like, and maybe they appreciate the fact that you're candid about it, but, uh,
The risk is that you pretend that you understand something and then they ask you deeper questions and then they basically out you as a liar. Essentially. It's no fun. Yeah. It's like being willing to say, I don't know, but I can learn it. Yeah. Has gotten me places more or I don't know, but when I was working with X, Y, and Z, I did this, this, and this. And that's why, and that was the solution we came up with there or whatever.
I don't know Data Factory, but I've worked with SSIS before, and Data Factory is very similar. And so in creating data jobs and ingest jobs and all these other things, just being willing to say that so you're not selling yourself out.
You're not selling yourself short. Again, you're an employee. You're a potential asset to them. You don't want to get off on the wrong foot by being faulty. You don't want to be a lemon or anything else like that, especially if you're up front with everything. Then it's just going to be the best policy for everybody. Yeah.
Well, we're almost finished with this conversation, but I do want to talk to you about a couple more things because you have helped so many people learn to code through the Free Code Camp Norfolk group over the years just through talking with people and encouraging them, mentoring them. Can you talk about some things you've learned from encouraging other people to learn software development? And maybe if you have any big success stories that you want to share or anything like that, I'd be very excited to hear it.
Yeah, unfortunately, because of COVID, you know, the group kind of went away after a couple years. But...
I'm still a big proponent of if people are looking for something in their lives to help them financially or help them with jobs, is talking about coding and also just meeting with random students. Like I said, I think one of the biggest biggest takeaways that I've had is not only the
um, the start and stop aspect of it. This is not a big mountain you're going to get to the top of one day. This is, this is just, um, something that is, um, just a constant, um, just a constant journey up, uphill, right. And in the, in the learning, like you've said, um, but one of the things, uh, I had a friend, uh, who, um,
who started out as a tech at Apple. He was selling a lot of Apple products, but he wanted to learn how to code. And it was because of me talking to him about Free Code Camp and a couple of books that I had been looking into and other learning resources. It took him seven years, I think.
before he got his first coding job because he was always starting and then he had something happen in his life and he stopped and start and stop and start and stop. And eventually I get a message on LinkedIn like, hey, Joe, I got a job, which looks like,
Really? You know, and even I, even I just thought that he had just walked away from it. You know, it just wasn't working for him or whatever. No, he's still stuck with it. Just kept it. And now he's a programmer doing front end work using React and stuff. It just, it just really, it made me so happy to think that I met this person because of a little meetup group.
because of a shared interest in wanting to make our lives better and found this way to do it. And it's a trait. It's not any different than pipe fitting or welding or anything else like that. It's a trait. And sometimes it just takes a while to learn.
it's all right. You know, I'm not going to make the perfect cutting board. There's a lot of things that I want to keep learning when it comes to woodworking and stuff that I started on just while watching YouTube videos. I want to get more complex design and things like that. Um, I can start to think about that now. Uh, whereas other people are just now like, Hey, I just got my first bandsaw. I just got my first table saw, you know, everybody's at a different point in their journey. And, uh, that's a, that's a big thing that I've, I've taken away from that is, um,
Just being patient and excited for people. Having that empathy, it's been a really great experience. Yeah. One thing that you said that jumped out at me, I mean, seven years is a pretty long journey. You took about four years to get your first job.
Uh, and, and there's that kind of like, there's that burst of initial enthusiasm. Maybe you tell all your friends and your family, I'm going to learn programming. And then like, they're like, Oh, okay. And then like years later, maybe it may feel like you failed at learning programming, but as long as you keep trying, uh,
and keep investing the time and energy. Uh, there is hope that you are going to be able to get a job as a developer. And a lot of times, like what I like to say is like, what else are you going to do? Like, I mean, like this is a good field to get into. Yes. There have been layoffs. Yes. People are concerned about like aspects of software development getting automated. Yes. That is mostly overblown in my humble opinion. Uh, but, uh, uh,
It is hard to get a job as a developer, but in my humble opinion, it is very much worth it. What other field can you go into where you can basically do fun, exciting work and solve problems and have different problems every day and go talk to different people and learn about their problems and help them solve their problems? And then also be working with infinitely reproducible code where you screw up and you just catch it and you fix it. You don't have to...
Call up the supplier in China and be like, hey, we need to do another production run. And you call up the freaking carrier of the cargo containers. Hey, we need to – don't load that container. It's got defective – oh, no. It's like we can fix everything in code. It's great.
Oh, something made in the production and production crashed. Well, there goes our 99.99% uptime, but we can still fix this. Code is infinitely reproducible. It's cheap to fix. Iteration is easily done. I talk to people who do jobs where there's not a tight feedback loop and you don't know if you're doing a good job until many years later when you look at
you know, like what the net effect was with developing, you can immediately see the impact. Like, wow, okay, I took a procedure that took, you know, cost this much money to execute and I shrunk it down to where it only takes this much money to execute, right? Or I, you know, dramatically improved the test coverage or, you know, I fixed this very obvious bug and I can literally see in the UI where that bug is fixed. Like you have this tight feedback loop and it's just such a great field to be in
And I can totally understand people saying like, well, I'm going to get – maybe I'm going to go learn a trade like plumbing or I'm going to become an electrician because that's unlikely to be automated and stuff like that. And you can go into those fields or like people going to get their real estate license or things like that. But I genuinely think –
If you stick with it and you keep investing time and energy while you work your day job at Starbucks or while you work your day job as a janitor, whatever it is you're doing to keep the lights on and keep the roof over your family's head. Like if you just keep chipping away at it over time, there is so much opportunity here and this field will continue to grow in the amount of things that somebody who knows how to wield these tools will be able to accomplish will continue to grow as well.
So that is my little spiel, my little pitch. It's 100% true. I mean, and if you do keep chipping away at it, the little things that you're doing as you're learning, you'll be able to start to connect those dots. It's probably a little bit better than me. It took me a long time before I found something practical, but you'll start to find things that you might be able to fix, like just...
randomizing names or something like a little project that you can write a little script or do other things where you'd be able to, or somebody else might have a problem that you, you know, that code can fix. Um, or, you know, start to get into little projects like with Arduino boards, if you can still buy one nowadays or things like that, where, um, you can set up your own webcam or, you know, for your own doorbell camera or do, do other complex things like that, where you're learning your
You're learning how to practically apply this stuff and then get your stuff out there on GitHub and others. So others can use it, like you said, reproducible. But other, you know, maybe potential employers can see this. You know, I sat down when I was learning the code. I had a little coffee shop here in Norfolk that I knew I could buy a cup of coffee for $2 and refills for 50 cents.
And I said, if I sat there five days a week, I will be able to spend, you know, $13 a week. I can afford, I can afford per month. I can afford $50. That'll put me right underneath, you know, you know, so I was, that's how close my budget was. But I knew that as long as I was able to sit there, they didn't care how long I sat there. If I bought a cup of coffee and a refill.
Before long, I became a regular. They started to know who I was, what I was doing, why I was doing it. They were cheering me on, giving me free cups of coffee, stuff like that. You begin to develop connections like that as well. And you can start to put out there to people who are in the industry, hey, I'm doing this. And we can be your cheerleaders as well. And we can be people like, hey,
So and so is looking for entry level apply. Well, I don't know this and this doesn't matter. I like you. They'll like you apply. That's sometimes what it takes, right? Like some having that little, that little personal connection or that mentor who's willing to kind of put themselves out there for you a little bit. And it's nothing for me to send a LinkedIn link apply to this.
But at the same time, it does take investment from both of us to be able to get into people's lives, have those boundaries that are healthy, of course. But we get into people's lives and understand who they are and what they're looking for and trying to help them out. I think that's great. Yeah. Well, one question I have is you did –
for a long time. You were literally having people grind on your behalf, grinding some coffee for you at the coffee shop. That's really cool that you just reported that coffee shop and you used that as kind of your third space to get things done and put yourself in learn mode over there.
What would you send back to yourself? Let's say hypothetically you could send some advice back to yourself when you were maybe like a year into learning the code and you were working as a janitor and just trying to keep the family moving forward. What would you tell yourself that might have made your life a little bit easier or made the experience a little bit more bearable? I think pick a language and stick with it.
I think that's the biggest advice I can. I jumped around from, I started out with JavaScript and then I was like, oh, maybe I should learn Swift because I want to do app development. So I learned Swift a little bit and started doing little projects with that. And then I was like, oh, well, you know what? I need to go back to JavaScript because Swift is good, but there's not too many jobs in that. I was so easily swayed by stories I would hear about, excuse me,
Oh, JavaScript's not going to be used as much as Now React. Oh, don't worry about SQL. It's all about MongoDB. Don't worry about this. It's always the new tools that were coming out. Next thing you know, you're jumping from tool to tool to tool, language to language to language, and you're not learning anything, getting deep enough, right? So my advice is whatever language you're starting with, stick with it.
Because the programming principles are going to be the same. Whether or not you're in Python, it's going to be different in how you phrase things, and it's going to take a little bit of time. But if you know how to do an array in JavaScript, you can learn to do an array in Python pretty quickly. It's about solving problems. So it doesn't matter if you have JavaScript as you're starting out. It's like, well, I've learned JavaScript, and these are my projects. And they're like, well, do you know React?
I don't know React, but I can learn it because based on this, I've built all of these things using JavaScript and TypeScript and a few other things, right? For me, I highly encourage data engineering because, again, I didn't know what data engineering was, so...
I always push people towards, hey, learn Python, learn database, learn Excel, learn a few of these other things. And the barrier to entry is a lot lower, I think, for me, personally, my personal opinion than learning React. But anyway, piece of advice I would say is find a language, stick with it, get really deep into that because if you're accomplishing the...
projects that you want to build or even with free code camp you're accomplishing project completions and to get that certificate and stuff like that you're learning a lot of troubleshooting and other things as well and I probably if I had known that I probably would have saved myself a couple years be honest with you before I was confident enough to apply for jobs and
And so if you can really bear down and deal with some of that uncertainty or even uncertainty
Bad news coming out of a news article you might be reading like, hey, React's going to be gone in a year. No one's using React anymore. Well, that's not true. People are. That is very rarely true, by the way. People are still using COBOL. People are still using COBOL, right? Yeah. And those COBOL engineers are making decent money because they're one of the only ones who know how that stuff works, right? Yeah.
Don't be too easily swayed by hype or something that someone might say in a YouTube video or anything else like that. That is a lot of its opinion. A lot of it's based on their understanding. But everyone's going to need a JavaScript developer one day. Everyone's going to need a data engineer one day. It's okay. Don't stress. Focus and you'll be good.
Awesome. Well, Joe, it's been an absolute pleasure having you on the podcast. I've learned a lot during this time. Uh, I've taken a ton of notes. Uh, everybody who enjoyed this, uh, Joe, you don't have much of a social media presence because of your security clearance and stuff like that. Uh, but I am going to link to some information about you for people who want to get in touch and learn more from you. Uh, I just want to thank you for everything you've done to like encourage people to mentor people in your community and, uh,
Congratulations again on this massive transformation in your career that you've kind of undertaken over the past 10 years. It's very inspiring. Well, thank you so much for having me and giving me the opportunity to share, and hopefully it will encourage some people. Yeah, 100%. Well, everybody tune in. Until next week, happy coding. Happy coding.