Subscribe
& more

Episode 25

Stack/Unstuck: The Great Stack Debate

Stack/unstuck hero graphic

Show Notes

The software stack is like an onion. Or a sheet cake. Or lasagna. Or is it? It’s often described as having layers that sit on top of each other. The reality is much more complicated—and learning about it can help any tech career.

The Great Stack Debate is the first episode in Compiler’s series on the software stack. We call it Stack/Unstuck. We explore each layer of the stack, what it’s like to work on them, and how they come together into a whole application.

Transcript

00:00 — Kim Huang

Jameel Alston is a delivery driver. His days usually have an early start.

00:08 — Jameel Alston

Well, average day you get up, get on the highway around 6:00 6:30, you get to work well, seven o'clock. First, all the packages are being unloaded from the trailer and they're putting all the packages on the conveyor belt. We sorting the packages.

00:28 — Kim Huang

His work takes him through highways, industrial parks and neighborhoods as he ferries packages from one place to another.

00:36 — Jameel Alston

I actually split the belt. So different packages go to different locations, different routes. So I'm just splitting the belt. Then I go to my truck, organize my truck, scan all my packages up. After that, you just organize your truck, get on the road and start delivering your routes.

00:54 — Kim Huang

But that's not all he's doing with his time. Jameel wants to start a career in tech. Every free chance he has while working, he uses it to teach himself enough to earn an AWS Cloud Solutions Architect certification.

01:12 — Jameel Alston

I'm sitting on my truck at FedEx and I'm just studying for like the first 30 to 40 minutes that I get there. Just taking notes, studying. I put a lot of time in it. That's all I did. Yep. And I would have my instructors just playing on my radio while I'm driving around. I mean, that's the way you have to do it when you're working a 9:00 to 5:00 and you still want to change your life.

01:32 — Kim Huang

At this point, Jameel has a certification. But now there's a new problem.

01:39 — Jameel Alston

I was just focused on getting my certification. I didn't think about nothing else. I have to get it. I have to get it. And now I have it. And everybody keep asking, "What you going to do now?" I'm like, "I don't know."

01:49 — Kim Huang

For a lot of people, there is a lack of understanding of how all of the different elements of IT, data, frameworks, programming languages, dev tools, cloud infrastructure, how they all come together to form an application. As people move from one phase of their career to the next, understanding the whole software stack can strengthen their skills and propel them from where they are to where they want to be.

02:19 — Brent Simoneaux

This is Compiler an original podcast from Red Hat. I'm Brent Simoneaux.

02:29 — Angela Andrews

And I'm Angela Andrews.

02:31 — Brent Simoneaux

We're doing a series called Stack Unstuck. And we're taking you on a journey through the whole software stack.

02:39 — Angela Andrews

Today's episode, The Great Stack Debate.

02:45 — Brent Simoneaux

Producers, Kim Huang and Johan Philippine are here to start us off.

02:51 — Johan Philippine

Well, we thought it would be a good idea to get some quick definitions out of the way.

02:56 — Brent Simoneaux

Okay.

02:56 — Johan Philippine

So the software stack is what applications are built from. They're typically broken down into layers.

03:01 — Brent Simoneaux

Angela, do you want to tell us what those layers are?

03:04 — Angela Andrews

It's usually the operating system or the database and the front end application and the web server. It's usually an alphabet soup of applications and services and they make up stacks like the lamp stack and the mean stack and the stack stack. So I'm sure we're going to go into this a little bit deeper, but just a level set. It's a lot of acronyms involved.

03:30 — Brent Simoneaux

I imagine that all of this has to fit together, but this must be a lot for a single person to know everything about each one of these components, right?

03:41 — Johan Philippine

Yeah. So it's a lot to take in. A lot of people don't actually know all the stacks and all the different tools available because that's just a lot to take in. Especially if you're new to the industry. And so we're really hoping to give that kind of high level view of what are these different layers and how they work together for this series.

04:01 — Brent Simoneaux

What is each layer? How would you visualize this?

04:06 — Johan Philippine

Well, Brent, let's do our favorite thing and let's bring out the whiteboard.

04:11 — Brent Simoneaux

All right.

04:12 — Angela Andrews

I was waiting for this.

04:14 — Brent Simoneaux

I think Angela already has her whiteboard out.

04:16 — Angela Andrews

I do. Yeah. I always do.

04:19 — Brent Simoneaux

I could hear you. I could hear you. Walk me through this, Angela.

04:23 — Angela Andrews

So let me start with my favorite stack. The lamp stack. You can tell I'm old school, right? So we have our first layer and we're going to call it Linux. And Linux is the operating system that we're going to run this stack on. So once we have our Linux system, we're going to go ahead and install Apache.

04:44 — Brent Simoneaux

Okay.

04:44 — Angela Andrews

So Apache is our web server. That is our web server application that we're going to use. I'm going to put PHP next. I know it's out of order, but bear with me for a second.

04:55 — Brent Simoneaux

Okay.

04:56 — Angela Andrews

So when I'm going to start programming my web app, I'm going to use the PHP programming language. And I want to be able to communicate with my database. I need a place to store my information. And in this case it's going to be MySQL or MariaDB.

05:12 — Brent Simoneaux

Okay.

05:14 — Angela Andrews

So, this stack comes together and allows me to build a fully functioning web application from my web server portion, my presentation layer with Apache and my PHP, which is presentation layer. Let me back up for a second.

05:35 — Brent Simoneaux

Yeah.

05:35 — Angela Andrews

PHP is a huge application. It can do a whole lot of things, but it can also talk to the database. Right?

05:41 — Brent Simoneaux

Okay.

05:41 — Angela Andrews

So you don't need something in between. You can actually write database queries with PHP. Pick whichever stack you want. I'm always going to lean on the lamp stack because that's the one I've known the longest. And the second longest would be the mean stack.

05:55 — Brent Simoneaux

So we have lamp, we have mean, and I assume there are some others in there too. Are they always layered in the same way?

06:06 — Johan Philippine

Well, from what I've been gathering, the layers and even the stack, that's more of a visual aid than a literal representation of what's going on. Right?

06:17 — Brent Simoneaux

Okay.

06:18 — Johan Philippine

Though there are some elements that are installed on top of other layers. It quickly gets more complicated than that. I mean, Angela was just explaining to us a few of the things, quote unquote, "out of order," but these so-called layers have a lot more overlap and interconnection than top down stacking would imply. So order doesn't really matter all that much. Right? Which coincidentally goes for this series, by the way.

06:48 — Brent Simoneaux

So just to review, it's front end, application, database and operating system. Those are our four components.

06:59 — Johan Philippine

We're going to add a few more that-

07:01 — Brent Simoneaux

Yeah. We're going to add a few more. Of course you are.

07:03 — Johan Philippine

Maybe aren't necessarily-

07:04 — Brent Simoneaux

It's too simple.

07:05 — Johan Philippine

... Traditionally counted as layers of the stack, but we're also going to talk about testing environments as kind of a crucial thing that even though it isn't typically mentioned as a "layer" of the stack, quote, unquote, is something that should be very much considered in developing an application. But yes, those are the five different elements that we'll be looking at. The front end, the application layer, the database, the operating system and the testing environment.

07:34 — Angela Andrews

Awesome.

07:34 — Brent Simoneaux

Okay. So like we do, we're going to take something that's relatively simple and just make it much more complicated.

07:41 — Johan Philippine

Well, hopefully make it, in the process, a little bit easier to understand, but, yeah.

07:47 — Brent Simoneaux

All right.

07:48 — Angela Andrews

We're going to peel this onion back. There you go.

07:50 — Johan Philippine

Onions. There we go. It's got layers.

07:53 — Brent Simoneaux

I'm crying. 

07:55 — Brent Simoneaux

Okay. So we have our basic definitions established here. How does Jameel's story fit into this?

08:04 — Kim Huang

Consider Jameel our case study he's young and he may benefit from that more holistic view of the tech stack. As he learned more about his desired career path, his work as a FedEx driver exposed him to some very unexpected inspiration.

08:19 — Jameel Alston

When I started working at Falls Church, I noticed I was working in a place called Fairview Park. And they had a lot of tech companies over there, like General Dynamics, Canon, HP, Lockheed Martin, all these different type of places. And I would just be networking with the people and telling them my interest of getting into tech

08:40 — Kim Huang

His deliveries to Fairview Park took him through the corporate campuses of some major tech companies in the area.

08:47 — Jameel Alston

That's just kept me motivated when you actually seeing somebody that's working in the field and knowing that I could change my situation.

08:56 — Kim Huang

So I didn't say this in the beginning, but Jameel actually took the certification exam twice.

09:01 — Brent Simoneaux

Oh, what happened?

09:03 — Kim Huang

He tried it for the first time. And...

09:05 — Jameel Alston

Unfortunately I missed it by like a question. My first time taking that exam. I kind of felt defeated. It took me a little while, like maybe a month or two to get back on track to start studying again.

09:19 — Angela Andrews

Can I say something?

09:20 — Kim Huang

Sure.

09:21 — Angela Andrews

Failing an exam is not really a failure.

09:26 — Brent Simoneaux

Oh, yeah.

09:27 — Angela Andrews

It's not. As a person who has taken many exams and who usually fails them at one point or another, that is the best learning experience. And I'll tell you why, you now know what's on the exam. So the simple fact that he had gotten that far with his first try is amazing. So I'm sure the second try is going to be a cakewalk. And I understand he felt really bad about it. And a lot of people do, but he was so close.

09:59 — Brent Simoneaux

Does it feel like a failure when it happens though?

10:01 — Angela Andrews

Of course. To some, to some.

10:03 — Kim Huang

Yeah, I think so. I think it does.

10:05 — Angela Andrews

It's okay that he felt that way, but for anyone listening, really, don't ever take that first try as a real failure. Just think of it, this is how I need to see what the exam looks like. And you got that chance now you know where to focus.

10:21 — Brent Simoneaux

Yeah.

10:22 — Kim Huang

Exactly. He did feel a little bit deflated. And for a while, it seems as though Jameel kind of stepped back from his studies. But there was something that happened soon after that kind of set off his motivation once again. He found out that his new wife was pregnant with his first child. He had to go back to studying for the certification exam because he was going to be a father for the first time.

10:53 — Jameel Alston

Once I found out she was pregnant, I was like, man, this is not a game. It's not a game right now. So I took that, the first test, in July. We got married in September and found out we was pregnant in October. So that's really what got me like, oh, I have to do this. I didn't come this far just to give up.

11:16 — Kim Huang

We spoiled it earlier, but Jameel's story does have a happy ending. He took the exam again and he passed and-

11:25 — Angela Andrews

Yay.

11:26 — Kim Huang

Yeah. Yay. So at first, it was just jubilation. Right? Everyone was excited. His wife, who he says his like primary cheerleader, she was elated. Everyone was happy. But after the celebration ended, Jameel felt the same uncertainty that a lot of people feel after their first certification or their first degree or their first bootcamp. He was so focused on the certification he wasn't sure of what to do next.

12:00 — Brent Simoneaux

So what is he doing now?

12:03 — Kim Huang

He's still working as a delivery driver for now. But he's doing what a lot of other aspiring tech professionals do. He is learning how to get his foot in the door. He doesn't have any experience. So he has to kind of build all of that up from scratch.

12:22 — Jameel Alston

I have to work on that. In the job market, just getting my digital portfolio together. So I have to do more labs. I know if I do like two labs a day in a month, I have a decent looking portfolio where I could show a potential employer things I've been working on. And they say like GitHub and stuff like that, you can just jump into projects just to start building my digital portfolio.

12:48 — Angela Andrews

That's how you do it. That's definitely one way to do it.

12:50 — Kim Huang

Yeah.

12:51 — Brent Simoneaux

As he's taking this certification and as he's doing all these labs, is he working with a particular stack in all of this?

13:01 — Kim Huang

No, not yet. But he will have-

13:02 — Brent Simoneaux

Not yet. Okay.

13:05 — Kim Huang

Yeah. He will have to have a bit of awareness about technology stacks and through those labs, he's hoping to learn more than just cloud architecture. Right?

13:14 — Brent Simoneaux

Yeah.

13:15 — Kim Huang

So this is a field, and we've said this before on the show, that requires continued education. It's a major component of your career.

13:24 — Brent Simoneaux

So I mean, Angela, what are those things? What should he know as a budding solutions architect?

13:30 — Angela Andrews

Well definitely he has to understand the cloud.

13:32 — Brent Simoneaux

Yeah.

13:33 — Angela Andrews

I mean, he took the certification and he understands what the certification taught you. But does he understand Linux? Linux is what the cloud is built on. Does he understand networking. And not him specifically, but anyone looking to get into this role. Do you understand networking and how networks connect applications and how us as end users connect up to these applications? You have to understand a little bit of scripting. Because everything is infrastructure as code there's automation behind all of it. Do you know how to automate the things that you're building in the cloud? You can't be clicking through the console. How do one click? How do you have it automated? So there's so many things, different things. Getting the certification is definitely a great way to understand and learn that particular cloud provider's platform. But how do you use it? How do you bring all the pieces together? And then of course, how do you show what you've learned in your portfolio? Right? So there's a lot of moving parts. He's definitely heading in the right direction though.

14:41 — Kim Huang

Jameel is still in the early stages of his career, but eventually he'll have to interview for his first tech job and fundamental knowledge of a tech stack can be a huge benefit for people who are in his position.

14:55 — Brent Simoneaux

Okay. I see

14:56 — Angela Andrews

If he's trying to be a cloud architect or a solution architect or something like that, does he have to understand express and node? No. But he does have to understand how set applications to communicate with each other through APIs, through network ports, through sockets, through IP addresses, he has to understand that. If he's connecting him to a database, he has to understand what ports do I need to open in order to allow this application layer to communicate to this database? Right? So does he have to know the specifics?

15:29 — Kim Huang

No.

15:30 — Angela Andrews

No. But he has to make them talk.

15:32 — Brent Simoneaux

That's one of the big points of the series, right Kim?

15:35 — Kim Huang

Exactly. We spoke to someone who interviews newer tech talent to see what he had to say.

15:44 — Johan Philippine

Noel Minchow is a software engineer at Log Rocket and he also appears on their podcast, Pod Rocket. He has focused on different elements of the stack throughout his career. And now as he's become an engineer in charge of hiring others in his field, he's started to notice some things. Specifically how much, or how little, people know about the basics of a software stack.

16:09 — Noel Minchow

We just kind of have the whole gambit and there are devs that come in that they know about Kubernetes and like container based deployment and all this stuff, but they maybe don't have the core principles, the software engineering fundamentals as ironed out. And that's okay. It's good to have those skills. But you also see people on the other end where they don't know about the modern dev tooling at all. They don't know about what a mature software development stack looks like. They're more about principles. Writing effective, efficient, easy to read code and kind of every everything in between.

16:49 — Johan Philippine

Right. So we've got the principles and the fundamentals down from being at a four year university, but don't necessarily know the modern tooling. Or you've got people who have graduated from a bootcamp, which is just a few months long and get just the details about the modern tooling enough to get a job, but don't have those fundamentals as much nailed down.

17:22 — Angela Andrews

Mm-mm. It sounds like your boot camp bashing.

17:24 — Johan Philippine

Oh, absolutely not.

17:26 — Angela Andrews

As someone who attended a full set coding boot camp, I will not have you bashing. No, I'm kidding.

17:31 — Johan Philippine

No, no bashing.

17:32 — Angela Andrews

I'm kidding.

17:33 — Johan Philippine

What I was trying to get to is that all educational programs have their downsides. Right? Because it's really hard to teach all of the things. Because this is an industry that is always changing.

17:46 — Angela Andrews

On a dime.

17:47 — Johan Philippine

Right? So it's difficult for them to put a curriculum together and expect for it to stay the same for a while. Right? Those have to be constantly updated.

17:57 — Brent Simoneaux

I can see that.

17:58 — Angela Andrews

Every cohort the curriculum changed.

18:01 — Johan Philippine

Big kudos to the people running that program, because that cannot be easy. There's some pressure for graduates of these programs to know everything. To know all the tools, to know the whole stack. And it took Noel years to get familiar with the whole stack.

18:17 — Noel Minchow

I was kind of getting it as I wrapped up in my education and got some industry experience. But then, yeah, again, as I worked on stuff, I moved into some more full stack roles, because that seems to be what a lot of companies are hiring for. They want people that can do everything for better or worse.

18:35 — Brent Simoneaux

Why for better or worse?

18:37 — Johan Philippine

Well, I had the same question. So I asked Noel what he meant.

18:40 — Noel Minchow

There's been a kind of a tendency for companies to just go out and try to hire full stack devs because they know they've got web tech that needs built. I think that, I don't have numbers in front of me, but I feel like when I go look at job postings, at least for, I don't know the last like 10 years or so, that really has been more prevalent than anything else. In the last few years, I think it's been getting a little bit more focused. I think the industry's kind of figuring out that we're trying to hire these jacks of all trades is not always the best idea.

19:13 — Johan Philippine

These job postings for full stack developers. They can be a barrier for newer developers who aren't likely to have that level of experience. Right? And as Noel is hinting here, sometimes the better option is to hire new people who know maybe one or two elements of the stack fairly well. And then are curious enough to learn the rest of the stack over time. That's how his own career progressed, by asking how do I use what I already know to learn what I don't know.

19:48 — Noel Minchow

I realize that the parts of the stack that I found the most interesting were the parts that were changing more that there was a lot of front end activity happening. I mean, the services were evolving as well. The back end stack, middleware, stuff like that. But the front end I thought was really interesting for a while. So I spent a bunch of energy and time learning there. And then I really found myself personally drawn to working on tech that I found useful. So it's like, of course people want to work on things that they are passionate about. But some of my decisions have been intentional. But a lot more has kind of been, I want to work on interesting problems. I'm going to work in the layer of the stack where that is.

20:29 — Johan Philippine

So Noel's jumped around a little bit. Right? Front end, back end. He's done a whole lot of work in different elements of the stack and in doing so, he was able to find work that was more fulfilling for him at the time. For new developers though, that journey can still be pretty intimidating because there's a lot of ever changing material to cover.

20:51 — Noel Minchow

But I mean, that's okay. We need all of that knowledge. We need people that carry all of it with them. I feel like it's maybe even more fragmented now than it ever has been historically because there is such a large surface area to cover.

21:12 — Brent Simoneaux

So Kim, Johan, I think what I'm hearing in this episode is that newcomers like Jameel, they're really hungry to get into the industry. But it's nearly impossible to know everything about the tech stack when you get started. Is that right?

21:34 — Kim Huang

Yes.

21:34 — Johan Philippine

Yeah. I would agree. They're all at different ends of the knowledge spectrum. Right? And a lot of the jobs that are hiring kind of expect you to know everything. Which is typically not knowledge that you gained until you've had several years of experience in the tech industry. Right. Where you get the time to try things out, to learn things on the job and see in action how all these pieces come together.

22:04 — Brent Simoneaux

And that could be why it feels so and is so difficult for a newcomer to break in. Right?

22:10 — Johan Philippine

Exactly.

22:10 — Angela Andrews

Yeah, definitely.

22:11 — Johan Philippine

Now, do developers need to know every aspect of the whole stack to have successful careers in IT? No, I don't think so. That's not what I've read, that's not what I've heard talking to people. But understanding the whole stack without necessarily knowing all the intricacies of each layer, has a whole host of advantages. It gives you a deeper understanding of your own position and your own work and the team, and a little bit of perspective of how the work fits into the whole stack into the whole application. It also allows you to better have your work connect with and, for lack of a better word, synergize with the rest of the stack. Right? If you can write your code and tailor it to connect with the other layers of the stack better, then the whole team works better and more efficiently together.

23:08 — Kim Huang

There's always the why, right? The question of why should a person who's starting in development have all of this, not so much intricate, but definitely high level knowledge of the technology stack and how these different components fit together. And the most obvious answer is that it makes them better at their job. I mean, it will equip them to communicate better with people who they work with. That kind of curiosity we talked about in the last segment, will strengthen their networking skills and their communication skills with other people who work in other parts of the stack. And on top of that, if they ever want to advance their career, if they ever want to go to that next level or go to another company, or even start out on their own, they'll be equipped with the knowledge that they need to have an intricate understanding of whatever technology stack they end up working with.

23:58 — Johan Philippine

It also gives them some options of knowing what the other potential career paths are available out there. Right? If they start in front end and don't necessarily end up liking it and want to explore a little bit more about what is working in a database look like? Or what does working on the other aspects of the back end? What is that like? Right? If they get that holistic knowledge of the stack, they get a little bit more understanding of what could possibly be a better fit for them in the long term.

24:27 — Angela Andrews

Exactly.

24:29 — Brent Simoneaux

Kim, Johan, you've been talking to a lot of people. Right?

24:32 — Johan Philippine

Mm-hmm.

24:33 — Brent Simoneaux

Where are we going from here?

24:35 — Kim Huang

The first stop is the front end.

24:37 — Brent Simoneaux

Okay.

24:37 — Kim Huang

The layer closest to the user. A lot of people think that front end development is one thing, but as you'll learn in our next episode, there is a little bit more complexity than expected.

24:51 — Angela Andrews

So excited. I'm so excited.

24:53 — Brent Simoneaux

So excited. All right. So next episode, The Front End.

25:02 — Angela Andrews

And that does it for the first episode of this series, Stack Unstuck.

25:07 — Brent Simoneaux

Today's episode of Compiler was produced by Kim Huang, Johan Philippine and Caroline Creaghead. Victoria Lotton gets us unstuck every single day.

25:20 — Angela Andrews

Our audio engineer is Christian Prohom. Special thanks to Sean Cole. Our theme song was composed by Maryanne Cheta.

25:29 — Brent Simoneaux

Thank you to our guest Jameel Alston and Noel Minchow.

25:33 — Angela Andrews

Our audio team includes Lee Day, Laura Barnes, Stephanie Wonderlick, Mike Esser, Nick Burns, Aaron Williamson, Karen King, Booboo House, Rachel Artell, Mike Compton, Ocean Matthews, Alex Trabulsi and Laura Walters. We'll miss you, Claire Allison. Thank you so much. And best of luck from all of us.

25:57 — Brent Simoneaux

If you liked today's episode, please follow the show, rate us, give us a review, share it with anyone you know. It really does help us out.

26:07 — Angela Andrews

Thanks for listening. Take care, everybody.

26:10 — Brent Simoneaux

Bye bye.

Compiler

Featured guests

Jameel Alston

Noel Minchow

 

series graphic

Stack/Unstuck

In this limited run of Compiler, we speak to people within development teams and communities to bring clarity to the tech stack. 

Explore Stack/Unstuck