Transcript: Growing Old Gracefully as a Programmer
hi and welcome to another episode of django chats i'm carlton gibson joined as ever by will vincent
hello will hi carlton hi this week i don't know what we're going to talk about we're going to
talk about some talk i gave at django corn europe a couple of years ago yes so last year so this is
the talk that i first became acquainted with who you are uh though most people haven't watched the
talk, which is outrageous. We'll link to it. But it was a talk on growing old gracefully and as a
career programmer, which really resonated with me in my 30s when I saw it. And we wanted to sort of
talk about some of the themes in there, because I think they'll resonate with a lot of people,
regardless of where you are in your career. Because stereotypically, programming is a
young person's career. You come out of school, you can jump right into potentially a high-paying
job you get a lot of authority but you will find that as you continue uh experience is not always
appreciated and there is quite a bit of ageism and so i thought you had a lot of good perspective
on that that we could kind of dive into some of the themes yeah on this podcast so i'd been like
so when i gave that talk i'd been um programming i don't know a decade say and like professional
freelance you know i'd done the london agency thing i'd done this i'd done that and what would
i say what was the the issue it was like yeah i mean it's almost a defense of programming i would
say on the one hand you're sort of saying it's i mean it's saying gracefully right it's not you're
not put out to pasture when you hit 35 yeah but exactly yeah there was this there was this um so
one of the hooks was like this this headline that i saw on hacker news that programmers by the time
you're 40 get a plan b because yeah it's like you can't carry on program you can't carry on program
because you can't get hired for a start why because you're expensive because you experience
because you've got a family you need more money than some junior developers fresh out of school
but the hiring manager well they don't know you they don't know what they you know they all they've
got is your cv like so how are they gonna how are they gonna justify that that quite sometimes quite
a big multiple of of of remuneration and so it's really it can be increasingly hard to get hired
but also if you're in a job like so you know i gave example ibm constructively dismissing all
the old hands. They've got these consultants that go around and help design systems in IBM's client
companies. You know, this is the tech consulting that they do. And they would be sending these
people who had families to far remote offices and all the rest, doing everything they could to get
rid of them. And in the end, they were, you know, prosecuted for constructive dismissal.
Yeah. I mean, it's always a slap on the wrist, but yeah.
Yeah. I mean, it doesn't put off the behavior, but the point is that, you know, it was like there's this picture that programming is something that you do for 10 years and then get out of. But I'm like, no, no, no, no, no. Like programming is, you know, it's like my lifeblood. It's something that really deeply stimulates me and that I want to carry on doing forever.
Right. But I think it's, and this is, you know, you're talking, you talk about what does that path look like? Because I recall being in San Francisco at a startup in my 20s and sort of going, I don't see any 30 something programmers. Now, again, I was like in the heart of startup land, but I remember thinking, where do they go? And because I think that the paths diverge, right? I mean, so I'll give you the stereotypes, then you can disabuse them.
I mean, so the stereotypes would be, you know, if you're a man, you grow a neck beard and you go work for some huge company in the peninsula and you just, you're an individual contributor.
So you're pegged as an individual contributor, which is a little bit of a, ooh, they don't work well with others.
And you better be really good and you could be fired quickly, but you have a niche that you become an expert in or you become a manager.
And then you're losing your technical skills, but you know, you're in charge of stuff.
You have to do hiring.
there's no kind of, I didn't, I wasn't aware back then. I'm still always a little bit surprised of
what is that happy path from your twenties to your thirties to your forties, because
there is this stigma that you can't just be a developer. That's a waste of skills. And unless,
especially if you're in a larger organization, there's only a tiny number of spots for you to
be an architect or whatever title they call it. You know, they do, you know, the turnover,
even at Facebook, Google, these companies, the average age is something like 27. It's in it,
You know, this, it's very young.
A lot of people go and do two, three years and then they go where, right?
And that's sort of the question.
Okay, so, right.
So there's this image of, I don't know if you, I sort of got these images, maybe a Charlton Heston films back from the day, like being a slave on a Roman galleon, right?
And beating the drums and whipping them if they stop, you know, and they literally fall over in their oars and then they get them out from the chains, throw them into the sea and chain the next slave onto the thing.
And it's like, that's the startup thing, right?
You get these youngsters in who are all keen
and you flog them till they fall over
and then you get a new one.
Stereotypically, yes.
Right, well, okay.
But there are companies which aren't like that, right?
So my first sort of thing is, hey, look outside of tech
because do you know what?
In the real world, these ideas that software
is eating the world, well, it really is.
And if you've got Django type skills,
You can code up a block and then you can take those to a real company.
You can do stuff that will just be massively productivity boosting.
So you're in a department, you're in a normal office, a clerical department doing something in some company that makes actual physical widgets in the real world.
If you can write some software that will just smooth the process or whatever, as part of your real world job, you're adding massive value.
and that's software that probably can't get written by an outside consultant because it's
too expensive well too expensive and they don't have the domain expertise yeah to to do it so
that is that is one thing is it's i mean especially in san francisco there's a feeling like if you
didn't spend your weekend you know writing a compiler and see you're you're slacking off and
then the real world people can't use powerpoint yeah and people can't people people can't use
python for instance at all they can't even install it by the way install python3.com i
finally have that live with if you want a a working opinionated way to just get it working
go check that out i finally have that up super well done but yeah but exactly this is the thing
outside of the tech bubble yeah it's not this there are companies that will and millions of
companies that will be desperate for your technical expertise because we're kind of like at the cusp
The image I gave was off the base of one of the keynotes there on the Industrial Revolution was that we're in a kind of a second Industrial Revolution now.
We're at the point where if you imagine in a Dickens novel where people are paying scribes to read and write for them because they can't read and write themselves.
Well, that's kind of like where we're at with programming is that it's just literacy now.
In 50 years time, like all my kids already, they're already learning Python at school.
just you know coding away and you know scripting things up and they just yeah well they're not in
the u.s then right they're learning it at school okay but maybe it's another 10 years maybe it's
another 20 years yeah it's coming and basic scripting skills will be you know there will
always be professional programmers writing compilers and all the rest of it as there are
always there are still professional writers but that basic kind of yeah i do you know what i can
script up something to automate a boring bit of my you know the automate the boring
parts bit of the python book right the that sort of stuff if you can take that into the real world
you are phenomenally valuable these days so you can you can do that and you can code and you can
program and you can do it in a world where you're not you know spending all your creative passion
and energy on finding more ever more creative ways to get people to click on a link well right
and that's the thing is it is hard to break into tech and you know especially when you're new you
just accept and want to jump through whatever hoops are thrown your way but there are bad
companies there are abusive bosses um you know i mean i've been there it's hard when you feel
trapped but there is a bigger world and as you said i think looking beyond just straight tech
is a good idea at any stage of your career but also as well you find you like there's a kind of
market value thing like young programmers they don't realize how quite how what they should be
asking for for for their salary and so they sort of take a much lower salary than they're really
worth whereas in the real world you can get out there and you can negotiate a much better
remuneration and actually do you know what you've got paid vacation and you've got holiday you know
health care and you've got you know a pension fund and you've got um job security and they've
got a career path for you where they're actually trying to invest in you because you're a valuable
asset and that is so far removed from the tech tech startup world but right when i would say
as some advice to my younger self, if you want to know what a company is going to be like,
look at the top person or persons and see what their background is. Is it in tech? If it's not
in tech, they're always going to undervalue tech. That's just how it is. It's either tech or sales
and see what their life is like. I mean, I made a vow to myself after coming out of a startup that
I wouldn't work for another startup unless there was at least a parent who was a high-level person
because as a parent myself it's just no way that a non-parent is going to understand
and you know you could say that limits my scope but also i have an awareness that you know if i
wasn't a parent i wouldn't get it but if someone you know so look to people in power and see what
behaviors they are modeling because whatever the company says they're gonna it all trickles down
from the top people yeah like look there unlimited leave but you're not really allowed to take any
and you know all these other i mean i think that's and even things like a free lunch like
you know they do a free lunch but that that's kind of dangerous like why is it that they're
trapping you in with your workmates why aren't you allowed to take that hour's lunch break and
go off and do something different and get a change of energy and you know recuperate your mental
space before you come no you have to be hothoused in the canteen together like now that's not always
evil but hang on a sec well these after these after work drinks that we have to go to like
hang on, after work, shouldn't I be going home and spending time with my family? Why am I still
here? I mean, I would say a great company, I mean, this is what I tried to do when I was managing a
team is sit people down and say, here's the path we see for you. So this is what success one, two,
five years out looks like. And be clear about it. I wouldn't expect a company to do that for you.
You have to have that in your head because ultimately no one cares about you as much as
you care about yourself. But you should have a plan and sort of say, well, this is what I want
to get. And then know that, unfortunately, in a lot of companies, basically the only time you can
negotiate properly is when you're hired. And once you're in the queue, you're just on whatever,
you know, 2% a year, whatever it is. And that's just how it is. And, you know, your manager,
I was a manager, they don't have the power to control this. They are given a budget and they're
a bit confined by the realities of the system. So it depends on the place. But when I was a manager,
I always told employees, tell me when you get a better offer, because I may not know if what
we're paying isn't market rate. I want the chance to match it. But what often happens is that junior
developers or developers, they're in a place a year or two, starts being less new. They hear
that a friend's somewhere else getting paid more money. They kind of grouse about it to their
manager. The manager is like, well, what do you want me to do about it? I've got my budget.
And then they start interviewing, they get an offer and it's 30% more, 20% more. And then they
just kind of drop the bomb and the manager is saying, I'm going. When, if they'd had the
conversation with the manager, the manager wants to know, generally speaking, I wanted to know.
It doesn't mean I can match it, but I want the chance to match it. Because if you just drop a
bomb and leave, that's not always the best way to do it. But that's a lot of times how, especially
you know someone newer in their career they feel kind of bad about having other offers i mean i
always told employees you should you should know what the market is and you should tell me what it
is you know don't feel bad about talking to competitors i want people who are wanted by other
companies and i want them to be here for the right reasons not not someone who feels trapped
yeah and this is particularly difficult in startups because they've got they're normally
burning through capital and they've got a budget and it's plotted out over the months and they
can't just sort of double the programming budget you know yeah i mean because that's that doesn't
fit in so they might that they'll let go of the the person with all the knowledge and the year
and half of experience and they'll hire a new junior in and they'll you know and this this
horrible startup thing but i think real companies like established companies have got an actual
revenue stream and are profitable they they have much more flexibility in you know giving realistic
raises i think so yeah and i think it's i mean it's you know it it's hard being the in charge
of a startup where you're sitting there going how am i going to pay the bills this month
how i need to raise a round and at the same time rally the troops and be like yep everything's fine
you know you don't um you don't want to lie to them but you also don't want to burden them with
the anxieties that you feel as a small business owner or startup owner so it's i have some i have
quite a lot of empathy for the position but you know be aware that startups are high risk by design
but you know but we sort of slagged on startups i would say startups can be great for your career
because you'll have a chance to spread your wings you'll take on responsibility you can manage
people within a year or two they cannot be really great uh but there's a risk involved there so
you've got to go into them open mind it and like the big danger is burnout here the big danger is
that they do you're tied to that or and they're not they haven't they don't care about you and
they don't look after you and they're only expecting you to be there a year 18 months
and so you've got to look after yourself at that point and you've got to be careful and you've got
to say that i set these limits for myself and i won't be stockholm syndromed into um you know
working the late nights or the weekends or all those things that just aren't conducive to a
healthy life well and that's why i said look at the behavior at the top uh you know i think you
look at like Elon Musk, who allegedly works 100 hours a week. You know, how's he doing?
Mixed bag. He'd probably be doing better if he worked less.
Yeah, I don't follow the news.
Who knows? But again, I think part of it, though, is, you know, with experience,
you sort of realize things you can change and things you can't change. So companies often kind
of are how they are. And you may not be able to have this kind of frank conversation with your
manager, in which case leave. I mean, tech right now is, there's a lot of jobs out there and you
are not trapped. And it is easy to get this Stockholm syndrome approach, especially because
you spend all this time with folks and, you know, it's fun to do, but you do have to look out for
yourself as you point out. And I, you know, in your talk, you, you know, the thing is you want to
Look out for yourself without being like crabby
and just saying no to your colleagues all the time.
Right, no, but it's self-care.
Self-care is the number one priority.
So it's a marathon, not a sprint.
We're working on the assumption
that you're going to do this career indefinitely,
that you want to be a career programmer
because programming fulfills you
and it's a deeply rewarding activity
and it's well-renumerated and it's secure
in terms of there being massive market demand for it.
So you're going to keep going for it.
So you can't do, you can't work in a way
that means in six months time or 12 months time or 18 months time you're going to hit the floor and
need you know nine months in rehab that's that you just can't work that hard it's not sustainable
so self-care is your number one priority so okay well having said that how then do you build a
career and how then do you find the companies that aren't because if you just you know type in tech
job the only thing you're going to find is you know these kind of startups or digital agencies
which they all kind of have the same model. They're all rapidly hiring. They're all
desperate. So how do you find companies that are not like that? Well, I say in the talk,
be prolific. I give the example of contributing to open source, but do that if you've got an hour a
week. Do an hour a week, but that adds up. If you've been doing that for six months, oh, hang
on, that person's been active and they've got something to show for it. If you've been doing
it for three years, wow, it's actually quite impressive. And it wasn't that you killed
yourself to do that you just gave a little bit of time give that time limited be prolific be
diligent get on with it don't don't be on facebook don't be on twitter don't be on slack all the time
just get on and do your work so that way so that when you're not working you can relax because
you know you're taking the time when you are relaxing don't be on facebook don't be on twitter
be on slack because you're relaxing and then the secret is to be social get out and put yourself
out there don't just be the ghost who coach don't just sit there behind the keyboard going oh you
know i've done my thing and then i never say anything else because if you can reach out
the opportunities will appear it's true that it's all about your networking connections and even
though we're staring at a computer how did the best jobs the best opportunities come from knowing
people from going to a meetup from being involved in a conference from volunteering for something
and as you say too programmers need to think about their brand you need to think about it's worth
having a blog it's worth having contributions to open source you could point to because generally
you can't talk about or show the code that you worked on at work. It's proprietary. So even if
you come out of some amazing place, I would want to see some of your code. And if you have no,
if I'm hiring you, if you have no code to speak of, you know, and again, especially as you get
older, you don't have to be coding after work. You don't have to have infinite side projects,
but you should have something public facing. You should have something available because
again, even if you've come out of, I don't know, the best Django place in the world,
I would want to see some real code before I hired you. And I would rather see code and have a
conversation about that code rather than give you some whiteboard or give you some project to do
that will blow up time. I would much rather talk about, well, tell me about this contribution you
made to Django, small as it may be. Tell me about that talk you gave. Tell me about this blog post.
That's a much better conversation. But you're going to have to have that conversation. You're
going to have to prove it. And as you say, you can't just be head down getting attaboys from
your colleagues i mean nobody you know nobody knows what you're doing yeah no no no no exactly
and so can you you know if you're at a company can you open source something or maybe not maybe
you can maybe you can't you can't but if you can that will count can you get your company to give
you an amount of time to say work on django work on django rest framework or work on you know to
just to contribute and then if you can get that time then that makes it that makes it that gives
you an opportunity to then build something to point at and say, look, hey, I did this. I did
that. You know, also what you said about burnout and, you know, stepping away from the computer.
I mean, this is something we all struggle with. I still struggle with. I think especially,
I mean, personally, I struggle with this in the context of having a busy personal life with a lot
of responsibilities. Sometimes distractions feel nice, right? It's a little bit of an escapism.
And yet, you know, if I come in on a Monday and I'm not feeling great, it's probably because I, you know, I spent an hour or two doing this or that.
I really didn't let myself disconnect from technology.
And then, you know, I come in with these feelings of burnout of it doesn't matter.
It's meaningless.
You know, what's the point?
Okay, but let's take Facebook or Twitter or whatever, like one of these things where they're on your mobile phone.
And yeah, five minutes, fine.
It's no problem.
Ten minutes, no problem.
but then it gets that point where you put your phone down and you're sat there and then you pick
it up again and then you look at it again and then you think oh I've looked at it it's really
done I've scrolled past the same 50 updates 50 times you put it down and then all of a sudden
it's back in your hand and you're looking at it again and this is on Saturday evening when you're
meant to be you know relaxing and spending time with your wife or your partner or whoever whoever
it is and it's like what are you doing and it's not your fault it's like your brain is hardwired
there's this monkey brain is yeah but it's rat brain actually it's um oh it's rat brain okay
yeah it's like uh it's this positive reinforcement cycle where like there's this really tiny dopamine
here from the information that you take in and it's like because it's variable because you never
know when the new update will come there's this kind of if it was so they did this experiment
they got rats in a cage right and if they give them a button where it gives out food and it
reliably gives out food the rat will press the button when it's hungry it will eat the food
and it will go away and do its thing and it'll come back when it wants more and press the button
again it's all you know quite healthy but if the button is random where they the rat never knows
whether it will give food if they press it the rat will sit there and it will just end up pressing
the button all the time and it will get really fat and overweight and it's because there's this
kind of variable reinforcement and that's exactly what it's like with email exactly what it's like
with social media and it's it's it's it's an addiction and it's nothing that you've done wrong
it's your brain it's the way your mammalian brain is wired to keep you alive in a situation of
scarcity but what's that doing is it's destroying your ability to rest and your ability to
concentrate and your ability to be peaceful in your mind when you're not at work and even when
you're at work right sometimes analogies to other things are helpful here i mean if you're if
anyone's been an athlete or focused on, you know, any discipline, a lot of times it's the rest part
that is the challenging part, but the most important part, because it is hard to rest.
It is hard to disconnect. It is hard to have that space. And yet you have to have that to let your,
to recover, to let your subconscious work, to have things, you know, pull in. And, you know,
especially a lot of programmers, I think we're sort of, you know, knowledge addicts. We just
want more and more and more and more. There's always more to learn. There's always more news.
There's more programming things. You know, I mean, I have a bookshelf of programming books. I
certainly sometimes on a weekend we'll sit there and think yeah i should dip into you know that
algorithms book and it's fine sometimes but it just means i can never disconnect so it's yeah
as you said the awareness that that's how we're wired but i think i think if the algorithms book
is is an order of magnitude better than the mobile phone right in the at least then you're sat down
and concentrating on something and getting into it it's not like this cookie cookie of content
cookie of information cookie of information is snacking it's this this sort of intellectual
snacking which is exhausting um anyway i talk about this lots in the talk right and i i talk
about some software that i use to to block distractions i delete everything from my mobile
phone so i can't get on that i um there are various techniques what do you think about career
path right i mean so you've
you haven't you're not a manager i'm not a manager right now what what sort of what's your take on
that tension because it is a little bit the peter principle if you're a great programmer
you're very much pulled toward managing um and there is a i think there definitely is a stigma
towards you know individual contributors of a certain age yeah okay but well okay so i've
deliberately avoided corporate structure i like being freelance i like working remotely i like
you know it doesn't mean i don't work in a team but i don't want to be in an office environment
i don't want that but i you know as i get older now i think oh you know if i could establish
something that i might take on some youngsters i might build a team but it would be i'd keep it a
small team and it would be a very much a craft-based team it would be like about building
software i would never i don't want to be in a kind of office environment where it's so big that
it ceases to be a workshop a software workshop if that makes sense yeah well if you see these
diagrams of after like five or six people on a team you look at the web of connections it just
becomes like exponential yeah and that is kind of why yeah a three-person team can move faster
than a 10-person team um and that's kind of where good managers come in because it is hard to
organize large teams and you do need them for some projects but it's a big jump from yeah two or three
folks to a full team i think um is it uh fred brooks the mythical man month he uh in there he's
got a um a team structure which is like um a programming team should be structured a bit like
a surgical team so you've got a an experienced surgeon um with perhaps an assistant who is
what you call a senior and then perhaps a couple of juniors with them but also then someone on the
side who's doing tooling and you know that works like the the auxiliary um in a operating theater
who's doing other bits and bobs that i can't remember the exact structure that he outlines
there but it's a way of trying to structure a software team maintaining the that expertise and
when you're talking about somebody who's got 15 20 years of programming experience to to move them
sideways into management is to really lose an opportunity to create something powerful yeah i
think that book he also has the phrase what one engineer can do in one month two can do in two
months um yeah because you've got that communication problem but so this this idea of how you structure
a team is about solving that communication problem right well and that's why places like
like base camp uh famously only have three person teams uh for any new project i mean
they're not standard but i think can learn a lot from how they do things where they have two
developers and one designer for any new project and they work in six week increments so they kind
of they don't you know spend six months or a year on something without revising can we just toss it
yeah no i mean that's that's important because it's this idea that they have of a bet you place
a bet and one thing that you know is a curse of software is a software estimation because you
want to plan this giant you know space shuttles the navigation system size piece of software
you can't plan that in front up front and so their way around getting around that is to do
six-week bets and the worst they've lost is six weeks right and there is that you know the sunk
cost fallacy certainly no one likes to throw out old code um but i think you know so what's the
appeal of being a manager i mean i've been a manager i mean i totally get it in terms of
i think if if you have had bad managers or great managers you sit there and go well what's really
holding back the team if you have a good team a lot of times it's the management it's it's the
goal setting and and it also is a new challenge which if you're five ten years into your career
you know sometimes do you want to just sling straight code you know maybe not um so i think
the difference is when you want that challenge versus you're forced into that challenge um
so it's a it's a hard thing in tech uh i mean there are people who say you should you know
bounce back and forth every two years you know coding managing um i think you know in a large
organization there's much more of a managerial class and that sort of makes sense that probably
has to be but in smaller companies yeah i don't know it's a tension i'm not sure the answer i
mean basically you know there is a nice career path as a programmer in your 20s and then it's
a little bit like choose your own adventure there isn't it's not like careers we're just
yeah as you get i mean as you get older you have to you have to be if you want to stay at the
keyboard if you want to keep developing you have to be um very deliberate about making sure that
you remain competitive you know you've got you've got to imagine yourself going to a company where
you've got a hiring manager who's trying to recruit in tech and you're up against some 20 year old and
they have to be able to see the value in you they have you have to be able to demonstrate that
otherwise they can't hire you right like yeah right and so being pointing to open source
contributions talking about things you've worked on um and again yeah and you know i guess with
concluding thoughts a lot of it is you can't make someone see something they don't see if they don't
value experienced programmers they just don't yeah and yeah and you you can't sell you can't sell
um experienced programmers to the the kind of um for want of a better word sweatshop environment
that a lot of tech companies are.
So you've got to look at that company
and you've got to,
are they even in the market
for something which isn't
the junior developer
who's going to work the long hours
and burn themselves out
and then they'll get a new one.
Some of the very best programmers I know
probably almost exclusively
work a pretty limited number of work hours.
Take that for what it is.
But they found a way to have the discipline
to do 30, 40 hours a week
and that's it.
And they, I mean, David Henry Meyer Hansen,
he wrote Rails 10 hours a week.
He still works 40 less hours a week.
He's fairly productive.
You know, lots of Django people I could point to who also, you know, not just you, but don't
do crazy hours.
And they're massively prolific because as you talk about in the talk, they don't have
distractions.
They don't do this.
They don't do that.
They're focused.
And that's how it is.
But the human body isn't built to do 100 hours a week, every week for months and months.
You can do it a week, but where's the recovery?
Like, you know, even going to a conference, it, you know, it takes a massive load out of you.
So where's the recovery afterwards?
You know, if you, okay, maybe there's a deadline, a drop dead date, where if this software doesn't ship on this date, then this company is going under.
We've got to make a ship.
Okay, maybe, maybe that deserves extra hours, but where's the recovery afterwards?
And what you find in a lot of agency environments or startup environments is it's drop dead deadline, followed by immediately by another one, followed by immediately by another one, until you fall over on the floor.
And the human body just isn't built that way.
They're not all like that, but...
Yeah, no, not all.
There are loads of great companies out there,
but the stereotype is this.
And it's more than the stereotype.
It exists and it's prevalent.
Okay, well, growing old gracefully,
Carlton's talk will lead to it.
Yeah, yeah, no, it was really good.
Well, I enjoyed it.
Yeah, and I guess the last thing is,
I'm aware that this is,
what we're saying is probably in one ear out the other
for maybe folks who haven't experienced this yet,
but there is some truth in it.
So I hope it resonates.
We'll be back to our normal technical podcasts
in the near future.
As ever, we're at DjangoChat.com
and ChatDjango on Twitter.
We'll see you all next week.
Take care. Join us next time.
Bye-bye.