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.
I am also still relatively young and am probably doing OK if I look only at the present day (I am a developer). But what about in 10 years? In 20? When I think of it I get really really uneasy (although it is probably me as person this way - I guess I would be uneasy whatever role I had).
Just work on something myself, my own way, without 'deadlines' and other unnecessarily worldly requirements, projects as side-effects of doing what you feel. I really really am into coding just as a way of writing philosophy, and just as philosophical ideas are never 'done' and 'released' and books just written as a product of musing, so are code pieces.
When authors are celebrated for the beauty of their work by people that understand them: imagine a music festival where people go literally just to see the artist perform live. When programming becomes almost a performance art, and we are able to embody the omnipotent creator ideal of these little universes we create on our computer; that's the dream.
Who remembers Tom Vu? And his yacht? http://youtu.be/c5OOHotxAYk
Never being able to go anywhere spontaneous without your security guards. Everyone looking to take your money. Having to watch your words in everything you say because you are being filmed by strangers 24/7. Can't walk into a coffee shop without being recognized and hassled for a selfie cause some vain dude/girl wants to show off to his friends and get social network "likes". Etc.
The only way to get away from all those problems is probably to buy a private island, build a big house, and trap yourself inside. Which a lot of wealthy people kind of do in one way or another.
"The more people you have in any project the more communications you need, the more management you need, the slower information is disbursed and problems reported. You have to have more process to ensure that anything will be accomplished. Of course this all costs more money and time and often you have to do less just to get something shipped. It’s easy for everyone responsible for all these people to worry about unknown problems biting them in the ass so every decision becomes very conservative and cautious.This of course makes shipping difficult, expensive and often drags things out for a long time. Add to that memories of previous projects that had the same issues and things get even more cautious and slow."
The main function of management at any medium or large company is to manage people, keep the peace and keep things chugging along. This person makes the huge mistake of wanting to be manager ... to do something other than manage people. Wanting to be a manager to use "the power" for good (ha!, having done both let me tell you this: managers have less power than individual contributors. Yes you have "power" to choose, what you say goes to an extent, but only insofar that you keep making "the right" choices. Think of a manager as a 14 year old going to a party and getting told by his parents that he "has the choice" to do drugs. I assume there are levels of management that have more freedom, but middle management does not provide anyone with the power to change things. Forget about that. It can provide you with an easy job, maybe even with significantly more money (after X years), but that's it).
It doesn't even matter what the other thing is he wants to accomplish. This way of thinking will destroy any large company team. Working at large companies, you constantly see this truth reinforced: there are people who can manage "large" projects by themselves, and take ownership. They just make sure that a certain function is available and works. They usually produce software to help them with this, but while it covers 99%, it doesn't cover 100%. I work at a well-known company that people idolize here and yet I can name 5 times that an individual that in some cases was a bad programmer in terms of code style or even understanding of syntax outperformed teams of a dozen software engineers due to the fact that the individual's understanding of the problem far exceeded the programmers/developers/TLs/... understanding of the problem. Here, like everywhere else, they get punished for that. The users of that software revere them, but everyone else (especially the team that was supposed to fulfill the function they took upon themselves) well ... "does not see them as a team player", and absurd rationalizations are made (what if the "owner" gets hit by a bus ? does not satisfy bus-factor. Reality: large teams that build software, then "move on" and abandon it or go unresponsive pretty much fail the bus factor without involvement of any accident at all), but one of the main "real" concerns is that people are afraid of the power this individual gets because of this ownership (even though they're rarely aware of it, and if they are they use it for things like code style, almost never for amassing power in the company like any of those managers would do).
And any manager is always going to do the same : they're going with the choice that keeps the team together. The choice that doesn't rock the boat. They would have chosen against the author of this article at 10 different junctions, because he is divisive, direct, and worst of all : probably he is right and unwilling to compromise except for good, technical reasons.
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.
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.
Programmers today are also figuring out the best way to get Rails installed! :)
...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.
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.)
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.
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.
It seems that the ability to have an impact while writing code is quite limited in the industry, and the way to expand it is to take on leadership and management roles, even if you aren't technically moving onto the management ladder.
A lot of people whom I see in this category are people who fall more under the "engineer" banner than the "developer" banner - they tend to look for hard problems to solve, and are still happy solving logistical and financial problems.
I don't think it has changed all that much. How many engineers that report to you are near your age or older than you?
This is really interesting and relieving. Have you been able to see this happen in other companies?
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.
Programming is the ability to manipulate that information for a purpose.
You can be a programmer and make money if you combine that ability with specialized domain knowledge.
But the ability to program alone makes you interchangeable in the business. Just look at the hundreds of gigantic (5000+ employees) consulting firms selling expertise. The only people who make big bucks are the ones with domain knowledge.
I do think that programmers are at the forefront of the future of employment. Every other sector is afraid of automation, concerned about their algorithmic skills and routine tasks being done by machine and uncertain about how they will fit in a future where their skills are useless.
Programmers feel like that every few years (or months if you're a JS programmer ;-)) or on every new major project in a different domain.
But we get distracted by the fact that we spend so much time keeping up with the new tech that we confuse it for valuable knowledge.
The new framework/language/api/etc. is only a tool to extend our ability and without domain knowledge in a sector (finance, healthcare, retail etc.), we have as little value as a paralegal or a doctor who can diagnose and treat but cannot invent a cure.
Unlike any of those professions, they are not 100% digitized. Programmers are forced to accept the limits of their intelligence and their capacity to learn new domains very early on.
Nothing is preventing you from writing something truly amazing on your computer.
This community often gets it twisted. Let's face it, if you could innovate instead of repackage, you wouldn't need marketing or sales to communicate the value of your work.
However exponential improvements and radical innovation are difficult, everyone settles for incremental improvements and have to spend their time marketing to persuade people that their product is better. (most likely by only a small margin from the competition. a margin most people wouldn't give a fuck about if they really understood the product)
I believe Carmack has a quote about how programming is just a mundane manner in which to solve more interesting underlying problems. I would imagine the world, or more specifically the economy, will eventually see it that way as well.
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.
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.
I don't want to end up like my older professional peers in 10, 20, or 30 years. Most of them are very smart people, but in a way pathetic at the same time.
On the positive side, we should be able to leverage the cushiness for our own benefit. I'm planning to travel and work part time this summer while continuing to work my regular job remotely. I've enjoyed the little farm and construction work I've done in the past and would like to do more. Not only do I feel healthier when I spend more time away from technology, but it's much more enriching.
Sometimes it goes overboard and you don't have a contiguous 4 hours to just focus on coding.
But if you only work for enterprises, I agree it is mostly grunt work. I should know, as I've just quit working 8 months for a startup doing backend web dev and got bored and depressed as hell. Now I'm back at my own projects and doing freelance to get the money rolling until one of my projects hits the jackpot, if ever.
My opinion, maybe similar to yours, is that professional developers should see programming not as an end on itself but just as a mean. Focus on other areas (engineer, medicine, sports, whatever.) and try to apply your technical skills to fix a problem. Basically, it is what we do when we work for some company, but we should be conscious of that and maybe try to focus on IT + another area instead of just knonwing how to program a computer..
TL-DR: Domain knowledge is a must!
My most fulfilling and interesting career stories were about listening to people and reading their needs between the lines, un-kinking silly workflow knots, finding non-tech solutions to seemingly technical problems. Not constructing pristine castles of code (that ended up not even being used, ultimately).
This is also why I have tried very hard to define my identity around my general values and mission as a human being rather a specific career choice I serendipitously rolled into when I was 15. It has been very gratifying and liberating as a change of worldview.
If all of those things were true, then the field would be saturated and it wouldn't pay nearly as well as it does. I would claim that while you don't need an exceptionally high IQ, you do need a systematic way of thinking that is relatively uncommon.
You will be worthless if Western civilization ever fails and drops out of the Technological Age.
Sure, as would most white-collar workers.
As we advance and become more organized and cohesive, the need for programmers will be reduced.
The need for all types of workers will be reduced. The demand for programmers will remain higher than for many other professions; somebody actually has to implement the automation.
You can be the guy creating the requirements, but then you're better off specializing in that and letting someone else do the grunt work.
Non managers are pulling over 400k at companies just as engineers. Do you think this is untrue?
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.
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.
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.
People treat money as if it dirty.
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...
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.
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).
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).
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.
Maybe there is a way to just fix problems where you see them?
It's the set of problems on the "other side" that are causing delays that are the ones I care about. The ones that don't cause delay I don't mind.
It's only constructive to focus on that which holds us up, slows us down. Then I want to fix those.
The frustrations stem really from the wedge that we collectively seem to shove between engineering and other parts of a company, including middle-management (or worse, that we destroy middle-management and lack well-seasoned processes that actually help).
The walls we've built within companies, between skill sets, leads to a powerlessness to get things done faster, better.
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.
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.
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.
Regular front line grunt work employees work long hours and get paid decent professional wage. As you said they can get promoted to Partner, a partner is a part owner of the business, they don't do much technical work, they do a lot of management. There are similar opportunities for Software people to start small companies and make money too. its not quite the same as there aren't the big company partnerships, but big startups with employee stock are close.
The biggest difference is the half life of knowledge in Software is much shorter.
Everyone I know who has wanted to 'bring leadership' in their role, and nothing else, has been a complete waste of space, at best useless, at worst an obstacle. I have never been glad to have such a person working with me.
> 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.
Programmers/engineers can change some important things. For example, our employers. If you're a strong engineer in a shitty situation, then find something better. It might even help you retire (like joining Apple in the late 90s).
What do you do if you're not a strong engineer but in a shitty situation?
- Saving as much as they can of what they're earning. Ideally at least 50%
- Avoiding debt
- Investing their money in low cost index funds
May I add to the list of 'excuses':
- Getting hit by a bursting tech-bubble (as I was, we're talking a significant hit in terms of employment as well as retirement accounts, stock market and having to drain existing reserves)
- Living in a region where rising rents exceed salary increases without changing jobs (I saw the light only 3 years ago when I left NYC for NJ after 20 years). Living in PA, I think you may lack some perspective on the latter.
- Having a child didn't just cost $$$ (as others have mentioned) but made me realize that traveling 50% of the time for 30% more money just wasn't worth it to me. It's something else entirely to be responsible just for yourself (I love peanut-butter sandwiches!) and the resulting 'pressure' one may feel to provide a stable, but not salary-maximized, situation for your family. Don't forget health insurance needs. It also makes you more risk-averse.
All of this hampers your career/salary. Sure, they're all personal choices, but not easy ones.
Glad I made mine though. Soon enough the kid will be gone forever.
In defense of my age (and implied lack of life experience), I've unfortunately had significant medical issues in my twenties, which in turn led to some decent sized bills I've had to take care of, so I know a bit about troublesome times.
As a corollary, be prepared to worry about money way more than you had anticipated back when you were 30 and diligently following Mr. Moustache to an early retirement.
As far as career advice, it's tough to say. I've had a good career but feel I'm in a difficult spot now. The last five years I've been independent but 95% of my work has been as the lone dev for one startup, whose best days suddenly seem to be in the rear-view. It's been great work and the job has been wonderfly flexible, but now I'm left to wonder, if they die who wants to hire a 40 year old developer (a really good one IMO but who's to say) with just kind of a miscellany of experience and hasn't worked with a team in five years (especially in small-town Michigan). Who knows, maybe lots of people. But I think the moral of the story is "don't paint yourself into a corner". Do good work, work with lots of people (my mistake), make them respect you, and you should be alright in the end.
My guess is the "ISO Standard Ideal Saver" whose entire income is disposable, has perfect health, no dependents, no hobbies, no debt or other obligations, etc. is the exception, not the rule.
Even if you can only save $100 a month. Or if you can avoid using a credit card to buy things you don't really need, like a new tv to replace your old one that works fine.
The average person who is not currently dealing with a significant life crisis could follow some of this, but often chooses not to, either due to not knowing any better or lack of self control.
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.
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.
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.
But beyond that, if you can't practice appropriate fiscal frugality to meet your long term goals (really common I've found) you're looking at increased expenses on luxuries like island vacations, eating out frequently, discretionary travel in general, and so forth.
It's really hard to explain to those that are typical American consumers how you could earn $180k+ / year but are trying to live like you earn $60k.
I'd move back to Boise in a heartbeat.
I live in Missouri though, which has pretty low cost of living.
People in my family had hundreds of ks saved up for retirement and have lost it all in their 50s. Now they're in their 60s and have no foreseeable path to retirement. Unexpected events happen.
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.
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.
Such role will not be simply handed down, though the opportunities will. Collect worthiness points. Dress for the job you want, not the one you have. Some possible general opportunities I see (not everything applies in every company):
1. Assess whatever is important to your direct management and be reliable. The idea is to have more or less consistent performance.
1.1. e.g. Say they think feature A takes 100 hours, feature B takes 50. You know they both take 75. Do A first -> spend 25h on B -> release A -> finish B.
2. Make others happy. This is important to reduce resistance for growth.
2.1. If you have options to make solution elegant and easy for others to use/integrate with, take the latter. Code has to be maintainable, but if you are the sole maintainer, others will judge public API, not the internals.
2.2. Be helpful. Do not help with every struggle everyone faces, you have your own tasks (and to maintain worthiness points), but if you personally can do this task in an hour while it would take the one assigned much more take the responsibility. Maybe their solution is suboptimal or they lack knowledge/expertise.
2.3. Make yourself authoritative source. Do not give advice/answer where someone else could give better one, but rather direct the question to someone who could actually answer that. Unless it is an opinionated matter, e.g. git vs hg.
3. Increase you scope.
3.1. If you see a better solution or problems down the road - communicate those. Might be an oversight or might be judged unimportant by management. Show that you can assess the situation and that you care.
3.2. If you see an opportunity to work on broader issues - take it. This might mean jumping to a smaller project, but taking [small] managerial and architect-like responsibilities.
4. As a new hire you have a unique possibility to grow really quick: instead of doing what you were hired to, you can attempt to prove being able to take "higher" role. Most probably this would mean taking more responsibilities for the same pay.
5. Collect trophies.
5.1. Finish projects. Then you can say "I've done that" instead of "Worked in a company doing that".
5.2. Jump ships if the company/product is going to fail, but assess. Even if Tesla would have failed, engineers working there would still be valuable for creating awesome product. There is a difference between product failing because of being flawed/suboptimal/unsuitable for the purpose and failing because of poor marketing, sales or other market reasons. Git quite possibly would have failed as a commercial product.
I have friends who save ungodly amounts (in the 40k/year range) and their employers/clients still think they're damn cheap.
Income arbitrage. Look it up :)
Call me cynical, but I'm a bit skeptical that a company would pay more than they had to.
Note: Assuming of course your role is not super vital for the whole company or some such.
And no, your salary/rate isn't defined by where the company HQ is. That part defines their price tolerance. The price is defined primarily by how much you ask for and what you can offer in return.
I couldn't agree more. I know a lot of developers that have the mentality to just accept what they are offered without negotiating. It's up to you to get a good price for the value you bring to the company. Negotiation is the best way to significantly increase your salary, regardless of your technical skills.
Patio said it best: http://www.kalzumeus.com/2012/01/23/salary-negotiation/
If you have no other opportunities and no one is offering anything better than you have to accept that. Than they capture the rest of the value.
I think it also depends on the type of company and what they are after -- are they looking to save money by outsourcing or are they looking to expand their talent pool? If they are looking to expand their talent pool, it is more likely to get closer to what the company HQ is, minus some "remote work" discount.
After all, if I'm the manager of some San Francisco tech. company and I can get a great programmer (even by San Francisco standards) for a 20% discount to local talent, which I know is a 20-30% rate above what they programmer will be paid in their community in a fly over state -- it's win-win for everyone involved and they are much less likely to leave.
Companies will not pay more than they have to, but if you demonstrate your worth they will be happy to pay it.
I make high six figures and am completely location independent.
My particular friends (and me of old) are located in Slovenia, clients are in San Francisco. You can have a decent life in Slovenia for $20k/year. You can easily get a gig in San Francisco for $60k/year. Probably even easier for $100k/year because of the whole signaling thing.
I wasn't able to save as much as my friends are because of lifestyle inflation, but I sure had a lot of fun. My margin isn't as high now that I live in San Francisco, but my glass ceiling is higher. Tradeoffs :)
PS: as you can infer from above, you can also always move. Nobody says you have to stay in a bad economy.
For example I know that the UK (and mostly London) is extremely tolerant of non native English speakers. However from experience I know this will count against you when people are looking to hire (I was on the hiring side at one point so know how my managers perceived this.)
Germany is again another example where unless you speak really good German you will have some pretty tough challenges. I had a friend who grew up speaking German as a second language, who completed his masters in Germany, be told by his boss to go for German writing classes if he wants to get anywhere in their company.
Europe might be one big open job market but Language honestly makes it far more difficult than it seems at first. This also goes for settling into your new country even if you are working for US or UK companies as your day job.
This is not a problem I personally experienced for English speaking countries. Started learning when I was in kindergarten, always immersed in the culture via TV and internet, did English and English writing as a hobby pretty much since starting high school. Until they hear my accent, most people assume I'm a native speaker.
So I lucked out on that front.
The hard part for me was the visa. But that is also a solvable problem.
That is something I did not even want to mention due to the challenges it brings. It is not insurmountable but does sometimes come at a high cost of both money, time and stress.
Rent and utilities in Ljubljana cost us about 800 eur. What is left is maybe enough for one person, who will never own any property.
$20k/y is close to a welfare level in Slovenia, except maybe in countryside.
BUT, you can open a sole proprietorship, fill out some forms, and voila: you pay 4% taxes. After all the healthcare and stuff, you end up with 1068 euro net on a $20k (17k eur) yearly revenue.
At $48k/year, you get 3040 euro/month net. Now you're getting paid almost as much as the president. Your taxes will go up a bit next year, so save up, but for the first year you have plenty of extra money in the bank that you can leverage for making even more money.
And if you target San Francisco, you're competing with people who are asking for $130k+/year.
It is a shame that the UK does not have anything like this. The best you can hope for is to contract and that give an average tax of around 26% to 30% depending on how creative your bookkeeper is.
Germany as my alternative example is quite a different story, there being freelance is very difficult due to the cost of healthcare that you HAVE to pay and their tax law is extremely complicated, you pay loads more tax than the UK for example. I know some friends who too permanent employment in Germany as it was more beneficial than being freelance.
Sure, you'll always be renting, but this is still significantly better than working for most local companies.
Swizec is right, there are ways to incorporate to pay less tax, but not everyone can go that way.
At the moment really good developers in London can hit £80k+ per year in full-time salary but living costs locally are insane. If you are contracting in London you can make good money but you are still hindered by the high living costs. One big drawback is that I have seen very little remote work opportunities for London companies to anyone not living locally. This gets more pronounced the closer you move to the Data Science / Business Intelligence space, but even for Web Dev etc it looks to be not that common. So as you say it might have to be the big cities in the US as it seems the US are much further in accepting remote work than where I currently am.
Developers get paid dick all here.
I remember my school stats being that CS new grads made an average of about $70k or so out of school. Pretty sure that number is way up at a top program.
On the bright side: I'm correcting this now, and I really feel like a different person.
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.
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.
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.
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. Right - 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... - 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....
- The Trigger point therapy workbook - http://www.amazon.com/Trigger-Point-Therapy-Workbook-Self-Tr.... 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...
- 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...
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.
when I caught the disk, the edge would snam into my wrist. I hear volleyball players get the same thing. I made a wrist-protector from tap and bandages. Eventually though, the numbness still came, maybe even worse due to the false protection from the protector (like how boxing gloves actually harm boxers more in the long run by allowing fights to go on longer).
I sometimes wonder if the inefficiency of movement is actually better wrt spreading the load. If the closest digit always presses the same key, there maybe a bias towards the same, repetitive movements which are often bad.
I've been having something similar but always during the night, so I had not made an association with RSI.
Do you have anything on or around you arms when you sleep (or lie on them?).
Yeah, I'm probably sleeping in a weird position. I have a history of doing that.
(usual disclaimers apply)
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.
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.
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...
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.
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" . 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.
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.
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.
IMHO he is trying to explain how being just a programmer, didn't let him change (in better) the faith of the companies he used to work for.
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.
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.
(Seriously, it is easier said than done. Do you know how many small businesses failed?)
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 :-)
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.
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.
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.)
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.
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.
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, 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.
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.
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?
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.
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.
Many of these things are so widely established....
It's a problem in both directions. In my view, the non-technical managers need to learn to take more counsel from the technical experts working for them, since most technical matters can be openly discussed. People matters, at least some of the sticky ones, can't be openly discussed with a panel of experts.
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.
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.
Stoicism, eastern philosophy (esp. ZhuangZi), travel and experience of other cultures, all help a lot.
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.
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.
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.
 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.
Now exchange "Management" in the first sentence with "Programming in a team" ;)
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.
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.
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.
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.
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
There are places where technical leadership runs in parallel to people leadership, but I feel like those are in the minority...
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.
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.
Just curious, how did his story change your view on making decision for your fork road?
(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)
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...
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.
If the goal is to learn about public projects and write something one needs and feels important, then, sure, that's awesome.