
My Biggest Regret as a Programmer - doppp
http://thecodist.com/article/my-biggest-regret-as-a-programmer
======
didibus
Sounds like the typical success anxiety everyone suffers from today. You could
have been everything, successful, rich, famous, but you chose what you wanted
and that's ok, it's for the best, that's true success, don't run after the
carrot.

Every programmer I meet dream of being CEO, having their own company, making
more money. Yet over 90% of them don't enjoy any of their current profit.

Literally, with my programmer's salary, I can do everything I want in the
world. There's nothing Bill Gates can do I can't, sure, maybe some of the
things when he does them they're bigger, or fancier, but they're the same
things. There's no better film for him to see, there's no better waterfront
for him to sit, there's no better food, etc. I can afford the best of all.

I think we need to stop with the regrets, the illusions, etc. If you ain't
driven to be tech leader, don't force it, just accept you're not and enjoy
life.

~~~
maverick_iceman
Do you own a personal jet or a personal yacht? Bill Gates does (or definitely
can).

~~~
mjmahone17
What experience does that enable that you can't get on a normal airline? The
food is fancier. You fly directly into smaller airports. It's more
comfortable. But you can still get to all those same places without a private
jet. You can go sailing on a relatively small budget. No, you can't own a huge
personal yacht, but owning a yacht is not much of an experience.

~~~
Tempest1981
> owning a yacht is not much of an experience

Who remembers Tom Vu? And his yacht?
[http://youtu.be/c5OOHotxAYk](http://youtu.be/c5OOHotxAYk)

------
ImTalking
For me, software has been nothing more than a tool to get myself the lifestyle
I want. I enjoy the creativity associated with writing solid software of
course but it's not a hobby, it's certainly not a religion for me, it's a
tool, nothing more. I enjoy the creativity associated with developing a
solution that people use and pay me for, but at the end of the day, I am a
business-guy who uses software to get what I want, unlike a lot of programmers
who are techies who happen to be in business. The difference in these two
attitudes are night/day.

I feel the writer is looking at his past as though he was somehow entitled to
succeed since he could develop software when the industry was young, and many
fortunes were made by the industry pioneers. This is a dangerous attitude as
the world really doesn't care about anyone. Anyone is replaceable.

Around 1990, I started a business selling a Clipper-based (anyone remember
that?) real estate program where I sold it to about 300 firms at $299 a pop. I
couldn't believe the leverage and excitement of selling a product of my own
mind to others. Sold yearly upgrades for $199 which worked out to around $60K
annually sitting in my bedroom. Had to pinch myself. Got into telephony when
the deregulation happened, created switching software for dumb switches
(Dialogic, Redcom) for long distance resellers and at one time had 120
exchanges using my software to switch calls. Sold the IP for around $0.5M. 10
years later, created software for the mortgage industry and sold that company
for 7 digits in 2010. Must say that I failed more times than I succeeded but
that doesn't matter (for example, developing Call-Me functionality for web-
sites when the industry was just too young - should have stuck with it).
Last/this year, I'm working on software for the another industry which I feel
is unserviced wrt software.

My reason for writing all this is that I never thought of software as a
career. I saw the businesses that I could create using software as the career.
I think the article writer labelled himself as a programmer early-on and never
really understood what that role meant to him.

~~~
didibus
I agree with you whole heartedly. A lot of programmers are artists. Like
artists, they work not for profit, but expression and self fulfilment through
their craft.

Some people are not artists, they are utilitarians. They create not for
admiring the work, but for fullfilling menial needs, for addressing life's
struggles, and for profiting.

Utilitarians would have created a business even if programming did not exist.
A hundred years ago, they'd be running a milling company, or figuring the best
way to get rails installed, etc.

Some utilitarians are programmers, and simply leverage it as a tool to a mean.

It sounds like the OP was an artist. The problem today, and almost always has
been that artist often don't get socially recognised, paid, etc. So at your
retirement, it's easy to feel like all that beauty you poured your soul in
went unoticed, and didn't change a thing for you.

~~~
tudorw
at least artists in other realms get to enjoy some permanence, very little in
software get's preserved, more so now, but still, I don't expect anyone to be
putting my stuff in a gallery any time soon...

~~~
drewstiff
One could argue that the impermanence makes it even more of an art form as the
work of art only exists for a brief moment in the grand scheme of things, and
so the artist must be one true to the art as they could not be working for the
everlasting glory of fame...

...Or that could be taking the analogy a bit too far.

~~~
studentrob
> Or that could be taking the analogy a bit too far.

No way! Totally agree. ImTalking's story above proves it. He has those stories
for life, and those who knew him or read this will have them too. That is art
and something to be proud of even if it is only a few paragraphs. It says a
lot about what someone felt was important in their life. And if you don't feel
it is important to express your thoughts and desires to others that's fine but
some people do find it useful.

~~~
tudorw
my art is my life is my art is my life...

------
wdr1
> I simply didn’t realize how little room you have to advance as just a
> programmer

I think this is one thing that has changed dramatically (and for the better)
in the last ~10 years.

I started as a developer in the 90s. The only way to advance was to go into
management. I was pretty conflicted, as I was promoted from developer to
manager. Quit, went to be a developer at a new job, and got prompted to
manager again. Quit again & later was promoted to manager again. Did it a
forth time & then have been in management ever since.

I _really_ loved coding, but coming from lower income family, was terrified of
poverty and thus very motivated to climb whatever ladder someone put in front
of me.

I'm an engineering manager today at Google and really happy to see there's now
a world where engineers can excel _without_ having to be a manager.

Over the years, I've had a lot of good career talks with people about if they
wanted to do people management (or at least try it).

A little bit of a tangent, but it's interesting the myriad of ways those
conversations go. Sometimes people who would be clearly great at it, don't
want to try it for less-than-good reasons. (E.g., not feeling worthy, would
the team respect them having been a peer).

Sometimes people who would be terrible at it, _really_ want it for bad reasons
as well. (E.g, manager = power (ha!), manager is the only way to advance or be
respected (not true!).)

Of course, they sometimes want/don't want for very good reasons too. (E.g., "I
like helping people grow" or "I would have to talk to people and I hate that",
respectively.)

~~~
angelbob
Companies know we want it, and have gotten better at talking the talk (e.g.
technical career tracks.) But look into how that actually works. For most
people it's much harder, if it happens at all.

I speak as a guy at the end of the technical track, on my second consecutive
job of "look, you make as much as we'll pay just-a-programmer, even an
architect, here."

Many managers are now convinced things are better. I never talk to anybody
high-up _on_ that track who thinks so. Of course, most companies don't _have_
anybody high up on a technical career ladder, but are convinced it's going to
be fixed any year here.

Fundamentally, as long as it's even 20% easier to get promoted as a manager,
people are going to intentionally pick that track. In practice, it's usually
2x-5x easier to get promoted as a manager.

I don't think that's fixable. At some point, executives have to decide who to
promote. Executives, like the rest of us, prefer people who have skills like
theirs - I bias in favor of programming skills for the same reason.

But executive bias toward their own skills mean people managers get promoted.

I've never worked at Google. But I know a lot of Googlers. I don't think I'm
wrong. Also, there's another comment from a Googler disagreeing with you in
response to this very comment.

It's not a Google-specific problem. But it's a big one.

~~~
carc
_" look, you make as much as we'll pay just-a-programmer, even an architect,
here."_

Sorry but this line is almost always complete BS. Anyone that I know who has
heard this line, gone out and gotten a (much better) offer somewhere else, and
the original company _instantly_ matched. Like, without even having to consult
anyone, their manager said they'd match. You can't trust this line.

~~~
angelbob
I don't trust the line. But I spent months trying to get this much to get _to_
this company.

------
dunkelheit
Ouch, that was a sad post. "Yes, and actually we have two ladders of
advancement here - you can deepen your technical expertise and go up the
technical ladder if that is your thing", an enthusiastic recruiter tells you.
But when you reach the bifurcation point, the management path seems fairly
clear - just try and get more people under you and you will be ok, but the
technical path is murky as hell. I'd argue that this third path (becoming a
genuine world-class expert as opposed to staying "just" a programmer or going
into management) is the hardest. Not in the least part because at most places
real technical challenges are scarce (and management challenges are in
abundance). I would love to hear some thoughts on how to pull it off.

~~~
tfinniga
I imagine that a core skill is the ability to communicate clearly and
prolifically about technical topics to a mix of technical and nontechnical
audiences.

------
okyup
I agree that programming is a dead end job. It's popular and relatively easy.
It doesn't require any special skills. Anyone with an average IQ can learn it.
There's low cost and barrier of entry to getting started. It's fun and
addicting when you're a kid. Then you get trapped and it becomes monotonous.

There's only so good you can get at programming. Beyond that, most of your
time is spent on debugging trivial issues or trying to keep your knowledge of
the overwhelming amount of tools and platforms up-to-date. If you're a really
great programmer you might be able to get 3x as much done as an average
programmer, but you won't be able to get 10x as much done to warrant 10x
higher pay.

Programming is just one step above working on an assembly belt. There's plenty
of competition for your position including from cheap foreign workers from the
3rd world and, since your job can be done remotely, you're even more
expendable.

That technology is a luxury, makes your position nonessential. You will be
worthless if Western civilization ever fails and drops out of the
Technological Age.

When you stare into computers all day you aren't developing social skills or
really any skills that would be applicable to most other jobs. If you don't
want to be a programmer forever, the sooner you stop wasting your time staring
into computers, likely, the better.

If you want to be highly valuable, you need to have skills that are rare and
desirable, that make oodles of money or change the world. Such skills are
usually of a social, political, or otherwise creative nature - things that
can't be learned from a textbook by anyone capable of logical thinking.

Programming is simply grunt work. It's the grunt work of dealing with the
disarray of present day technology. As we advance and become more organized
and cohesive, the need for programmers will be reduced.

~~~
fbonetti
You've described exactly how I feel. I've only be at this game for 4 years and
I'm already looking for a way out. Programming is fun in the way that doing
drugs is fun; it's addicting and provides a quick high, but at the cost of
staring into a computer screen for weeks on end with little to no interaction
with other people aside from meetings (which only exist so that your superiors
can tell you which widget to crank out next).

I consider myself to be very introverted yet programming is still too extreme
on the asocial end. A career in programming will gradually cause your social
skills to atrophy. It's pretty obvious that if you spend 40+ hours a week
talking to a computer that eventually you'll start to feel and act more
robotic than your peers who regularly interact with real people in the real
world.

Working as a programmer doesn't provide real human experiences. Everything
that you do and learn as a programmer is extremely abstract (and usually
convoluted). You won't have interesting stories and wise aphorisms to share
your children and grandchildren, because everything you did was inside a
virtual world.

Everything you build as a developer is extremely temporary. You will work
extremely hard to build something over a period of months or even years, only
for that software to be immediately discarded when the business pivots and
decides to pursue a totally different path. If you work for a startup, you're
hard work will be absolutely worthless if the business goes belly up. If you
decide to contribute to open source software and build the next generation of
frameworks, tools, and languages, prepare for that to work to go out of
fashion within just a couple years. A construction worker can go back to a
building he built 50 years ago and it will still be standing. A doctor or
lawyer with 20+ years experience will be well respected, but as a developer
your experience will be disregarded unless you're an expert in whatever
framework/language is the flavor of the month.

Programming pays well and is a cushy office job. It doesn't provide much else.

EDIT: I fully expect people to reply with the usual "well that's just your
opinion, man!". Yes. I know. This is a personal rant and not a master's
thesis. If you love this career more power to you. I'm just sharing my opinion
because I know other developers feel like I do, and feel trapped in a well
paying but otherwise unfulfilling career.

~~~
cableshaft
The 'everything you build as a developer is extremely temporary' was something
I had to learn over the years. I used to make video games, and I grew up being
able to play my old games no problem, but now nothing is physical, everything
is sandboxed in an app store (or intrinsically glued into a website) and
disappears the instant the company disappears, or moves on to a new project,
unless you work on a major title.

And even if that weren't the problem, there's such a firehose of games getting
released constantly that people no longer value them, and move on to the next
game after barely spending any time with the existing one, unless you
intentionally manipulate their psychology with some free to play garbage.

That's part of the reason why I now feel so drawn to board games, as they at
least still have physical boxes that can last for decades.

------
kazinator
I will always be a programmer, no matter what. My regret is only about not
being richer, that's all.

I don't want another kind of _job_ ; I want a shitload of money, so I can code
whatever I want all day long, until I drop dead at the TTY prompt.

Plus do a ton of cycling, running, guitar playing and such.

Regret over not having tried this job or that seems misplaced to me. If the
job you're missing out on could be done as a hobby, do it as a hobby. If you
think management looks like fun, then you can volunteer in some non-profit or
volunteer organization; you will then have something to manage. If that
doesn't cure the regret over not having tried management, then you have to be
honest with yourself: it's really about the money.

~~~
drblast
I love that last paragraph, and the idea of management-as-a-hobby. That's a
great way to think about it.

You can make plenty of money as a programmer. Plenty, as in, I have enough to
enjoy my job and my family, be relatively independent, and succeed at life.

~~~
kazinator
That's right; many people do something they don't really like (or even
completely hate) for a living.

Even if you don't like the kind of programming you're doing (or perhaps just
the lack of having total control over the requirements), it still has a lot in
common with programming that you do like.

------
pmontra
There are many more jobs as programmer than as CTO/CIO/VP. Furthermore, what
makes you think that you would be as good at politics as you are at coding?
People in management positions are often in competition with each other on a
kill or be killed basis. OK, not that extreme but you get the idea. Politics
is important in that game.

There was also an interesting post on HN a few days ago about the hurdles of
management: [https://medium.com/the-year-of-the-looking-
glass/unintuitive...](https://medium.com/the-year-of-the-looking-
glass/unintuitive-things-i-ve-learned-about-management-f2c42d68604b)

Number one point from that post: "Imagine you spend a full day in back-to-back
1:1s talking to people. Does that sound awful or awesome?" If the answer is
not and "long for the days when you were able to manipulate something directly
— pixels, words, lines of code, bars of music — quietly and with headphones
on", management is not for you and your management career will suffer.

~~~
nunez
If you have 1000 jobs that pay $100/hr each and 100 jobs that pay $1000/hr
each, and you qualify for both (the former more easily than the latter), which
would you rather try for?

~~~
tamana
And there are 999 people competing for a $100/hr job, and 1000 people
competing for a $1000/hr job

------
arturadib
Obviously this is a very personal matter - i.e. if you don't enjoy managing
people and prefer to tinker with, learn, and build things, pursuing a
management career is the worst choice you can make from a happiness
standpoint.

It's also not generally true that managers (even those with fancy titles) are
more financially successful than engineers. By definition, there are far fewer
VP/Director level positions than there are engineer positions, so everything
else equal, as an engineer you have a lot more opportunities to pick and
choose where you want to work, and that can be _very_ financially rewarding.

I personally joined Twitter over a year before its IPO, and the financial
reward there transformed my family's life. I am also incredibly proud of the
products I've built over the years, whereas most work done by Directors/VPs at
smaller companies wouldn't even come close to the reach and visibility of the
work me and my fellow colleagues have done. (Take a look at my resume for
added color:
[http://linkedin.com/in/arturadib](http://linkedin.com/in/arturadib)).

One could easily imagine an opposite article written by someone who was a VP
at several not-so-successful companies and never had anything to show.

Above all, choose what makes you happy. And if you're so fortunate as to have
several equally fulfilling choices, and if financial reward matters to you,
pick a company that is high-growth, hopefully pre-IPO, and negotiate at least
a market-average stock compensation (glassdoor.com is your friend here).

<3, -A.

~~~
allsystemsgo
Even being in California? Salaries I've seen have been not that great
considering the cost of living. If I can get 6 figures in the southern states,
why would I go out to Twitter/FB/Google etc?

~~~
chillacy
I don't know if the parent will reply, but I've heard of twitter giving out
million dollar stock grants to senior engineers _after_ the IPO. I can only
imagine that pre-IPO stocks would have been even more.

------
buro9
My biggest regret is not shipping more.

Sometimes the cause of that is management, and I long to be on that side
defining the missing specs, building out the absent project plans, speaking to
customers, allocating resource, championing it all and pushing it forward. At
those times I despise being a programmer because being a programmer isn't
enough to get product shipped.

Other times (but it feels less frequently) the cause is the programmer. And we
all know well enough how frustrating it can be to watch someone not do what
you think is easy, and how quickly we want to stop managing, stop designing,
stop everything and just code our way out of whatever mess a project is in. A
sole programmer is not usually enough though, and I stray back into wanting to
manage so that we can ship.

Either way, just having that desire to ship, to make a difference, I feel has
kept me in a limbo where I straddle both and am frustrated and hampered by
both, and never quite shining at either.

Still I regret not shipping more, and rush into the areas that I hope will
help product be shipped.

My greatest career joy was running my own company. I know I failed at the
sales and marketing, but we did ship. We shipped a lot, and made a lot of
people happy. A massive achievement in a short amount of time, and a good mix
of both management and programming. A joyful time even though it was hard work
for little pay.

It's a shame positions that really blend these skills seem quite thin on the
ground or that they don't really value those who can move from one to the
other.

~~~
daxfohl
So true. I think a lot of programmers (myself included) fall into the pit of
wanting to perfect their code too much. As you look back on your career, you
realize ten shipped projects with decent code would've been better than three
shipped projects with perfect code. (This is probably true of more than just
programmers and code too).

~~~
wainstead
Seventeen years ago a programmer much senior to me told me: "Don't let the
best be the enemy of the good." It's probably the best programming advice I
ever got, and I should look him up and thank him.

More formally:
[https://en.wikipedia.org/wiki/Perfect_is_the_enemy_of_good](https://en.wikipedia.org/wiki/Perfect_is_the_enemy_of_good)

------
ryandrake
Wow, this was a tough read because it hits very close to home. I'm in the same
boat as the author financially and career-satisfaction-wise. I truly empathize
with the author, and I think people here are being too critical of him. It is
difficult to go through life full of regret of your career choices, full of
bitterness of the bad luck you encountered, and having the good fortune of
others rubbed in your face every day. Commuting two hours past nice
neighborhoods knowing that the only thing that separates you from them is that
they rolled the dice and picked Netscape for a career back in the 90s and you
rolled the dice and picked LayoffTech, and then IncompetentManagmentSoft.

Look on the positive side though. It could be worse. You could have decided to
be a factory worker or a cab driver or someone else whose livelihoods are
being deliberately and systematically hollowed out. People should be grateful
to be in tech no matter how frustrating the lottery-like nature of your career
is.

------
scandox
"I can still feel the regret of not seeking the challenge of just leadership."
He's right. Programmers need to get into leadership, because they have a
chance of knowing what "just leadership" might look like. When non-technical
people lead technical people, the chance of getting into a good flow is less
(though by no means impossible).

The problem is that many technical people are not "people" persons. Part of
that may be personality, some of it is background, but a lot of it is study
and thinking too.

My brother builds huge buildings. He's very proud of them. He often (gently)
gives out about the marketing people and their mad notions and lack of
technical understanding. But, as I point out to him, if they don't sell the
apartments, he doesn't get to build the buildings in the first place.

Ultimately, therefore, if you're going to put your skills into a corporate
enterprise (of any size), you need to accept that it all originates with
selling. "Business is simple", says Alexandre Dumas, "it's other people's
money."

Progammers should either accept that they love playing in the intellectual
sandbox of coding and that the material rewards will be variable. OR they
should seek leadership.

~~~
RodericDay
This is pretty ridiculous.

Lawyers, Bankers, and Doctors get to play in intellectual sandboxes, and they
get paid really handsomely for it, even if they are completely anti-social
people.

The reason we get paid less is that we don't have any of their safeguards:

\- Lawyers aim to become partner. It's very socialist-y this way. The goal
working in a firm is to become an owner of the firm and share in its
successes.

\- Doctors have a guild. They keep their bottom end tight by regulating who
becomes a doctor, keeps them always in demand.

\- Bankers know how much things are worth. That's their business. They know
how much they generate, even if they are far from the point of sale. They also
aren't squeamish about asking how much their co-workers make, and negotiate
aggressively.

Programmers should start realizing that the main reason we make little is that
we undercut each other a lot, and are outright hostile to many tools that
other professions use to safeguard their position.

~~~
drzaiusapelord
Both lawyers and doctors have powerful associations that control and regulate
the labor supply via a certification process. Technology doesn't have this. In
fact, technology has the opposite: a H1B program that brings in more and more
labor supply to keep wages low.

~~~
collyw
People also seem to value experienced Doctors and Lawyers. They just see the
front of a web application, and if it looks OK they assume that it has been
put together well.

------
kdamken
I think this guy may actually just be dumb. Yes, C-Suite positions make more
money, and get to make more decisions. If he wanted to do that, it sounds like
he could have at any time. Of course just being a programmer would earn you
less.

> Being a programmer for nearly 35 years...

> I doubt I will ever be able to really retire.

How do you have a good paying job like being a programmer/the other high level
gigs he mentioned for 35 YEARS and still not have the assets to retire? How do
you manage your money that poorly?

Did you buy a house that was way too big? Some brand new cars you have a nice,
several hundred dollar monthly payment on? Did you not save 30-50% of what was
probably a very fat paycheck?

It's one thing for someone working minimum wage their whole life to not be
able to, but barring some crazy expense like medical bills, people with white
collar jobs don't really have much of an excuse.

~~~
ulkesh
I agree that materialistic thinking and living certainly contributes to lack
of savings/retirement assets. But so does simply having a family, especially
as a single parent or when the spouse doesn't work.

You might say "well, the spouse can go work," but it's rarely that simple
considering the costs of child care and how it may weigh on the spouse's
potential salary. Then factor in if the spouse can even get a higher paying
job to offset said costs. Then add in the trouble with the spouse even
obtaining a job due to not having a bachelor degree.

Everything feeds into everything else. No one situation can easily have the
same resolution as another situation.

I agree that there is no excuse to not trying. But there may be reasons for
not succeeding.

~~~
quaunaut
In America at least, the median salary for a Programmer is more than enough
that with properly managed funds, you can have a spouse who doesn't work and
still live quite well.

Remember- the median income here is $52k. I'm in Boise, ID, one of the
cheapest cost of living areas in America, and our junior developers start
above that.

~~~
wdmeldon
I live in a place with a slightly higher COL and make about that with no
benefits. I also have about 4 years experience. Some people just make shitty
career choices or don't get lucky/unlucky.

~~~
quaunaut
Then keep looking? The market favors the developer right now.

~~~
wdmeldon
Oh I do. But I hear this a lot more than I see it, especially in the Midwest
without a degree.

~~~
quaunaut
You're describing how my career started! Hahahah. Yeah, it can definitely be
difficult, but the jobs are definitely out there.

The easiest ways to find a job you don't hate that pays what it should is
paying attention to the right technologies. Sadly, the percentage of crap jobs
that are using older technologies like PHP, Java, and C# is much higher than
those working with Ruby, JS, or Golang. This isn't to say it's impossible of
course- but it can help narrow things down. So I'd say, try to find a
technology you like most in your spare time, and look in that area.

The second thing, is give remote work a shot. Sites like weworkremotely.com
almost guarantee better conditions, because often the companies hiring are
both better-informed and located somewhere that a 10-20k salary bump is barely
noticeable, and even if it was, they know who butters their bread.

------
thegayngler
Im of the belief that technical people and managers should really be at the
same level financially and otherwise quite honestly. That's really the only
way I can see the whole manager/programmer thing can work out for the benefit
of everyone. When you have non-technical managers or technical-managers who's
skills are out of date making decisions on behalf of the programmers you end
up with a mess. That is often the case. The people who you hired as experts
are the ones the management should be listening to... not necessarily managers
who really only function as a way to grease the communication channels.

I know at a lot of places I've worked managers only function is to keep
programmers out of meetings so they can do the real work. Management is really
a bad title. I think the mgmt structure needs flattening and the current
system pits management against programmers... I think this has to change....as
well as the whole management track vs technical track. The technical people
are what you need to build the products. No amount of managers is going to get
you a product without a programmer to build the products.

Companies are so obsessed with hierarchy that they lose themselves in the
politics of it all. I think companies and people need to embrace the idea that
programmers and communication people are at the same level in terms of
financial benefits and in terms of treatment at a company and that technical
experts should be making decisions not necessarily managers.

~~~
jt2190
Ironically, the only way to fix this is for conscientious programmers to go
into management, where they will have the power to actually change things.

~~~
nunez
The issue though is that many (most?) developers/engineers avoid management
like the plague since it involves having to actually deal with people

~~~
lerpa
Not just dealing with people but it's a waste, why become sometimes at best a
mediocre manager when you are already a decent developer.

------
owenwil
I'm curious what the path is to move from developer into a CTO/VP/Product Lead
type role, for anyone here who has made the jump from nuts and bolts. How did
you go about it? Did it just happen, or did you actively need to push for it?
Would love to hear more from someone experienced, because from where I sit,
it's hard to figure out how to jump that divide.

~~~
sokoloff
Similar to rheesyb. I'll speak mostly towards CTO/VP as I think Product Lead
is fundamentally different path and I have no personal insight to offer there.

Work your way through direct technical leadership positions within
squad/team/mod/whatever structure your company uses. Team lead is generally
easy for technical folks as you can mostly fall back on technical expertise.
Then try a multiple team leadership role, where you start to exercise more
management, social, and coordination muscles. This will probably feel harder,
and if it doesn't, check to ensure that you're actually doing it and not just
leading from a pure technical point of view.

This should also give you exposure to budgeting, more experience
hiring/promoting/coaching/firing and a clue of how much you like it and how
much the employees working for you appreciate your style. If you leave drained
of all energy more than a couple days a month, maybe it's not for you and you
might want to stay at the team/squad or tribe level leadership roles.

Of course, all of this is in the context of "join a growing company, as that's
where opportunities internally are constantly being created." It's much harder
to be hired in from the outside into a leadership role if you've never led.
The path to people leadership involves internal promotions along the way, IME.

------
jareds
If you can't retire comfortably as a programmer where was all your salary
going? I enjoy programming, but also realize I'm limited in how much I will
make. I'm ok with knowing I won't own a 5000 square foot house or buy the
newest laptop every two years because I'm putting money away for retirement.

~~~
iopq
Buying the newest laptop every two years is what like $2000 every two years?
That's only $1000 per year, hardly a dent in a programmer's salary.

~~~
icebraining
That's almost a month's salary for a junior/mid-level programmer in this
corner of Western Europe.

~~~
bryanrasmussen
what corner of Western Europe is that?

~~~
ionised
UK probably.

Developers get paid dick all here.

~~~
icebraining
Same timezone, but better weather :)

~~~
jventura
Portugal! :)

------
markbnj
As a working software developer at age 55 I appreciate some of what the author
is saying. Your salary peaks. Your upward mobility peaks. People who move into
leadership positions quickly pass you in terms of material assets. All true.
When has it ever not been true? There's something else that is true: not
everyone is suited to be a leader, and there are relatively fewer positions
for leaders compared to followers. Ultimately you have try to be happy doing
something to put food on the table. Perhaps if the author was a leader he
would not have passed up those opportunities. Something inside would have
nudged him in that direction, rather than in the safe direction of practicing
what he already knew how to do. Ultimately, the piece just reads like the
regret of a mature person looking backward at the choices he's made. I've made
some I regret as well, and if I can learn from them that's great. But pining
after a re-do is not the path to a happy existence, at least for me.

~~~
cyphar
I don't like the assertion that manager == leader, while developer ==
follower. Some people got into software development for the engineering
aspect, not to deal with bureaucracy. I write software, that's what I enjoy
doing. It's not fair to pretend that developers who don't want to be managers
aren't leaders in their field.

------
amelius
My biggest regret as a programmer: not sitting in correct posture for 30 years
:/

On the bright side: I'm correcting this now, and I really feel like a
different person.

~~~
henrik_w
It didn't take me 30 years, only 15, but I did develop problems - RSI in my
arms. Luckily, it recovered, but it took a lot of effort:
[http://henrikwarne.com/2012/02/18/how-i-beat-
rsi/](http://henrikwarne.com/2012/02/18/how-i-beat-rsi/)

~~~
Chris2048
As a 30yo dev, I started getting pains in my wrist, and numbness on one side
of my hands (the pinky and finger-next-to-it).

I switched to a ball-mouse at work, and no longer get this. I believe the
large amount of time using a mouse had compressed and damaged my nerves
somehow.

I'd recommend the switch for anyone spending hours with a mouse.

~~~
kdamken
Just for your info - that numbeness is your ulnar nerve flaring up. There are
three main nerves in your arms, the radial, median and ulnar. If you start
having those issues again, there may be an issue in your ulnar tunnel, aka
where your funny bone is in your elbow.

Typically, if the issue is worse when your arm is bent, you know it's that.
Just wanted to save you some trouble googling things if it happens to comes
back.

~~~
mahyarm
Do you know of a resource that explains all of the causes of various RSI
symptoms and how to avoid them? Like how did you learn about the ulnar issue?

I've found that there isn't an RSI doctor you can go to easily or look up on
yelp, and when you go to doctors they can be pretty useless in this category.

~~~
kdamken
Oh man, do I feel you on that. Doctors are fairly worthless in my opinion for
these issues. I say this having dealt with various RSI/nerve pain issues for
over 6 years, and tens of thousands of dollars in out of pocket medical bills.
They'll pretty much always be like "just take an Aleve", or "I don't know, do
some physical therapy or wait and see if it gets better. Next patient
please!". Your health and getting better will be on your shoulders.

With that in mind, I'd like to preface all of the following by saying: I am
not a doctor. This information is for educational purposes only, and is not
meant to be a substitute for professional medical advice.

\----------------------------------------------------------------------------------

Here is a long, varied guide on everything I've learned and things that have
helped. Most of my knowledge has come from trial and error, and reading books
and medical papers.

I have had tingling, burning pain throughout my arms and hands for many years.
I also had several bouts of nerve pain in my legs. RSI and nerve pain stuff
seem to go hand in hand. A lot of this advice ties into reducing nerve pain as
well. I've had three surgeries total to move my ulnar nerves out of their
ulnar tunnel so they would stop snapping over the bone and causing me pain.
This wasn't the only cause of my issues though.

A lot of pain in your arms actually originates in your neck/shoulder area.
There is an issue called Thoracic Outlet Syndrome that is suspected to be the
cause of most of this kind of arm/hand pain. Chances are, you have bad
posture.

Things that helped:

\- Using a macbook pro for all computer use. Using a mouse or raised keyboard
is awful for your hands. The trackpad placement with the keyboard, and the
fact you can set the trackpad to register a touch (without pushing down) as a
click are very helpful. Make sure you're not bending your wrists to the left
or right when typing. It's a hard habit to break, and you're probably doing it
now, but ideally you want your hands to be straight in line with your arm.
Wrong -
[https://ehs.okstate.edu/modules/ergo/hand4.gif](https://ehs.okstate.edu/modules/ergo/hand4.gif).
Right -
[https://ehs.okstate.edu/modules/ergo/hand3.gif](https://ehs.okstate.edu/modules/ergo/hand3.gif).
Also, don't raise up your hands when typing or using a mouse, it stresses out
your forearm muscles.

\- No keyboard or mousepad wrist pads, they just constrict the nerve pathways
in your wrists.

\- You want to make sure your posture is good. When working at a desk, you
actually should be sitting back against the seat, with your arms supported by
the arm rests. You shouldn't be sitting straight up 90 degrees, but leaning
back a little, with your back supported against the chair. This picture kind
of shows it - [http://cdn.makeuseof.com/wp-
content/uploads/2013/06/computer...](http://cdn.makeuseof.com/wp-
content/uploads/2013/06/computer-fatigue-posture.png?c52272) \- though I would
say you should be a bit less far back than the 135, maybe like 110.

\- General posture stuff: when walking make sure your hips aren't tilted
forward or backwards, make sure your shoulders are slouched forward, make sure
your head isn't tilted forward (99% chance you do this one and don't even
realize). Make sure your shoes' soles aren't worn down - if you see they look
uneven buy new shoes.

\- TMS (Tension Mytostis Syndrome) - basically is stress and anxiety making
your brain subconsciously cause your body pain. Really helpful with me way
after my surgeries in getting from 3-4 pain level to 0-1. I read this one -
[http://www.amazon.com/gp/product/0446675156/ref=pd_lpo_sbs_d...](http://www.amazon.com/gp/product/0446675156/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687762&pf_rd_s=lpo-
top-
stripe-1&pf_rd_t=201&pf_rd_i=0446557684&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=0S8G5R0MP7K2APHRR0KP).

\- The Trigger point therapy workbook - [http://www.amazon.com/Trigger-Point-
Therapy-Workbook-Self-Tr...](http://www.amazon.com/Trigger-Point-Therapy-
Workbook-Self-Treatment/dp/1572243759). Your muscles get tight and get these
things called trigger points. This causes them to tense up and pull on other
muscles, starting a bad chain reaction causing pain all over. This will teach
you not only how to do trigger point self massage, but how groups of muscles
can affect other parts of the body far away from them. You’ll also want to
pick up a pair of lacrosse balls, they’re super helpful for self massage.

\- OTC pain pills – this I discovered recently – NSAID’s like Aleve work by
reducing inflammation, while Tylenol works more on your Central Nervous System
by increasing your pain threshold so it takes higher levels of pain before you
can feel them. Also way gentler on your stomach than Aleve. Aleve can also
cause some damage to your digestive system, making it harder to absorb…

\- B12 vitamins – a deficiency of b vitamins, especially 12 can cause
neuropathy (nerve pain). This b vitamin combo is really good, has all the best
options for each one inside of it - [http://www.swansonvitamins.com/swanson-
ultra-high-potency-ac...](http://www.swansonvitamins.com/swanson-ultra-high-
potency-activated-b-complex-high-bioavailability-60-veg-
caps?SourceCode=INTL405P&CAWELAID=473653057&catargetid=530002460000110186&cadevice=c&mkwid=6H19Yefd&pcrid=80480687167&gclid=CjwKEAiAgeW2BRDDtKaTne77ghgSJACq2U4bhBIpOX0ZMO3mIYJL5snqor9-XNM6Ghu1q0_RRwRqvhoCsvvw_wcB)

\- Sleep – I find that if I get less than 8 hours of sleep over a period of a
few days my nerves start to light up a bit (not sure how else to describe it).
Sleep is super important, it’s when your body does most of its repairing and
healing.

\- Anti anxiety meds – klonopin, xanax, etc - if you can get prescribed these,
I’ve found them more helpful than painkillers sometimes, they definitely take
the edge off. From what I've read they can be very addictive though, so watch
out for that.

\- Actual nerve pain medicine – I learned about this reading Wolf of Wall
Street. Turned out he had terrible, chronic nerve/back pain that drove him to
do all those drugs. He was at the end of his rope, multiple surgeries and
still a lot of pain. His doctor ends up prescribing him Lamictal, which at the
time was a medicine for seizures, and it’s like a switch was flipped and he
wasn’t in pain anymore. There are better options these days for that though,
Lyrica is a popular, as is Neurontin. They can have some side effects, but
apparently can be very effective (I’ve never tried them myself, was able to
get my pain down to a manageable level for the most part, though I do have
them in my mind as a back up if it gets really bad again) -
[http://www.mayoclinic.org/diseases-conditions/peripheral-
neu...](http://www.mayoclinic.org/diseases-conditions/peripheral-
neuropathy/in-depth/pain-medications/art-20045004)

If you would like to do more research on top of what I described above:

\- If you want to go to a doctor, try a neurologist or a good physical
therapist. Most doctors are infuriatingly ignorant and incompetent when it
comes to these kinds of issues.

\- Read about the nerves in the arm, and thoracic outlet syndrome

Good luck, and try not to lose hope, I know how being in pain every day can
wear someone out. Remember that there’s a good chance you won’t be in pain or
at least it will be manageable at some point in the future, even if that may
be a while out. If you want to ask me any questions, I'd be happy to help.

~~~
mahyarm
Wow thank you! I'm not at that level of pain myself, but I've started to
notice symptoms that started to worry me, one of them being that numbness you
originally described. I want to prevent a disaster before it happens, since my
livelihood depends on it.

~~~
kdamken
No problem, hope it helps!

------
ChicagoDave
I've been a programmer since 1985, so 31 years. In the last 10 years I've been
more in the lead/architect role, but in relation to this article, still just a
programmer. I too am good at delivering, so I make pretty good cake as a
consultant in Chicago.

Even so, it's true you rarely have a voice in changing things. On the plus-
side, you generally don't get involved in office politics as a consultant. On
the minus-side, this leaves you with nearly zero power.

I've gone through cycles of looking for ways out and I found one outlet that
may or may not pan out, but it keeps my skills fresh.

I'm a serial entrepreneur (currently without a success) that works on my own
ideas with my own money working with people I like and respect. My first
start-up was in ed-tech and although every (and I mean everyone) loved my
idea, I couldn't get it off the ground.

My second is a work in progress, I have a partner, and our app should release
this summer. It will be interesting to go through that process.

Even so, I still love coding and being around coders. I was at a design agency
a couple of years ago and a young guy, early twenties, out of the blue said,
"Dude, you're awesome."

I had no idea what he meant and then he added (I'm paraphrasing), "You've been
writing code for 30 years and you still love it. I just started two years ago
and I love it and I've always wondered if I could do it as a career...if I
would still be passionate when I get old. You're living proof that I can.
You're awesome dude."

The OP was kind of talking about money and stability and effecting change, but
there are also responsibilities on that side of things some of us programmers
just aren't cut out for...so I say be passionate programmer and be happy you
have a marketable skill.

Without one or both, the world gets a lot darker.

------
listingboat
Having gone this route - 8 years software engineer enterprise software - 8
years management enterprise software - downturn - back to software engineer
mobile - now back to running an engineering team, there are trade offs.

First, what I realized going back to writing code in my early 40s, after 8
years in management, is how rewarding each day was when I was coding. You
could get to the end of the day, point at what you did, and realize that you
actually accomplished something.

In management, I have rarely felt like that. There is nothing to point to.
It's all soft and mushy. Has anyone yelled at you today? Did any of your team
get pissed at you? No? Ok, maybe you had a good day.

It's not all about the money or the 'career path'. Sometimes it's about
contentment every day.

------
mikx007
The grass is always greener on the other side. I have another story... I
started off as Unix admin, a programmer, about 15 years ago became a technical
manager, director, vp and so on.

Frankly, looking back at it, I wish I never made that choice and stayed
software developer or admin. Trust me, its much more fun.Unfortunately it is a
one way street. Paperwork, schmoozing to get funding for your team and sitting
in various meetings all day, not so much...

~~~
sokoloff
What makes you think it's a one-way street? I fully expect that the early part
of my "retirement" may well look like taking an individual contributor role in
software again.

------
Slix
What does the "non-programmer"'s job look like on a day-to-day basis?

I like coding because there's relatively little time management. It's not
super chaotic except the few instances where there's a deadline. You just have
to think and code, preferably in the zone for as long as possible.

Being a CTO or CEO sounds a lot more painful to manage. Lots of deadlines,
people to manage, people demanding things on time from you.

------
yitchelle
His other post about his view of the downside of being a programmer is also
relevant here..
[http://thecodist.com/article/programming_is_a_dead_end_job](http://thecodist.com/article/programming_is_a_dead_end_job)

------
studentrob
> all I will be until I croak is what I am now

Aw, this is a sad story. I'm sure there are more positive things in life this
guy could look back upon. Starting his own company sounds cool to me and he is
obviously a caring brother.

> So yes I regret not taking that choice and seeing where it would have led
> me, yet I would have missed all the fun of writing code and the soul-
> draining jobs that often come with it where you can’t really fix anything.

I believe there will more often be good jobs than soul-draining ones for
programmers in the future. Tech people will become better leaders and create
better positions for young programmers. Even janitors are sometimes very happy
in their positions. It depends on management and your state of mind.

I have a little bio myself on the subject of being "just a programmer" [1].
Everyone makes mistakes and wonders how life would've been different. The
trick is to not dwell on them. Stay curious, take breaks, read some self help
books, seek out new friends and activities, etc. It's not easy but a little
hard work to get out of some bad habits can feel great.

[1] [http://robhawkins.info/](http://robhawkins.info/)

------
Starsgen
As a programmer, this kind of reads like a sore lottery loser. I as well didnt
score big working at one of these companies, nor did I engage in leadership
roles, but thats the way the ball bounces.

Also, I know programmers making 50k, more than those making over 100k, but I
live in the midwest.

Cant save much, but I can take care of my family and that is what is important
to me.

~~~
ryandrake
The frustrating fact in technology is that your career is pretty much a
lottery. I know people I went to undergrad with who lucked into the right
company and are now independently wealthy. Most of the rest of us are still
slogging away, having worked for a string of non-rocketships. Nobody at that
time (late 90s) knew which company would mean early retirement, and which ones
would go bust. It was a total crap shoot.

Try browsing the "Who's hiring" threads here. If you're looking to join a
start-up, 99% of them are companies you've never heard of. One of them will be
the next Facebook, and if you go work for it, you'll end up set for life--but
there's no way to know and chances are you're going to pick one of the many
who will go bust or just sputter around without making money for a few years.

------
dubmax123
Awesome post. Being in the ditches often allows you to see easy ways to fix
problems. Being a leader makes it hard to see what's going on in the ditches.
There aren't many leaders that listen to the people in the ditches.
Unfortunately, most corporations and people in general don't value leaders who
listen. They value leaders with charisma. They value leaders that project
confidence even if they don't know what the hell they are talking about. It's
up to us as programmers to start taking those leadership opportunities and
take the road less travelled.

------
pcglue
A good friend and I both started out as software engineers. Dunning Kruger or
not, I am a very good software engineer and so is/was he. He also has an
insatiable craving for status and cares immensely about how successful he's
perceived as being by others. I don't, at all. So for the past 20 years, I
stayed a mere developer and strongly resist any attempts to promote me into
management. I will actually start looking for another job if I am promoted
over my ardent objections. I cannot stand being a manager or tech lead of any
kind. I just want to be a programmer despite the popular advice here not to do
so.

My friend has gone from engineer to product manager, marketing manager and in
"business development" now. He has tried to explain to me what the latter two
jobs entail (I understand product manager), but I just do not get what it is
he does all day. He hates his job, but really really gets off on how
successful society says he is (between management title and salary) such that
it seems to compensate for the daily misery.

I am, however, waiting for the day he becomes a CEO and I can be his admin
assistant or some other low-key, lower-stress helper (we are still good
friends). Beyond a good salary, I really don't care about status or title. I
think I would be happier as a janitor if it paid 120K+.

TLDR: Different strokes for different folks.

------
graycat
IMHO, the OP is missing a big, huge point: He is really in the best position.
So, here is what he should do:

Step 1: Create a small business. For this, he should pick a product or service
that can be that of a significant business, e.g., the one he would like to
manage as as technical CEO and where initially he can develop the product or
service mostly just by programming on his own. Then from that product or
service, get revenue.

Step 2: Be the CEO of the business, still just a one person startup except
with as much _outsourced_ as possible -- e.g., rented offices, bookkeeping,
accounting, taxes, benefits, business insurance, legal, colocation or cloud
for the server farm, consultants for specialized technical topics he is not
already good at, etc.

Then as the first hire, hire an office manager later to grow to one of an
administrative assistant, chief of staff, head of HR, or COO. Hire the product
development staff and then the CIO to manage that staff. Hire a CFO, CMO, etc.

Then for this business, be the leader he wished he'd been in the past.

His abilities as a programmer let him do well in Step 1 and also be good at
the technical parts of management in Step 2.

~~~
anonymoose123
Step 3: Profit?

(Seriously, it is easier said than done. Do you know how many small businesses
failed?)

~~~
iolothebard
Depends on how you define success and failure. I've had 7 failed startups (#8
is in the process of failing at the moment). I consider them all failures
because I didn't end up with FU money. Funny thing is startup 6 & 7 really got
me close.

Although, even if I won a billion dollar lottery, I'd still move on to startup
#9. Half the fun is in the building anyway :-)

~~~
anonymoose123
Agree that fun is in building the companies. But how long can you afford keep
doing it (assuming you have family/commitment)? Success is what i call, you
can keep doing what you like, not dependent on money, etc - iow, financial
independence.

BTW, would be interesting to know the geographies of people who comment in
this thread - say SF Bay Area, TX, MA, etc. That really adds new perspective
to this discussion. My 2c.

~~~
iolothebard
I live in Oklahoma currently. I have done 5 of the startups in OK, one in CA
(SF) and one in Texas.

You make choices in life and there are tradeoffs. I don't have kids nor do I
anticipate having any. If they come, so be it. I partially left the Bay Area
because I couldn't see even raising a hypothetical family there. That, the
sticker shock never completely wore off and I never donned my rose colored
glasses either :-)

I can afford to do it until the day I die. I've set myself up rather nicely in
that regard. I'd be retired already if it weren't for my startups & first
marriage. But being retired in your mid 30s sounds boring as well (I'm in my
40s now). However, I waffle on that position, so take it with a grain of salt.

------
nine_k
tl;dr: guy craves status and money, chooses engineering instead of management,
feels unhappy.

Well, yes. If you want status, go into a profession built around status (a
manager, a politician). If you want big money, go become an entrepreneur or
again a manager.

If you're ok with mere six figures of salary, but crave certain other things,
you can consider engineering. (If you can withstand five figures but have even
stronger craving for these certain other things, maybe you're hardened enough
to go to science.)

------
unabst
This piece has nothing to do with programming. The problem is simply with
jobs, and a common career mentality, which goes something like this: "If you
do good work, your career will take care of you. If you weren't taken care of,
then it's the career's fault."

Nothing could be further from the truth.

There are two things that boost careers. The first is the employer. Your
employer determines your success through their success, and so your fate truly
is in their hands as long as you are just doing work that is provided. Hence
successful companies produce successful employees with successful careers. But
to be good at this, you need to be a visionary employee. You must be able to
tell apart the good entrepreneurs from the idiots. You need to become a good
follower, not worker.

The second is overreaching your job's boundaries and overachieving. This is
what catches a lot of people, because it's being non-complacent when that's
all that is being asked of you. It's the ability to demarginalize yourself
because jobs are maginalizing, not people. If you fit a better job, your
career will take you there. Either a good employer will recognize your worth,
or you will recognize the worthlessness of your employer and move on.

I have this extremely strong hunch that we all rise to our potential. And when
I see someone complaining of how little they've accomplished, in more cases
than not, they will make excuses, talk of regrets, and list all the bad luck
and negative circumstances that surrounded their demise. Rarely do I hear them
admit how bad they sucked, or how bad they compromised, or how they let it
happen because they didn't act otherwise.

"I am still just a programmer."

That's you marginalizing yourself. Mark Zuckerberg was just a programmer. But
you become more not by fitting tighter into that cast. You become more by
breaking it. Eventually people will stop calling you just a programmer. And if
that's your employer, you either just got promoted, or fired.

------
asn0
I faced this same decision (for very similar reasons) about 15 years ago, and
decided to go the management track (I'd been a back-seat manager before that
too). I enjoyed helping "underlings" succeed, was well-respected (not always
popular) by those people I managed, had some good mentors, and had some good
success moving up the ladder. I was reluctantly getting used to the fact that
I spent most of my time in meetings, and made no direct contribution to the
bottom line of the company.

After 3 years a programming job came up from a company that was an early
adopter of telecommuting and had (organically) adopted many business concepts
since popularized by 37Signals (i.e. better job by eliminating the crap). The
company I was at was asphyxiating due to 2008 crash, so I took the leap.
Coincidentally I had read 4 Hour Week around that time. I knew it was a
potential "step back", but it seemed like a better way to work (I could be a
programmer, and strongly influence the direction of the company, and have a
much better work-life balance).

Best choice I ever made. I have since changed jobs twice (first company got
bought out by a bigger public company, who ruined the fun with bureaucracy),
but what I look for now is a company that is structured in a way that front-
line technical people (and Support people, and Sales people) can meaningfully
influence the success and direction of the company, and the executive
management spends most of their time with sleeves rolled up, coding or closing
deals, and very little time as overlords. Those companies are out there, more
now than before.

Many people who I have worked with in the past are now in executive positions.
They often try to persuade me to move into management (so far,
unsuccessfully). Some of them make more money than I do (that, fortunately has
also changed in the last 10 years). All of them spend their days doing things
that I would enjoy less than what I get to do, the things I would have been
doing if I'd stayed on the executive track. The pay/asset difference would not
make up for the work and life I enjoy now.

YMMV

~~~
haliax
How do you recognize these types of good companies?

~~~
asn0
The companies are probably small, it'd be rare for a large company to be able
to pull it off. They probably have most people telecommuting (telecommuting
tends to level out executive vs front-line). They necessarily have a higher
mix of "senior" people (people who can manage themselves without much
management).

The executives do things that directly make money (e.g CTO still codes, CEO
still closes deals), even as the company grows (and tend to outsource/offload
things that would normally give them more power, but don't contribute to the
bottom line). Coders probably work directly with Support and Sales staff and
sometimes customers to understand customer problems. On the higher end of
revenue/employee and productivity/employee ratio. Company is probably frugal,
spending money on things that actually make the company successful, not just
look/feel successful.

The company will behave like its small even as it gets bigger. More focused on
getting to profitability without raising more money, than on "higher" rounds
of funding. Will probably live by "something decent that works now is better
than perfect in the future". They will probably be using a boring technology
stack because they can't afforce to waste time proving out newfangled stuff
(that customers usually don't care about anyways, and certainly won't pay
for).

If you think you've found such a company, compare them to the characteristics
in "Getting Real" by 37Signals[1], it captures a lot of things that I've seen
in these companies. If they even get close to hitting 1/2 of those, good
chance it's such a company.

[1] [https://gettingreal.37signals.com/](https://gettingreal.37signals.com/)

------
ThomaszKrueger
While I appreciate the OP's point of view, I have to say that in my experience
once you start making more than you really need your job becomes taking care
of that extra money, and the drive to do what took you there in the first
place diminishes.

One (like myself) must have a sense of need or urgency to feel compelled to do
things such as development. Once the need is gone, so is the will, and I could
argue, the thrill.

------
byw
I keep hearing stories of non-technical managers making elementary mistakes
when it comes to technical decisions.

Many of the things are so widely established, they can be learned by spending
a little time reading a few books, talking to a few people. So I have to
wonder what the obstacles are here.

An aversion to reading? Inflexible management dogma? Distractible lifestyles?
Poor critical thinking in general?

~~~
jzwinck
In many cases a non-technical manager will report to a chain of other managers
who are also non-technical. It should not be surprising that the criteria on
which they are judged do not include technical decision making.

Instead, important metrics may include size of team, number of hires per year,
revenue of business unit, number of customer-reported defects, etc. I worked
at a place where bugs reported internally were not eligible for the highest
levels of severity, because after all no customer had noticed (yet). So
mistakes reported by customers counted against managers, but ones caught by
developers did not, regardless of how much effort was required to fix them.

~~~
humanrebar
> It should not be surprising that the criteria on which they are judged do
> not include technical decision making.

Absolutely. Even individual technical contributors are judged on vague
criteria. I'd argue that 'being liked by your manager' is more important than
being technically excellent.

> So mistakes reported by customers counted against managers, but ones caught
> by developers did not, regardless of how much effort was required to fix
> them.

Exactly. Also, I've never seen technical debt (myopic technical decision-
making) affect evaluation of management.

------
liberatus
So you're an IC suffering under "incompetent management". Yeah sometimes you
just can't work around this, but often times you can learn to sell your ideas
better to those specific people. Maybe they don't jive with your delivery.
Change it.

If you speak the language of revenue, you can rationalize almost anything that
will grow it responsibly.

If the language of revenue and various delivery tactics still don't convince
your management, then it's time to leave.

I too struggle with focusing on the negative sometimes, so I constantly
encourage myself (and the author and others who are feeling similarly) to
redouble efforts to optimistically communicate in the language of revenue.

------
TheAndruu
My office mate (both programmers) put it this way: Your title walks into the
room before you.

In an initial meeting with external customers / partners, the invitees may not
know anything about you or your actual role . They see the titles on other
people on say a meeting invite- "Senior Architect" or "Director of
Engineering" and have much more interest in those guys and ask them the
questions. Despite those guys often being so far removed from the actual
technology they (in our experience) knew nothing and just said "yes" to
everything... or just asked us later.

It's stupid, and it's petty... but it happens, just like this guy tells it.

~~~
20andup
This reminds me of a story when I was a headhunter in 2009 before I became a
programmer. It was that time of the year again and bonuses were being given
out. I talked to a candidate about his bonus for that year and he said he got
promoted instead be the leaders. Then I ask how many got promoted, and he said
the entire team. Finally, I asked, so what difference has his job been since
getting the promotion - None.

------
xiaopingguo
Once you deal with FOMO (the fear of missing out) you are then free to deal
with all the rest of your fears, leading to much higher life satisfaction.

Stoicism, eastern philosophy (esp. ZhuangZi), travel and experience of other
cultures, all help a lot.

------
Jonathanks
Wow! It's great knowing some person have been in the art for so long and have
accomplished so much. I've had a laptop computer for about a year now and I've
not done anything really good with it. It came with Windows and some programs
(Office, Mavis Beacon, a CAD software, etc) installed and I've found my
passion for breaking things increase since then. After learning how to type on
the keyboard (with the Mavis Beacon software), I got annoyed at the OS
pestering me to enter an activation key (it wasn't activated) and I got it
activated. I dealt with little inconveniences, tried to fix things that
weren't broken (just out of curiosity), broke more things in the process
(viruses helped me do this too), crashed my hard disk, got a bad LCD screen,
lost precious files and had some other misfortunes (all in less than one
year). Now I've found myself in a strange relationship with Linux (so addicted
I test distros for fun). I'm thinking of installing Slackware for no valid
reason than 'I just like it'. I tried my hands on web development, read some
books, did a few pages for fun and soon found myself visiting and leaving
languages like a tourist, without knowing anyone well. All in about one year.
I tried taking Harvard's CS50 on edX and I couldn't complete because of
freshman college work and here I am now, back at web design. I seem to have no
skill; just curiosity and impatience. But I'll learn. And for the nostalgia I
feel about the things I've broken, I'll build more.

------
forgottenacc56
The best time to start a project was 20 years ago. The second best time is
now.

~~~
jsnider3
That's the same thing they say about investing in the stock market.

------
ChrisDutrow
> Trying to be both leader and programmer was simply too much.

I learned you cannot lead and do work at the same time while running my
Christmas light installation company. With a team of 4 people, the less I
worked the more got done - by a large margin.

This is because the labor of the other 4 people was leveraged much more
efficiently when I was observing, supervising, and coordinating.

Caveat: You have to do a little of the work, otherwise you won't have the
understanding to make good decisions.

------
andyidsinga
I made a the choice to go into leadership. (note I still avoiding the word
"manager" as that makes me feel like a PHB ..but I'm getting over it).

The epiphany:

A VP I respect a lot was is still a crazy tinkerer with a strong technical
background. He once made an automated dog watering bowl - it was stupid and
brilliant and gained him a special kind of respect among engineers (myself
included). I felt especially good because he asked me for advice on how to
code bits of it[0].

This was the example I needed to realize I can still be a developer and a
leader who writes code - achem - tinkers - for fun, bragging rights etc. I
love telling my engineers that I hacked together some stupid thing (twillio
api irc bot haha) while being careful not to pretend its the kind of pro-work
they do day in and day out.

[0] I'm not sure if he realized it - but that was an act of motivational
leadership. The vp asking his 2-level-down report for some pretty detailed
advice - then coming back to show the results. It may seem obvious to some,
but this was a major epiphany for me, and I've since seen this quality in all
of my favorite bosses & mentors.

~~~
patkai
Zuckerberg just did something similar, with his home AI project.

------
kluck
Management has always politics involved. And politics get ugly fast, strange
personalities fighting over small stuff with minimal importance.

Now exchange "Management" in the first sentence with "Programming in a team"
;)

~~~
djipko
Right, but as the article points out - you get compensated (10x) better for it
in the management track. There are outliers of course, but they are just that
- outliers.

~~~
Chyzwar
It is biased. Middle management makes usually less that senior programmers.
His perspective is biased, he compare senior developer to VP/CTO roles. It way
more difficult to become someone high in management structure. Since manager
ratio is 5-10 to one manager, and high level manager is for every 50-100
employees you need to very lucky, in right place and time.

------
g8oz
Mastery, Autonomy and Purpose is what we all want. Bad leaders are getting in
the way of his Autonomy so he feels like he lost his Purpose. Hence the
longing for an objective metric like money. It's a poor substitute.

------
yes_or_gnome
Just a quick comment for content creators. On your personal websites, please
make yourself prevalent. Most of the time, I like to get to know the author
before reading their blog post. Having that background helps to frame the
article(post), so I don't have to jump to conclusions about your experience.

In this case, I only have the author's name because of the copyright line at
the end of the page. There are quite a few entries in the archive posts, but
quickly skimming through them, I don't see an obvious introduction post. The
first few posts look well written, but jump right into the subject; again,
without giving any background on the author. And, it appears that the articles
are out of order (possibly because the earliest articles have been updated).

Google search brings up a few people with the author's name. Researching an
author, without a wikipedia article or some other published article, feels
more like stalking.

In conclusion, please have an 'about' section. It doesn't have to be your
entire CV, but, please, give some basic info about yourself.

------
shade23
I would have this dilemma too.The choice of whether to take up a Technical
Management role to remain in coding is something every hacker will face.I say
hacker because I consider a hacker different coder on the basis that a hacker
loves what he is doing.What you need to realise is that context matters a lot:
For example,from the OP's link "When I pointed this out the manager said [...]
Eventually I gave up and left. This change could be brought about without
being a VP/CTO too.It would involve taking up more responsibility than what
your current job description dictates.If you as an employer care enough to
bring about change and be considered responsible for such changes ,then you
will be able to bring about the change you wanted. The OP also says "(I knew
several people) but they were afraid to make any changes".This shows that
those people were not ready to take up the responsibility for the matters
discussed.I feel that the difference between a programmer and the rest of the
professions that the OP mentions is the difference between "People Management"
and "Code Management".Something which commonly intersects in the role of a
"Technical Lead".

Also keep in mind that it commonly happens that one of the first few
programmers become a CTO? .That is not only because of the requirement of such
a position but also a genuine care for the product which leads to him
shouldering responsibility for the same.

So now if you were doing this responsibility shouldering and people management
for 10 years,you cannot expect yourself to up-to-date and be tech savvy
forever. Some people move to that position to also ensure relevancy. -It is
much harder to remain relevant as a programmer in comparison to being in a
managerial position.

TLDR;It all depends on how much you like to code in comparison to see through
a finished product which sells.Both are symbiotic fields which need
specialists in each area.

------
jkot
I think the right path is to be both a manager and a programmer. Starting
business is getting easier and one person can manage both.

~~~
mtberatwork
Starting a business is fairly easy, especially one that is service-based with
low initial capital requirements. Maintaining a business for the long term is
an entirely different beast.

------
nunez
This post resonated with me. I've realized that, more often than not,
technical individual contributors have very very little influence over the
general direction of a product, let alone a business, and have a very well-
understood (and, in my opinion, low) salary cap. Job hopping helps with
ensuring that your compensation doesn't stray too far off from market rate,
but this only brings you closer to the proverbial glass ceiling. I've also
worked in organizations with technical management that were barely technical
and happened to get into those positions for other reasons, yet they somehow
made more in bonuses and raw salary than ICs.

These two things have made me want to focus on getting into management as soon
as possible. (I'm 28.) I might hate the additional responsibility, or I might
not, but I feel like going this direction will give me some more upside than I
currently have now.

~~~
ryandrake
That's one of the reasons I got out of programming, was the salary ceiling.
Sure, your first job hop as a programmer will probably get you a 20% or so
increase! That gets your hopes up. Then your next one will be only 10% or so,
and by the time you're 20 years into your career, you're barely getting any
pay raises by changing company.

And if you think that changes by just being a different kind of individual
contributor, you're probably wrong. You will still hit a salary cap even if
you go into project management or product management--often at a lower $$$
figure than as a programmer. Maybe that changes when you get into people
management--I don't know.

If you want to break through that ceiling, you need to have a position that
includes a path to significant ownership. That's why bankers and lawyers have
a path to becoming partners in the firm, and doctors have a path to private
practice. A handful of worthless stock options at a startup doesn't count.

~~~
carc
Anecdotal, but I am not exagerrating when I say about a quarter of the
developers I'm friends with (i.e. hang out with outside of work) make
substantially more than a new partner at a big firm.

Source: They discussed their negotiations with me so I know their
compensation, and I used to work as a CPA at one of the big 4

~~~
nunez
Given that total partner compensation is usually $1MM/year+ (on the low-end),
those developer are HUUUUUUUUUUUUUUUUUGE outliers (or are mostly comp'ed in
stock options, and we know how that goes)

~~~
carc
At the big 4 firm I was at, I can say positively that total partner
compensation did not start out anywhere close to 1 million/year

~~~
nunez
Oh, wow. I thought it did. My bad!

------
grif-fin
Don't we just love these such discussions and don't such fork roads in life go
back to the core philosophy of an individual's values of her or his life.

I know friends who have always loved programming and will continue till last
breath living happily in their world of programming (which is huge these
days).

I also know dear friends who have got the most advanced degree's irrelevant to
computer science and yet are dreaming to be a programmer.

All said, what can one conclude from Mr Andrew Wulf's judgement of his life?
I'm thinking about the answer as I'm writing this... hmm what does this tell
me... perhaps not much else that there exist another person who regret his
past decision, true or false, the chances are that it is applicable to anyone
including me is as much as how much Mr Andrew Wulf's complexity of life and
his state of mind are similar to others reading it.

~~~
existencebox
I can only speak for myself, but I found it instructive. There is significant
complexity to ones life experience, but I found myself echoing many of his
statements and situations, and find myself at a similar crossroads (IC vs
Manager).

The fact that our long term desire (to impact positive change) is aligned, and
he found himself unable to accomplish that to a sufficient degree as an IC,
certainly weights my so-to-say bayesian prior in this decision.

~~~
grif-fin
I am indeed in the same situation as you and him. But I struggle to conclude
anything valuable from his story. Should I get encourage to go for management
because another person who maybe different side of the coin compare to me has
regretted it in his senior age?

Just curious, how did his story change your view on making decision for your
fork road?

~~~
existencebox
For me, the combination of the experiences of the people I've met/heard from
firsthand which I feel enough subjective similarity to does provide a
contributing weight to my decision making process, alongside a really shifting
number of personal judgments and extrapolations. In this instance, this has
made me more willing to seek out/accept a management position to see if I can
address similar feelings of powerlessness that he expressed.

(To respond to the child since the respond window isn't up yet and I'm about
to go heads down on some stuff, it certainly is a matter of "this is a push",
that's what I mean when I say I weight it alongside other things, it tipped
the balance meaningfully. As to why I give it this weight, it's another
entirely subjective judgement that as I said earlier enough statements he
makes echoing with me)

~~~
grif-fin
A lot is exactly same for me as you described, but my point is that, what
factor(s) makes you to exclude Mr Andrew Wulf's personality, sets of skill and
life complexity's difference to you from the equation that you ended up
concluding more towards his point (going towards management)?

Could it be the fact that you were already thinking of doing such move and
this story was just a push?

P.S let's see what reddit guys say about this:
[https://www.reddit.com/r/programming/comments/4dle5m/the_cod...](https://www.reddit.com/r/programming/comments/4dle5m/the_codist_my_biggest_regret_as_a_programmer/)

------
davidhyde
This post makes me sad. Where we should be encouraging others to join this
field, this does the opposite. These are the golden years of computing where
we mere humans can still make worthy software (before AI writes our software
for us). I find it to be a privilege to work in this industry and actually be
paid for what I do. Yes I consider writing software to be a form of art and I
pity others who don't have the same job as us. I think that the author's
career path has more to do with is adversity to risk than the decision not to
go into senior management. Leaving apple when it was shaky, leaving startups
when there were problems. If I was lucky enough to work for a startup or any
business that had a sound business model but was suffering from managerial
incompetence I would leave and compete.

------
gtirloni
While I agree that it might be harder for full-time developers to have a lot
of material assets (but still make a decent living), that simply is not the
case when it comes to impact: just check all the open source projects that are
integral to everyone's life these days.

~~~
pavlov
Not everyone wants to contribute to open source projects. I can see two
reasons:

1) Major open source projects are usually sponsored by a corporate parent that
employs full-time programmers on the projects. The company steers the project.
Independent contributors tend to be young people trying to fill up their
GitHub profile because a blog told them that's how you do a résumé these days.

2) Small open source projects are often dominated by young people trying to
fill up their GitHub profile because a blog told them that's how you do a
résumé these days. Experienced programmers may not want to get involved in
that.

~~~
gtirloni
Start your own project.

~~~
fsloth
If the goal is to gain leverage on the day job and financial security,
statistically speaking that is a poor advice.

If the goal is to learn about public projects and write something one needs
and feels important, then, sure, that's awesome.

------
frostymarvelous
My biggest regret as a programmer is having to work for businesses who neither
value nor understand the software development process. Who simply aim to milk,
milk, milk and milk some more till you ate burnt out and sapped.

Programming itself, I will never give up on.

------
alexc05
Ohhh... man. This is a bit tough to read.

After 20 years in programming I've recently started looking into going back
for a CS degree (masters or undergrad). But this guy makes me wonder if I
should reconsider the MBA option.

~~~
debacle
If you've been programming for 20 years, unless you're hoping to work in IC or
processors, CS isn't really going to help you all that much.

------
Zelmor
He would have been unhappy with the other choice as well, because then it is
the programming side he would be missing out on. I would advise everyone to
read The Road Not Taken by Robert Frost.

[http://www.poetryfoundation.org/poem/173536](http://www.poetryfoundation.org/poem/173536)

You chose one option out of many, and the others may no longer be a
possibility. However, the writer's unhappiness does not spawn from his
inability to be successful at what he does, but what the never-manifest
possibility of what could have been. Maybe he would have been terrible at that
kind of work. That doesn't matter, because in his head, he had the skills but
made a bad decision. Instead of looking at what he has achieved in his life
and career as a programmer, he is pondering what could have been in a reality
that is not, never was and never will be.

This kind of thinking leads one astray.

>My sister started as a programmer 30 years ago but jumped into management
[...] My sister has 10X the assets I have.

I just have to say this: So typically american.

~~~
dcw303
I'm still coding after almost 20 years in the job, and have no intention of
stopping. I tried some other options - teacher, artist, entrepreneur. None of
them give me the thrill that I get from programming. I still get locked into a
flow where time shifts, and before I know it hours have passed.

The only other activity that does that is Civ, and no-one is going to pay me
to play that ;)

If 10x assets is what drives you, more power to you. For me, being happy
_right now_ is more important that any imagined future happiness that a fat
bank account could provide. And let's be honest, you can still make a pretty
decent salary as a developer.

You might be dead tomorrow; you might as well enjoy today.

~~~
andyjohnson0
I'm in my late forties and have been a professional developer for 25+ years. I
agree with what you said in your comment, but this stood out:

 _" You might be dead tomorrow; you might as well enjoy today."_

This is not a bad way to live, but as I get older I am increasingly aware that
there _will_ be a day when I'm dead tomorrow. And for that reason I'm
increasingly less interested in spending time in the state where "time shifts,
and before I know it hours have passed." Instead I want to fill those hours
with real-time _concious_ , _experienced_ enjoyment. Because I can't live them
again.

Being in the zone and cranking out great code still feels good, but only at
the time. Which I guess makes me conflicted or something.

Thank you for making me think about this.

~~~
drumdance
I'm about the same age as you. The passage of time is shockingly fast unless I
do things to slow it down.

I remember moments from my college days that I can pinpoint to the year they
happened. That thing that happened sophomore year? I know it happened
sophomore year because I did it with my roommate at the time.

But nowadays I'll watch a movie on Netflix thinking it came out just in the
past year or two, only to discover it came out in, say, 2007 or worse 1997.

A close friend of mine's daughter just turned 16. I remember her birth like it
was yesterday. But the intervening years... not so much.

I think having kids, which I have not done, might slow time down a bit. Travel
helps too.

~~~
powvans
> I think having kids, which I have not done, might slow time down a bit.

It's a paradox best expressed by the old adage: the days are long, but the
years are short.

~~~
feiss
I agree with that. My days are dense, long, tiring and slow, but I can't
believe a full year has passed already.

Before having my daughter, days were fast, weeks were faster, and years
slipped through my fingers. Time goes faster when you daily routine is always
more less the same, and that is more difficult with a child.

------
FrankyHollywood
This is very personal. I couldn't sit with the suits talking high level about
the future company directions, new improvement and efficiency processes bla
bla.

My first job was at a crapy webshop with all juniors. Worst code I've ever
seen (except offshore code). Last years I have had projects with developers
all >10yrs experience. It is very rewarding!

I like programming, I like technical discussions, and I like to tell
management they are wrong (which they very often are). You can have a lot of
impact being someone who actually knows what he talks about.

------
imtringued
Your biggest regret should be including pointless google translate and twitter
integration to a perfectly good website that would otherwise load within less
than 500ms instead of two seconds.

------
GeoffreySteven
I've been both the programmer and the entrepreneur. With multiple exits, I've
been choosing my projects for years.

Software is more deterministic that humans. When businesses fail, it usually
comes down to the other business partners/clients making and enforcing the
wrong call - often in unpredictable ways. If you have to choose, manage the
software, control the company.

IMHO, it _always_ works out better for yourself when you own & control
everything. If you have partners, have the veto.

Make and keep the gold I say :)

------
lifeisstillgood
I started coding $LONGYEARS ago, and then took the management path cause I
wanted to y'know, get paid. After five years as a CTO I finally realised I was
coding maybe once or twice a week and gave it up, went contracting and while I
know "leadership" basically is needed if you are going to have more effect
than just your efforts, I only want to do that now for my own product company
- not someone else's.

So contracting till I finally make the full time leap.

In short: you can go back.

------
mrzool
So, TLDR: "my biggest regret as a programmer: having been a programmer"

------
GBond
This is a depressing OP and comments section but it is not all doom and gloom.
The tech industry is slowly getting better at reward/valuing/promoting the
individual contributor. Keep in mind corporations are, by nature, hierarchal
so higher up the chain = higher pay & more respect is the natural thing to do.
A trend of the larger tech companies have been emphasizing individual
contributor roles within org particular in innovation and strategic roles.
They often have different name (Distinguished Engineer, Engineer Fellow, CTO
office, Innovation Office, Program Manager). I would seek out out companies
that have such a program if your desire is to stay technical and an IC while
still being promoted. Next to zero chance getting this at a super small
startup or non-tech.

If your goal is to be a technical manager/CTO, the Product Manager role is a
good path. For me, I transitioned to a Sales role (Sales Engineer), which is
another route to the CTO path.

------
d--b
> I could have been almost anything

Also, he could have tried it and lost it all. You can regret not trying, but
you can't regret not winning!!

------
ErikAugust
A great read for this author would be "Don't Call Yourself a Programmer" by
patio11:

[http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-
pro...](http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

------
kafkaesq
_Over the years I’ve seen how little ability you have as a programmer, no
matter how good you are, at making a difference or changing things that are
broken. I simply didn’t realize how little room you have to advance as just a
programmer (or even architect or the like); the power to change exists at a
level not available to you as a mere delivery device._

Not only will you not have the ability to change much (either about your
environment, or in what direction your company takes as a whole) -- you'll
frequently find your fate decided by people who have even less general
business knowledge than you do, and little or no experience actually managing
people.

------
jsogbein
If only life was so linear and predictable You could have remained at Apple
and Steve Jobs would have never returned and several other possibilities and
cumulative possibilities based on the combinations of all those other
possibilities.

------
arvinsim
I have been working as a programmer for 8 years. I agree with him. It is
exciting to learn new things and implement elegant code but if the bottomline
is money, my experience is that you have to get into leadership roles.

------
jaza
I'm a programmer in my 30s. I've always said (only half-jokingly) that my
career goal is to avoid management for as long as possible.

I decided to be an IT professional because I like spending most of my working
day programming. If I wanted to spend most of my day talking, meeting,
leading, and selling, I could have gone into politics. Or, if I really wanted
to make truckloads of money, I could have become an investment banker.

I really don't picture myself ever feeling the regret that the author talks
about. The more time spent coding stuff, and the less time spent doing
management, the better.

------
dayre
I made a similar choice, now at 45 years, have not been unhappy at all. My
last few jobs i've actually removed experience from my resume, and applied for
jobs that pay less than what my experience could demand (i don't NEED six
figures) and it's worked out very well. I still enjoy programming and working
with new technology, less responsibility, more time for the things i enjoy
working on.
[https://www.youtube.com/watch?v=NjvazX03EOU](https://www.youtube.com/watch?v=NjvazX03EOU)

------
davidw
> The CIO at the same place never believed anything his employees told him but
> believed everything vendors told him. Of course we knew he was taking
> kickbacks as we kept buying things we had no use for and he kept writing
> articles for them relating how wonderful their products were for us. Yet we
> used almost none of it. Some time after I left he was fired and perp-walked
> out of the company yet immediately got another similar CIO position.

That is galling, but it seems to happen with some frequency. I can't quite
figure it out to be honest.

~~~
sputknick
Follow the money. The companies he buys products from have a vested interest
in him getting a new job, so they start telling all their customers "Bill is a
great CIO, he just left his current spot and is looking for a new job, you
should definitely hire him as your CIO". And the cycle repeats. Also the
people above the CIO will have a vested interest in covering up his
transgressions, because it would reflect poorly on them. It's good work if you
don't have a conscience.

------
noam87
My biggest regret as a programmer: starting when I was 25 instead of 15.

------
bawana
He wrote the same stuff two yrs ago (look at his blog entries). That he now
gets to the first page of HN shows how many more people resonate with his
feelings. More evidence that capitalism neglects humanity. Though it is so far
the best model for quantifying human interaction, the code of capitalism needs
to be revised to adjust the quantities transacted. Long term value needs to be
added into the calculation of price. Perhaps deep learning and big data (big
learning?) can provide these adjustments.

------
fatagun
My biggest regret is, I could have been a lawyer or doctor easily but i
choosed to be a "programmer". I worked at New York(appnexus) and SF (yahoo,
ebay). Now I work as Director of Software development for a very large org.

Programming is hard. really hard. I hope we can all agree on this. It is not
easy to develop proper software. There are always changes along the way, hence
we choose to be "agile". But still there is always something missing. I guess
this is the nature of it.

------
pmarreck
I remember DeltaGraph!

I'm also at the same crossroads- 44, have some money, want to push FP and TDD
and the languages Elixir/Erlang more, maybe just do it by starting a new
company? Encountering too much current trying to push for it in existing orgs
as a "mere" programmer. Figure if I think I'm on to something, I should just
start a development consultancy or programming shop specializing in the things
I think will matter down the road, _now._

------
akman
Interesting to see similarities between this and Camille Fournier's post on
the same topic 11/2015: [http://www.camilletalk.com/whilefalse/2015/11/truth-
and-cons...](http://www.camilletalk.com/whilefalse/2015/11/truth-and-
consequences-of-technical.html)

The common message is you often have less influence if you don't go the
management track.

------
Nemant
What is more depressing than OP is the HN crowd agreeing or saying how
"programming is a dead job" and "it's easy" (see @okyup's comment).

These are what you call script kiddies who create CRUD apps and pretty UIs.
I'll probably get downvoted by the hoards of script kiddies. I mean c'mon,
these are the same kids ranting about how their world coming to an end with
the whole left-pad fiasco.

------
yason
They say that making money is easy but only so if it is the only thing in your
life.

If you are willing and able to make tradeoffs that help you to focus on what
is financially lucrative, then it's probably easy to find the highest paying
path available. Factor in the rest of what's in your life and what you want to
do; not so easy and usually it is "the money, and..." that people want.

------
advertising
Hindsight. Could have become VP or stayed with apple and gotten hit by a bus
the next year. So many paths that could have played out as a lowly
"programmer" and this person is just looking at his/her sister as if it's as
simple as option A or option B and if only he/she picked the other. That's not
life. I'm not down with this post.

------
jarsin
Meh most people in management suffer from imposter syndrome either consciously
or unconsciously.

Management is meeting + politics aka waste of time + drama.

Dev for life!

~~~
collyw
It gets frustrating when you have to work for basically junior level
developers who have managed to get a management position, and they think they
can code.

"Just do it this way"

The word 'just' always signaled that it hadn't been thought through.

------
bantic
I worked at a company that hired a developer who was slightly consumed by his
regret at being an early employee and then getting out of Groupon pre-IPO.
We'd be at a bar and the conversation would die down and he'd look sort of
glum and say, "I should be on a yacht right now...". I felt bad for him.

------
npsimons
Two things:

Not everyone can be a manager, or move up the management chain; even if you're
good, there's not that much room, and you might not be able to cut it. Not
saying don't try, but there are more programmer jobs than management jobs.

> being a programmer means you have to be happy with the opportunity to build
> cool things.

I can live with that.

------
thegayngler
Management types are simply pimping someone else's talent. In reality they
should only get a small financial cut from doing that rather than the
oversized influence and share of the decision making they do get from doing
such things....that's how the entertainment industry handles "management".

------
goodgoblin
The limiting factor in whether someone becomes a manager or stays a coder is
that there aren't very many manager roles available relative to programmer
positions. Almost perversely because these roles are scarce, they pay more,
but are managers really harder to find than programmers?

------
nvusuvu
So is there a way to do both? I've gone down the manager trail for the last 7
years, but I'm not sure I want to do it anymore. But after 7 years, I feel
like I am behind all the engineers that have that many years of technical
experience under their belt.

------
edwcar13
After reading this I get the understanding that in my life if I am to start a
company and being a programmer that I will inevitably have to let go of being
a programmer and focus on being solely a leader. This never is a thought that
I never even fathomed.

------
jcoffland
I've always had the fear that I would be forced into management and wouldn't
get to program anymore. This is a much scarier prospect to me. It seems a lot
of programmers are eventually pushed into management roles.

------
JimboOmega
Is there any good advice on how to set yourself on the path to being a
manager? Not merely how to manage well (I've read plenty of those), but on how
to get yourself in a position where you do manage.

------
DrNuke
Not only programming: all salaried jobs end in tears if the employee realises
there is more than a paycheck in life but, that said, he/she can't afford to
try and startup as an entrepreneur.

~~~
drzaiusapelord
I think about this often. Chasing a big salaried job is like being the tallest
midget. I think if you want to really play the big money/status game then
entrepreneurship is going to be the bigger prize. Getting an MBA is the risk-
averse option and probably won't get you that big salary you're dreaming of.
There are just too many externalities here. His cites his sister, but was she
promoted often to get up gender quotas, that he as a man, would not qualify
for? Is she better connected than him? More attractive? Better natural social
and empathic skills? How much did just luck play in her success?

I think you probably have a better chance of starting a successful business
than fight your way to a C-level job.

------
PaulRobinson
I've made a similar decision in the last 12 months and I disagree with almost
every bit of logic deployed in this article.

This time last year I was a CTO of a 10-20 headcount firm which was turning
over about $10m/year in revenue.

A few years before that I helped build a company from me and the CEO and got
it to about 20 headcount and a $15m pre-money valuation.

I am now a senior developer/tech lead in a 150+ headcount firm. There are two
layers of management above me to CTO.

Why? It's quite simple. I wasn't happy in my role, because like the author I
felt stressed and I wasn't doing anything particularly effectively.

So I sat down one Sunday morning and feeling the dread of Monday morning
coming closer I wrote down a list of things that happened on bad days hoping
to identify things I could eradicate, and a list of things that happened on
good days with the view to do more of that.

It doesn't matter what was on the list of bad things, the list of good things
was quite short: get to work on code/infrastructure; solve problems in a
hands-on way; work in a great team as a peer, not as a manager.

It's a joke of mine that in very small startups CTOs have to write code, and
in much larger startups CTOs don't have time to write code, but in 10-20
headcount size startups the CTO has to write code but doesn't have time to.

That meant in my previous roles I was still quite hands-on. Other CTOs I met
told me I was not a "proper" CTO. One was amazed I knew how to code. Fuck 'em.
I started as a dev, enjoyed being a dev, I would dive into dev when I could.

In the end, I realised I _enjoyed_ coding. It wasn't the easiest thing in my
job, it was the most satisfying.

So I quit, and put out a developer resume. Everybody told me I couldn't go
back. I disagreed. I took a substantial pay cut to work somewhere else, and
immediately within a week felt happier.

I realised that I could have empathy with tech management and use my own
experience to talk in their language to influence decisions, but ultimately I
wanted to write code as much as possible.

I'm fortunate that I work in a firm where engineers are given a fair amount of
autonomy over tech decisions, taking input from product owners on priorities
from the business. We have a voice, we have influence, we can change things.
That means the traps are not as deep, the despair is not as entrenched.

Sure, things fuck up. Sure, we disagree sometimes. But that happened when I
was CTO as well. There were huge arguments with CEOs at times. There were
disagreements with VCs about tech strategy. There was crap bubbling up all the
time that got on my scope. The fact I was the guy making the final call on
this stuff didn't mean suddenly everything was fine because I was good, it
meant my stress levels increased because the cost of getting it wrong was a
couple of dozen families not being able to pay the mortgage next month.

That doesn't mean if you want to CTO, you can't. You can and you should, if
that's what you want.

What I would argue is that you have to optimise for energy and happiness. Get
energy and happiness right, you can do anything else you want. It all starts
with those two.

You shouldn't choose the "easy" option, you should choose the option where you
get to look forward to Monday morning, the option where you go home and feel
satisfied with the contribution you made that day. For some, that's writing
code. For some, that's automating CD pipelines. For some, that's figuring out
how to save the company $x/year by moving services around from one vendor to
another.

I expect I'll go back to smaller startups one day. I like the idea of trying
to be an indie dev or getting paid to work on open source on my own terms to
some extent, but right now I'm happy having the stability of where I am, and I
get to write code, and I work with great people.

------
djtriptych
Man this is great. And very true. There are almost no programmers good enough
to write their own rules at a large company.

------
WalterBright
The article would be the same if the author was an engineer, or an accountant,
a scientist, lawyer, etc.

------
meric
I'm into my third year working full time programming. Thanks for the heads up.
Will retire sooner.

------
educar
I really enjoyed this honest article. The zen is programming is a tool and not
a goal itself.

------
Xeoncross
You can avoid waking up at the end of your path if you keep an eye on road
while traveling.

------
win_ini
As a Product Manager - my biggest regret was not learning to code.

------
known
Programmers should compete with other programmers, not managers;

------
ArkyBeagle
IOW: The best time to plant a tree is 20 years ago.

------
dataker
Not sure if still holds true nowadays.

It's becoming harder and harder to move from programmer -> VP/CTO/CIO/CPO.

X years of experience? Nice, but did you go to HBS?

------
tanker
Author is not Scott Adams.

I double checked.

------
humbleMouse
35 years of programming and not enough money to retire? Should have saved more
money...

------
eggman
I regret sitting down.

------
kingofhawks
Can not agree more.

------
msimpson
Money != Success

------
askyourmother
Regrets as a programmer: 1\. Every piece of unpolished, unfinished code that
management decided should ship to the customers regardless 2\. Ever using node
and npm. 3\. Seeing and living through the train wreck of J2EE and the XML
horrors that ensued. 4\. Not seeing the beauty in simple functions early on.
Not everything needs to be a class or module. 5\. Most business problems are
political/social - regret every time we were called in to try and provide a
"technical" band aid to those same problems. 6\. Again, any project with node
and npm.

~~~
eru
> 5\. Most business problems are political/social - regret every time we were
> called in to try and provide a "technical" band aid to those same problems.

Why? Social and political problems are really hard to solve. If you can use
technology to sidestep them, that's exactly the right way to do it.

~~~
VLM
OP must be very young. In corporate environments there is no sidestepping.

Say there's 20 pounds of work for 10 pounds of (recently downsized) people
across multiple departments. The way you'd like to see technology work is turn
20 pound of work into 10 or less pounds of work for the entire company. The
way technology is actually used in the real corporate world is your boss has
you automate procedures and policies such that you push work out of your
department and onto even more overloaded competing departments. That's how the
strongest competitors are determined for promotion and bonus.

To some extent its a startup vs old company problem. Trust me, if technology
could be applied to solve the whole company wide problem, grandpa would have
already done it with punchcards decades ago, the only innovation that happens
in old companies is pushing work and blame onto other departments. Hey, I have
a number that proves we're now better, and that's all that matters.

The other way it works is as a weapon / scapegoat. They don't wanna work with
us and I don't want to force them, or can't make them. But I can tell my
programmer to change the bounds checking on that input field and they'll be
forced to cooperate or shut down. If it works and they cooperate with us, I'll
take the credit, if it fails, I'll blame and fire the programmer. Or if you
don't want them to work with us (as in dump work on us) the programmer can
sabotage their system, and again you can guess the different pathways for
reward and punishment.

~~~
eru
Oh, I've worked in big companies. I was just trying to be an optimist here.

As an example where my optimism is warranted: broken builds. You can either
make it a `people problem' and tell people to be super careful; or you go for
the technical solution and automate the whole thing, so that only commits that
build and pass tests get merged into master.

Of course, there's no office politics in my example; so this was easy.

The humble spreadsheet liberated white collar workers to do automate simple
(and not so simple) calculation tasks themselves. No begging the computer
folks necessary any more, who can hold your department `hostage' at will.

You can bet that from the point of view of spreadsheet adopters, they
sidestepped a whole host of political problems.

------
osweiller
Does he regret not buying a lottery ticket when he sees that someone else won?
He may very well (especially if the winner was someone who intersected in
their lives, making it seem more proximal), but that's essentially the
argument given that there is absolutely no guarantee that they would have seen
any success in the technical management space. It's presumptive and egotistic
to assume it would have been a successful pursuit.

And while the leadership path has very high highs, it is also the route to
career death for many people who went that route. When companies do cutbacks,
"middle management" is virtually always the first target. These are the people
who often have the hardest time justifying their value.

------
calibraxis
Definitely good advice. Corporations are often not structured for you to have
an impact outside your tunnel: they're too top-down. (Of course, many workers
internalized that during school, which was much the same, so they seem happy
with the arrangement.)

------
seivan
Yishan Wong talks about this here [http://algeri-wong.com/yishan/engineering-
management.html](http://algeri-wong.com/yishan/engineering-management.html)

It is also my Bible. Yet to find a place that runs like that.

~~~
donniefitz2
Wow. This good stuff. Thanks for sharing.

------
iofj
Here's the software he seems to have been the owner for :

[https://books.google.com.au/books?id=ljsEAAAAMBAJ&lpg=PT31&o...](https://books.google.com.au/books?id=ljsEAAAAMBAJ&lpg=PT31&ots=_I_9RRtE_F&dq=trapeze%20excel&pg=PT30#v=onepage&q&f=false)

Certainly looks like it had potential. Of course he was going up against
microsoft at that time. Certainly wouldn't have been easy.

