20-35: Find and build your skills/industries/networks and start to align that into a career. Don't be afraid to make mistakes to enhance learning.
35-50: Double down on the skills you have in the industry you know, build your personal brand, achieve your career goals.
50-65++: Give back to those earlier in their career, pay it forward, pass the torch etc.
With that framing in mind, mid career would be at least 15 years. I think what is interesting is most people underestimate how long their career is.
ps - I think the above notion is loosely based on a book I probably didn't read completely 
Mind you, maybe there's just less of them because access to education and work in tech has improved so much over time?
"Personal brand" is just another way of saying "personality, but online."
It is the nature of intelligence itself to distill and compress complex, messy stimulus/data/phenomena into shorthand. One must recognize that this is what people do when interacting with oneself, both f2f and online.
This is especially important now, given that digitally intermediated interactions will dominate the landscape for the duration of the epidemic.
People have all kinds of built-in ways of modulating their personality for f2f interactions. It is essential that they translate these to digital space.
But if whatever this term should be were a horse, it left the barn ridden by "personal brand" a long time ago.
I don't discount the success of terminological improvement movements- for pronouns, most notably- but a compelling story about disadvantage -> solution -> improvement to create an alternative remains to be told, at least from my perspective.
"Persona" is not the solution. It's creepy, imprecise, and unownable. It needs to be able to become a term of art.
"Profile" also unusable, is taken for dating.
"Avatar" I think is successful, but incomplete.
Part of the problem is that the "branding" platforms are themselves universally awful, both in being hard to use, and in failing to elevate their users. It is never more clear that one is working for the machine than when one is configuring one's "profile" in LinkedIn.
It definitely seems like there is room to create a successful professional platform, with a named product- like "Highlights"- and that term could take over for "personal brand."
If you have thoughts about it, please do it! We need it!
Unless you are exceptionally, unpredictably right place/right time lucky- I cannot emphasize how exceptional and unpredictable this is, and how much it depends on right place/right time and not on any unique attributes you possess- you will need to Earn for all of your adult life.
In order to do so you will also need to Learn for all of your adult life, in cycles that are far, far tighter than 15 years.
And you will benefit from Returning as soon as you are able. Even tracing and documenting your Beginner Mindset journey will be helpful for others.
I think it is fair in the context of the OP as a mid 20's developer, but agree wholeheartedly that it doesn't need to be applied with specific ages in mind, but rather more broadly across an adult life.
Likewise, if your resume experience is a "no", they're not going to visit GitHub to change their minds.
Where it starts to matter is if your resume is a "maybe" on first read. If they're not quite sure if your experience is what they're looking for, they might make an effort to probe around your GitHub profile for extra information. Having even a few good commits easily accessible on GitHub can be enough to tip the scales to "yes" and move candidates on to the next stage in the interview.
> I don't think I would want to work somewhere that expects a married with kids mid-level engineer to spend their weekends and nights contributing to open source, just to land their next job.
It's a mistake to think that's it's mandatory. I've never met a real-world hiring manager who thinks that GitHub profiles are a requirement for good candidates.
Likewise, it's a mistake when people delay their job search or applications to build up a portfolio of side projects first. Realistically, most companies are never going to check your GitHub profile in the first place.
This is, in my personal experience, a sad truth.
I've been seriously looking for work for the past 6 months (thank you, Covid-19, for your disruption) and I'm surprised by the number of times I've started a phone interview with questions like: "tell me about your skills" ... has the interviewer not looked at my CV with its link to GitHub and various live projects I've done?
Yes I know engineers and interviewers are busy people with real jobs and deadlines and stuff. But I've been on that side of the table too. I've conducted plenty of interviews, online and face-to-face. Not researching the candidate before you talk to them or meet them ... that's just discourteous (in my view). Even 15 mins spent checking out the links they've supplied can give the interviewer a feel for the candidate's potential strengths and weaknesses and help the interviewer personalise the "standard" questions to better fit the candidates experiences.
Interviewing is an unpleasant task for everyone. Making the experience even a little less unpleasant can help everyone make better hiring choices at the end of the day.
When I'm trying to fill a req I will usually get hundreds or thousands of applications, which get winnowed down to a dozen or so by the HR department, or system, or something. All of those applications have resumes that looks reasonable, so I have to whittle the stack down further to 3 or 4 prime candidates. Usually, on paper, any one of those applications look like they could perform the tasks assigned.
What I need to find out in the interview is if the applicant would fit the team, not if they could perform the task. The way you answer, they way you interact, the way you look up or look down when you're trying to recall how you solved a particular problem (phone interviews are crap, we've had good video conferencing for a decade or more), these are things I base my judgement on. These are mostly intangibles and if you've gotten as far as an interview with the hiring manager but fail to get an offer, don't assume you're not good enough. The manager might know the team are a nursery of primadonna asshats that manage to produce above average but some normie not as far up the spectrum would just quit in a week if they were thrown into that pen. It's happened.
Believe me, if you put a github account on your CV I've checked it. Also, if you haven't added one, you CV goes to the bottom of the pile. Now, tell me about what you've done.
I try consciously not to let that influence my decisions, but I'm human. I notice most of the teams I've worked on look and talk a lot like me.
Are you talking about NLP here?
No one ever looks at anyone’s Github, that’s the dirty little secret of hiring. A decade ago having a Github account was a weak-to-medium strength signal. Nowadays pretty much everyone has one and most are filled with junk (I’m sure yours isn’t but no one has the time to pore over it). You would be much better off saying “I contributed features X and Y to well-known Open Source product Z” where Z is something from the job spec.
As an interviewer, I'd hope the applicant has done similar work. If they haven't - or give me a stock response - I'd want to spend a couple of minutes probing their response with questions about how they used those skills in their portfolio work.
Asking about the skills they've developed while building their portfolio work as a first question generally (my personal view) helps break the ice, engage us both in the conversation and make for a happier rest-of-the-interview experience.
Especially in this market, unless you are, you’re not a special snowflake. You need them a lot more than they need you. Why would you expect them to put in any level of work pre interview?
My last two jobs where I was coming in because they needed my set of skills and I had three offers on the table and probably would have had at least one more of I had waited, yeah the company I worked for spent as much time selling me as I did them. They made sure that they moved fast and made an offer (less than two weeks from application to offer).
But, I’ve applied for my first role at a $BigTech. I started the process near the end of April. I had my first technical interview last week and the next rounds are probably not for two weeks. Who knows how long it will take them to make a decision. I would never have accepted that turn around at smaller companies. But $BigTech doesn’t need me to rescue a failing project or process like my last two companies.
In all of those cases having a real provable thing they can anchor their decision on is a big win.
Anything in a resume can be suspect. Every time you describe something awesome you did at a previous job, there is “another side” - for example you built this microservice that scales this problematic thing and everyone was happy, but after you left there is not enough docs and now people are struggling to maintain it. Or you were great at code review and everyone really appreciated your input, but it turns out they were shy and didn’t tell it to your face, but complained about you behind your back.
Anyway open source work is a very clear way for someone evaluating you to have a concrete data point. It might not be accurate, but the interviewer will often perceive it as such. The old “a bird in the hand is worth two in the bush” kind of mentality.
But its more than that. People usually make it as a ”will this achieve my goals” kind of thing. You don’t do open source _just_ so you’ll get an additional interview. You do OS because you’re helping the global human understanding, you’re becoming a better, more helpful and knowledgeable dev, and because it’s your passion.
And if you are those things, it’s a great sign for the interviewer that you can be a good fit for almost any dev position.
If you have some good content, then make sure you don't waste it. Some hints here:
- If you have a main project that you have contributed to, make sure to point it out. Don't make me search for it amongst a hundred abandoned projects.
-If you are not the only (or even the main) contributor on a project at this point, make sure to point out what you did work on so I can find it.
- If you have some small experiments that you are proud of, point them out to me and tell me why you are proud of it. Personally, I love things like this. For less experienced people, if it's "I did a tutorial and modified it a bit.", tell me that. But you really have to explain why that's important to you. How did it change your outlook on things?
- If you have blog posts, show me, but point out one or two that you think are relevant for the position you are applying for. I'm impressed by a hundred blog posts, but I'm not going to read them all. I will read (um... skim... sorry) one or two, though.
- The more engaging the presentation of your projects, the more likely I am to spend time looking through it. The more time I spend looking through your projects, the more likely you are to get an interview (with cushy questions about your projects!) I'm stupid. I don't understand sunk cost fallacy :-) If you intrigue me and I spend time on you, I will secretly be hoping that you pass the interview.
Disclaimer: I'm a contractor now. I haven't done any serious interviewing for about 5 years.
Who knows? Every company wants something different and most of them seem reluctant to provide that information up front, inexplicably. Maybe lead with “we expect to go over some of your code with you” or “we’ll be doing 2 hours of whiteboarding, but nothing above leetcode easy” or whatever. Every interview (outside certain major companies which are quite up-front about what they want) is a mystery until they spring it on you. Wish they’d fucking settle on one thing. Let’s all do open-source (would mean everyone would have to stop forbidding it, of course) or even all do leetcode. The guessing game interviews and scattershot prep requirements are draining and a waste of everyone’s time.
Add that to different personality requirements. Most want extroverts during the interview process but introverted after hired.
From another perspective, that's a pretty apt description of a whole class of programming jobs. Maybe it's an accidental/unintended test for a thing that really matters...
The hurdle for introverts is usually that they feel anxiety (some of which is normal for a job interview!) and may not come across as well as they would in a more comfortable setting.
I have never hired anyone, but anecdotally from a team lead dev who has hired a couple dozen people, that is the exact kind of thing they want to avoid.
If someone was a "star" working 90 hours a week in the past but now wants to work 40, they stop being the kind of "star" some companies want.
If coding consumes your paid and free time, you're generally not cranking out new CRUD features requested by the marketing team. You're doing pet projects, learning new languages, or getting lost in bikeshedding, like writing a new JS framework because you think the current list sucks.
That means your workaholic employee is burning out on things that don't help your company, and their actual paid work is probably a distraction from what they really want to be doing.
By contrast, someone experienced with a family and/or hobbies working 40h will often do their work well and have ways to detox from work problems before getting started again the next morning.
A lot of that is my anecdata, but hiring people who want work/life balance is working so well that those are the only devs I have (14 at the moment).
Just about the only way I have seen people work this much and not be overly tired drag was when significant bulk of time was spent socializing and playing around. Otherwise said, it was not actually work, but it was clocked in as work.
And at this point, there is enough evidence that crunch is productive for few weeks and then productivity fails.
You would be surprised at what your mind can do if you want it to. I made the jump to tech from academia because while I was ready to do that insane work ethic I wasn't convinced that academia as it is today was worth it.
Turns out I can't just switch off this style of working though, and hence I end up working harder than I should. I'm not wasting my time though.
What I have observed though is when engineers who are in their twenties just Naturally go into an insane work ethic without mentoring on focus and time management typically waste their time. But it is possible to be 2-3x more efficient by increasing the hours you put in as long as you are smart about it. Many of the smartest people in the world do. Of course this should be a personal choice. 90 hours is a bit much though. 80 is probably the sustainable maximum for any normal human.
Not according to research. I know that academia features long hours. I never heard of academia as an example of efficiency through. Game industry is another hours high occupation (and the studies about crunch are from there).
Also, having kids after 40 is not exactly advisable for women. You are getting into risk category health vise.
People who work 80 hours a week and have children simply have spouse who does all childcare related work and career sacrifice (if they had career).
I'm not advocating it to anyone who hates this. I just want to say that I didn't mind it, I liked it as long as I was working on exciting things, and so did my professors and most other professors that I knew for that matter. My professors didn't have burnout or mental breakdowns, I didnt. Some of my labmates did though, and they quit.
I do not condone how my professors did things, they were abusive for sure. But that was fairly independent of the work ethic if you ask me. Most biology labs that went on to produce Nobel laureates or path breaking vaccines are similar.
Also please go revisit your literature on women having kids after 40. It's not nearly as bad as you might think it is.
How would you know?
I was too, from the age of 16 to about 26. Burnout doesn't always happen quickly.
In my case, I was able to work 80-100 hrs/wk for months at a time. Eventually I realized that my one-dimensional life wasn't getting any more work done.
Your brain needs to recharge, which can mean sleep, daydreaming, paying attention to the drone of exercise, socializing, watching TV, or any number of things.
Fascinating. I think it was this early belief in the 90s and then the dotcom boom had the superstars and then the next wave had the next superstars and it shifted. Now it's shifted back. Wonder what shifted it.
Well, to my people out there, do not fret: there are still places to work where you work with other obsessives, there are still people who look for that in each other, and after 20 years of messing with computers I can tell you it is still joyful. You can do what you love and make a lot of money doing it. And in these places no one will judge you for loving the thing you work on so much you do it for fun as well.
I believe there are obsessive coders who will have lots of money/fun. Some will be valuable to their employers. No company should only look for these coders, which is the policy I was originally trying to refute.
It's much, much easier to find productive 40 hr coders than productive 80 hr coders. The ones coding for 80 hrs are often perfectionists, or they believe they're immune to burnout.
You yourself seem to believe that loving something enough means you can avoid burnout. You can't.
Burnout is part of our physiology. If you lose even small amounts of sleep for long periods of time, your performance falls off a cliff. What's worse is that you don't know you're not at your best.
Look at pro gamers. They love games enough to play them all day, every day, but they still suffer at the end of a long session.
I find the complaining of most engineers incoherent. Until March or so, more than at any point in time, being a competent software engineer opened doors at thousands of companies. I expect we'll be back there within two years tops.
When you are looking for a job, ask the person you're talking to what expectations are. Ask the hiring manager how he or she defines success for the role. Ask every employee you speak to how much they work. You'll get your answer. Pick your employer accordingly.
ps -- at my 40-ish person startup, eng rarely work more than 45h/week. And we have plenty of parents. We do however make comparatively boring software sold to enterprises, and have trouble hiring in part because of that (imo).
Most of the people I've interviewed and seen hired had not made any open-source contributions, and if they had side projects they didn't mention them.
I didn't notice him because of the project, I wouldn't have ignored him without the project but the repo gave me enough info to know he was capable. If he hadn't already done that, then we'd just have to go through some demonstration of programming ability.
It's been a few months and I'm ready to call this a win.
But in some cases we’ve certainly become more interested in a candidate because we were impressed with something on their GitHub profile.
2) Proven programming ability, almost always measured with tests
Companies all in the Netherlands in the last ~8 years, from smaller to international.
BTW, almost nobody clicks on links in your CV.
It's not a filter in and of itself, but almost all of your other experience will be proprietary and closed, and you can at best talk in generalities about problems you've solved. You can't evidence half of it.
Open source projects allow someone who's umming and ahhing to have something concrete to see whether or not you're selling them donuts. Certainly isn't a requirement though.
This is a festering rot in the core of the dev hiring process. Too many applications have a required field for your side projects before you've even gotten past the first page. The fact that this is being pushed by someone and enabled by some portion of devs is dangerous.
Here him talking about leaving philosophy:
Edit: LinkedIn ~agrees with this estimate
As the age of retirement is currently ~67 (depends on the country but unlikely to go down in the future) and we assume you start your career after college in your early 20s - let's say 22 - you get ~45 years of work.
Let's say the above is closer to a maximum than an average & "generously" go with a round 40 years of work; Then mid-career would be in your 40s.
It could go: early career is first 5 years. Mid-career is the next 30 years. Late-career is anything after 35 years
There's no real definition of these terms so who knows
Also, if I may add, it's heavily influenced by "production" of programmers (it's really not that old of a job, 40 years ago not that many programmers were graduating from university, compared with 10years ago). Also in the case of my country it's heavily influenced by emigration (basically everybody older than me who could emigrate, did; I'm one of the first generations where it made _some_ sense to stay in the country if you were a programmer).
I definitely agree that programmers tend to skew young. But both in my current & previous companies I've worked with plenty "old" programmers - 32 is definitely not retirement age, as it is in baseball. But yes, I also admitted that many tend to move to management, too.
You can also find older established companies that prefer someone with 10+ years experience in their specific industry.
There is also the issue of company hierarchy. After 10 years of experience do you want to be the lowest person within the company hierarchy. Does a company want someone with 15 years experience being told what to do by a manager with 7 years experience?
A more reasonable comparison is how old the tooling is between industries. The rate of change in the web front end world is vastly faster than C, so having someone with 20 years of experience in each means very different things across industries.
It seems that everybody in management feels more "comfortable" hiring subordinates that are younger than themselves (perhaps because age/experience is a threat to their implied authority), so the younger the CEO is on average, the younger the other C level execs will be, etc. all the way down to the bottom ranks.
Here are some examples:
- if I ask you to tell me a story about cool work you'd done, and the most recent story you can come up with is from 14 years ago, I'm going to ask you come up with a more recent example
- if you try to sell me on your 20 years of experience, I'm going to ask you what someone with 20 years of experience can do that someone with 5 years can't do
- if you've worked on an older technology for N years and want me to hire you for a modern web development job, trying to selling on how you can learn it is not going to convince me that you want to do it, so when I ask you to show me something you made in something that people actually use these days, I need to see more than a badge you earned on Codecademy
- When you try to apply for a development job, I expect you to be a developer now, so if you look like you've been a manager for 10 years, and I ask when the last time you wrote code was, last night is a better answer than last decade
- If you want a premium salary, you need premium skills
In this case, early 30s would be mid career.
I guess it depends for everyone, and yes lots of people prefer to go into management, but it's not compulsory by any means.
Not sure if its cultural/genetic to feel like that or what.
Yes, there's the small "problem" that unlike an assistant, the manager also gets to decide your compensation... but you don't want to be working for managers that look for yes-men. There's no winning in that position, those kind of persons are seldom competent and will only drag you down; better find out sooner than later, and move out.
44, write code every day and don't intend to stop any time soon.
Assuming he goes to university or somewhere. Because most people find it boring he should have chosen history, latin, or simply other humanities subjects. How does one even jump from tech to humanities anyways???
when you're the type of person who likes to question everything and who wants to build things to make the world a "better place", then switching to humanities with a tech foundation is a good option. It can be very dangerous though. One is at risk of undoing all the previous conditioning (which costed a lot of time and money) and bring oneself to realize that it takes more than just "an idea for an app", or VC funding to actually contribute to society in a lasting and non-fraudulent way. It also might anger your colleagues who will never admit that they've been conned, drank too much of the corporate/academic kool-aid, and besides nobody likes people swimming against the stream especially when the reward isn't monetary and has even got high potential of working against you in the short term financially. How dare those damn fools who want to be better engineers and also better humans by widening their world-view!
A big part of the rest is empty talk. It's easy to say that we value eg teachers or nurses or janitors. Doesn't make us pay them more.
Artists have far more sex than programmers do. It’s called natural selection.
No, not in the case of humanities (or almost any other field) in academia.
The problem with his first career choice, philosophy, is that jobs are incredibly scarce. It's not that they pay too low and no one wants to work as an academic. There are simply far too many candidates for not enough slots.
Are you sure about that? Perhaps society doesn't value them much? (I know I don't. The humanities make for great and fulfilling hobbies, sure. Doesn't mean we need to pay people for their hobbies.)
Well, you don't have to pay anyone for their hobbies.
The salaries for full professors in the humanities (or even STEM fields) can be anywhere from pathetic to half-decent. But that's not why people pursue a career as a professor. These are smart folks, they realize that the chances are slim for staying indefinitely in academia. Many try and many fail. They often to move on to other fields, just like physics and mathematics graduates. It's OK.
There are much more successful economic systems around than the US one.
America oddities like government mortgage guarantees, or federal deposit insurance, or licensing for interior designers are not necessary, and in fact not good for the economy. Neither are pervasive price controls.
The US would do better, if they moved to a more market based economy.
I mean general range of human experiments in how to structure society: monarchy, feudalism, religious state, empire, full socialism/communism, fascism, etc...
Giving federalism a serious try might be interesting. So that you actually have 50 different governments in the US to fuel experiments.
Why would that be impossible or shocking? Most people are able to learn multiple different things and have interest in multiple different things.
Universities typically allow you to take courses from different topics too.
But in America I don't think you can do that, some families don't have the privilege to spend so much money on somebody to get a bachelor in philosophy and then have no jobs afterwards.
I'm several years younger, but a staff-level hardware engineer at a second tier company (top tier being FAANG). I've had an incredibly difficult time jumping companies --- 2 years and counting. Despite being twice promoted since graduating with my PhD, most recently this past review cycle, I have yet to get past the first interview stage* with a top tier company, even with close friends at those companies referring me. It's quite frustrating and I wish I knew what the successful candidates had that I didn't.
* Note that for hardware engineering, the initial interview is a meet-and-greet with a technical question or two, so more laid back
For all the criticism hacker news gives whiteboard algorithm interviews, those at least are testing performance under pressure for a skill related to the job. Arrogance is a bigger problem in interviews. What comes off as confidence in an interview might come off as asshole at work.
What kind of companies are these that their engineers need to write perfect code under severe (i.e. on the order of minutes) time constraints? Are they constantly opening sockets for Jack Bauer?
The only whiteboard questions I find useful as an interviewer are the super-easy ones that weed out the bozos who have somehow slipped through the initial filter. Things like "can you write a SQL join".
What I find most predictive are conversations with candidates about how they evaluate tradeoffs, approach system design, what do you do when you get stuck? Typically if they can pass the bozo filters and talk cluefully about these things, they will likely be a productive coder on straightforward applications. Which is most applications; many companies vastly overestimate the inherent complexity of their products.
I, oddly, had to do that once in my career although I had an hour or so. Retail advertising, Cyber Monday, data pipeline is backing up severely, advertising budgets aren't updating, only other data person I can reach is drunk. Bottlenecking code is written in perl. I don't know perl. And no real testing environment. Very stressful hour of my life.
edit: Of course, such things happening often enough to note are generally a symptom of bad process and management, probably a lot of technical debt as well. So generally a workplace to avoid.
Whiteboard interviews aren't even real life situations.
If the previous two plumbers I'd hired had turned out not to know how to connect tubes... yeah, I might.
I understand the core idea of your comment, regarding the utility of whiteboard interviews to assess skill. Irrespective, vetting is a part of many skilled jobs. The difference in the analogy and software being whether a centralised institution (Licensing body) or each company does that vetting.
That’s true but it’s also true that a candidate may have had previous jobs at a string of reputable companies, and yet that “vetting” is completely ignored and it’s back to square one.
Not to mention that a degree from a reputable university also doesn’t count. Maybe it gets them past the HR screen but no interviewers seem to believe that a degree let’s you skip the whiteboard.
Felt like a waste to “vet” then, as the signal that they were a good candidate was already there.
On the other hand, getting a CS degree showed the need for additional vetting, in my experience. I saw many students who hadn’t really learned to code, and only a handful of students learned to write industry-level code.
But, really you just want honest answers and most would understand that (as most can relate to your situation). As an interviewer, I'd be more than happy to explain if anyone asked me. But, now that I think of it, I don't believe anyone ever has.
Have you asked your close friends or your coworkers about this?
That said, he did a pretty good job highlighting his experience, which is far more important than a fancy resume. In my most recent job search, I had 4 interviews, and for three of them, the interviewers were holding printouts of my LinkedIn profile, not my meticulously edited and formatted PDF resume. Good thing I gave my LinkedIn profile the same treatment!
Regarding your own opportunities, there's nothing like experience, though hardware seems to generally require more years than software.
My resume was definitely good enough to be pass the HR screening at Google/Amazon/Microsoft (as they did get selected locally), and yet the ones that I heard back from and agreed to give me a phone screen numbered in single digits (about 8 - Uber, Stripe and a few more). I was also in the high-skilled category and wouldn't have a problem getting the respective visas. And I did not clear for even 1 onsite. It's just that the competition is just greater these days.
How was your PhD experience, do you think it has helped your career considering the opportunity cost?
So it's not a big moneymaker. But it's certainly not the biggest financial hit you can take in life; having children will cost you a lot more and loads of people do that.
If you look at lifetime salary surveys, you'll find people with doctoral degrees earn more - and some people will say even if a PhD doesn't boost your salary on the day of graduation, your salary will rise faster and higher than your peers. But that could easily be confounded by the fact you've got to have good grades, or ambition towards fancy titles, in order to get a PhD.
There are exceptions, of course; if you want to become a professional academic, if you target a job at a company's research division and choose your research accordingly, or if moves you into a new immigration status. There's no doubt the likes of Chris Urmson and Anthony Levandowski made a lot of money on the back of their PhDs.
If you can ask your friends in top tier companies to give you a practice interview and give you feedback, I highly recommend it.
The author looks 20 years old.
It's not what they had, it's what they didn't... unless you're going heavy into research, I would recommend NOT getting the PhD until you hit 45+.
Software's different because you can hire-fast & fire-fast. Unless you have broken processes and incompetent people surrounding the new hire, you can easily determine if they're good enough. Hack, it's even worth it to hire 2 devs for everyone you need and fire the worst performing one in a few months (flip a coin if they're pretty equal and can't afford them both).
Easier to get fired, easier to get hired. Churn and less from your employer giving a f about your career development. Every industry has its patterns.
Actually, imo the worst thing you can do as a software tech-lead is to structure your processes and projects so that hire-fast-fire-fast is no longer viable, do things so that your software is more like hardware - this is a sure way to inevitably kill the company/department you work for while "doing good work"...
That is awful. Don't mess with other people's lives just because you can't make a decision.
You're a bit of a piece of shit, aren't you? Playing with people's lives like you're a god.
What annoyed me about that slide was the comparison to a pro sports team, which shows how the "ultra-elite" Netflix lacks the critical thinking to see that this comparison doesn't hold.
For one, performance in a pro sports team is quantifiable. So-and-so player scored so many points vs so many tries, whereas the average is so and so. It's relatively easy to plot a normal distribution.
Not quite so easy for software developers. Companies like to say they can measure performance but we all know they can't. Not easy to compare someone who got lucky and worked on greenfield projects with someone who drew the short straw to maintain some legacy code. If the latter struggles, does this say anything about the former? Can you predict the performance had the roles been reversed? No.
So it always falls back to a mix of "how much does your manager likes you" and "how well you can argue you performed". Or if you're at Google then you can add "how well you chose and optimized metrics", regardless of whether you're measuring the right thing.
- Rare programmers won’t identify themselves as such.
- Most great companies hire for humility as a trait.
It's also worth pointing out that the cover letter mentioning "rare programmer" ultimately led to an interview and an offer according to the author.
For your standard experienced “enterprise dev” in most major US cities outside of the west coast and NYC, pre-Covid the demand was so high and so few experience developers come on the market, you could usually find a job in less than a month depending on if you were looking for the “right job” or the “right now” job. That’s been my experience since 2000 with the exception of the years between 2008-2010.
Of course that’s if you do enough resume driven development and have a strong network of former coworkers and local recruiters.
What happens if great companies do not hire for humility as a trait?
Is it truly as simple as: too many unkind people get into the company?
Or could one be more cynical and say: it's easier to not have humble people negotiate tough salaries?
Or is it something completely different?
I honestly don't know and have no reference.
From the definition that I read, could as easily mean having a mindset of that whatever you know now is something one should be grateful for, and you don't always need to push yourself so hard.
Anyways, thanks for pointing that out. I find it much easier to think in terms of growth mindset and a real eagerness to learn.
 : freedom from pride or arrogance : the quality or state of being humble
accepted the honor with humility
The ordeal taught her humility.
But I can see how it could be read
It doesn't work with a thin resume.
Throwaway because it could turn into multiple thousands if that fact is linked to my identity.
I don't generally apply for highly competitive jobs, nor ones which I'm am not clearly qualified for. My strategy is normally to find jobs that are looking for candidates with a specific skillset and focus on that. Recently this has been AWS/Cloud development skills.
I think some people are not so reserved and conservative. They either want to break into a specific field for which they are currently under-qualified (like data science), or just apply for jobs that have a significant number of excellent candidates in the application pool.
Interviewer proceeds to imply the other 99 are morons. Some of them are, but all are unlucky.
And that was primarily with blind online applications.
If you would like a hand or just want someone to read over your resume and see, my email is email@example.com. Would be happy to help.
Local positions depending on the match can be 8 / 10.
Remote roles in other countries. Indeed 1 in 25. Stackoverflow 1 in 100. Angelist 2 in 10 (best 10) then 1 in 25.
For reference, I have also been internally referred in multiple companies including 3 FAANG style companies. Absolutely crickets on that front.
What woke me up was when I got rejected after the recruiter call with SurveyMonkey. That was whenI realized my pre-pandemic /recession attitude wouldn't hold any more and I had to show interest / motivation / better prepared at every stage and not just when the tech rounds rolled around.
Since then I have been able to make progress with the few callbacks that I am getting now.
Hope that helps.
I think it was 55 resumes- 11 contact made/ tech exams - 21 rejections - 6 interviews - 1 offer. (about 40 days)
I am bad at technical interviews, but I got better the more I did them.
Keep at it! You can do this! :)
That said, going through recruiters alone should give you decently high interview rates. Assuming you have some experience and so on. If it's not then your resume needs work. For whatever reason, hiring manager look at it and don't want to talk to you further.
A few more are:
a) They cold call you in a way which makes it obvious they don't respect your schedule.
b) They just want to shoe horn you into a role, get the commission and keep moving.
c) Some third party recruiters get offended when I tell them that I am also trying to get interviews on my own without them or through other third party recruiters.
d) I have a sneaking suspicion that third party recruiters are paid if the candidate stays for 3 months. So if things were not to go perfect in the first few months then the company might be more inclined to fire you to save the commission.
I don't work with 3rd party recruiters anymore.
After I apply to a few companies, I can easily reuse resumes with little to no modifications. The goal is to hit as many job requirements in the job description as I have experience for without overwhelming the recruiters and hiring manager with irrelevant information.
I only submit cover letters if they are required, or if I have a unique connection that I can bring up (e.g., having met the hiring manager at a recent meetup).
I use to think that a well crafted custom cover letter totally gives me a leg up on the competition. But recently, I've been gettin lazy and not sending cover letters and I still get responses. Go figure.
The notion of a cover letter is pretty outdated for most jobs. The people still teaching their use are firmly rooted in the age of sending unsolicited job applications via mail that will be screened by a human.
(that's around the same level of Matt Cutts Current Job)
What if you dont have any JS experience, but have say several years working on .NET and Java. Removing that experience makes it looks like you're an entry level candidate, when in reality theres actually a decent amount of transferable skill between the tech in question and if you have enough informal experience with Node (through personal projects, etc.) you should have little issue switching.
Also, I should have been more clear. I don't erase everything about a past experience if it's a different technology. Here are a couple hypothetical examples to help clarify. In this first version of a resume snippet, the applicant should be applying for a Java position since it's filled with terms that make sense to the Java community:
> Software Enginer at XXX Company
> * I led the design and implementation of XXX Company's internal payment processing service which processes $YYY million USD in annual revenue. The project used Java, Spring, Hibernate, and MySQL.
> * Introduced testing (JUnit and Mockito) into the engineering culture by leading brown bag talks. Increased unit test coverage on critical company projects from 0% to 73% over 2 years.
> * Used JNI to integrate critical path code with XXX Company's proprietary hardware driver, increasing average performance by 8x.
Here is a snippet representing the same experience, but catered toward a Node.js position. References to enterprise Java are removed, and the last bullet is replaced with a more relevant bullet:
> * I led the design and implementation of XXX Company's internal payment processing service which processes $YYY million USD in annual revenue.
> * Introduced testing into the engineering culture by leading brown bag talks. Increased unit test coverage on critical company projects from 0% to 73% over 2 years.
> * During XXX Company's annual hackathon, I implemented and presented a functional prototype service to present payment information in real-time using WebSockets.
Edit: I meant to add that I am also happy to review your resume and provide feedback, too. Contact in profile.
If you're looking for advice, it really depends on where you are in your career.
- college OCR postings
- a recruiting firm run by people i personally know (specializing in smaller startups)
- companies that ex-co-workers work at
- FAANG recruiters that reached out via LinkedIn
- personalized emails from in-house recruiters or hiring managers
So, in all these cases, I'm already connected with someone who is incentivized to get me hired, and I start off with a recruiter screen or initial technical screen, depending on the company. And then from there, it's up to your own skills at interviewing (which are slightly correlated with your skills as an engineer).
If I was just randomly dropping resumes everywhere, no way I would ever even make it to that first screening call. You need to be paired with someone who's going to handhold your resume through the whole process until you are either hired or bomb your interview.
Each resume and cover letter needs to be customized for each company. It needs to fulfil each of the roles and demonstrate compelling evidence (projects) of how you meet the requirements.
It's amazingly clear if the resume is not written for a specific job and will most likely be immediately discarded from consideration. So why bother sending all of them then?
More time on less applications leads to more interviews
please use PINEAPPLE in subject line so I can find you easily.
For me, every job after my first one (15 years ago) has been via reaching out to the people I have worked with before. Do you have people you have worked with who are at new places?
Assuming mid-career is actually mid-career and not the ageist SV type of mid-career.
If I am in my 40s and I am still making ~300-400k a year, then I would consider that a good deal.
Being permanently "stuck" making the insanely high salaries of engineers at top tech companies is still a really good gig.
What's safe from being Ubered out of existence?
Uberizing an industry.
I've seen comments like yours a few times, and don't think I really have a useful reference frame to fully understand what people mean by it. I'd appreciate any insight you (or anyone else that cares to chime in) might have on it.
So mid career would be something like 40-50 in my eyes: about 15 years from finishing school and 15 years from retiring.
I think I also did 16 companies or so but being exposed to them took longer than before.
In the past I've also gone through 16 companies in one month through one recruiter before, fielded one or two offers and landed a job.
I think this took 6 months. 3 months of trying for the wrong higher position, and then the final 3 months getting serious about leetcode.
Regarding the article, I would say there isn't much to say about coding challenges, except be ready for them at all interviews now. The article mentions that it is a good test if the company can afford false negatives, which doesn't explain ANY of the startups. The signaling at all the companies is arbitrary but especially startups.
I'm just taking a cooldown period so that all the recruiters stop passing my old/current resume around (there are also SO MANY new non-tech opportunities during COVID19 war), with regard to tech I'm going to redo all my resumes to show less experience instead of trying to hit top of market in startup salaries and big tech comp packages. I get callbacks pretty instantly, which was reassuring but something about me wasn't hitting like it used to, even after I was solving the leetcode easy problems in 5 minutes.
Also, for senior positions, I would expect candidates to not only clear most leetcode interviews, but to also have some insight from their experience. I expect them to be opinionated about areas of their experience, and have demonstrable success to back up their opinions. Only then can they come and lead and mentor a team of more junior contributors. A general guide line is, as a senior engineer, I would have hoped to have heard some insightful ideas or learned something from you in the course of your interview.
If you are clearning leetcode problems fairly easily, I wouldn't attribute it to a crowded market and "visa holders" being even better at leetcode (I don't even know what that means, do you think they go to better schools or something?)
Of course I'm fairly certain it is something about me thats the problem - this round. I don't know what that is, the recruiters don't know what that is, the feedback looks just like bad luck as I've had wildly disparate results that weren't really only rejections, no different than the blogger in the article wrote.
Next round my solution is to come across as less impressive to lower the expectation and just join a team.
No, I don't think visa holders are inherently better and especially not all, it is not insensitive to acknowledge greater selective pressures from the countries they came from due to pure numbers alone, as well as desire to stay within this country in the short time period they have to find a sponsor if they get laid off. This can result in greater motivation to study more and faster, and you can see this corroborated by the self-certified number of leetcode problems people say they do. The mere presence of these motivations from some unknown number of people, distorts the market. Not really that hard or fantastic to say that.
I also said I was only clearing Leetcode easy problems easily. Which is a caliber that sometimes comes up in some interviews, with nothing harder presented. With harder in different interviews I was just starting to make the 30 min mark and other bars. It still sucks if you realize your first solution isn't good that there is no time to double back.
I got this in my last phone screen at tier 2-3 shop
and yes, I got good at the easy problems, which would be all that appears in some interviews. In other interviews I could tell or got feedback that I was close to the bar, which is about 30 minutes.
Or if I had an opportunity to finish a harder question later after the interview, I could tell that writing a working solution would have still taken me MUCH longer.
Dynamic programming, for the problem I linked.
Oh maybe I am having bad luck
I got hit with another DP/Hard ,
at company called ' The Trade Desk' , which i believe is no where near Tier 1/2 tech companies. Exhaustive graph search ins't an acceptable solution.
I don't think I could do it confidently with someone looking over my shoulder, clock ticking, and $200k in sitting in a suitcase.
what what the time complexity of your solution? I failed the interview cos n^m soln wasn't accepted. he said hes looking for logarithmic soln.
Also it says the length of the array is under 1000, so such an optimization is unnecessary.
The point though is that I probably couldn't do the basic solution with a gun to my head, much less an optimized one. One whiff of struggle and I'd panic and it'd be over at that point. I get very good reviews on my work under normal conditions.
Expecting an optimized, "original" work in a watched/timed environment is ridiculous imho. Interviewer is clueless and destined for failure.
I'll keep this link however. Next time a poor interviewer comes to me with similar I'll first state, I don't do 'swordfish' problems. If they insist, I'll challenge them to this one first. :D
def splitArray(self, nums: List[int], m: int) -> int:
currentSum = 0
minSoFar = float("inf")
for i in range(pos,len(nums)):
if count !=1:
next = minSum(i+1,count-1)
maxSplit = max(currentSum,next)
minSoFar = min(minSoFar,maxSplit)
return currentSum if count ==1 else minSoFar
If we view the purpose of a resume as getting an interview, then that's how we should evaluate changing them. By my reading Matt scored an interview 4 out of 6 times, a 66 percent success rate. Assuming the rest are the control, that leaves 10 applications and 3 interviews -- 30 percent!
That's pretty great really, but we have to wonder, did Matt randomly choose which companies got the experimental treatment, or were certain companies 'too risky' to try something new with? Or did he try to match up his application style to the companies somehow?
The most common reason why these mid career people have stopped developing at work appears to be that they are well experienced while their peers are not. I suspect that instead of a nurturing environment where talent is developed the mid career people just sit there, because it only take one junior to be offended at not being prized with attention/praise to ruin any sort of mentoring experience.
Everyone's different, but I used to spend a lot of my free time in the evenings and weekends hacking on side projects, learning the odd new tool or language, etc.
Now I spend them wiping vomit off my back, cleaning crap off of underwear, reading bedtime stories, singing songs, and making crafts. The side project time has gone down a lot.
However, it means I might be less competitive than others as time goes on.
>  I actually did also apply to 3 product manager positions. None of them panned out. Made it to an interview stage at one company, and I thought it went quite well. Apparently, it didn’t go well enough. I’m glad. I’m happy where I wound up.
He “also applied to 3 PM roles”
Meaning primary job applications not for PM
1. A good (and well-known) school. MIT, Stanford, CMU, UW, Waterloo, you get the picture.
2. A good (and well-known) employer. FAANGs in particular. Ideally as an FTE but internships are good signals here too.
3. To be known for something you've done. Well-used open source project, well-known blog, that sort of thing.
(1) and (2) fall into the category of "social proof"  and whether you like it or not, social proof can take you pretty far in life. Like in my case, it didn't take that long from working at Google to getting cold-called almost constantly (and I guarantee you there's nothing special about my situation).
My own job seeking experience (pre-Google) tends to be pretty similar to the numbers in this post (applications to interviews to offers). For those of you sending out hundreds of applications let me offer you some advice because I see a lot of people making easy-to-fix mistakes.
Hiring is a popular topic on HN and you see the same comments. There are always people who call a hiring pipeline a failure because a good candidate got rejected. This is the wrong way to approach this. The process is asymmetric.
A candidate is trying to get through each stage of the pipeline and get hired by somebody. Ideally they want multiple offers to boost the offer they end up accepting. "Success" is accepting an offer.
Below a certain size, a company wants to fill a role. It'll have N applications and the pipeline is designed to have filters along the way to winnow down that number to fill the role. "Success" is filling that role with someone sufficiently good. They don't have to be the best. Technical skills matter but usually only to a point. You have to bear in mind that you are a cog that needs to fit into an existing machine. Each step of the process gets increasingly time-consuming so the more you can weed out at the earlier stages while still filling the role, the better.
Large companies are similar except you don't tend to be interviewing for a particular role. There is a constant hiring pipeline. Recruiting may well be a separate org. You can use this to your advantage.
So, let's make up some numbers for our waterfall:
- Recruiting receives 100 applications
- The 20 best get sent to a hiring manager
- They may well eliminate half for various reasons passing on 10 to one of their engineers
- That engineer may well filter out half too meaning 5 will get called
- 3 of those will get interviews
- 1 will get an offer, another will be the backup
Like I said, completely made up but still instructive. And I'd say it wouldn't be too far off the mark for a mid-sized company.
The first thing is you need to get through a company's recruiting/HR filter. Well they look at the requisition ("req") they have and try and see if the application seems to fit the criteria and I really do mean seems to. This is what I call the buzzword filter. Anecdote: I once had a conversation with a recruiter who said--and I'm not making this up--"I can see you have 6 years of Java experience but do you have any J2SE experience?"
Some of it isn't buzzword related. Like if the req calls for leading a team, they'll look to see if you've led a team in the past. Depending on the company, the seniority of the position and so forth, factors like your school and previous jobs may come into play. Length of employment is a factor here.
So how do we approach this to pass this filter? Well we need to cater our resume to the job posting and see how it fills the criteria. We need to have sufficient buzzwords but not too many and not any we can't back up. This may hurt us later. Then again, it's completely valid to try and pass through early stages and deal with that problem later.
One point to consider is that the half the applications the hiring manager may never see. To be fair, a lot of job applications are garbage. My numbers are actually pretty generous. I've had people tell me that 90% of applications can be immediately rejected.
The hiring manager will have their own criteria and biases. They're trying to judge if you're someone who will fit on the team. Here lots of short jobs can hurt. There are cultural factors too eg in the UK I found having contracting on your CV would really hurt you for full-time roles (this was years ago; I can't speak for the current conditions).
Basically the hiring manager is looking for red flags.
The engineer will typically be looking for technical suitability. It's from this point onwards that various (ideally cheap) negative filters are used to try and reduce the numbers further.
And this is what a whiteboard coding test should be: a relatively easy problem just to see if you're not an idiot. FizzBuzz is easy for a reason. Engineers fall into the trap of thinking the problem needs to be hard. This actually reduces the effectiveness of the signal as you've turned a useful negative filter into a crap shoot of whether or not you know the "trick". For example, I had whiteboard coding problem once to reverse bits. Turns out (I found out later) this can be done in O(log n). I had never had need for such a trick so didn't know it. So what did that test accomplish exactly? Bit-fiddling is applicable to certain classes of programming, just not any I had and (more importantly) not the one I was interviewing for.
An early stage startup may simply be the hiring manager responding to emailed applications and they'll hire the first suitably qualified candidate they find because they really don't want to be doing this. A larger company may filter everyone through and then pick the "best" to extend an offer to.
So when you apply for a position, I would encourage you to think about what process that company has for hiring and treating it as a waterfall that you need to get through. Find out what you can about their hiring process. If you can't find out, make up something that seems reasonable given the type of company they are and their size.
The most important step for your application is to make it through the first 1-2 filters as those tend to be pretty dumb. Your CV needs to stand out from a hundred others in some way. A known school or employer is a good one. Absent that, allowing them to see some evidence that you can communicate in written form and/or actually code is a big plus.
Also, education is wildly localized. Turns out SV doesn’t care about anyone except those from UCB and Stanford (big emphasis on Stanford). Same with UW. Outside of Seattle, no one even knows about it. (I should know - I went there)
Maybe prestigious colleges are more well regarded outside of the Bay Area - at least here, everyone and their mother went to an Ivy League or similar.
UW is a great school. UW is what most people should realistically aspire to (as that caliber of school). It's upper-middle-class; it will most likely give you a great education and a great life.
UW is not Stanford/MIT/Harvard/etc. though. Those are not upper-middle-class schools; those are upper-upper-class schools. And it's not really the quality of education content either, at least if we're talking about average outcomes (but at the margins, ~2+ standard deviations away from the mean, it's no contest).
If anything, this should signal that SV has gone too far and the labor market is acting irrationally by competing so much for educational branding. However, just like the old adage says, the market can remain irrational longer than you can remain solvent.
4) Have a wide range of items on your resume.
I have found that having experience as an engineer in Fortune 500 companies, startups, working at the only dev, level 3 support, building dev ops, joining a big team, owning back end services, reworking a database, etc. has given me credibility for most positions. Everyone knows you won’t immediately fit in perfectly to any role, but if you have demonstrated an aptitude to learn and adapt, you’re likely good enough for their role.
Same thing if a candidate has too many short tenures on his/her CV. If I get a candidate that has five or more short (<12 months) stints at different companies I will not invite him/her (or at least ask for clarification in the phone screen) because it hints at a general problem. There are surprisingly many candidates that call themselves programmers but really can't program at all (or only at a very basic level), still they often manage to land positions as programmers, which they eventually get fired from (or leave) when it becomes clear they can't do the job (and some companies take a long time to come to this conclusion). A long string of short tenures is one indication of such a person, so be wary of putting too many short tenure work experiences on your resume, except if you're a freelancer of course.
I say this in jest, but that isn't the most replicable path. For someone who didn't go to MIT and is mid-career, should one just throw in the towel and give up on the industry?
Generally programmers working at those companies don't know about or don't care about HN.
This has always been the case for humanity, that typically people who do challenging, high salary work come from wealthier families with access to better resources, including better social signaling resources to enable them to stand out from the pack.
It's just part of the game; if you want to play at the top without being born into it, you have a long way to climb, and you are competing against everyone else in your position. You have to either meet the filtering criteria, or find a way to stand out from the crowd.
Btw, you don't need to create an OSS project from scratch. You could also get visibility by making important contributions to an existing one.
Pretty much, yes.
That said, I think your 3 recommendations lean more to a "how to play the interview game on easy mode" than every developer should to do this. I feel like I may be exaggerating your intent a little, but it did read a little like "Go to MIT, work at Google, write a famous blog" :)
Branded CV is something I could see coming from someone fresh out of high school that is working off poor advice they've been given and to try and make up for the fact they basically have zero experience to show, but for someone with experience I'd expect that experience to speak for them instead of their word processor skills, and if that experience is not good enough then the branding wouldn't save it (unless you happen to be interviewing for designing print documents?).
That's a big part of the difficulty of job hunting and hiring. Whatever advice you try to implement is a terrible idea for some subset of opportunities/people.