Fork Around And Find Out

What is it like to ship software in big tech? Sean gives us his experience from multiple companies and what he’s learned. It's probably not what you think. It doesn't matter if you're vibe coding features or bash-ing devops, we all need to remember why we were hired.

Links:

Creators and Guests

Host
Autumn Nash
Host
Justin Garrison

What is Fork Around And Find Out?

Fork Around and Find Out is your downtime from uptime. Your break from the pager, and a chance to learn from expert’s successes and failures. We cover state-of-the-art, legacy practices for building, running, and maintaining software and systems.

Welcome to Fork Around and Find Out, the podcast about building, running, and maintaining

software and systems.

Hello and welcome to Fork Around and Find Out.

I am Justin Garrison and with me is always is Autumn Nash.

How's it going Autumn?

I'm just waiting for the dad joke that's coming out of this.

Just anticipation, okay?

We're going to build up to it right now, right?

And today on this show, we have Sean Getiky, who's going to talk to us all about a blog

post he wrote a little while ago about how he ships products at big tech companies.

Welcome to the show Sean.

Hey, thanks.

Great to be here.

I'm not going to start with dad jokes right now.

I do want to get some background here though, because I read this blog article, which by

the way, you are a very prolific writer on your blog and I love it.

Thank you.

I was like, you are writing almost every day about something and at least for the history

that I scroll back into, how do you do that?

Well, I think I seem more prolific than I actually am, because I have several like

drafts on the go at any given time.

And usually I'm either not productive or I am productive.

When I am productive, I sort of clear a lot of drafts.

So there'll be days where I publish like two or even three posts, which I think is not

a very good idea if you're a blogger and you want to like maintain an audience and get

people reading.

That's actually too much.

But, you know, blogging is not my main thing, so I do it anyway.

But there are like weeks where I don't publish anything and I don't I don't do any work.

So.

And I mean, RSS feeds exist for a reason.

So people should subscribe if they want to keep up at their own pace.

But this this blog post specifically, I know it made the rounds a little while ago as around

on Tacker News and some other people, how you ship at big tech companies.

I don't know if you ever mentioned which tech companies you were talking about if you're

allowed to talk about which companies you were working at.

I know Autumn and I both worked at Amazon in the past.

So we were at big tech.

Autumn is currently at Microsoft, so still big tech.

So we've we've been around.

I don't know about what is your experience with that in the past?

Yeah, sure.

Happy to talk about that.

And I think it's I think it's really important as well, because a lot of I write about this

too, in other places, but it's really hard to get like representative experience in the

tech industry, because companies are also different.

And you have to stay at a company a really long time to sort of figure out how things

work there.

And by the time you've stayed there five years, the situation has changed underneath you anyway.

So like, I think it's really important to say, you know, here's who I am and where I've

worked.

And for many engineers, it's not going to be like particularly useful to them at all.

But hopefully there's enough people who work in similar kind of big SaaS companies that

this kind of resonates.

But all that aside, Zendesk and GitHub are my two sources of like big tech experience,

basically, with about a five years stint at both and a little bit of work at like tiny

companies in the meantime.

But yeah, Autumn, you and I are kind of colleagues, I guess, or almost colleagues.

Get get our Microsoft subsidiary.

It's crazy, though, because going just between two big tech companies, it's so different.

And I feel like where we were 10 years ago or five years ago felt so different, you know,

like so much has changed.

Like I think a few episodes ago, we were talking about the difference between like just

that infrastructure has grown in the last 10 to five years.

And just think about the height of COVID versus now and the tech community.

It's wild how much things have changed.

Yeah, for sure.

I mean, the when I joined Zendesk, it was all like virtual machines and microservices

and like the rise of Kubernetes.

And that's entirely like nobody talks about that now.

There's like three or four kind of cycles that have gone by.

And then, of course, the other thing is that working in tech got real, real, real

different after about twenty twenty one, twenty twenty two.

Yeah, once once the interest rate was gone and investment was kind of disappearing,

then hiring wasn't paying as well.

And then it was about cost savings.

And now we've had a lot of people leaving.

But just think about what it was to like, I mean, like, I don't know, like.

Two thousand and fifteen, two thousand and I mean, even nineteen and two thousand

and twenty two was like a completely different ballgame.

You know what I mean?

Those two were like and then you see the peak of COVID and it is wild how far we

fell like every time there's like stuff going on, you're like, is this the new normal?

Or, you know, like you never know, like, which is the new normal?

Yeah, no, I agree with that.

The the cultural expectations and just the culture in general that like the places

I've worked at has changed dramatically.

Like, and I know it's the same at at Zendesk as well, even though I left.

I left there around the start of COVID.

I have my brother works there right now.

So absolutely.

That's awesome.

Second row.

Second row seat to what's going on.

I think that's I actually really liked your blog, but I think that's a part

that confused me and it wasn't that you were confusing me, but it was like.

I think big shipping at a big company and just shipping in different areas of a company

are very different, right?

Like, so if you're building a button or things for people to interact with, like in a

retail setting, that's very different than building a language, right?

The process is very different.

The kind of the cycle in which you release and what you're releasing and what you're

interacting with, like it's crazy.

Like sometimes you can be doing straight, like adding a feature to a code base or you

can be doing like releasing or, you know what I mean?

Like the just, you can have two jobs at the same company and it'd be like night and

day, skill wise, and then you can be releasing something at a cadence, something huge,

like an operating system or language, and then that's very different and they're very

different from each other.

So it's like already in the same company, it can be different in two different

companies.

It's completely different.

And then when you think about the fact that there's been so much change, if keeping

essentially in your blog posts, you said shipping is keeping, you know, the people

that pay you basically and your leadership happy, but how do we even know what that

is now?

Like, you know, like.

Yeah, um, very, very good points there.

Like I, I want to respond to the, to the first thing you said first, which is that,

um, different like teams and different programs of work at large companies operate

very differently in, in, in almost every single way, like working on an operating

system is very different than, than like releasing kind of front-end changes for,

for a SAS.

Um, I know before we started recording, we were talking about how much riverside

changes, like the cadence is so, is so fast on that and releasing, releasing new

versions of windows is sort of the, the, the exact opposite.

So just, just to put my cards on the table there, I've, I've worked in, uh, kind of

SAS feature stuff, uh, my whole career and, and some, um, kind of internal

infrastructure is stuff, probably the most like, uh, fundamental kind of thing was

like the, the markdown rendering engine on GitHub.

I, I, um, as part of the team that owned that for a little while.

Uh, so it wasn't, it wasn't exactly like building a button, but it still wasn't

kind of, you know, working on like the TypeScript language or, or something like

that.

Um, but yeah, in terms of, um, how do you, how do you know what the people, uh,

above you want?

I think this is, this is a really interesting question in some ways.

This is like the big question, but, um, certainly the more you're working on

the more you're working on things that are like central to the company mission,

the more you just get told.

So when I was working on, on like at GitHub, for instance, uh, I, I, I started

out on kind of gists and these kind of features that are really near and dear

to my heart, but maybe aren't so like central to the, to the company mission.

Um, and it was, it was kind of hard to figure out what the, uh, what the goals

were that sort of leadership wanted with that stuff.

They sort of just wanted it to like be better and people to like it.

It was that level of generality.

Um, and then like, like many people at GitHub, uh, I, I moved over to the, uh,

co-pilot team where let me tell you, uh, there was a much clearer mission and

there was a lot more, a lot more urgency.

It was a, it was a very different ball game.

Um, and in that environment, figuring out what leadership wants is, is I think

actually pretty easy because they tell you, they, they are telling you over and

over, they're like every meeting and every email and stuff.

They're kind of telling you what they want and what projects they care about

and what they want to see ship.

Are you allowed to speak about that experience?

Like, you don't have to go into detail, but I guess like, was it fun?

Was it, you know, like, I mean, like, what was it like, I guess.

Yeah, I can, I can speak, uh, at a pretty high level.

Um, yeah, it was fun.

I think it was a really big change.

It was, it was almost like for me emblematic of, of the general vibe shift

and in tech around, around 2022, 2021, um, just this kind of shift from like peace

time to wartime almost, like from working on these systems.

That kind of these like sleepy systems that, that, that see a lot of use

and, and the kind of support, this functionality that people love to

working on this like brand new things with, with this new technology that

like is making a lot of money and, and, and people are like using a lot and

liking a lot and kind of learning as they, as they go.

Like it was just, yeah, I don't know.

It was, it was fun.

It was like, it was exhilarating.

Um, it was a steep, a steep learning curve.

I think a steep learning curve, like technically, but, but mostly

like politically and organizationally kind of the level of coordination

that has to happen when you're building something like that.

And the, uh, as you might expect, the, the, the amount of people who have

strong opinions is, is, is very, very high.

Like when, when you're working on the Markdown pipeline, you're really

just dealing with five or six kind of long-tenured, very senior engineers

with like strong opinions about this stuff.

And it's more like a, like a council of elders kind of situation where

you're trying to figure stuff out.

Whereas, whereas making changes on, on a product like co-pilot is, is, you

know, there's people with, um, chief in the, in the job title kind of contributing

to the conversation and, and people like both at GitHub and, and, and at Microsoft.

It's just a whole different kind of way that like decisions get made.

I love one too.

Like very experienced senior engineers have like, I won't say an argument, but

a technical discussion, you know, and it's like, it just makes you picture

like the Lord of the Rings and like two people and like, like full wizard

stuff and like beards and like the whole time you're just sitting there with

popcorn because you have like, you're like, I have thoughts, but I'm not

saying them, right?

Exactly.

And you just sit there and listen to both.

Like sometimes those are better than like college classes.

You know, like you learn so much.

You're just, I used to love, uh, Amazon had the, the Wednesday ops meeting.

Uh, did you ever go to this autumn?

They were, that's the scariest meeting I've ever been in in my entire life.

I would not like, I would watch those meetings because they're so fabulous.

But if, if people are familiar with it, they had these, the ops reviews

that are every Wednesday and you would, they, it's been a wheel.

Let me tell you, your team's on that wheel.

Yeah.

And it was, you know, you, you would have to, you would review all the outages

from the week before.

Tell them about the fact that you hold your breath, the whole wheel turn.

Like everybody is sitting there holding their breath because what you're holding.

Not us, not us, not us.

What you're doing is that wheel, because it's usually like builder's tools

or like a bunch of orgs, right?

But it's a weekly ops of like all the like important AWS services.

So they're spinning this wheel to figure out who is going to present their COEs

cause you don't have enough time to do everybody's.

So everybody brings their most important COEs and then every, it's like, but I,

I love what it's supposed to be about.

It's not always that, but it's supposed to be about everybody bringing like your,

what is the, what is the acronym for COE?

It's something of excellence or no, it's not excellence.

Something outed, no, something outage anyways, but it's supposed to be everybody

bringing your correction of error.

Yes, correction of error.

And in theory, it's actually a good model.

And like, you know, like I give Amazon their stuff when they deserve it.

But you bring your, everybody, you write a paper.

So after the outage, you write a paper and you're like, what could we have done better?

And it's supposed to be no blame and the kind of way of like, yes,

this dude to press the button, but if there was a button that can bring down

a tier one system, we fucked up because it was a bunch of eggs, right?

So like, I love that part.

When you see like the most just genius people sitting there talking about just

building something, which goes back to what your blog was about, shipping something,

right, building something at a certain scale is so different than adding a

feature, which you can be adding that feature at scale.

That's another thing too, right?

Like, but they're, that is scary.

Like, what if you put a button somewhere and they hate your button or what if it

breaks stuff?

You know what I mean?

So, I mean, there's a slight tangent from this.

I do think that that meeting specifically is like a key to Amazon's operational

excellence.

It, no, they do a lot of things wrong, but they do a lot that they do that.

Process specifically, because everyone can see it, there are VP level people on

that call talking about operation stuff.

And you just learned so much stuff passively by watching.

Hey, we're designing this new thing.

Here's how this is going to look.

And someone's like, have you thought about this side of authentication?

Have you thought about this?

It is a master class at learning at scale.

Yeah.

And it was a huge time sink every Wednesday for three hours or something like that.

And it was like an hour and a half.

Yeah.

It was, did they ever go hour and a half?

It felt no, because the two principles start arguing.

And look, there's a lot of meetings that you drop after 10 minutes over.

You don't drop that meeting.

You're sitting there with popcorn.

You're like, I would just put that one on in the background.

I'm going to do some work and I'm going to pay attention to what you're doing.

Like that's the one meeting I want to show up for.

Because like you learn so much.

You see some really smart people that nobody else would ever argue with,

argue with each other, which is great.

Like it's like reality, just the open argument of like, but not a bad way.

We're not seeing who's right.

Who's wrong.

Yeah, we're coming to the best conclusion.

But Jude, you learn so much because they're, they both have,

nobody doesn't have a valid argument in this.

You know what I mean?

Like both of them have amazing.

Yes.

But it was great.

The thing I was actually trying to get to with that was.

Sidequests.

Yeah, it was a sidequest.

But the thing that I've told a lot of people over my career of like,

Hey, I want to get into tech.

I want to do something new.

I want to go somewhere else.

I always told them, go to the thing that either is the closest to making money

or has the most attention because both of those things are where people

will just know that you're doing work because a lot of the infrastructure,

I love infrastructure.

It is not the best career path for growing.

If you want to be, you know, like a top level VP or something like that,

because most companies just don't have an infrastructure engineer at that level.

It's not something that's visible.

It's not part of the shipping culture or the thing that even makes it into

like a shareholder meeting like, Hey, we deployed another Kubernetes cluster.

Nobody cares, right?

DevOps, DevOps, infrastructure, SREs, they are called when something's wrong.

When you've messed up and it's all out, they call you, but nobody notices

when you did a good job.

I mean, I mean, some companies really praise the firefighter, right?

Like, but that's not a, we're not like promoting to have more of it.

But also, like that's tricky too, because like in a way, like there

shouldn't be fires, right?

Like, I mean, they are always going to be fires to an extent, but then

that gets out of hand because it's like them, you're constantly chasing

fires and there's not enough time to make, you know, to fix those corrections

before they become fires, but a lot of that becomes like a whole

another conversation.

Every, every group that I've worked for had the one person that would

just swoop in and fix something, right?

You're just like, Hey, we do not know what's going on.

Everybody has a Batman.

Yeah.

They would debug it further than anyone else and they would find the actual

root cause like, Oh, here's the one line change that fixes that whole problem.

Right.

It's just like, Oh, that was amazing.

How'd you do that?

There's always one senior and for some reason they're a senior, right?

Because like the principles, they know everything in their depth area.

Usually there's one senior who like, they've touched everything and they can

fix anything and everybody on the team can take it so far.

And when you're absolutely up Schitt's Creek, you call that person.

I think like one of the reasons that that kind of archetype is, is, is

more commonly found in like senior than principle.

Um, and of course these levels are kind of different between companies at

GitHub.

There are a lot of staff engineers that would fit that as well.

Um, is that like, you have to be really familiar with the specifics of the

code to figure this stuff out.

And the more senior you get, sometimes the more you kind of get into this

realm of like generalities where you like, maybe you don't quite remember

exactly like line by line, how this thing works anymore.

Cause you're dealing with other stuff as well.

I also think that like the principle levels, the first one that stops solving

problems with tech, with technology, right?

We were like, really like, this is a process problem.

I'm not going to write a line of code to solve this.

Not know if that's always true, but it's a higher level.

You know what I mean?

It's a higher like view of the technological problems usually, but it

also depends cause like if you're deep in Java land, right?

Like each principle is part of like a project as a maintainer for a project,

right?

Like, so I think it depends, you know, but it also what you mentioned.

So like it's interesting because do they usually have staff and senior in the

same like, I guess tree or like pyramid, I guess, because what is the

difference between staff and senior usually?

I mean, the Amazon tree was senior principle and then senior principle, right?

Cause the L seven, six, seven, eight.

So principle at Amazon is kind of similar to staff then in my mind.

Cause it's weird because it's an architect at Microsoft above a principle.

Or is that the same?

Microsoft has like 150 levels.

Yeah.

Microsoft is terrifying to me.

But then like what is like GitHub is GitHub different because GitHub was

technically a company beforehand.

Yeah.

I mean, GitHub goes, uh, well, I think it's maybe changing now, but like from

my memory, like most of the time I've been here, it's like mid-level senior

staff principle.

That's it.

And then at, um, at Zendesk, it was like senior staff, senior staff,

distinguished senior staff.

And then see, cause it seems like a lot of companies just trade staff in senior,

you know, like, so if they don't have a senior, they have a staff, but some

of them will actually tear it.

And I'm like, well, which one comes first?

I guess not that it really matters.

But staff is always above senior, um, in the places I've seen, but like, I

wouldn't be surprised if some people do it differently.

Like back to, back to the shipping topic.

Uh, we mentioned like autumn, you were shipping Java at Amazon.

I was shipping with Kubernetes, like very different things, but a lot of the

process still kind of felt the same to me.

Everyone, everyone was trying to ship for reinvent at Amazon.

When you work for dev rail, did they let you actually ship things to production?

I, I only wrote one line of code that ever, or one section of code that ever

ended up in any production system.

Um, it took me a week to learn the internal tooling to make that happen.

It is a whole, it is a thing, but a whole bunch of like external, like public

facing stuff that was used by customers in various situations, but not internal

Amazon says I wanted to stay away far away from that as possible.

Um, but the, but a lot of the stuff I felt like even across the different

orgs of Amazon's different products, a lot of the shipping still felt kind of

the same where we're pushing software.

Once a customer gets it, they, we like an interact with them.

Amazon shipping bar was always pretty low.

We got things out that were pretty terrible to get them in the customer's

hands as early as possible and then we iterated on them over years.

My experience at Disney was, was the exact opposite, especially at Disney

animation where we shipped what I call box software, like shipping movies is a,

is just such a, it's a box software sort of experience where literally I

would see my software on a shelf in a target, right?

It's, it's, it's part of a Java interpreter that's on the DVD or something

like that, but it's not the actual like software that I maintained.

And then it wasn't until I was maintaining software, I think that

everything you say in what is shipping became a lot less clear once we had a

SaaS, once we had to maintain something after it was shipped, right?

You, you ship something and now maintenance starts with Disney shipping

movies, once I shipped something, I was done with it and it was fantastic

because everyone knew, Hey, we're all done with this thing now.

We move on to the next thing.

And I felt like that was a big difference in my career.

And I, and just knowing box software from the past, like people were like,

ah, I'm done with office 97.

So I don't have to touch that one anymore.

Um, but everything I was like, it was very clear when the thing had shipped.

And now, as you point out, it's very unclear when a ship, when something has

shipped.

Yeah, well, that's like a, yeah, that's, that's, as you say, that's

true of like SaaS software in general.

I mean, when is, when is copilot shipped?

When is like, when is like GitHub shipped?

Like GitHub is a, is a, is a product, but each, each feature within

GitHub has the same thing.

Like when a, when a poor request shipped, when a poor request reviews shipped,

like all of these things are constantly being worked on.

All of these things are, are constantly, constantly changing.

Um, and I've, I've seen lots, lots of engineers take their feature and kind

of get, kind of get trapped by that almost of, of, of this, this idea that like,

well, it isn't done yet.

There's, there's more things we could do.

There's always more things we could do and, and working on it and working on it,

like long past the point where I'm long past the point where there's any

enthusiasm from leadership, uh, for them to continue.

How do you think attaching versions to things you ship affects this?

Cause I feel like there's a difference there with horrible.

It makes it just, oh my God, Java eight will live to like the universe is

nuked forever.

Yeah.

I mean, like, like versions of like libraries and, and, and extensions and,

and things where someone could be running the old version years and years after

you, after you ship, is that what you mean?

Just in general, like we in a SAS, people shouldn't care about the version, right?

It's just like, I go to riverside.fm and I use the interface.

I have no idea what internal version this is called, but for products that I'm

supposed to build on, I need these defining lines of like, oh, that's version eight.

That's version nine.

I can't move to version nine until I change these things, right?

Like you can have breaking changes.

You can do things to be able to do that.

But I also feel like internally at companies, they use version numbers as

a way to say they ship something.

They're like, we ship version job eight one.

It's like, what, what does that mean?

They're like, I don't know.

I just arbitrarily made it up.

So I could say I ship something.

But there don't, but a lot of people do not arbitrarily make that up though.

Like, and I don't mean just Java.

Like, I mean, like there are huge debates on like epochs and just all

kind of things in different languages.

Plus like the lower level you get, like dependencies are such a big deal.

Like I think that like when you get to do like a certain level of programming,

it's like you just get to like a huge respect for how many dependencies you

can pull in to have like a stable release because like you are going to

pay a great deal for each new one, you know?

Yeah, yeah, for sure.

But like it's funny, like a sort of one end of the spectrum, you have like

versioning is like technically really hard, but philosophically really easy.

Cause you're just doing semantic versioning and there's, there's pretty clear,

like, I don't know how to count principles for you.

Yeah.

Like, is this a breaking change?

Does this change the interface?

You can, you can determine that like almost purely, purely program programmatically.

And then the further you get up the other end of the spectrum, versioning becomes

like technically pretty easy, you know, like you can call something whatever

version you want and it's not your dependency problem isn't as bad between like,

I don't know, like, yeah, I don't know.

I don't actually have a good, a good example.

But the, the philosophical problem of, of like, is this something new?

Is this a new version?

You know, like to what extent is calling this a new version, a marketing decision?

That, that stuff gets really, gets really murky because I'm like, what is, what is

a product, right?

A product is a thing that is marketed.

It's a thing that is sold, you know, it's not primarily a technical thing.

So to like a lot of engineers kind of come into this problem and they say, well,

oh, it's technically the same.

So like it's stupid to give this a new version.

And it's like, well, no, like you're, the technical thing is sort of incidental.

Like what you're working on is a product in the market.

It also depends on if your versioning or you're having to update is dependent on

other people and like on the dependencies or if you get a CVE or if you have to

patch something.

But I also think something that you said was really interesting is that I think

there are some people who are very good at solving technical problems, but they

don't have a mind for the business side and they don't see how business affects

engineering.

And then there are some people who are good technically, but they have that

other skill of being able to see where techno technology fits into business and

being a product.

And I think that we should almost at least in certain realms give that a little

bit more credit because being able to understand the business needs and how

that marries technically is really important.

Like that's a product manager, right?

Like that's the, that's the role of the product manager, that bridge in between.

See, I, I disagree.

I disagree.

I think that's the, I think, I think that's the role of, of, of an engineer.

And this, this is the thing I say that I think makes, makes people angry the most.

But it, but it's a, it's a thing I believe, which is that if you are working in

a tech company, if you're not working on your own project, engineering is in

service of business needs.

Engineering is a tool in service of the needs of the business always.

That is just what it is.

That's what, that's what you're being paid to do.

You're an engineer, you're a good engineer when you understand the business

needs, cause you can't make the right decisions if you don't understand the

business needs.

If you don't understand, like there's got to be more effort, especially now

that co-pilot or just any AI is going to do more for us.

Like understanding how someone's going to use this, understanding the

restraints that that person may have using your product.

Like I think that's the good, like that's what makes you special versus somebody

who's just going to like write a bunch of code to me.

Now, I guess the one thing I would push back on is most of the time that I've

seen at companies, engineers don't have the information they, they need to make

good business decisions, right?

Like at Disney, I was never told how much money, you know, something costs.

And it's just like, oh yeah, you just, here's your, here's your task list.

Like it gets filtered down under eight layers of management or something.

It's like, okay, here's the five tasks I need to do.

I can't infect how the business is going to change for that.

And if I did, or the times I tried, I was in trouble because I stepped out

of my lane and I was doing something I shouldn't have been doing.

Amazon was a little bit different where at least on the product.

Weekly business reviews.

Yeah.

The weekly business reviews was exactly the thing that I never got at Disney

where my very first meeting, I showed up and they was like, here's how much money

EKS made last week.

And I was like, I think I'm in the wrong meeting.

I'm like, no, no, this is just a, this is just weekly business room.

Like, what are you talking about?

Like, you don't tell everyone all of the money numbers.

Well, then how else are you going to make a decision?

I think that's one of the, again, one of the things that makes Amazon

successful is the fact that they make everybody show up to those meetings

from essays to product to, like, because everybody needs that understanding

to be able to be good at your job.

And it also holds you accountable because when you keep saying something's

green and then it goes yellow and it goes red and you're all in that

meeting, you've got to be able to explain that.

I think I want to press on something a little bit, which is that

when I say that like engineering is in service of business needs, I'm not

necessarily saying that engineers should be out there making business

decisions and out there making business bets.

I think sometimes that's appropriate in some companies, but let me, let me

give you a hypothetical and by hypothetical, I mean something that I've

seen about a hundred thousand times, which is like, there's this project

happening, your manager comes in and says, like, hey, like, we really need

this, this endpoint, this feature, this button to do these, like, three more

things and the engineer comes back and says, like, no, no, we can't actually

do that. We have to, we have to put that in a background job.

It's going to have to, the interface is going to have to be different.

Customers are going to have to poll this API instead of just getting it back

immediately because otherwise it's going to push the, push the endpoint

over 200 milliseconds and an endpoint over 200 milliseconds is, is, is

unacceptably slow.

Is it like, is that engineer right or wrong?

Right?

Like, is it, and my, my perspective and the, the thing that I think is

kind of controversial is that I think the engineer is 100% in the wrong

there, that it's, it's just, it's just incorrect to say, actually, you

know, it's more important to ship like a fast, efficient API than it is to

like, deliver this kind of business, business need.

And of course there's like room to push back.

And of course the situations where like a 200 millisecond endpoint is

going to have knock on effects on the rest of the infrastructure and, and,

and cause problems that are hard to anticipate and so on.

But I've, I've seen over and over again, just in the simple case

engineers saying like on moral grounds, like I refuse to ship this.

And when I say moral grounds, I mean like aesthetic grounds, like this is,

this is going to be too slow.

This is going to be too janky.

Like I'm not going to ship this and, and just leaving like leaving so much

value on the table and like just not shipping things that customers want.

Like, um, and I think that, that, that, that dynamic can happen.

Even when like almost no matter how much business context you have, because

it's, it's just a matter of like the engineer not listening to what they're

being told.

And not only agree with you, but I'll take it one step further.

This is why we get contention as someone who's been a solutions architect

and engineer, a product manager, and then an engineer again, we don't all

respect each other's jobs because we think that we all don't do with anything.

Right.

And I think a lot of time and times engineers can be like, but I do all

this work and product managers don't do anything.

But like you all need each other to break the right ecosystem.

Right.

Like, like you said, I don't think that they need to make crazy business

decisions, maybe if you work in a startup or, you know, certain areas, maybe,

but there's certain technical decisions that you can't make and you can't make

well and you can't prioritize and do things effectively without knowing why

you're making that feature.

And like sometimes our product manager could, if they're not very technical,

they could be like, Hey, you're that they're, they could be promising

something that's impossible.

Right.

But an engineer could be some, okay, I'm going to be real.

Sometimes engineers, we get a little like, you do too many of the hard things

and then all of a sudden you feel a little goddess and like they'll be out

there just digging in for things that you don't need to dig in for.

Like sometimes it's art for art's sake of, I just want to build this really

cool thing because it's hard, but your customers don't want that shit.

Like nobody wants it.

Nobody asked you for that.

Like, you know, and if you don't have a good balance between like, this is

the right technical decision because it's going to make our customers lives

better, you're just building for stuff.

But like this is a business.

Also, you know, like it has to make money and people need to like it to a certain

extent, which I think like there's, it's just like an ecosystem.

It all has to balance a certain amount.

And we all need to understand where we're all going.

It's like planning a trip, but you don't know where you're supposed to end up.

Like.

I agree, Odom, but people get really upset when you say that.

I know.

People really talk like that.

We're going to be French on like, we're right here.

The one thing that I would push back on is sometimes the, the person asking

for the request or the customer asking for it, don't know the constraints.

And, and necessarily how much work that's going to take, what risks that's

going to have to something else that's happening on the back end or the person

they're asking is, isn't given the ability to do that, right?

Like, I need you to change this button.

It's like, but that's someone else's service.

And I, I can't change their code, right?

Depending on the dynamics, the politics, whatever the reason, I can't

change how they set up their service.

So I'm constrained on their two nines of availability and their 40 millisecond ping.

So, you know, I could tell you, I could do it this way, but I just, I can't

because I don't have the ability to do that.

And then at some point you do have to just push back and say, this isn't possible.

You, if you want this, if the customer wants this better, then you need to take

that off the chain and go figure out how that works because I don't think

anybody's ever said that engineers need to be like beholden to somebody asking

for stuff.

They just need to understand why they're asking for it.

Because 100%, especially when you're dealing with managed services, people

think that you just do some kind of crazy magic in a hat somewhere and you're

like, bro, no, like there's real things under it with a real constraints, you

know, and like sometimes you're building things that had ever been built before.

So like, you don't even, like you end up finding out these weird edge cases of

how somebody used something completely wrong.

Like for instance, when they took down, was it Kong, the search engine, but they

took it down with like the number of connections to that like database, you

know what I mean?

Like sometimes you don't even know what the constraints of that is until you

learn them the hard way, right?

Because it's a new thing that you've never done before and it's at scale.

But what I think we mess up with, like I think 100%, you should be able to

push back because like they don't even, but sometimes after being an essay and

especially like a specialist essay, it's like a lot of pressure because they use

your product more than you do.

And you need, you are now the person that's being called in after they've

hit customer service everywhere else.

After a team's looked at it, they've called the senior engineer, you know,

like the whole team is mad at you.

Okay.

They want to know why this doesn't work.

And I'm going to be real.

Sometimes like when you do, when you start off as a generalist essay and you

have to ask a lot of questions and then you get to be a specialist, right?

And you learn that customers don't always know what they want.

You have to, this, this very like, this dance of a relationship of where you

have to ask them questions to get the information because they'll be like,

I use this thing and I love it.

And I'm like, do you love it?

Like tell me about it.

Like, you know, like they'll be like, I, I use Cassandra and we're just,

we're really good at it.

So we don't need to manage database and I'm just like lies.

Why are you here then?

You know what I mean?

Like how many times are you being paged at 3am?

How many times have you like lost a node?

Like sometimes customers do not know what they need.

And you have to be able to ask the right questions.

And I think that's almost the skill in itself of being able to figure out,

does this really actually work for you?

Can I help you find something that's better for you?

Maybe you don't need this button.

Maybe you need a retry.

You know, it's just, it's a whole dance of how that goes about.

I feel like I want to chime on the podcast.

Anytime someone says that someone's forking around or finding out.

Dude, I want, I want, I want like a sticker, a chime.

I want, I want like, I want you to sit.

Like I want you to do like one of those like sound bites so I can just play at people.

Like, I won't know.

I want a beanbag that I can throw it at people when they do stuff that's dumb.

Cause like, have you seen the world lately?

I'm just like, what are you doing?

Stop it.

Going back into your, your posts, Sean, about one of the sections you call out

here is communication.

And I love that this is part of shipping.

Because it's something that I don't think a lot of people outside the industry

have had the privilege of being a part of.

And a lot of people don't understand like what it's all about.

And you say the maintaining trust is the top priority, which I absolutely agree with.

And I think that's a good way of summarizing it, because the main thing

that I remember shipping that was like a big, high pressure launch was Disney Plus.

And we were, we were like, Disney Plus was going live.

We know it was going live.

We were rolling it out across the world.

I was only in like a few regions or whatever at first, but there was just

like the people running that whole thing was just like, here's, here's where we're at.

Here's what we're doing.

Here's why this is going to be delayed.

And then day of it's like, here's the Slack channel.

Join the Slack channel.

Everybody watch.

We're just going to announce everything we're doing one by one.

And it was fantastic.

Just to see everything you basically call out in this blog was like, Hey,

if something goes wrong and you, you haven't thought about it, then that's on

you for not being trustworthy, right?

Like all of these contingencies need to be kind of thought of.

And it was also the first time that I realized how much better the internal

systems at Google were than the apples.

Just because, just because you find any opportunity to.

I was blown away by this because we submitted like, like the app had already

been submitted.

It was already approved and we're like, Hey, we are going live.

And the both systems have like this.

And again, this is back in 2018.

So I'm sure there's lots of change, but like there's a button to like, okay,

make this live now.

And like, they're like, we push Google's go live, but they literally

sentence like, we push Google's go live button.

We push Apple's go live button.

Google's live.

And I'm like, wait a minute, like how, how did it, it's just like worldwide.

It's the apps available.

How do they do that?

I was like, okay.

They're like, it showed up on Chromecasts first for some reason.

It's like, Oh yeah, it's on Chromecast.

It's here, it's here, it's here.

And like, okay, when's Apple going live?

Like it usually takes about four hours.

They're like, it's like this R sync process that's like texting, they're

sending text files around the world.

Like what is going on here with Apple?

It was just fantastic.

It was just like, okay, this is a little different.

I would love to know why though.

Yeah.

It was so, it was fascinating just because it's like, you know, Google

built these global systems that had all of these.

Benefits of like, this is how this is supposed to work.

And everyone else kind of caught up to it at some point, but, but

the whole communication also puts things in review though.

Like Apple will leave you on this was like post review.

Like like Disney plus apps were, were there.

They were approved.

We're just like, cause you can hold them.

You could say like, Hey, I wanted approved, but I don't want it to be

available yet.

And so you could, cause you could do like test flight and all that stuff too.

Okay. Sorry, Apple.

I can't have your back on that one.

I tried to help you out.

I don't know what happened.

These, the apps were definitely in already done, reviewed and ready to go

for like weeks beforehand, but just the communication.

Yeah.

About communication, I, I want to kind of like emphasize that.

Cause I think people here, communication is like top priority and communication

is priority number one.

And they sort of nod and go, yeah, yeah, it's really important.

I don't mean that it's really important.

I mean that it's top priority.

It is more important to communicate about the project than it is to

ship the project on time.

It is more important to communicate about the project than it is to

ship the project without bugs.

Like communication is the most important thing when you're shipping a project.

Like, and, but none.

The other side of that was being part of the Kubernetes release team, right?

Cause Kubernetes is this big project.

That's a bunch of volunteers that are all like running around trying to get

stuff in at the last minute sort of thing.

And all of it is communication.

Everything about shipping Kubernetes is like, okay.

Kubernetes is great at communication and structure though.

That is one of the most well-structured open source projects.

Because it's clearly defined.

Like everyone's role is clearly, yeah, and, and there's teams and there's

projects and, and there's shadows and there's everyone else to train them

up into that, all that stuff, but also the way that.

So like Java has one big, just umbrella of open source, right?

And then Linux has got it, all these little things everywhere.

Kubernetes does really well at having like multiple maintainers and projects

that all work and do their own thing, but have this great umbrella that keeps

it all together, you know?

So they're, they're both independent, but it's kind of got one thing to house it all.

But also like, can you go more into the communication aspect and tell us like,

like, cause, you know, people might not have read your blog.

Like, can you tell us what you really mean about that communication?

Because this is something that I think, like, first of all, earning trust

and keeping that trust is super important.

And I think that people don't, this is like, people talk about how to be technical,

but there's so many parts of the process and just the other parts of engineering

that nobody talks about and tells you.

And I think we can really lack those skills that make you a whole engineer.

So can you talk more about that and like tell people kind of what you've met

in the blog and like what you said, like elaborate?

Yeah, for sure.

So, so the, the, the core of it, like the reason why communication is so central

and so much more central than even like the actual thing that you are shipping

is, is that like at a large company, like shipping something is almost

defined by communication.

Like it's something is shipped when people know about it.

It's shipped when your management chain, like is happy with it.

It's like whether something is shipped.

It's, it's, that's, that's defined by, by the flow, the flow of information

inside the org more than it's defined by what is like literally available.

Get push doesn't count.

Yeah.

Yeah.

Get push doesn't, doesn't ship like announcements ship, telling people

about it, ship puts putting something up where people can like go and find it.

And then they actually find it like that.

That's also that's so much pressure.

What do you have to have the good announcement?

Like you can be great at writing code, but having to say something

that millions of people are going to read and make sure you don't say

something stupid is so much pressure.

Well, fortunately, at least in my experience, the, the announcement

side of things has been handled by like a full marketing arm and a whole

team of people kind of, you have to worry about that.

So I don't, which is, which is really nice.

But the other thing about, about communication, like the path

that's sort of more internal is, is that when you're like leading a project,

you sort of live and die on trust.

And when I say trust, I, there's all kinds of trust, but I, I, I specifically

mean the extent to which your manager and your manager's manager trust you to

do like sensible things with the project, which is partially to like get it

out on time, but also like not to go rogue and like do something really weird,

not to do something really like completely unaccountable.

Like, um, that's, that's a, a worry that I think a lot of kind of

engine, like a lot of engineering managers have that like engineers kind of

not to put too far, like almost like just can't be trusted is what I, is what

I want to say, which is an awkward way of putting it, but I mean, I think

can't be trusted with their, what they need, right?

With the manager needs, with the business needs engineer wants to do

engineering things and not necessarily satisfy customers.

And I, I can totally see.

I love how everybody talks about engineers, like feral chaos goblins that

just sit in a room somewhere and like write code and like, they're not completely

all like, you want to argue, but you're like, no, I mean, I, I, I, I do think

like, yeah, I do, I do talk like that, but sort of to, to the extent that I do

it, think about the meme, the memes of like, they're just dark, they're like,

they sit in dark rooms and you just throw pizzas in and nobody shot.

Like that's been the attitude.

Like people act just, that's the people's idea of what an engineer is.

But I mean, I'm an engineer, right?

Like I've, I've, I've been an engineer in my whole, my whole career.

Like I, I love engineers.

I am one.

Um, and I think like the extent to which I kind of give engineers a hard time

is because like engineers already know that it's important to, to do things

technically well, they already know that it's important to like, you know,

write code properly and, and, and, and factor their app appropriately and blah,

blah, blah, like this, this, this stuff that I talk about, this is the part

that I think a lot of engineers don't know.

So if you just listen to that in isolation, it probably sounds like I have

a very negative opinion about how engineers function, but it's not true.

It's not true.

I love them.

I mean, I don't think that's a bad thing.

We are kind of chaos goblins.

We own that like, but I think that I hope there are more people like you that

become more senior and that like our staff or leads, because I think again,

like you just said, we know the technical things are important, but there's

so much more to being an engineer than writing code.

And I hope that we continue to make better, more well rounded engineers and

not just people that are deeply technical, but have no people skills or

process skills or these kinds of skills that are deeply important to the process.

For sure.

As long as it's like, as long as the technical part is also there, like you

actually, you actually do have to be technical.

Like that, that is actually a hard requirement.

But we've never let anybody forget that part.

Yeah, true.

Like, you know what I mean?

Like, yeah, exactly, exactly.

I think people are always like overly compensating in that area, you know,

while being like horrible at all the other things.

I mean, I don't know.

I think the vibe has changed on people thinking they can do more than they

actually can because of things like AI and look at all the stuff that I can do

without actually having the knowledge of how it works or experience.

I mean, and this isn't maybe big enterprises, this isn't like large things,

but just in general, I feel like a lot of the shift of, and I don't want to

gatekeep engineering, like I think they are doing engineering, but like they

think they're God a lot sooner than when they actually like might be praised

at a larger company of saying like, oh, you actually are doing like a really

good thing here.

Dude, I'm a woman in tech.

They've all thought they were God forever.

Like they just, they're like, it's amazing.

Like some people have deep embossed or syndrome and some people

you're like, bro, you could use.

Yeah, I bet.

I mean, like when I give people advice about how to lead projects, I do try

to suggest that if they can find some way to foster an unreasonable

confidence within themselves, they should do it because it really does help

to like have this almost unjustified self-belief that you will figure

out a way to make it work.

Like, it can be tough to interact with, I know.

Being an optimist is helpful, right?

I actually think that's important in some people because I feel like

you meet these people and they're so smart and they're so good at it, but

they're never the people that think that they have like, you know what I mean?

Like they're the people where you're like, dude, if you have imposter syndrome,

I'm screwed.

Like, you know what I mean?

Like, but then there's always that like those people who have like the God

complex and you're like, you could use like it.

Something, something you didn't call out in your communication that has at

least been my experience in gaining trust with leadership is literally just

sitting next to them in person, in common, like, like there's no faster

way to gain someone's trust than just like going to lunch with them a few

times and like, at least if you're confident, if you, if you portray

some confidence, right?

If you're, if you're saying, I don't know how this is going and you're

always worried about it, maybe not so, but I've seen people succeed just

because they went into the office and that's where leadership was, right?

They were just in the same, even location, right?

Like if everyone was in a, in an office, but the person shipping a product was

in a different building, they didn't gain the trust because they weren't

seen by leadership constantly.

And they're like, I don't know what they're doing because I haven't

talked to them for four days versus you pass them in the hallway.

Hey, how's this going?

Oh, it's going great.

We're going to ship it next week, right?

Like that sort of confidence building and trust.

I don't like it, but I know that humans in general are, are that way.

And it's just having that constant sort of like interaction with people,

like the small casual things gains a lot of trust really fast.

I think it's possible to do remotely too, though.

I, I think it's possible to do remotely, but to, to, to some extent,

that could just be code because I've been remote for like eight years

and my whole time at GitHub has been, has been remote.

And I like to think I've built some trust.

I think being a personable person and having people's skills

can assist in gaining that, but you have to be good at like, like finding

a way to like have water cooler talk, not at the water cooler.

I think if everyone's remote, it's possible and everyone can be on the same

footing. I think if you're hybrid or your leadership is in an office

and you're remote, it's, you're not going to gain the same amount of trust.

You're not going to get that.

You can build trust over time.

It's going to be harder than if you were showing up into an office.

Look, that's, that's true.

There are, there are all these like social human ways of building trust,

but I do think like the fundamental way of building trust is to like just

straightforwardly do the thing and, and, and demonstrate that you are worthy

of trust and that you can do things.

Like it's, it's a flywheel, right?

Like you have a little trust, you get put on a little project, you do a good job.

You get put on bigger projects.

And then at some point it's like, well, you know, this person did these last

things really well.

Like, yeah, we trust them to do a good job of this thing.

It's just this kind of like, so I think delivering results is how you build trust.

Yeah.

Where results is to be understood as your manager and their manager are happy

without the project one.

Yeah.

Yeah.

Making, making, making them aware of something that you did and how it went.

How do you, oh, that's another thing.

I think communication is not always sought as like, you have to be good at

giving people the information to know why things are happening and to show your

success, because you can be doing the best job ever.

But if you don't learn how to market yourself and to show up and to like

communicate that, that's very detrimental to your career.

Do you have any advice for managers though?

Because I do think that generally we all want to please our boss and have them

happy with us.

That's pretty much like overall, that's not rocket science.

But like, how do we help managers to give us that information of what is

important to leadership and to these projects and to the value that they need?

Yeah, that's a, that's a good question.

My main piece of advice is, is really simple.

It's just ask.

It's like, if you're an engineer, like in your one on one, be like, hey, what's

important to management right now?

And if your manager doesn't know, ask them to go and ask.

And I think I've, I'm sure these exist, but I have never worked in a place

where a manager couldn't go to their manager and say, hey, what are the top

priorities right now?

What are you most worried about?

That's always been a question that's like appropriate to ask.

And you can just kind of do that up the chain.

And then, you know, in your next one on one or just async later, just, just,

just here, oh yeah, I talked to the VP and, and, and they said, like, they're

worried about these, these three things.

So like, yeah, the main thing is just like, like it's, the stuff is not

covert at, at, at large organizations in my experience.

People don't like hide what they want.

Like they're trying to tell people what they want because they want it to happen.

You know, VP's are constantly sending emails and stuff.

It's just because these different levels communicate in different ways.

Like, uh, it can be hard for the information to get, to get through.

You know, you can read an email written by a VP and it just sounds

like corporate speak, just sounds like noise.

Um, but if you actually read it and pay, and pay attention to it, uh, there,

they will usually be telling you like what three things they care about and by

a mission, what things they don't care about.

I only have had two managers that ever told me something and then went behind

my back and, and told other people something else, uh, where it was like,

actually they were literally lying to my face to have me do something in that

it was not what they wanted.

Oh, look, there, there are so many dysfunctional situations out there.

I, I have nothing but sympathy and I have no advice for people in those

situations.

I feel for you.

I might, my advice is to, to get, get away from that manager as fast as possible.

Yeah.

I had so many snarky things in my head that I'm just not going to say.

It's fine.

It's a safe space.

It's just us three.

No one else is going to hear this.

Nice.

But Sean's, Sean's face was so good.

Like I was just like Sean has stories.

Yeah, I'm, uh, I'm limited in what I can say, but I can make, I can make

general statements pretty freely.

The last thing in your blog post that I want to talk about was, uh, this notion

of can we ship right now?

And I like that sort of like boiling it down of, of like, Hey, is, is this.

Good enough.

Is this something that we could just put out there?

Is this something that's cause, cause the longer you say no, the longer

you hold on to something, the, the harder it's going to be to get out the door later.

Uh, yeah.

And that's, that's certainly true from like a product perspective, but I even,

I even made that technically, like, can we, can we literally ship right now?

Are we, are we technically ready to ship right now is enough of the code in place

that we could push it, deploy or turn the feature flag on and ship?

Like what's, what's preventing us from doing that?

I think people, uh, when they run projects a lot, they sort of assumed that, um,

writing the code is the hard part and like getting it out is easy, but in fact,

writing the code is pretty easy and integrating everything and making sure it

works end to end and, and fixing the, the kind of communication layer,

edge cases and, and all of that stuff, that stuff in my experience is what's

really hard about projects.

So if you can front load that work as much as possible by like, you know,

like if you have to ship a new page with a bunch of stuff on it, if you can

like ship to staff only a version of the page that has no styling and is just

like a page, then like the more of that stuff you can do, the more you kind of

defray these, these are potential potential risks about not being able to ship

eventually.

And I've seen, I've seen projects fail where people were just like, they

assumed that they could, you know, push this certain thing to production.

So they had this big, long development branch that looked really good and worked

really good locally.

Then when they went to deploy it, it was like, oh, it actually works slightly

differently than this core assumption that you had about how things would work is

false. So you have to go and back to the drawing board on launch day and figure

out how to make this work.

Like.

And the thing that I, I really like about this is how it ties into the first

part that we talked about where shipping is when your leadership thinks it's

shipped, right?

And, and if you get pushed, that's not shipping.

And even if the code is ready, even if you say the code is complete today, I

have all the tests, I verify that this thing will work.

If your marketing team's not ready, if you don't have the blog post that

announces it, if you don't have training material or documentation or whatever

post launch activities ready to go, you're not ready to ship even if the code

is complete.

And so making sure that that stuff is done ahead of time so that it's not a,

hey, we pushed the button to get, you know, we get pushed.

Now it's on you to finish shipping.

It's like, no, no, no, you have to do that together.

That is something that has to be done together because leadership isn't seeing

the get push and they're not, they're seeing the post activities and you need

to make sure that those can happen.

Not necessarily at the same time, but in some cadence that's together.

So you can say, hey, this is done on, on this Friday because everyone always

should ship on a Friday.

And, and, and whenever that case may be, you say, now the leadership knows it's

out there because the blog post went live because when Disney Plus went live, it

was live for like six hours before the actual announcement went live.

And it's like, guess what?

It wasn't live for those six hours.

People found it's people were literally already watching shows on it.

We're like, no, no, no, it's not shipped yet.

This is not done because we haven't made the announcement.

Yeah, yeah, for sure, for sure.

And as an engineer, you're not always in control over that stuff.

Like you're not always the one pushing the button.

But yeah, you, you definitely have to be aware that like it's not going to be

over until that stuff is done.

And to the extent that like you're blocking that stuff for reasons that

might seem unimportant to you, they will become very important on launch day.

Yeah.

Oh, did you ever have, did you ever think that Amazon that didn't ship

because documentation wasn't ready?

I can't tell you how many.

I was definitely the junior engineer that was like, the code's done.

It's out there.

And they're like, go write the release for announcement.

I was like, damn it.

I don't want to do this.

I had lots of things that did not ship.

I have blogs that are still in like, that were still draft.

No, they were drafted.

I have blogs that had gone, been in review for like two years.

They'll never see the light of day.

They're dead now.

I mean, if you got out, but most of them just.

Sean, was there anything you learned from this blog post and other people's feedback?

I mean, this was, you wrote this last year, right, November 2024, right?

So it's, it's now July 2025.

There was a bunch of conversation about it.

People talked about it.

People probably said, oh, I disagree with this, or I think this is more important.

What, what did you learn?

Oh man, this is going to sound really egotistical.

But I think I just believe more strongly that I was right now than I did when I wrote it.

I've written a lot of blog posts where I got feedback and I, and I, and I felt, yeah,

you're right, I missed that.

It happens a lot.

I write, I write a lot of stuff that I like go back on.

But certainly about like my own experience, I'm really confident on this stuff.

One thing I did learn, I guess was, and I sort of knew this in the abstract,

but it really brought home reading the feedback of like how different,

different situations are in tech and different jobs are in tech.

And so many people who wrote in the hack and use comments or emailed me being like,

hey, this part really speaks to me, but these other parts could not be less

relevant to me for these reasons.

And I'm like, yeah, fair enough.

Yeah, I think that's the jarring part about being an engineer.

It doesn't matter how long you've been an engineer from job to job.

It can be so drastically different.

Like, you know, just what the process is and everything.

Do you think that.

Do you, okay, so when you wrote this, it was what a year ago, like,

do you think that in the times that we're in right now, it's harder to figure

out what is the definition of ship because it's harder to figure out what

people are expecting of engineers right now and where engineering is going.

Like we've always said that you need to be really technical.

And now AI is writing a ton of the code, right?

So like, do you think we need to ask more often?

Like, do you think that there is like,

is it going to change what means shipped and do you think those priorities

are changing right now or?

Yeah, so let me, let me answer without reference to AI first.

Do I think it's gotten harder in the times we're in to like, figure out what's

shipped? No, actually, I think it's gotten easier.

I think in, in some circumstances, I think it's gotten a lot easier.

I think in the, in the mid 2010s, in the, in the height of like zero

interest rate madness, there were some projects where it was much easier to

there were some projects where it was like nobody knew what the point was.

It was, it was like purely like to be doing something or it was like

somebody had this idea and then left and then somebody else picked it up and

then left and then the third person was trying to carry it through without any

real sense. There were a lot of situations like that.

Or I think it was really genuinely hard for anybody to figure out what it

meant for something to be successful and what it meant for something to ship.

And for all that, it's like worse to be a dev now than it was then.

One thing that I do think is kind of nice is at least where I've worked.

It is pretty clear what companies care about because now it is like

more specifically tied to making money.

Whereas previously they had all these other motives that were because money

was money was free. So they were doing all these, all these, these are other

kind of things. Now it's like, well, you know, like if I make a change to

co-pilot and it increases ARR, that's a good thing.

You know, if I make a change to co-pilot and ARR creators, that's probably

a bad thing. Like it's, it's, it's much more like tightly connected in that way.

So we went from Vive projects and Vive teams and Vive services to Vive

coding, basically. Yeah, maybe.

You have to laugh or you cry.

Full stack vibes.

I don't think people are, people are Vive coding in big tech companies in, in

production yet. I think they're like, they're doing agentic coding and they're

doing all kinds of things, but the, the pure no code vibes, like just interact

with the, with the LLM. I don't think that's that widespread yet.

I think people think it is and they are basing whole models on it.

I guess we're going to see what happens.

Oh, the hype is there for sure.

Yeah. And I can, I can see, I mean, it's hard to distinguish those things, right?

When we say that AI is writing a lot of the code versus Vive coding, like people

oftentimes think it's the same thing.

They, they often like, oh, well you AI just wrote the code then, right?

It was like, well, like, no, like it's, it, it started writing the code just like

my tab complete used to start writing my code.

Or my, my Ruby on Rails generated an entire project structure when I had no idea

what it was doing and I just filled in some values, right?

Like those sorts of things have always been around.

And it's like, yeah, we are still hopefully in the loop of those.

It's like when we first start programming and people tell you, you have to only use

VIM and you can't use IDEs.

And now instead of IDEs, it's like, you have to learn how to program without AI

first and then you can use AI.

It's just another abstraction.

Are you saying I can stop using VIM?

No, I love VIM.

After you write, like, I feel like people just use it because like it's like

hazing, like you've already gone through like the, the hurt and pain of learning

it and then you can't unlearn it because, you know, you can go do something really

quick.

Muscle memory.

It's just, it's a sunk sunk cost fallacy.

I've invested so much time in these, uh, these key bindings that, uh, it's just

wondering if that's what it is with bash, right?

Like, is it because bash is really good for things because it's simple or it's

because we've all just been beaten to death and use it for it's because it's

good, it's, it's because it's good.

That's it.

I mean, one reason it's good now is that every LLM knows bash really, really

well.

So if you need, can we talk about that's, that's my favorite part of AI.

Like, because I hate writing bash so much.

Like, not that it can do all the things because it still gets it wrong sometimes,

but it'll get you like some of the way there and hope you diagnose some of it.

Like AI is taking away all the, all the artistic jobs, including writing bash

strips.

That's it.

But I just wanted to write bash scripts and regex.

If you need like a one-off script to be like this API is behaving weirdly, like,

can you hit all these endpoints with all this different stuff and like aggregate

the data, you can one-shot that with an LLM and that, that actually does save a

lot of time.

Yeah, I do like that.

Sean, where should people find you online?

Yeah.

So, um, Sean, get a key.com.

That's a G O E D E C K E.

It's my last name.

Um, or yes, fantastic.

Or you can find me on LinkedIn or just email me if you want to chat to me.

Are you on blue sky at all?

Uh, I am on blue sky, but I don't post anything.

Okay.

I, we have a, a, a running people, the guests of the show, uh, lists that we add

people to, so, but if you're not posting, then that's okay.

Sweet.

Well, thank you so much for coming on the show and talking to us all about how to

ship things.

This is, uh, this is fantastic.

Yeah, it's my pleasure.

Thanks for having me on.

Uh, everyone, thank you for listening to this episode.

Um, I, what is this episode coming out?

It's coming out in August.

Uh, I'm going to be at KCD San Francisco in September, early September.

So if you're listening to this before September, KCD San Francisco, I'll be

there and I'm also going to be at edge case in Amsterdam in September.

So, uh, if any listeners are around and, and want to meet up in person, please

hit me up on blue sky.

I'll, I'll be at those events.

Uh, autumn, are you going anywhere in the near future?

Um, it doesn't look like it.

Not right now.

That's fine.

It's, it's summer.

It's, it's time to not travel some places, but, uh,

I don't really want to travel right now.

I'm good.

I'm going to sit at home and garden and write code.

Yeah.

I, the less I need to get on a plane, the better, uh, but sometimes we're doing it.

So, yeah.

All right.

Well, thank you everyone for listening and we will talk to you again soon.

Thank you for listening to this episode of fork around and find out if you like this

show, please consider sharing it with a friend, a coworker, a family member, or

even an enemy.

However, we get the word out about this show, helps it to become sustainable for

the longterm.

If you want to sponsor this show, please go to FAFO.fm slash sponsor and reach

out to us there about what you're interested in sponsoring and how we can help.

We hope your system stay available and your pagers stay quiet.

We'll see you again next time.