I'm 58. I spent over thirty years, writing and managing software projects that other people generally didn't use well (or mishandled while developing). It was frustrating, but they paid the bills, so there wasn't anything I could do about it.
Since leaving my last job, I started to look at working, and immediately, and with extreme prejudice, slammed into the notorious ageism in tech. It was a real shock, as I had always been treated with a fair degree of respect. That is no longer the case. Respect seems to be a virtue that no one practices, anymore (I'm not talking about "worship." I'm talking about simple, basic, courtesy and respect; like I give to others).
I had saved up a fairly substantial war chest, so I just decided to give up on looking for work, and have been spending my time since then, writing a lot of open-source code[0], and learning the latest stuff in the way I want.
Best decision I ever made. Too bad. I'm pretty good at what I do, I would have worked for a lot less than most (see "war chest," above), and would have been happy to take on riskier work with startups and whatnot.
[0] https://github.com/ChrisMarshallNY (and almost every green square will take you to an open-source repo, where I am the sole author, and you can view the checkins)
It’s entirely possible you’re not getting offers because they know you don’t need them.
I don’t mean to say they’re wanting to give the offers to less fortunate applicants - it’s just that you’ll be impossible to abuse relative to someone who they know needs the money.
“We need you to work until this is done.” “No.” “Chris, it’s very important and will be reflected on your performance review.” “Ok. Still no.”
At the start of my career (ages ago now) I had an employer find out that my university progression was tied entirely to their performance review of my placement, and immediately start to insist on my working all the hours under the sun with the strong implication that if I didn’t play ball the note would be “unfavourable”.
When you’re young it’s not always clear how little crap you should take from people in more senior positions.
I'm getting that vibe from you a little as well, where you're refusing to jump through the hoops that companies put in front of new hires (binary tree crap)
I'd recommend you either knuckle under and play ball, or even better: Get into consulting / make a SaaS business like the Expat Software guy
I sincerely want to help people that help people. The rat race is just too exhausting for me. I didn't realize how exhausting, until I had a couple of years of working on my own to see the difference.
I'll probably never get paid a dime for my work, ever again, and the thought brings me great joy.
- 25 years at a single company is working against you. Remove all that from your cv and just list the recent stuff you built.
- Most of your cv should be description of the repos with links. Cut out and summarise past experience ruthlessly, like you’re refactoring someone else’s old code.
- Remove the link to your personal git page, use the other one. On first sight it looks weak - it has some html files and a lot of docs. My first reaction was “meh”. It took me many minutes of browsing to figure out the real meat was in the other repo And then my reaction was “wow”. Most hiring manager don’t have time for this. People are not clicking on the green squares they are clicking on the source repos, you have about 30 seconds of their time.
- At this stage you might get bored or unhappy real fast in a job, if you are honest to yourself. Consider selling short term access to deep technical expertise - in your case Mobile Bluetooth on iOS.
Well, the long-term work is staying in the CV. I worked for 27 years at one of the most storied and respected Japanese corporations on Earth, at a very deep level. This says a lot about my aptitude, ethics, Honor, Integrity, team dynamics and loyalty. I sure as heck don't want to work for any company that thinks of that as a bad thing. Most of my tech work has been done in the open. I've been doing open-source work for over twenty years; which gives me the advantage of a vast portfolio.
I was a hiring manager for 25 years. Hiring people was a very important part of my work. I managed a small, high-functioning team that did image pipeline "engine" code in C++. Getting headcount was a huge battle, and I kept employees for decades. I loved multi-page CVs. "Draw Spunky" tests were absolutely worthless in evaluating people that would become part of my team. Interviews were often very casual affairs, where I'd encourage people to tell me stories about their work.
I have a Stack Overflow story that lays out my work in a linear fashion[0], or CV fashion[1]. I kind of like the idea of an SO story. It's fairly direct in pointing to my work.
My experience is that the vast portfolio is ignored by hiring managers (recruiters are much, much worse). I used to send links to relevant projects, when applying, only to have them completely ignored, in favor of a 50-line binary tree test. I have come to realize that binary tree tests are "young pass filters," as the only place binary trees actually exist, are in colleges. If a company gives a binary tree test, then I know they aren't interested in me, and are just ticking an "Interviewed old fart" checkbox.
Unfortunately, hiring is fairly broken in our industry, if you want a job, the best use of your time is probably to practice those coding tests.
[1] https://www.omahaic.com/blog/mindful-moments/mindful-moment-...
It does say a lot about the industry, though, that people don't care about shipping software.
Might explain some of these Jurassic-scale disasters we're constantly reading about...
Sometimes, I do great at them. Most are common sense.
Usually, I'm mediocre.
There's thousands and thousands of energetic folks out there; young and old, that practice these every day, and can usually ace them in an interview.
There's no way that I'm even gonna try to compete with them. They'll smoke me. They worked hard for that, and I respect them. I would hope this is indicative of them being good employees, but I can't really see how these tests would indicate that better than a simple conversation.
That said, since I've been writing deployed/shipping/sold software for decades, I suspect that I might be doing something right.
In fact, today, I am polishing up a simple Observer infrastructure[0] for a mesh networking driver that I'm working on. One of the basics of my workflow, is if I'm working on a project, and see that the part I'm working on might be more generically useful, I stop work on the main project for a day or two, while I break that section out into a general-purpose module. It helps me to write much better software.
I'm rather obsessed with Quality, and this practice is one way to get that.
I'm not sure that there's LeetCode for that kind of practice, and I can't really see it happening in a timed whiteboard test.
It is, however, very easy to see; simply by looking at the GH repo.
[0] https://github.com/RiftValleySoftware/RVS_GeneralObserver
Undoubtedly I’ve closed doors and passed up opportunities through my refusal to contort myself to the LeetCode regime. At the same time, the time that I would’ve spent drilling myself on superficial coding puzzles I’ve instead invested in building practical applications for my friend’s business, learning and applying machine learning theory to automate a boring task during an internship, implementing a processor in Verilog and writing an assembler for its ISA that I managed to get running on an FPGA, working on an open source digital contact tracing app, and several other projects.
The projects I’ve spent time on are those that I deem to genuinely valuable to society and to my personal skill development in the broadest, most fully integrated conception of ‘valuable’ that I can achieve. To clarify, I could see an counter point being made that LeetCode skills are “valuable” in the sense that I could use them to get a higher paying job at $TECH_CO. But from a higher level perspective, those skills are tailored towards a system (the LeetCode hiring gauntlet) that I think is fundamentally corrupt, and so to spend my energy practicing them for the sake of that system would be corrupting of my integrity.
And despite the admonitions I’ve received from supposedly more pragmatic-minded people, I’ve been able to pull together a living and have a budding career to speak of. My job hunts have perhaps been more drawn out and frustrated than the LeetCode crew, but I believe my focus on genuine knowledge and skill development has contributed to my high performance at the jobs I have managed to land. And by being straightforward about my disinterest in hoop jumping and interest in “real skills”, I’ve managed to befriend and work with companies and people that share similar values to me, who in my view are more rewarding to work with and tend to be more likely to succeed in the long run.
Coding tests; at least Codility/LeetCode style, are now pretty much worthless, as there’s an entire industry devoted to helping folks pass them.
I just love doing what I do. It sounds like you do, as well.
Every hour I spend, practicing for interviews, is an hour I’m not spending, learning new, practical stuff.
Granted, some applications will involve more or less use of data structures/algorithms than others, but if you discount them completely you mark yourself out of a whole subset of work.
I would want most of my fellow employees to know what a trie/binary tree/linked list/vector/array/etc is, and I would want them to know how to evaluate space and time complexity of the code they write. What is a good style interview for that is an open question, but I don't think the content is impractical.
By all means, spend your time however you like. I just think it's unfair to call knowledge of these sorts of things "impractical". Impractical for whom?
> vector/array
Those two, yes (and vectors really only apply -as such- in C++), but the rest? It depends (the best answer to every conundrum).
I write consumer/developer software; not ML or Big Data Mining stuff. My work is generally in device control, user interface, SDKs, APIs, etc.
That means, that, in over thirty years of writing software, I have encountered exactly 0.000000 binary trees. BTW: Binary trees and linked lists can be an issue in parallel-type programming. We had some image processing algorithms we did that used similar structures, and we had to be very careful. We often had to back out optimizations.
Writing consumer software has issues that don't seem to occur to folks writing engine software. These are things like localization, security, adaptive user interfaces, aesthetic design, information architecture (hoo-boy), responsive controls, branding, testing (all kinds of testing), etc.
That "information architecture" one is a big deal, and almost everyone falls down on it. This is most obvious in settings. Engineers design settings to match the underlying architecture, and don't worry too much about how they will be perceived by users. The result is the infamous "Find the hidden setting" game. I just went through that, yesterday, helping a friend set up a Zoom meeting. Fun! I also just went through it yesterday with my wife, and her Mac. Apple has started to segregate settings the same way, and there be dragonnes.
Testing is another big one. Everyone is fixated on automatic testing and unit tests. If a project comes with a bunch of unit tests, then everyone thinks it's "high quality."
There's issues with relying on unit tests alone. I write about that here: https://medium.com/chrismarshallny/testing-harness-vs-unit-4...
Also, if we write device control, or a lot of communication software, unit tests can be worse than useless. Usability and accessibility testing are also something that can't really be automated.
Shipping software is really boring. There's a lot of "'snot mah chob, man!" stuff involved, that, nonetheless, needs to be done by someone, or we end up with steaming piles of crap.
Some of that involves the programmers directly. For example, do we habitually autodoc document our method headers and class/struct definitions? Do we use tokens and localizedVariant calls for all displayed text? Do we follow good secure programming practices from the start? How would a blackhat use this function I just wrote? Do we throw dependencies in as a first resort? Is that good, or bad? Do we know what that dependency we just committed the company to does? What's our testing strategy? How will we integrate this, and when? etc.
Also, power usage. That's a big one, if we do mobile or embedded software. Sometimes, highly optimized code is the worst code to run, as it can drain the battery, or end up with really strange race conditions between chipsets.
That's practical stuff. When you're a one-man shop, like me, you get to deal with all of it. I was also quite involved in all of it in my last job, where we were a huge, global team, supporting some pretty intense hardware products.
I think other systems langs make the distinction, Rust does also, this is what I've been doing at my day job lately.
> That means, that, in over thirty years of writing software, I have encountered exactly 0.000000 binary trees.
I've been doing it for a third of that time and I've encountered binary trees and all kinds of other data structures a bunch of times. I don't do any big data or ML stuff, I was writing React frontends for about half of that, the last few years it's been systems programming with Rust; I still encountered these types of structures writing JS though.
> BTW: Binary trees and linked lists can be an issue in parallel-type programming. We had some image processing algorithms we did that used similar structures, and we had to be very careful. We often had to back out optimizations.
When sharing any memory between threads or tasks you have to be careful, I'm not sure there's anything special about binary trees or linked lists. Consequently Rust makes this sort of thing very nice.
I'm not sure how to respond to the rest of the comment. Personally, I'll take an expressive type system over a comprehensive unit test suite.
I'm not discounting your personal experience but I find it hard to believe you aren't encountering these types of problems, unless you are but just not noticing it. Curious about what kind of 'optimized' (optimized for what?) code is 'the worst'?
edit: I just re-read this and realized the tone was a little aggressive, I don't mean to come across that way, my bad.
I ran a C++ shop for 25 years. We wrote “pipeline” software for image processing. REAL heavyweight data processing/DSP stuff. Optimizations were crucial, and we often took advantage of things like GPUs, and threading.
There be dragonnes...
I learned that explicit threading is a scary place, full of surprises.
Nowadays, I write in Swift (which I love -I think that Rust is similar). Explicit threading is barely supported, which is just fine, by me.
I can get defensive, because I have been treated rather badly, simply because of my age. No one ever bothers to look at my portfolio. They just start with the condescending drivel, sometimes, even accusing me of “faking” ten years of commit history, hundreds of thousands of lines of code, dozens and dozens of repos, hundreds of pages of articles, documentation, prose, and training modules.
It was exactly this kind of behavior that convinced me to not even bother trying to get work.
I’m not arrogant. I’m actually a really decent person; warm, compassionate, and a great team member. My LinkedIn profile is jammed with testimonials. I worked on a team with some of the finest engineers and scientists in the world, and had their complete confidence and trust.
But that doesn’t mean a thing, if I can’t give a proper answer to a “Draw Spunky” test.
I'm currently #1 in "clean EPE matched" on the Sintel AI benchmark - by re-implementing a 2006 paper. I'm taking advantage of the additional computing power that we have nowadays by brute-forcing what used to be a gradient-descent solver. It appears that people have re-invented the AI wheel many times, but nobody checked to see what was there before deep learning became fashionable.
I see the same issue everywhere. Companies have a large agile web 4.0 team using obscure frameworks that I had never heard of before. But all the stuff that they built would have been included in a $9 WordPress hosting plan.
There’s a surprisingly massive amount of money being spent making more expensive, less stable and feature deficient versions of Squarespace everywhere.
I like to think I understand my work pretty well but in all the years I’ve been in this industry I can’t give a genuine reason for 90% of jobs in this industry to exist at all.
Dependencies are great. They are how we can do huge things with small teams. They are also bad (obligatory XKCD: https://xkcd.com/2347/).
Tech jobs these days are not about adding value, so your additional experience is worthless... The things that are valuable to companies are youth, optimism, loyalty and self-delusion.
Companies need a big headcount to give themselves leverage over governments and banks. Companies need a young workforce which they can influence and use as bargaining chips to make deals to get access to cheap money from the Fed.
The role of big corporations is to take people in when they're young and distort their worldviews so that they stay passive, childlike, compliant and docile as they get older - They're not going to rebel against the status quo, they're not going to complain about unjust government regulations which drive up the company stock price but at the same time diminish their freedom to leave the company and be independent.
Old people are not good because they can't be indoctrinated as easily and the benefits are much shorter-term since these old people don't have so many years left on this earth. The investment of brainwashing them doesn't yield so much and not for so long.
These big tech corporations are engaging in pure macroeconomics. They don't care about details like projects, clients and customers. In their world, the only things that affect their bottom line are:
- Governments
- Banks
- Investors
- Public opinion
Everything else is a detail which doesn't concern them. Everything that everyone does in those companies is ultimately about pleasing or manipulating these 4 entities in the most superficial way possible.
I'd like to add on that everyone's retirement plans are held hostage by the same four groups that you were talking about. The 401(k) and IRA were both introduced in the 1970s, and now colossal amounts of money flow into those accounts, ensuring the financial future of Americans. They are low-risk investment plans for the future. Why are they low-risk? Because they invest in the "entire market" via mutual funds, and as we all know the market always goes up. Loosely- give your money to the banks, and they'll make sure the valuation of the companies that make up the index funds will always increase, thus giving you your year-on-year +10%, or whatever.
The corollary, of course, is that if you support any societal changes that would threaten the valuation of "the market", you'll tank everyone's investment accounts. Good luck reversing outsourcing trends, enacting progressive labor laws, or lowering the price of healthcare.
I don't even want to call it "investing" at this point. It's speculating. That's why I plan to buy land and live off of it as much as I can. I'd rather be poor and independent than rich and dependent.
Also, I think I've figured out what the "defund the police" movement is really about; it's to allow Corporations to later step in and privatize the police force. Then they can claim the credit for restoring law and order and further gain people's trust whilst gaining more control over them. Seems kind of far fetched still, but few things would surprise me these days.
That may be something that comes from it, but it really is about people that have been taking it in the shorts for decades, and have felt completely powerless (by design) to affect it. The "defund" thing is a blunt instrument that they hope would work; more as leverage to effect change, than anything else.
Of course, there are anarchists, who want all restraint removed from society. Those types of folks can usually be found in The Darwin Awards.
The rich are just really good at leveraging anything to their advantage, and have the tools to do it. They'll usually come out on top; regardless of what happens.
It's just that nowadays, "The Rich" includes a lot of young folks that look a lot like their employees. It isn't just a bunch of old robber barons with handlebars and muttonchops, anymore.
I'm a cynical bastard, and must genuflect towards The Master.
Hope that they are saving and investing, instead of splurging on Teslas and Mission District cribs.
https://www.cnbc.com/2019/11/20/why-young-people-are-saving-...
https://www.vox.com/sponsored/13219620/chase-newsroom-genera...
As a result, they don’t take shit from anyone. They don’t have to. They can afford to say « no » to overtime and spend time with their family. They can afford to quit when it sucks too much with no hope of improvement rather than destroy their health.
It’s a good position to be in.
They still live a good life. They just didn’t buy a new car ever three years, or brand new 700$ smartphones or computers but rather used ones that are a couple years old, packed their lunch instead of eating out at work, etc.
As much as they possibly can. 16% is thin considering the salaries software developers commonly get.
The awareness that you don't have to tolerate the bad parts of your job one second longer than you feel like is the most liberating feeling in the world. It allows you to do the right thing instead of the most career-expedient thing at the workplace and to try out jobs you wouldn't dared to take a risk on before.
Aside from that, right now the money is good for developers but there is no guarantee that situation will last or your skills will continue to be valuable. Remember when COBOL was a ticket to a stable career? Remember when Flash development jobs were everywhere? A lot has changed over the past fifty years and there's no sign of that slowing down. If you zig when the job market zags, you may find yourself relying on your own savings earlier that you expected.
We can flesh this out, too.
I would add: "As much as they possibly can in tax-advantaged accounts, and then more!" And it turns out, you can save a shit ton in a tax advantaged way.
Let's look at 2020 limits, and assume a married couple, under 50, with one person earning as a software engineer:
$19,500 max contribution to a pre-tax 401(k). Many companies match. You should contribute all $19.5k, not just what you can to get the full match. If you're over 50, do the $6,500 catch-up.
But that's not all. The IRS limit on combined employer/employee contributions is $57,000. So if your employer allows it, contribute the remaining $37,500 post-tax and then convert it to a Roth IRA to at least get the earnings and withdrawal tax advantage (commonly known as the "mega-backdoor Roth").
$12,000 to an IRA (or Roth), $6,000 from both you and your spouse. If you like Roth but are beyond the income limits for the Roth, do the "regular backdoor Roth".
$7,100 to a family HSA. If your company offers it, do it. It's triple tax advantaged when used for health expenses.
Although they are old-school and don't yield much, US savings bonds can be a decent way to fill up an emergency fund. They are exempt from state taxes, and interest may be excluded from Federal income tax when used to finance education. There are a few to choose from, I particularly like the Series-I bonds. The government limits individuals to $10,000 per year for a total of $20,000 for a married couple.
So, if you are a very high earner, and are fortunate enough you can max all of these, you can save $96,100 per year, with some kind of tax advantage. There is probably more that I'm not thinking of. You should probably do all of these before you even think about looking at fully-taxed investments like your retail stock broker.
This is a bit oversimplified but savings rate is the one factor to how long it takes to become financially independent. Most people will want to enjoy life a bit but a high paying thrifty SWE could theoretically save 80% of their income and retire (or be financially independent and work on whatever they want) in about 6 years.
https://www.mrmoneymustache.com/2012/01/13/the-shockingly-si...
If I’d been saving 10% of my income until 4 years ago (some 16 years of work), I would have more than tripled the savings in the last 4 years. Instead, I saved a higher percentage for only the last 4 years, and have a substantially higher amount.
Don't hard-code the % ROI and quarterly contribution in each row; put them in cells at the top. You can then play with % ROI and quarterly contribution values to see how much you'll have when. Take each rows balance and divide by (85-age) to get a conservative estimate of annual income if retired (conservatively assumes future ROI == inflation).
Fyi, I'm a 59 yo who knew ageism in hiring was coming and is so happy that my otherwise foolish self came up with a basic plan 25+ years ago to know if he was on track or not (and managed to stay well ahead of it). Helped with spending decisions too: if I was ahead, I'd buy that motorcycle; if not I didn't.
I work harder than I ever have in my life, and love it.
Isn't this also a bit ageist
We desperately need a lot of skilled tech writers. The state of documentation, these days, fills me with despair.
1. https://www.writethedocs.org/ 2. https://www.writethedocs.org/guide/
Like 'headmelted' pointed out, part of 'agiesm' is that it’s just that you’ll be impossible to abuse relative to someone who they know needs the money.
Programmers, especially the young are insecure douche bags, and I suspect that their insecurity leads to hiring docile individuals who can be coerced.
I like helping people help people. What I'm just beginning, now, is a Swift SDK for goTenna devices. These are the types of things that first responders to disasters often use. My goal is to make it open-source, MIT-licensed. I may also work on the Meshtastic project. It's entirely possible that the project may not make it. goTenna likes to play their cards close to the chest. Meshtastic looks good, but I need to get around to flashing these devices, and that's just a pain.
I have some prior art in this kind of thing. I have another project that I did, that is taking off in a big way. It finally got to the point where a bunch of really energetic and talented people piled on, and now it's becoming a world standard.
When projects don't make money, they tend to take longer to get in the air. I started that project over ten years ago. I play the long game, which I learned that from working at a Japanese company.
I'm 32, and the technical lead of a mid-sized research computing / ML team in quasi-academia. I'm the one who tells the boss whether a hire is technically competent, performing up to standard, is meshing well with the team, etc. So I don't make hire/fire decisions myself but have substantial influence on them.
Usually, when we hire people > 30, they are PhDs with a specific specialty, like statistics. But recently we hired a guy from industry in his early 50s to do some programming, web dev, and light ML. He had, obviously a long CV with programming and some practice with ML/statistics, although nothing related to our field. Here are some of the things this guy has done in the ~1 months before and since his hiring:
1. He frequently bullshits in presentations and meetings, pretending to know things he doesn't know.
2. Very shortly after joining, he has recommended we radically rebuild several of our systems in different, "better" ways -- ways which he's familiar with. For example, we have a web app on AWS Ubuntu, and he has repeatedly asked why we can't just run a Windows server.
3. If he doesn't know something, he insists on getting step-by-step tutorials from technical people in the lab, but tutorials in how to do things HIS way. For example, we all use Linux and an SSH client, but he wasted 2 hours of my time asking how to SSH into AWS using PuTTY on Windows, how to copy files using WinSCP, etc, since of course he only uses Windows. He claims he'll learn Linux eventually, but wants to use what he knows "for now", "so that he can more rapidly produce results".
4. The first time I met the guy in person (not immediately due to COVID), he had plopped himself and his laptop down in my desk, without asking, and even readjusted my chair settings, and complained about my office being messy. I'm #2 in seniority...
Any one of these alone would be...annoying, but all together he is almost a caricature of every ageist stereotype in tech. He expects a level of respect he feels is due his experience level, while simultaneously he resists learning anything about the way his new organization does things...presumably because he knows better?
It puts me in an awkward situation because I'm kind of his technical supervisor. If he were a new graduate student, I would tell him to cut out the bullshit, figure things out, and quit wasting my time (and commandeering my desk). Since he is almost twice my age it is too awkward to read him the riot act, though, and I don't really know how to deal with this.
My takeaway is that an older person in a new tech job should really, really avoid displaying arrogance and entitlement. Respect is earned, not given; even if you've spent 30+ years in the field, we whippersnappers don't know how competent you are (or not), until it's demonstrated. I'm not saying you made any of these mistakes, but sometimes it is easy to do some of these things unconsciously. Probably you are perfectly competent, but people like this guy are working against you.
I'd say that's the type of stuff that insecure people do. As a manager (the one that made hire and fire decisions), I saw this type of behavior from folks across the age range. I'd gently suggest that, were you to look around, you'd see others behaving in similar manner; but, for whatever reason, you are noticing it more with this chap.
I remember seeing that attractive folks (of any gender) tended to have these types of behaviors ignored, and "attractive" doesn't just mean someone with whom we want to bump uglies, but also people that satisfy our confirmation bias.
I know that I had to constantly be examining that. I worked in an extremely diverse environment, and managed a lot of folks with a lot of quirks (and brains).
Most societies indoctrinate people to "respect their elders" to varying degrees.
A younger person having authority over an older person is a role reversal many are not equipped to deal with, from either side of that equation.
So it is noticed more.
Further, this elephant in the room has to be acknowledged before either side can move on meaningfully. But you can't "discriminate based on age" or you might end up in court depending on where in the world you are.
Makes it a tricky problem that I am not surprised people just "avoid".
I agree, I'm well aware of the possibility and am trying to combat it the best I can. But @CarbyAu is right, no one trained me in how to deal with this kind of situation and it is just inherently difficult for everyone.
That said, from his side, if I were a member of a $GROUP that had certain negative stereotypes about it, I'd consider it wise for my own personal interests to try to avoid playing directly into the stereotype.
I'm stopping short of making any generalizations, because in my experience the evidence (for me at least) isn't there to make any. Perhaps things are different elsewhere, though. I'm only speaking from my experience, as I suppose we all are.
Just wait until one of "his" solutions fails to perform-- then it's inevitably going to be your fault. Somehow.
He has been in the industry for over three decades and is afraid of a CLI?
Most of that stuff is now water under the bridge. I’m pretty hesitant to get into the industry, in its current state. Not much fun to be had.
I’m already committed to working on a nonprofit, but we’ll see how that develops.
Not only does it cut off any way for you to grow, it makes it hard for companies to hire you over programmers willing to do anything. And I don’t mean that in a bad way but a realistic way - companies hire and want to keep you on but know you’re not going to be interested in any of their projects so the time investment has been wasted.
When I first left my job, I was insecure, and companies could have taken advantage of that.
No more.
To the "Mike" that sent me that wonderful little note:
I replied, then realized that you had used a honeypot email as the address, so I'll post what I wrote here. It would have gone to your email, otherwise. I would like to mention that I stand behind every post I make, and every email I send. I deleted my last anonymous account many moons ago.
> You still sound insecure.
:)
Probably. It's not your problem, though. It's mine. I am constantly working on that.
I will say that it was pretty devastating to get assaulted for my age. It totally rocked my world. I'm definitely still recovering from that, and I am still quite angry about it.
Thanks (really) for taking the time to look at my HN page and sending this. I regularly get attacked by some pretty savage folks (comes from the NPO work I do), so your note doesn't bother me at all.
Heck, maybe we have a lot in common. You know where to reach me. I'm a pretty decent chap.
This is my personal email.
Stay safe.
Can be fun, once you get past the urges to strangle people...
I've linked his eulogy before. He was an interesting chap: http://cmarshall.com/miscellaneous/MikeMarshall.htm
I have been doing a lot of work for mutual aid organizations, and my work has had some tremendous impact. I seem to be able to make a difference, there.
Also, you can look at my SO Story, for a fuller (and longer) picture: https://stackoverflow.com/story/chrismarshall
TL;DR. I stay busy.
Irreverent sumbitch. Not everyone loves me.
You hear responses from younger generations like "Ok Boomer" to their elders' opinions and it is so cringe-worthy.
I don't think everything my parents taught me was perfect or even always correct but there's an irreplaceable amount of wisdom that comes from being alive twice as long.
I’m in my 30s and was taught to have basic respect for others. People think my generation is entitled. Man our generation has another thing coming.
To dismiss ideas outright on age alone is just stupid.
It makes as much sense as asserting that the "Karen" meme is dismissive of women.
That was never the point, was it?
The "ok boomer" meme is dismissive of ideas that are forced onto others based on absurd appeals to authority and in spite of their lack any substance or support or rational basis. We're talking about the type of arguments that boil down to "shut up you little brat I know better than you just because."
The problem I see is that some elders feel that their personal opinions hold some kind of authoritative value over everyone else's in spite of their lack of substance or reasoning or connection with reality just because they were born further in the past.
In fact, the term "OK boomer" originated in elders systematically dismissing and criticizing other people's opinions based on their age. Thus it's quite ironic how that meme is criticized for the very same regrettablr pattern of behavior it criticizes.
https://en.wikipedia.org/wiki/OK_boomer
Being alive for longer doesn't correlate with wisdom or knowledge or insightfulness, and if you have a hard time presenting and defending your point of view with rational arguments and facts that you feel compelled to resort to absurd appeals to authority to force your views onto the world then your attitude itself is the problem.
I question anything I’m told that doesn’t have proof attached, or singular experiences that are then extrapolated to cover an infinite future.
This always comes up in the same places: - Piss poor processes - Refusal to apply updates - Unverifiable decisions that exist for years
There’s a reason people say, “Ok boomer”.
https://www.businessinsider.com/millennials-less-wealth-net-...
Disrespecting elders is a time-honored aspect of nature. Even critters have it (watch puppies and kittens ignoring their parents).
But puppies don't have a worldwide graph of other puppies that establish feedback loops to encourage each other to eat chocolate.
Nonsense. Puppies and kittens are not adults, are they? The "ok boomer" meme originated in people from older demographics criticizing adults in their 20s and 30s based on blanket and entirely baseless assertions that somehow they knew better just because they were born earlier.
If you want to take metaphors out of nature, you can start off by learning how young lions expel older lions from their pride.
https://www.youtube.com/watch?v=uW-_KC5wtXU
Its one thing to show respect to everyone around you, but its an entirely different thing to have members of that community systematically insult and aggravate younger members for absurd reasons and using ridiculous arguments, and still in return expect that that sort of antisocial and downright sociopath behavior should command reverence from the community, specially those who are directly attacked by streams of insults.
My comment on social media applies to many different things; not just ageism.
And, as is being amply demonstrated by thousands of people all over the world, it's not particularly helpful for people that aren't in a certain class, to dismiss the experience of people that are in a class.
I'm not a woman, black, brown, gay, or disabled, so it is not helpful for me to judge whether or not those folks experience difficulty from people that look like me.
I am, however, an older tech worker, and can confirm, from personal experience, that people like me, get a lot of friction; sometimes, from other people like me (It's not just young folks that engage in ageism).
BTW: I grew up in Africa. I'm familiar with the way lions deal with each other; including the practice of new pride leaders killing all the cubs from the previous pride. I think that may also resonate in our industry.
The state and change of culture and technology is quite different.
I consider age like time an illusion. There’s biological considerations but I reject all the age cliches and sayings. Defy labels, limitations, distorted reminders — focus on living.
If I manage to do one useful thing every day, it adds up to a lot of useful things over time. And that has proven to be enough.
There's a sort of mediocre Johnny Cash song with the chorus "Even I might get to Heaven at a half a mile a day"
That's basically how I try to live my life.
Not because I want to take it slowly, but because I have a lot on my plate and my natural tendency is to "unflatten time", fast-forwarding in my head all the different plays and things to do. Some of these will only apply in a year, but here I am thinking about them and worrying about them now. Worse still, I sometime make decisions related to these future things and as you all surely know, decisions are paid for with a mental toll.
So I dial back, focus on the immediate thing in front of me and remember that nearly any progress is made of trivial, tiny chunks.
Having an effective system of writing stuff down is key to that approach - your future ideas and various pending tasks need to spill into writing instead of lingering around your head. When you have a good writing system you can trust, then you can free your mind to focus on the now.
I take great joy in the whiteboard writing itself (probably because I was always much better with keyboards than with pens, it's nice to make up some of that difference now).
Whiteboard real estate is always finite so it's not like you could amass too much junk, as you would digitally. You either need to reset your objectives or, well, go out and complete some of them.
I keep one side of the board filled with tasks, the other side I use as a scratchpad.
Obviously some of the notes I take on the whiteboard get translated into JIRA, emails or whatever, but that's only when other people are involved.
Well, take Johnny Cash. Half a mile a day * 30k days gives 15k miles; maybe it's enough to reach heaven, but not enough to e.g. reach the Moon.
So, when choosing to move steadily albeit slowly, you have to manage your expectations, and get used to get by with little.
Investing your time is not unlike investing your money: least risky strategies bring most stable but least spectacular results, while big bets bring both big gains and big losses.
it's actually an asymmetric. The losses a capped - you cannot lose more than you own, and you cannot lose more than the time you put in (which is, of course, something you're going to lose by living any way). Technically, you also lose the "risk free reward" in opportunity cost - e.g., a minimum wage job.
The gains, however, are unlimited. For both yourself, and for society. So i think it's in the interest of society to make many of these "big bets".
Why would you lose who you are if you merely lost on a big bet (say, as an entrepreneur?)
> there's relationships with family & friends
I think you may be reading too much - you imply that a big bet will always mean sacrificing your friends and family, but i do not believe that to be the case, and in fact, friends and family are what helps you succeed, and including them in your bet is more likely to help.
> there's time, there's opportunities
you are _always_ using up your time, regardless of whether you're using it in a big bet, or merely lazying around. As for opportunities - yes you lose in opportunity cost, but you cannot for sure say anything about what is lost, other than a sure-fire, 100% successful opportunity that you declined. If there's two startups, and you chose one, the other is _not_ the opportunity cost (because both has the same opportunity cost - that of a stable wage job working for a stable, zero risk company).
2) Success changes people. Failure changes people. It also changes how other people look at you. It's not uncommon for people who achieve a certain level of success to make a break with their former lives in some way. Even before success or failure, simply making a big bet then requires a certain amount of focus & drive that can make it difficult, unless you are very careful (and many people are not) to keep your same relationships, to not allow friendships & family connections to lapse. Or let's use something more concrete: many people finance their big bet through family & friends, asking them to make a bet as well. Failure in those cases can be very difficult.
3) You seem to agree with me here: time is always lost, always lost beyond any monetary gain or loss. And it's not just the time lost on the project: Starting from zero means time spent working your way back up. (Perhaps tapping those family & friends for more resources: see above) You only have time for a very small number of big bets. Doing that casually because you believe the potential downside is capped at money is... an incomplete understanding of the risks. If you choose the "big bet" path, it will likely define your life, and what you do day in & day out. And what life is defined purely in monetary terms? None.
So take those risks, all decisions are risks. But consider the costs as well. It's always more than just money.
I think you may be reading too much - you imply that a big bet will always mean sacrificing your friends and family, but i do not believe that to be the case
Not even two months ago, https://www.cnn.com/2020/06/19/business/robinhood-suicide-al...
Those who faced personal bankruptcies in 2007-2008 and were stuck with mortgages that were worth far more than their home values might not agree with you.
only if you did something illegal. You cannot be sued for more than you own in a civil suit.
The only debt you cannot discharge via bankruptcy is student loan debt, iirc.
Plus, of course, there’s no fast road to Heaven - whatever Heaven May mean to you.
But in the scale of each year I’m super productive.
But this is slowly burning me out. The boredom of not doing any real work for 8 hours is soul killing. I do a lot of busy red tape work but it is not intelluctly stimulating.
So now I will do 180 and quit my job in a few months and go indie solo founder route.
Personally, I put my creative energy into my 9 to 5 job. Instead of using evenings to start side hustles or to "get ahead" on work, I unwind and get adequate rest. This is so I can be alert and switched on during my regular work hours.
I've found stretching myself thin starts to affect me quickly, and I feel like I'm actually operating at 50% on a permanent basis.
I recently left management in a large org (where I tried to shelter people like you) and am now back in the startup world. It is refreshing to not be fighting the tide continually.
I'm going to do everything I can to avoid companies that see tech as a cost centre or are super bureaucratic in future. Unfortunately difficult in my mid-sized, non US, city.
https://battlepenguin.com/philosophy/perspective/a-tale-of-t...
Once was backpacking for 11 months with only two bags. The second was 5 months in a car. I did learn a lot both times, but I never got fully independent and it may have set me back some.
Still in retrospect, it was a great journey and I'm still glad I made the attempt.
Another friend I graduated with, still does the RV life. Although they bought a house recently as a home base, but still RV a few months every year. (They're also homeschooling their youngest; oldest went into the military).
I also had a friend who was an English teacher and survived off <500 euro a month in Germany, so even though I had saved up a lot, I've seen people live this way for way less.
There are things that make this kind of lifestyle more challenging for sure (and I'm not about to buy an RV; I do not like driving large vehicles at all), but it's possible if you put your mind to it.
So the plan is build products but also focus on acqui-hire possibilities. If that fails, make sure my resume benefits from my projects. While I am already making pretty decent salary but if all those rumors about FAANG salaries are true, I can double my salary easily. So I can easily recover lost paychecks.
Well that's the idea, who knows how it will play out.
Working night shift sucks and is bad for your mental and physical health and reduces life expectancy.
Yes, your first few jobs in the technology field increase pay greatly over your first few years. Your overall expenses only increase if you decide to get married and have children in this time, but with youth putting that off, it's more common to make a lot of money without massive life changes.
And would your earnings be where they are now if you had a big gap in your twenties where you did a failed startup? (Depends on the experience it gave you, I guess.)
Despite a family, I have more disposable income net of tax now than my gross salary for most of my 20's.
After 32 years it's only 2.5x what I made when I was 21.
I wrote a blog post with a graph describing my income [0].
[0] https://medium.com/@brian.cunnie/software-engineering-income... special "friends" link does not count against Medium's quota
Got any tips?
Know exactly how to get to the hospital when you need to and which have a pediatrician on staff for emergencies.
Start saving for college. Don't worry about fancy clothes as they grow out of everything immediately and nobody cares. Always have spare diapers and sippy cups.
And have cash to pay for convinence.
Don’t buy anything (clothing, Furniture) new except of course toiletries and diapers - that’ll save you 3k or so that you can invest in eating take out. I’m serious ;-)
Uber eats is your go to baby gift to ask for!
Cruise at work as much as possible - avoid getting promoted. Avoid trying to improve things or caring too much. Just do your job well based on what they expect.
Take it in turns to get a good night sleep. The couch will be the 5 star hotel!
Finally it’s hard to do but relax. Don’t read too many baby books you’ll probably learn enough from prenatal classes. Just know the medical stuff, when to go to the doctor etc.
And find time to go out and have fun. Once a month for a couple of drinks should be possible.
If you don’t have much money all this is going to be really hard and I am not sure what to advice there. Get as much help from friends as possible. You might want to move to where they mostly are.
C sections are horrible. Some OBs love em though. So get multiple opinions and decide yourself. Sometimes unavoidable of course but question a planned one. Don’t believe the 6 week recovery driving again bull shit. Be prepared for 6 months of pain.
Finally my pay has increased at the highest rate since having kids. Part of that is software eating the world, mixed with the lack of the luxury to accept low paying but interesting jobs. I’m not coding Haskell, but hey Typescript is still pretty nice!
How do I speed up that compilation though? Eslint + tsc are killing me.
I understand this but most of the time I am excited about that new awesome idea that popped into my head. How do you focus on one thing without getting deviated?
Motivation invariably wanes
Someone who consistently gets just a little better every day is more likely to succeed than someone who works insanely hard for just a limited period of time.
The years don't come without the days.
but someone who works insanely hard for a long time is going to beat the person who gets just a little bit better each day.
The point is, someone who works insanely hard gets to a certain required level quicker than someone who improves a tiny bit every day for a long time. Think cramming for an exam etc.
Agree that someone who "works insanely hard" will advance quicker. However, I disagree that's necessarily the best approach long-term.
When in university, I did something for each of my courses every day. Studied something new, reviewed past materials, solved an assignment. I did it every day. Continuous improvement.
I never had an all-nighter or really crammed for an exam. Yet I got the best marks. It's not because I was an Einstein - it's because I improved on each of the previous 90 days that got me to the required level faster than working insanely hard over a few days.
Continuously improve - do one thing every day. Two if you can. In 90 days, you'll be 90 ways closer to your goal than you were before.
I had other peers in my graduating class in college that went to work at places like Google, Microsoft, and Amazon while I went to do a startup with a few friends, then ended up mostly working as an employee for these other startups. I find it interesting to idly muse about what would have happened to someone who'd joined one of those companies in an entry level engineering role in 2010 and stayed there while having a fairly average career trajectory, say getting to a senior engineer level 5 years in and then plateauing, going from a stock grant size of maybe $50k a year when joining to $150k a year at senior level. Doing some rough estimates based on stock prices over the years, if you'd been in that position at any of these companies and never sold any stock you'd have something like $2.5 million (Google), $4 million (Microsoft) or $6 million (Amazon) in stock today. And of course your base salary and cash bonuses over that time would have been higher than your base salary working for startups.
I don't say this to complain, I'm still doing fine overall and there are a lot of people in the world who work very hard for a lot less. But I also don't feel like I've really accomplished much of any significance. It's pretty mind-blowing to realize that the less risky, more tortoise-like approach to a career would have been so vastly more profitable than what I've experienced at what I would say have been a pretty average selection of startups. And it's not like the startups have been so much more fulfilling, you're still pretty much a cog in the machine as an engineer even at a 30 person company.
In conclusion - working at a startup smaller than, say, series D is a fool's game and a very likely path to one day looking back and feeling like you haven't accomplished anything. Either become a founder to try to build something meaningful from nothing, or just work at a FAANG company as a 9-5 and get your fulfillment elsewhere and/or retire young.
> less risky
Never selling stock is pretty risky. Sure in retrospect there's been a huge bull run in tech which made those stocks go up crazily, but most of the people I know in FAANG recommend selling your RSUs and buying index funds like VTI instead to diversify because who knows?
Isn't this the definition of risk? If it was a foregone conclusion that you'd make more money this way, it wouldn't be risky at all.
That level of concentration risk is extremely ill-advised no matter how promising the company might be. Sure, it works out great when GOOG goes up 200%, but it could have just as easily gone the other way. And even if you want to gamble on it, you don't actually need to work there to make a lot more money than those employees did. Just load up on OOM LEAPs and relax on a beach somewhere until $100mm or more.
A really low risk option would have been to go to work for the Federal government or one of its contractors. Or maybe an established, traditional software firm like Oracle or Bloomberg.
I worked at Yahoo for 3 years. I joined at a very fortunate time, and left at a very fortunate time that let me basically double my options. It wasn't a fortune, but it was a nice extra chunk.
But when I left, one of the guys reporting to me was still under water on the far larger chunk of options he had been granted prior to the dot-com bubble bursting. As far as I know they wouldn't have gotten over water at any point before they expired.
At the time I joined, Yahoo seemed like it was on a solid upwards trajectory. By the time I left you might have started seeing signs but things were still going the right way for a while, and had I not been offered a very interesting job I'd likely have stayed and lost a significant proportion of the value of my options.
The federal government has an annoying habit of preferring contractors for technical work, both because it's easier than directly paying people what they're worth and because it allows them to claim that the government is smaller than it actually is. Nonetheless, there are pockets of good technical jobs: CIA DS&T; NSA (RF, signals analysis, cryptanalysis); DHS (CISA). You won't be laid off, and there's lots of interesting and useful work; but even if you don't want to go contractor you're likely to run away from the HR departments that seem to view their job as preventing everyone else from doing theirs or the lack of external training opportunities, and at least in the intelligence community agencies are as headquarters-centric as Google and Facebook were ten years ago.
The risk of contracting can vary wildly. Some contracts have a new prime every five years; some go fifty years or more without a changeover. There are definitely contractors and contracts that are low risk, but in general the same rules apply as in SV: stability is being able to find another job, not a guarantee of continuing the same one.
[1]: In the MIT sense.
[2]: Spoiler: if you have a high enough GPA to convince Bloomberg that you'd be a good tool, you can get into a T14 law school.
I worked there for almost 5 years and that was not my experience at all.
Or, is there any article/post you may have written already?
Are you being colloquial?
Being a millionaire by 40 (in 7 years or less) is quite likely for anyone with the talent to launch a startup, by working at a regular big conpany.
Launching a startup lowers those odds by quite a bit (but increases the small chance of being a manymillionaire).
It takes a lot of stress out of day to day living and you can really plan a future. All while being able to continue work you enjoy or switch careers into something maybe isn’t as profitable but brings different enjoyment.
But you're making it in such an extreme way that it makes you sound completely disconnected from reality. I can want a nicer house. I don't have to have the blueprints for that to be a dream that exists.
So I guess I'm just curious to see why people want to put themselves in that position. To me, a nice house and a happy spouse just doesn't inspire me to walk around wearing a massive target on my back y'know? To me, "1 million dollars" just sounds like "a whole lot of Trouble", especially for those who are not good with the legalities of trusts, estates, etc.
As Cher once said: "I've been rich and I've been poor. Rich is better."
Being poor doesn't make the people around you automatically trustworthy. Trust is a chronic challenge in the world. It's not somehow unique to wealthy individuals.
Though you do have a point about "especially for those not good with the legalities of trusts, etc." Most people who win the lottery have their lives ruined by it and end up bankrupt.
But it matters how you get there. If you build a business, you also build business contacts, etc. You end up knowing lawyers and the like because you had need of them along the way to getting rich, unlike someone with a winning lottery ticket. It generally seems to go better.
But if you have a humble mind, are a bit frugal, and build something that not only you but the ones you live can enjoy, having a solid base of wealth is really lovely.
Poignantly, my wife and I co-founded a startup which was acquired by a company who subsequently went public. We built our house (the first we ever owned, actually!) by selling shares after the IPO.
Is it likely? No. Is it impossible, or somehow out of reach? Absolutely not.
Fast forward to today and that did not happen. The startup is no more, but mainly due to burnout. We made money and did well, but not well enough. I never made my millions, but did have a substantial aqui-hire opportunity that I turned down that would have almost gotten me there.
Once that part of my life played out, I decided to make a 180 turn... I'm not working to exhaustion anymore and take a tortoise approach to my career. I've found that as long as I'm consistent and have my eye on my goals, it doesn't matter how hard I work outside of my day job. I just need to be consistent and take advantage of bursts of motivation.
I've accomplished a surprising amount with this approach. I'm not stressed, I have the best quality of life that I've ever had and work is generally fun. This is what my goal should have been from the beginning.