Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What huge mistake did you make early in your career?
303 points by jamestimmins on June 19, 2021 | hide | past | favorite | 476 comments
We’ve all been there — a seemingly huge mistake as an intern or Junior developer that you were sure would get you fired. What’s your story?

Mine: I nearly took down production by joining multiple large tables on non-indexed columns. Every time a product was updated on the site, MySQL would run my query and join across millions of records.

Infrastructure folks couldn’t figure out why the DB servers kept rubbing out of memory, and I very nervously made the fix. Thankfully the team was understanding (and appreciated that the person reviewing my code had messed up), but it was a terrible day.




My biggest mistake, that I made again and again, was not leaving a job when it was time. I thought I had something to prove, but there was never any point to it. You don't owe anything to an employer. You can't prove anything to an employer. They have absolutely no loyalty to you, and care less than nothing about what is right or wrong, wise or foolish.

So: If you ever think things might not turn out as well as you hoped, move on. There is so much else going on in the world that is at least as interesting as what you are doing, where you have a much better chance of making a difference, that spending time on things that you might not end up proud of is a terrible waste of your short time on Earth.


Every time I've left a job, I've been uncertain and conflicted. every. time. Then, after being in the new job for a short while, I thought, "wow! I should have done this sooner!"

Related, I remember a friend telling me a story. It wasn't so much about leaving, but how to leave.

She was in a job that was just a mess. Finally one day during a spectacle of mismanagement, she just quit in disgust. She said it was a mistake. If she could have done it again, she would have just shut up, quietly gotten a job, and quit in a stable, predictable way.


I was inexperienced and moved from one job to another and it was absolutely AWFUL. I feel like I got fed a load of bullshit that I believed and left within 2 months. The first place I worked was great, and the second and third place I worked were churn and burn code monkey houses that were absolutely awful. My fourth software job was (is) great, though, and better than the first one.


Yep, never ever quit with a list of what you did not like. You gain nothing from it.


I don't know about this one. Sometimes it's important to take a principled stand. I was at a stocks company for all of two weeks, hired by a former friend. The very first day I was told not to email the security team directly and that all my emails from then on must be approved by my team lead. Within a week, I was told to lie to the security team. I spent most of those two weeks either in meetings or as a glorified page.

I really felt abused, devalued, and a tool for the shitty ethics of the corporation. So one day I pull my team lead and the other lead into a Zoom meet and unload and quit. I get myself on LinkedIn, canvas a few available jobs and within two weeks get a new job. In the interviews I made it crystal clear that I valued transparency and that I would not be forced to lie to anyone. Turns out that's one of their cultural pillars (transparency is an entire slide in their slide deck).

I have a manager I can honestly engage with. He knows what happened at the last company and he values that I spoke up.

These principled stands are not for nothing. We have to be able to believe in our own ability to have a social impact, however small. Shutting up and inoffensively walking away just buttresses shitty people (or shitty corporations, which are just egregores that have been hijacked by shitty people).


To attempt to reach synthesis, I would say it could be valuable as a therapeutic exercise for yourself. However, my own experience is that choosing to vote with your feet doesn't really effect change that often. I've done it twice and while it felt good, life just kind of went on at the places I left behind.

The remaining people/mgmt will either do nothing, see it as a squeaky wheel thankfully now being gone, or maybe even add "we need to do something about attrition" to quarterly goals but not actually change anything meaningful.

So even if you get past the "oh they were just disgruntled" justifications, I find that companies are more likely to add ping pong, beer fridays, or even bump compensation before significantly trying to change the culture.


This is not good advice for most people. You should always leave on good terms regardless of how much you hate a job. As an employee you often don’t know the constraints or risks of a project so you can’t make a firm judgement on ethics or transparency. It’s a small world and you’ll likely run into former colleagues again or rely on them for a reference (even without your knowledge). Under game theory there is no advantage with being a being a difficult leaver.


It's our duty to our fellow human beings to construct a world we all want to live in. That can sometimes mean pushing back on bad behavior when it occurs. The only way we get a world that respects human dignity and values honesty is by holding each other accountable for our actions.

Game theory has no ethical compass. I can't think of a worse instrument to apply to human society.


I appreciate this advice, and generally agree, but game theory doesn't take externalities into account. If your employer is particularly toxic and hiding it, a noisy exit might bring extra scrutiny that could help other people who stay with the organization, though maybe not. Plus, sometimes the previous employer makes leaving on good terms impossible, like if your employer is being criminally investigated for tax fraud.


Telling the uncomfortable truth plainly is a reward, a grace to someone. Why would give this favour to a bad employer? Don't lie but let them sort out why you (and other valuable people) left. Find a friend to vent to.


Because that's not compassion. The mercies we offer are chances for redemption. My team lead was young and inexperienced. I hope, with wisdom, he learns that telling the truth maximizes good outcomes.


Sure, that's a nice thing to share with people. But im not sure you should give such favour to a (bad) company.


Exactly - it's a judgment call.

When the compassion & effort of providing the info looks like it may possibly have a good effect, and is likely to be reasonably safe (e.g., minimal retribution/fallout effects, and is delivered with kindness - it can be good for all.

But one should first consider the consequences. Sometimes it really is best to just get away while the getting away is good.


You also don't know who your boss knows or who you'll run into again. Burning bridges is satisfying but I'm sure I was turned down for at least one job based on the circumstances under which I left. Even though it was all supposed to be confidential.


That's really hard to do, but I agree. It's a bit like, "Don't tweet about some controversial topic when you're angry and drunk".

I do make that list. Alongside the negatives I include positives. If I decide to resign, then the list has served is primary purpose. There is no sense burning bridges or trying to trying to change everyone's priorities to your priorities.

Similar to the list, is the exit interview. One of my regrets is that I gave that list verbally in a rant to a HR member during my exit interview. (Not ranting at the HR person - I was very polite and made it clear that my comments were about my team's management). But I still regret it. You never know who is going to read it, take offence and encounter you later in your career. War stories are for the pub.


Why was it a mistake? What happened?


She put herself in a position where she didn't have a job, and the jobhunt and interview process had a pay-rent-and-feed-myself urgency.


Counterpoint: I consistently leave jobs too early when I could have instead stuck around and made larger impacts during restructurings or just sat around and done nothing and gotten paid. Would I be better programmer? Who knows ¯\_(ツ)_/¯ But would I have gotten paid and had a more intact career? Certainly.


As long as you hung around long enough to figure out how to work with difficult people, and learn how your design decisions and code actually run in production (ie: you got to fix your own bugs) then you probably didn't miss much. I worked with one person who had an impressive string of senior roles at big companies, but my personal experience was that they implemented a dumpster fire using the latest hot new thing, and quit after it blew up production a few times.


What do you mean by having an "intact career"? Did leaving too early harm your career, and if yes, how so?


Depends on the company you’re interviewing with and (IME) region you’re looking for work. In my 26 years since graduating university, I’ve had 13 jobs. So an average of 1.8 years per job. My longest was 6 years at Amazon (ironically enough considering they have such a high turnover) and my shortest was 3 weeks (I knew during the interview it wasn’t a good fit, but I was young and they threw a stupid amount of money at me).

Where I am now (Seattle area), it isn’t really seen as a that big of a red flag. I always had good reasons for leaving. Other than 2, I’ve tried to never burn bridges intentionally and was even a rebound employee at 1 place (never tell HR during your exit interview what you really think of them).

I grew up in the South and moved back there for a brief period of time. It was very hard to find work down there because they called me a “job hopper” (which I was/am). I was asked several times “You’re going to give me a year and then be gone. Why should I hire you?”. Never had a good answer when I was in my 30s. Now that I’m in my 40s, I have a pretty good one.

That’s been my experience. I’m at a place now where I can see myself staying for awhile. I’m not curing cancer or doing machine learning or scaling things to gagillion requests per second. But I like the people, like my boss, and the problems are meaty enough to engage me during the day, but not so complicate that I work on them in my off hours.


> (never tell HR during your exit interview what you really think of them).

I'll offer a corollary: have already said everything you think before you quit. That way, there is nothing else to say during the exit interview anyway.

There are two reasons for saying what you think while you're still employed:

1. How will anything improve unless you voice your concerns? (Not saying they will when you do, just that they definitely won't when you don't.)

2. You are paid to think and then communicate your thoughts. If they only wanted your body, they could have bought a robot -- no, they're paying money for your brain too. Give it to them.


I agree with you. I generally don’t hold anything back in my 1:1, skip level 1:1, etc. But if you’ve communicated effectively, it makes no difference to rehash it to HR on the way out the door. HR, usually, doesn’t care.

And I’ve left positions where the company pivoted, and I didn’t agree with the pivot. Told the powers that be, but the pivot was done. No reason to dredge it up again.


> “You’re going to give me a year and then be gone. Why should I hire you?”. Never had a good answer when I was in my 30s. Now that I’m in my 40s, I have a pretty good one.

What's the answer?


As someone who has a number of short stints on his resume, I usually go with, "There's a big difference between ten years of experience, and one year of experience repeated ten times. I have experience with a wide variety of frameworks and architectures. I've done real work in both front-end and back-end codebases. I've worked in Windows environments and Linux environments. I've even done some DBA work. I can bring knowledge of a wide variety of best practices to bear on any problem that I'll encounter at this current role."

The other thing I've found is that the companies that make a really big deal about "job hopping" and "employee loyalty" aren't really ones that you want to work for anyway. They're paranoid about employee loyalty for a reason, and rather than look at their own management to see why employees are leaving after short stints at that firm, they blame the employees, usually with some absurd generalizations about "millenials" or "gen z".


That doesn't answer the question at all. You were asked "how do I know you won't leave in a short time frame?" and you answered the completely different question "what benefit (to you) have you got from having lots of jobs?". If anything, it suggests you view leaving companies after a short time as a positive thing you'd want to do again.

By the way, I don't agree that if a company would like employees that tend to stick around then that indicates some sort if weird cult-like behaviour. It's more like a recognition that productivity naturally is lower in the months after someone joins than after they've been there for a year or two. Choosing people that are able to stick at a job for a few years is just a sensible business decision. Admittedly it does have social benefits too i.e. there's a better work environment for everyone if you get to know other people over a period of time (in spite of some HN commenters' views that we're all robots that shouldn't care about interactions with coworkers). But, in my view, even that is reasonable justification.


Keep in mind that the answer was not written by the OP of that comment.


You can also mention how companies encourage disloyalty by paying new starters significantly more than existing employees. I’ve seen great people working hard towards a promotion, putting in the hours, playing everything right - only to be passed over for a promotion due to management politics and a boss that was looking out more for herself than her team. Meanwhile, another employee simply just left and walked into another job with a £25k pay increase. As long as companies continue to be myopic with regards to salaries, it incentivises people to jump ship every couple of years.


Probably better off responding more along the lines of:

I bring a wide array of industry experience, that you'll benefit from. I'm hoping for a longer term engagement, but even if it's a shorter one, I typically leave them better than I found them.

In your own words, ofcourse.

P.S. I suspect your statement will get you rejected from companies that know they have the same problem but can't fix it. If you don't need a job, be as honest as you want, if you do, you're better off going with the positive spin.


Yup, this. We took temporary pay cuts last year, which was more or less understandable, business was down. But I did a couple of interview rounds and got offers that were 15-20% above my pre-cut salary. And people were shocked that I was leaving.


To be fair: the company might not have a need for the skill level which allows for a drastic pay increase.


Usually say it with more tact, but it is along the lines of - “Yes. I’m a professional new guy. I’ve seen and worked on a lot of different types of technology, and I come up to speed quickly. I’m not afraid to ask ‘dumb’ questions when I can’t find what I’m looking for.”

Something along those lines. I lean into it. But as I said, it doesn’t come up too often in the PNW.


I mean, that’s cool, but you haven’t actually adressed the problem, which is that I’ll spend 3 months training you, only to have you quit after 9 more. That’s not really a good investment


His point is that it will only take a month to get him up to speed, not 3.

But I agree that a better answer would probably be something along the lines of "I have so much experience that I deliver in a year what the average guy would give you in 5; and if you're good to me, I might well stick around as much as I did at X", or something along those lines.


If he's getting hired, it's obviously good enough.


Depends on how often they’re hired versus not.


How about “I leave subpar companies quickly and stay in great companies like Amazon for many years”?


"You're gonna have a good year"


GP here, responding directly. I've been told by a ycombinator company that they want to see 2+ years at an engineering heavy company. I also just regret not making more conventional career choices that you don't have to struggle to explain during interviews. Far easier if you have an unbroken line of employment. But alas.


hahaha, so true. But now a days having a career that is more than 3 years is considered weird !


It depends hugely on job location market company and myriad other circumstances. Again, HN average experience is not necessarily worldwide average experience :).


> They have absolutely no loyalty to you, and care less than nothing about what is right or wrong, wise or foolish.

This is why one should choose opportunity over loyalty -- have no loyalty to location or corporation. Be an absolute opportunist, doing whatever is best for future in the current situation, unbound by the past.


> My biggest mistake, that I made again and again, was not leaving a job when it was time

This.

My OH's currently moving jobs and we have been discussing how overdue this move is. Somehow once you make the decision to leave it brings all the blur of past injustices/lunacy* into proper focus.

The last time I left somewhere, after a fairly long relationship, they went into insolvency proceedings within a year**

* For my OH's move: her old lot couldn't even get the announcement of her departure right - it was announced by accident by a senior manager on a conference call, two weeks before she'd even seen, never mind signed the new contract, or given notice ... <rolls eyes>

** not my fault, honest


I made this mistake once in my first proper job. It took me 2.5 years to leave a place where I was really unhappy.

So, move on from bad jobs, move on from meh jobs, and be quick about it. Eventually you'll find somewhere you enjoy and you can stick around for a while.


This. Your working career is actually pretty short - for many of us in tech each year is at least 2 percent of your total working life. And hit 40 and it might be 5 percent a year. Do you really want to waste 5 percent of your working life/opportunities/salary doing a job you hate?


I can only second it so many times!! I can't say i made SO many mistakes in my career, but i have left my then utterly dead-end first job too late, in 2007 while things were abundantly clear about it by 2005 already and i wasted two extremely frustrating years trying to keep it afloat. Lives of everyone who stayed were ever more destroyed than mine was.

I was young, and was making more than literally every single person i knew, i bought an apartment in a year in cash. I thought it was once-in-a-lifetime job which will never happen to me again.


I agree, but just a note: it doesn't do your career any good to hop a lot. I won't hire someone that looks flaky. If you find yourself at a bad job, sure, move on. But work on sussing out the good from the bad so you don't put yourself in a bad situation repeatedly.


Last I checked, nearly everyone in tech hops jobs frequently. In fact that’s common advice for comp advancement. In my personal experience that advice holds true, even though I change jobs much less frequently than most of my peers (which means my comp tends to lag behind theirs).


In my experience, it is hard to tell the difference between someone who killed it at a job for 1 year and moved on from someone who couldn't hack it and moved on. Promotion at a company signifies that they were well received and able to adapt and meet milestones. Same job title in and out reads to me to believe that they couldn't hack it and were no goes development opportunity.

IMHO, a promotion before you leave confer s legitamacy to your tenure.


What if there are no promotions to be had? My longest tenure at any one company was 8 years and I never got promoted because it was all remote and I was technically an independent contractor. No one got promoted.


I am not saying it is a perfect system, but that would a red flag for a full time employee.


I've refused to hire people who job-hopped every year or two.

With a record like that, there's zero reason to expect they're going to stick around. Why invest in bringing them up to speed if they're just going to leave?


Use this One Weird Trick to keep employees: pay them money.

With the exception of my current gig, my early career was hopping non-stop. My shortest stint was literally 4 days, my average was probably about 1 year. Each time, pretty simple, you look at the paltry 2-4% increase being offered by your current employer versus the 20%+ increase from hopping literally anywhere else, and, well, you surely see why people hop ship all the time.

Your "investment" means very, very little when it's not backed by the thing that actually matters (the money).


Exactly. I'm happy where I am but I've currently got companies willing to increase my salary by 2-3x if I leave my current employer. I'm totally going to use that as leverage in negotiations for a raise. I'm due for one.


But that really only helps low pay was the reason for hopping. The comment that sparked this discussion talks about a bad environment etc. as a reason for hopping. Wads of cash won't help retain an employee that's obviously bad at judging whether they'll be a good fit at an employer.


Just to point out. At my current workplace I got a huge pay increase only in one situation. „When I said I quit”..

Employer runs a business and will do w/e is best for him money wise. If ppl want to work for 50% what they are worth - employer will alow it (bad employer).

Ppl tend to quit such places because they see no options to advance.

Employers rarely learn from such cases. For me its the issue of poor middle management not managing career of pupils correctly.


Because maybe they’re just looking for the right environment, and maybe you’re it. Hiring is like dating, after all. This reads instead like an egregious case of the fundamental attribution error, and one that’d I’d view as quite the blunder by my management team, since the real consequence is limiting our access to the talent pool.

Even aside from the FAE, this kind of attitude also systematically reinforces structural discrimination within an industry, since candidates from unusual or unprivileged backgrounds are less likely to have been offered major career opportunities, or been obliged to juggle many life priorities along the way, and thereby more likely to have taken whatever they could get, or could realistically manage. Yet these can be some of the most interesting hires, thanks to their diverse/alternative perspectives, and may also be top-tier outliers when it comes to resilience, self-management, and self-directed learning.

It’s also a failure of values since there’s an underlying assumption that people are interchangeable widgets, which is both false and dehumanising.

For my own account, I hopped a lot in my early career before finding places where I felt I could belong and stay for years, and this pattern has repeated. So you’d likely have taken a pass on me whilst I went on to become senior this and principal that elsewhere, en route to starting my own firm. Go figure.


> Hiring is like dating, after all.

Past behavior is a pretty good predictor of future behavior. If you're dating someone whose previous 3 spouses died in mysterious kiln explosions, I'd stay away from the ceramics factory.


Well I think that’s an absurd and extreme example, so the reductio ad absurdum is self-limiting, since serial killers are, hopefully, not the common case.

How about this analogy instead, being more in the realm of the applicable and commonplace: I broke up with many girlfriends, and had many short- and medium-term partners, before meeting my wife of over a decade now, who continues to knock my socks off to this day.

In practice, past performance is not a guide to future outcomes. How many times have we heard this caveat applied, in far more predictable markets than hiring and/or dating? Past performance of employment candidates is a subjective and observational assessment; relying upon it (especially in a negative framing) is to invite not only ones own biases to take center stage, but also those of others; see earlier point re. reinforcement of structural discrimination.

At most, someone’s past successes qualify them for my interview shortlist, but there are many other green flags besides, and I’ll save my type 2 errors for the back half of the hiring funnel, after assessing someone’s potential.


I'm not the person you're responding to, but I'm fairly certain that this was one of those so-called "jokes" you may have heard of.


Perhaps, but jokes can convey meaning, and I think this was the case.

[Dying is easy / Comedy is hard]


Man, I love Hyperion.


> whose previous 3 spouses died

Employment is not marriage.

Hiring someone who has hopped jobs 3 times is more like dating someone who has dated 3 other people before you.


And considering that, someone who has only held long stints at previous jobs probably gets a red flag for not being desirable enough to more companies or just plain lack of curiosity.


> Because maybe they’re just looking for the right environment, and maybe you’re it.

Maybe, but they obviously also have a track record of being a poor judge of environment, since they got it wrong so often.

> It’s also a failure of values since there’s an underlying assumption that people are interchangeable widgets, which is both false and dehumanising.

Well, job hopping (in my experience) often signals that the candidate thinks of employers as interchangeable widgets, which is just as false and dehumanizing. Employers are but a group of other humans. It's a different kind of interpersonal relationship than between friends or family, sure, but it's still just as much an interpersonal relationship.

That said, sometimes things aren't what they seem, as you say. It becomes a question of judging the risk and the reward.

As a tool, there's also the interview, where one is supposed to try to figure this sort of stuff out.

----

Note that I'm not saying you should stay at a crappy job. In fact, I came in here to post specifically that my biggest mistake may have been staying at a crappy job for too long. (May have because you never know -- maybe that's what made me value a good job so much.)

I'm just saying that despite agreeing with most of your comment, when I'm making the hiring decision of someone, I will read the implied "cannot pick an employer they fit with" in a job hoppers resume. I will try to work past that bias, but candidates are rarely able to defend that very well. What they say usually ends up being a roundabout way of saying "so far I've not been very good at picking an employer I fit with."

And that is going to weigh into the decision.


If someone says:

> "so far I've not been very good at picking an employer I fit with"

then the only inference one can draw, is that they're bad at self-promotion, since there are zillions of ways to present the same kind of facts with a more positive spin. My view is that marketing instincts are not super relevant except when hiring directly for the sales/marketing function, and speaking as someone who is absolutely terrible at marketing, you can even make CEO without it.

> but they obviously also have a track record of being a poor judge of environment, since they got it wrong so often.

I recommend reviewing an article (even the wikipedia entry will do) on the Fundamental Attribution Error, because this statement is a perfect illustration of the FAE. That is, there's nothing intrinsically obvious about track records, and in particular, assuming negatives such as this, is a great way to miss out on great people.

As I've said elsewhere, I suggest biasing a hiring funnel for Type 1 errors early on, and Type 2 errors later.

> employers as interchangeable widgets, which is just as false and dehumanizing

Well, no, employers are, for the most part, companies, so they're not humans; that's certainly distinct from bosses, of course; but nevertheless, the power gradient between employer and employee is steep, sometimes incredibly so, which is why the overwhelming majority of industrial relations law is essentially protecting the individual from employer abuses.

To look at that another way: it's much more impactful on someone's quality of life for them to seek a new boss, than it is for a boss to seek a new staff member. I've never appreciated the fiction of "we're like a family", a paper-thin deception that doesn't survive past one bad earnings quarter, and I don't inflict it on my own crew.

Curiously, one of the goals of much collective bargaining is to make employees and employers nigh-on interchangeable via standardized agreements. Corollary: the unions of today would make Adam Smith proud.


This comment grew way too long. Tl;Dr: I agree with most of what you say. However, I think employment is way too complex a multi-way relationship to be considered interchangeable by any party. By that I mean it's possible to do so, but at a great cost of productivity for all involved.

That means employers shouldn't instinctively fire employees in any situation; first, they should make a reasonable effort at fixing the issue while retaining the employee. (Be it through training, changing their role, whatever it might be.) Anything else is a great hidden cost of productivity.

It also doesn't mean employees shouldn't leave bad jobs -- it just means they should make a reasonable effort at "changing their employer" as someone put it. If that fails, quitting is necessary, but also that is at a great hidden cost in the complexities of employment.

----

> then the only inference one can draw, is that they're bad at self-promotion, since there are zillions of ways to present the same kind of facts with a more positive spin.

They do try to spin it, of course. But their longer message boils down to "somehow I keep ending up at jobs where I don't feel like I belong."

That doesn't have to be bad, but if it seems like they just keep shooting from the hip and just hoping to end up somewhere good, then there's very little to reassure me that they will. If they show me they are working actively on fixing the problems (whatever they are) that put them in bad places, then that's a completely different matter.

> I recommend reviewing an article (even the wikipedia entry will do) on the Fundamental Attribution Error,

I strongly believe people's actions are primarily responses to their historic and present environment, so while I do worry about FAE-type problems in general, this is not one of the situations where I think it applies too much.

You're right in a sense, though: I did use the wrong phrase. It's not that I believe the candidate is bad at picking employers, only that a history of repeatedly ending up with the wrong employer leads me to require more evidence than usual that this is also not one of those unlucky circumstances where they somehow end up with the wrong employer -- maybe through no fault of their own. (Accidentally speaking of correlation as causation is a big problem, and I readily admit this was a huge mistake of mine in the previous comments.)

I am worried about one common inferential error, though: the people who don't have resumes full of job-hopping could very well have just the same propensity of ending up with the wrong employer, only they don't take action on it. Is that situation even worse? Maybe. Probably. How likely is this confounder? No idea. It certainly makes the problem much more complex.

> Well, no, employers are, for the most part, companies,

Technically, yes, an employer is nothing but a legal entity with some accounting rules to follow.

That's not the sense in which I view employment, though. It's also a set of co-workers, it's processes through which work gets done, it's perks, it's insurance, it's the actual jobs to be done, it's consumer desires, it's supplier knowledge, it's future prospects, it's social status, it's connections and a network, and so on and so forth. Reducing it to a legal entity is an over-simplification. If it were that simple, then sure, they'd be exchangeable. (Maybe this is my fault for choosing the wrong word again; would it have been more clear if I said employment instead of employer?)

I don't contest we have an awful history, present, and future of employers abusing workers. I don't think that makes employments interchangeable -- if anything, it's the opposite.

> I've never appreciated the fiction of "we're like a family"

Neither have I, and I think I said as much in my comment too.

> Curiously, one of the goals of much collective bargaining is to make employees and employers nigh-on interchangeable via standardized agreements.

I do admire the efforts of collective bargaining that have gotten us this far (I live in a country that was strongly shaped by this process, and it's on many international scales one of the best places in the world to live and work.) I can't really say many negative things about it.

I don't think commoditisation of employers and employees is a way to prosperity. There is a lot of hidden complexity in the relationship between employee and their employment and the employer that is incompatible with commoditization and interchangeability.

Just as I cannot take whatever I have learned (technology, processes, co-workers, consumer desires) and productively apply it blindly in a new employment, my employer cannot take another developer of similar demography as me and expect them to know the technology, processes, co-workers, and consumer desires the way I know them after so-and-so many years working hands-on with continual improvement.


> Well, job hopping (in my experience) often signals that the candidate thinks of employers as interchangeable widgets, which is just as false and dehumanizing

Really? In my experience it signals that most humans recognize that the vast majority of employers are not interchangeable (hence looking around). And I'm not going to be upset by dehumanizing corporate organizations that are not human in nature in the first place.


Frankly speaking you really shouldn't be hiring anyone with the expectation that they'll be in their role more than a year or two. Ideally, you're working with them to move into a position with more responsibility and then you need to backfill their position anyway. What does it matter if their next role is with you or somewhere else?

It's a lot to ask for every company to have a role available for every employee when they're ready for more responsibility, and expecting them to just hang around waiting for their chance is pretty naive, I think.


I'm seeing this with my current employer. I'm helping out the hiring manager with interviews and technical assessment. He's trying to target people who will stay with the company for 8-10 years. It's ridiculous. (Almost) no one does that. Especially when you can make a whole lot more by changing jobs regularly.

Personally, I don't care about working on cool technology. I care about getting paid. I can't afford to buy an absurdly overpriced house without getting paid.


Most of the other people we hired back then lasted 5+ years if they lasted one.

This chap had about 10 jobs on his resume, 6 to 18 months in each, on average less than a year.


I jumped every 2 years and tripled my salary in 10 years. I started way under paid and made it to average to slightly higher than average pay. Guess what the employers were happy to underpay as long as they could get away with it.


Well, I think other people hire them because there’s high demand for talent and that kind of churn is expected.

If you’re not having difficulty hiring while rejecting those candidates, that suggests you’re probably attracting people like me who stick around longer (for better or worse all around) or something about your offer is appealing to talent who have a knack for finding good long term opportunities.


Conversely, I've worked at places where the people who had been there for 5-10 years were just coasting, the product was stagnant, and constantly hiring new people was the only way to get out of a rut. They were paying these people for maintenance and to hold on to institutional knowledge, but everybody was so comfortable that very little got done.


> With a record like that, there's zero reason to expect they're going to stick around. Why invest in bringing them up to speed if they're just going to leave?

People don't job hop for fun, they do it because they find better opportunities elsewhere. The way you say it, it sounds like you're holding back everyone you employed from getting a better deal.

If you truly offer competitive compensation and work conditions, than that person wouldn't have a reason to leave, but if 2 years down the road you didn't keep up with what others are offering them, I mean, the question is, why wouldn't they hop?


Because employees enjoy making more money.


What is "frequently"? I'd like to see a minimum of three years ahead of a transition, and a decent story why. Often the contract ends, the company is sold and the new policies are draconian, etc. Fine.

Given the level of effort involved in bringing someone on, my outfit cannot afford to be staffed like a fast food joint.


From memory: last I heard the average is 18 months. I don’t know if that was accurate then or still is, nor how much it varies regionally or by any other criteria (I can look it up later but had a quick moment to reply and HN moves fast and might fill in the gap before I can take more time to look).


What is an acceptable duration for someone to stay at your outfit?


Plenty of career people at this consultancy. Also transplants. I just passed 5 years.


Consulting is a little unique in my experience - if there's a steady stream of work, you never really stick with the same client full time for the full 5 years. It's a lot easier to keep your skills fresh and move around to find interesting challenges


Does your employer offer its people the 10-20% annual salary increase so they do not have to look elsewhere for what the market is willing to provide? I ask this seriously.


No, that sounds a bit excessive.

If you're growing the business at a healthy clip, maybe those sorts of raises are sustainable.


I’m sorry but I very much disagree. Each hop netted me much better work-life balance and much higher pay, and actually broadened my horizons and whag I bring to the table because I have experienced a wide array of corporate cultures and team styles.

What DOESN’T do wonders for your career is thinking/hoping/praying that sticking it out at a subpar company year after year will magically bring you those same benefits, if it’s not already happening and you’ve already asked politely for it to be resolved.


I'd just like to say, sometimes moving on is within your company. If you're somewhere that's good about letting folks try out different parts of the business, it can be good to stay.

Make a career change and get a new set of folks around you without having to leave everything behind


I got a good client and he kept giving me more work. 15 years later it was the only thing I could list on my resume. More variety also means experiences and learning.


Somewhat similarly, I took a job I had a bad feeling about (I was in my early 30's) and things worked out accordingly.

Basically taking jobs I knew I wasn't a good fit for because I needed them.


I've adapted my mindset to think of my job/role as a car lease . Expires in 3 years.

I don't get too comfortable, not too attached, tend to live in the moment, enjoy the good parts, ignore the bad ones, think of the next person in my role, stay on the lookout for my next job/role, but not overdo it.

I've been able to stick to this, but haven't come up with a ways to enforce it.


Seems this is more common than I anticipated. That said, I've only done that at my first job, not so much because I felt like I owed my employer anything but because it was my first full time job as a developer so I questioned every descision.


I really love your comment. Too few people realize this.


Brilliantly put


This is largely true but I know there are employers who do care and who are loyal to their employees. It's all a matter of people and who you are dealing with.


That's my experience too. As a junior, however, I couldn't tell good employers from bad so I tended to pick bad ones (they vastly outnumber the good ones, after all) and then stay with them for far too long.

I mean, I value continuity and a healthy long-term relationship with a reciprocating organisation more than most, but the first few years I spent at a crap shop for crap pay and with only fear of my superiors motivating me? I think I could have gotten the same experience but better in a few other places I've been since.

(On the other hand, maybe that first experience is what made me so picky in selection of employers after that?)


The problem is where to find these companies. Job review sites are either turfed by companies who tell their employees to leave a good review, or by disgruntled leavers who want to unload.


At my first real technology job I worked at an early web hosting company. Cutting edge stuff in 1996. We hosted full domains for $60/mo and tilde domains (e.g.; domain.tld/~myname) for $25 or $30 per month.

We hosted on BSDi, a proprietary BSD and every domain customer had their own sub-directory with user and group ownership.

As an aside, BSDi would happily let you run `rm -rf .` and would walk up to root and back down through every sub-directory deleting everything on its way.

One day, probably a month or two into working at what was my dream job, I accidentally ran `chown -r zelphyr .` in the parent directory where we had all our domain customers instead of my personal domain directory. (I can’t remember why I was doing that.)

Instant panic. I just knew I was going to be fired. I sheepishly went to my boss, Todd, and told him what happened. He grinned and exclaimed, “Cool! A challenge!” and had me sit next to him while we wrote a Perl script to look at the paths in /etc/passwd and chown that directory back to its original user.

I’m eternally grateful to Todd for being such a great boss.

Edit to add: in reality, my biggest mistake early on was not learning fundamentals. How binary and processors work, how machine language works and how higher level languages compile down to machine language. I would be a much better programmer had I done so sooner.


I had a similar screwup, different outcome.

Was working for a brokerage as an intern, IT gopher stuff, pretty much my first office job.

A month in, I’m told by my boss to delete a directory on the file server. Which I do. I scurry off and rm -rf it, think it’s taking a while, so saunter out for lunch.

Turns out that that directory was an active mount point for the root of the filestore on which they kept all of their user drives, legal documentation, everything. rm had got about halfway through wiping it before they pulled the plug on the machine.

Turned out they didn’t do backups, because “nothing like this ever happens”.

My boss’s boss flipped his desk over the incident, hurled a monitor tree at me like a battleaxe while purple and screaming, incandescent with rage. My direct boss of course fired me. I was literally booed out of the office by the traders, who chucked cups and bottles and crap at me as I did the walk of shame. Grown-ass men. I was 18.

I learned then that most people everywhere just want someone to blame for their own shortcomings, and being that person can be a valuable service if correctly structured.

Edit: I lie. I learned no such thing at the time. It dented my confidence and gained me a reputation in the city - and not a good one. It was however one of the formative experiences that led to me starting my own business, and never, ever treating anyone (or allowing anyone in my business to be treated by anyone else) in the fashion I was treated.


SO many lessons here for a lot of people.

1. Always do backups. REMOTELY. OFFSITE.

2. Check your backups regularly. Make sure you can restore from them if needed.

3. Don't ask Interns to run delete commands casually. Heck, don't run deletes casually at all.

4. See #1.

5. Don't be a dick. This was really bad for the firm but having worked at investment banks myself, people can be dicks especially in high pressure environments like that.


6. What people tell you they want done and what they actually want done are often completely different.


Never test backups, always test restores.


I did something just like that early in my career, working too long hours with little sleep. Someone was fired... the head of IT who was responsible for backups and didn't have one. Felt really bad about that. I was dressed down in front of the company like a scene from full metal jacket. I wasn't let go, but I took a hit which from which I never recovered and I left eventually a couple years later.


What a bunch of scumbags. There a are so many things wrong with the company and its workers under the light of this story...


You lost me somewhere between "I’m told by my boss to delete a directory on the file server. Which I do." and the rest of the story.

Did you misunderstand? I don't see the logical conclusion


In that type of company, shit flows downhill - very alpha male chest thumping workplace, lots of cocaine floating around. The IT guy was a buddy of the owner, and was clearly ashamed of the situation but wasn’t about to stick his neck out for the PFY, and I was basically there to run trunk cabling in plenum spaces and get some real world Linux sysadmin experience. Someone’s head had to roll, and it was mine, as it was a very cheap and disposable head to lop off.


Thats disgusting behavior


A monitor tree?


A desk mounted vesa armature with four LCD monitors on it in 2x2. 2002, so would have cost an absolute fortune.


Totally random story:

I was one of the beta testers for BSDI, in 1990 (long before Linux or FreeBSD). They sent me QIC-40 tapes that I used on my fancy new 386/33 with a SCSI tape system that I bought just for this purpose. The problem was, I kept getting weird data corruption - compiling anything would spit out random errors that obviously weren't in the source files.

After a few months of this, I gave up and installed OS/2 instead (from floppy!). It failed on install with a cryptic error message. I called OS/2 support, gave them the error code, and they asked "Do you have different speed memory modules installed?" Bingo, that was it. I never did install OS/2, but the install process was invaluable.

I didn't end up using BSDI much. Most of my work was on the CSC department's Pyramid timesharing system, so I just used a terminal on Windows (3.x). RIP polyslo.calpoly.edu.


Would you mind elaborating on how you went about learning the fundamentals? I think id benefit from the same.


Check out the online course Nand2Tetris. I took it my senior year of college as a business major (but had a SWE internship/full-time offer). It was an interesting course and definitely filled the gaps in my knowledge OP describes, but didn’t really make a difference for me as a SWE.


“ Code: The Hidden Language of Computer Hardware and Software” by Charles Petzold and “The Elements of Computing Systems” by Noam Nisan and Shimon Shocken are both a great introduction.


+1 for Code, fantastic book especially for self taught developers


I have both books but yet to finish

The latter book you recommend is Nand2Tetris I believe


I've read both books and done the Nand2Tetris course.

I think Code by Petzold is decent in that it's a book you can read in bed etc. but it spends a long time discussing mechanical relays as an analogue and later discusses various processors in depth.

I think Nand2Tetris is slightly better in that it focuses on what I'd consider to be the most important stuff, but it's an actual course and requires significantly more effort.

Nand2Tetris is probably the best course I've ever done though, including my university studies in Physics and ML. It's fun and you learn loads.


I agree somewhat with your assessment of “Code”. I read it first and then “Elements of Computing Systems” and I found reading them in that order was great because the latter puts into practice what the former simply describes.


While you should definitely check the links from other commenters, and targeted resources like that are great, what has worked wonders for me is to just apply a general curiosity. Any time you get a chance to dive into a fundamental topic, do so. Start at wikipedia pages, and before you know it you'll have your bases covered.


Try Computer Systems: A Programmer's Perspective. - https://csapp.cs.cmu.edu/


Held too many strong opinions for really no good reason other than technical "virtue signaling" of sorts. At the time, it felt so right. I had all the perfect, rational arguments.

Years passed, experience and nuance decayed the strength of my opinions, and it was fascinating to realize -- even where I was perfectly right, I was mostly only right accidentally, my arguments were just a story to fit the narrative, never really fully internalized.


This is frequently still beneficial for the organisation, even when you're doing it for the wrong reasons, and is almost a necessary stepping stone towards achieving true understanding. It's hard to identify nuance until you discover some strongly held belief doesn't apply as well you once thought.

But I suppose if you could go back and do it differently, you would, so I can appreciate why you consider this to be a mistake.


One important distinction is between holding strong opinions personally vs being in a position of authority and forcing those (strongly held, weakly justified) opinions on the rest of the team. That’s a quick way to erode morale.

Flip side of the coin: having strong opinions but being open to discussion and reconsidering your position in the face of new evidence is a great way to earn respect.


“Strong opinions loosely held”. I learned this at about the 15 year mark of my career. Made the next 10 much easier.


> Held too many strong opinions for really no good reason other than technical "virtue signaling" of sorts.

Oh my god this is so true for me too. I had really strong opinions on so many things that if I put aside my ignorant opinions about them, I / my life / career would have been better. Strong opinions I had included I don't need to use OOP in PHP (had to until too late), Bitcoin is worthless who would ever invest in it (had to until too late / costly), NoSQL is just useless, what's so wrong with PostgreSQL (had to swallow my words until I used Redis), so many more. The current opinion I am holding is "who needs Kubernetes" when individual VMs do the trick and slowly but steadily I feel these words will be regretted too.


Is Redis really "NoSQL" in the hype sense? Redis is a great, in memory key-value store, but no one's arguing it replaces a relational database for relational models.


I think this has changed in the other direction for me over time. I used to always question my own opinions, accept that others might have the better idea, only to see things spectacularly fail.

Now I assume I’m right until someone proves me false.

Still willing to accept other people’s opinions when I have no clue, but evidence seems to point towards my gut feeling being a better indicator of viability than whatever method those other people use.


Great phrasing!


I was a teenage intern, and my software engineering team was crunching in the evening on a project, when there was a problem on a workstation.

The sysadmin was gone for the day, so I was asked for help.

I saw the root filesystem was full, partly due to a bunch of junk files in `/tmp/`, including some files/directories that started with `.`...

You might guess where this is going, when someone hadn't yet developed good intuition for what was safe and not. At some point in cleaning up (and not having filename completion in that shell), I cavalierly typed:

    rm -rf .*
When the command was taking too long, I got a sinking feeling, and hammered Ctrl-C, while in parallel realizing exactly why it was taking so long. (Spoiler: `.*` matches `..`, so `rm` went up the filesystem tree, to `/`, and then tried to go depth-first traversal through the entire tree.)

It gets worse. This wasn't just a workstation -- this was a Sun Workstation, in the era of "the plethora of NFS dependencies is the computer". IIRC, either `rm -rf` started following the NFS automounter symlinks, to delete files from servers that it could, or an ad hoc NFS server had been set up on that workstation for some team purpose. Either way, `rm` hit files shared by multiple people, who were already working into the evening on a project.

It was the fault of the intern, who was both inexperienced and overconfident, and my team was really nice about it. Maybe they knew I regretted it so hard that, if I survived the next few minutes, I'd still regret it many years later.


Out of all the stories I've read in this post so far this one filled me with anxiety the most. If this happened to me I don't think I'll ever forget it.


I've had to clean up after some incidents like that. There was one where an accidental recursive delete was running for several hours traversing a bunch of mounts. root was mapped to nobody so it could only delete from world-writable directories but that was bad enough. It was on Netapp filers so it wasn't too hard to restore from snapshots but it took us a while to find the culprit. There was a lot of traffic from many machines so it wasn't trivial to figure out where the REMOVE calls in question were coming from.


As an aside, I've never used '-f' in 'rm'. I've lived a happy life without it.

Of course I know of its existence, but it was just never necessary in any of my usecases.


What I do is run ls with the same wildcard expression and see what's listed before running the rm command.


Thought that I could replace lower-than-average communication skills with higher-than-average technical skills.

The story goes that software engineering is about knowing how to design a system a build it.

The truth is: you also have to know how to _sell_ your design, how to document your decisions, how to push forward with your agenda. You won't go anywhere without a team that values you. This means that interpersonal and communication skills should be valued much more than what I thought they'd had to be.

The most important part of a person is their relationships (you're not convinced? Try this exercise: describe yourself without mentioning any single relationship or its effect on you. What remains?). This is true both outside and inside your job. Value building strong and good relationships.


Similarly, I've tried to power through issues and leverage my ability to focus and grind through hard problems rather than communicate the problems and my situation.

Sometimes it impressed people that I 'got things done', but that isn't as great of a gain as the inverse is damaging. People could become frustrated about delays if I didn't manage to power through it in time, or they'd be confused and/or concerned that I never thought to communicate events with them.

Part of this, at the fundamental layers of this failure, was a desire for everything to always be alright. I didn't want people to think I was struggling, or to think I encountered issues due to my own faults. That in itself is poor communication, both with myself and other people. I really didn't want to think I was failing, let alone that others thought I was.

Ironically, people tend to like it when you communicate your problems or struggles so they know where you're at and what to expect.

After 15 years I've encouraged countless coworkers to follow this advice – I have a great eye for it now – but of course I still struggle with it.

Communication is a big part of working smart. Don't sacrifice communication and work harder as a result.

In tech it can be hard. It's easy to think everyone else knows what the hell they're doing. The truth is, most of us are winging it at least half the time. Like running simulations until something works, then examining it to be sure it works for the reasons we think it does. That's bizarre. It's fine if you struggle, (almost) everyone gets it.


I think a lot of reluctance to communicate problems is due to a lack of trust. If you are building an environment where management supports staff and mentors them, I believe it creates a culture where staff are also more likely to do the same with each other.

In my experience this type of culture is quite rare, and I think it's great that you are encouraging this in your own organization.


I completely agree that it’s a matter of trust – I really like that observation.

At my current company I find the people I work with to be exceptionally good at support and mentoring, and it’s a real luxury. I can comfortably admit I’m rusty on some math or find certain tasks in Rust challenging, and I’m just met with support and encouragement. We might hit a whiteboard or share strategies to solve types of problems, and there’s no moment of wondering why I’m not already proficient.

Even if I struggle with a problem in my area of focus, where I’m expected to know the most, they never treat me like I should know better or like they’re somehow disappointed.

So while I hope I contribute to that culture of support and mentoring, I can’t help but point out that my team makes it effortless and I’m very fortunate for that. Like you mentioned, it really is rare.


Do you have a blog//email address?


I used to blog on https://steve-adams.me, but stopped due to time and energy constraints. You can find me by emailing steve @ that domain, though.


This goes for pretty much everything in life. People generally won't care how competent you are if they like having you around.


Like, the reply makes sense, but

>The most important part of a person is their relationships (you're not convinced? Try this exercise: describe yourself without mentioning any single relationship or its effect on you. What remains?). This is true both outside and inside your job.

Doesn't seem to check out to me. If someone is highly skilled, their list of accolades sell themselves. "built x or y application", "functioned as Q or Y for B years" etc.


Who would give anyone accolades without respect for how they carry themselves or without knowing about them at all? Unless you sell yourself or have an established reputation with people who know you, it's your manager who built that application. Not that skills don't matter, but I'd say they usually only matter in context.


I created a 2x10 gigabit loop directly to the data center core of a regional health system on the consolidated virtualization rack that held ~80% of the applications back in 2012. It also took out the PBX. Thankfully it only took me just about 5 minutes to realize what I had done and run from the office area to the data center (in the same building thankfully) to set it back.

I thought for sure at minimum I was at least going to end up in a high pressure meeting about root cause and so on... no doctors complained, no ticket was ever created, the only mention that was ever made to me was "heh, was it you that broke things?" as the SAN guy was heading to his car and I ran past him.

Apparently 4:25 PM is a better time to break everything in a hospital system than the 2:00 AM change windows they schedule and nobody is going to bother calling support when things are working again by 4:30 and they just want to end the day. Service desk guy laughed at me when I apologized and he said he had 0 calls about it by 5:00.


ahaha, good one!

NB: Hard to call the service desk to complain... when there's no PBX to route the call ;-) just joking, yes it was restored :-)


Even worse - internal PBX down means all of the calls for that hosted service desk line would have been redirected to their on-call cell numbers instead of forwarded to the internal desk phones!

Upside - company paid for their phones and service. Downside - their phone fell apart ringing in such scenarios (well, except at 4:25 PM apparently lol).


So many. But it all boils down to not understanding how commercial software gets built.

I changed careers and did a 4-month “boot camp”. All the real learning was after that, the hard way.

My first job, I was left to work on a government project by myself. Everyday was mild panic. My only interaction with my boss was a weekly email saying what percentage of the project was complete. No one ever looked at my work, or cared to look. So I bumped it up a few percentage points every week. I declined a permanent position after the contract was over to spare the embarrassment of the state of the project I was building.

After that, I got hired by a consulting company. Over and over again, my total lack of experience was causing issues with clients, and I was in a daily state of stress and anxiety for 2 years until I was let go.

Finally, I got a job building enterprise software, with a well-defined lifecycle, and got my career on track. Eventually I became team lead. Now I work on the Standards and Framework team, building foundational components, libraries and templates for the other teams.

You will make mistakes. They are valuable to you.


Tying my identity to the company I worked for. Tech-corporate culture incentivizes you strongly couple your sense of self with your company, which was frankly disastrous for me and for anyone else I've known to fall into the trap.

I could see my company struggle and fall behind, and I desperately wanted to help turn things around (after all, this company was part of who I was). I overextended myself, made bad engineering and interpersonal decisions, and burned out. Worse, I stayed at the company for far too long, thinking that I could really make a difference in the trajectory.

Reading the article about "keeping your identity small" helped me greatly in not making the same mistakes.



Pragmatically this is why I stick to consulting now. Had my heart broken a few times and it's good to have a level of separation from the core product and company. From the client's side it's also good to have impartial eyes.


Thanks for sharing the article. It was great!


Perhaps it's not a huge mistake, but I definitely did not think through the pros and cons of getting a PhD. There have certainly been some benefits (e.g. being able to move from my home country to one I prefer), but the amount of forgone earnings and time working on problems all by myself (where I don't get the advantage of mentorship so much; profs really have checked out on coding since before y2k in the most part) is something I hadn't considered, especially considering how well situated I was having gone to a top school in the bay area for undergrad.

The advice I've learned and that I hope someone could use is this:

only do a PhD if you can't NOT do a PhD, or if you know some specific job that needs it.

Unless your curiosity and desires line up with a great research group, you put yourself in precarious situations, e.g. it's easy to just bounce from one crappy job to another, but trying to go from one advisor to another (especially at a different institution) is incredibly difficult and usually looked upon with suspicion (e.g. whether the original prof is unloading a crappy student).

Don't do a PhD for some external recognition, because it probably won't come unless you are near the top end of consistently top-tier publications every year (e.g. those mad men and women who publish multiple papers at OSDI / SOSP in a given year!). Far more likely you'll find yourself toiling on something to appease your advisor, and in those cases the end result is very underwhelming. Some institutions literally just ask you to hand in your office keys when you turn in your thesis to get your diploma and basically say "thanks for the years have a nice life!".


I disagree with your conclusion but think your advice is good to consider. A PhD lets you be an expert in whatever you want for the rest of your life, if you want. Do it for selfish, ego-satisfying reasons (e.g., loving science, wanting to become a real expert in an area) not for the academic career path. Have fun with it, but don't drop out. Get the damn degree. Get it and get on with your life.


> e.g., loving science, wanting to become a real expert in an area

This is good advice, and sort of what I meant as a test to see if you want to do a PhD. Sadly, a lot of grad students did not use the time effectively and ended up anxiously trying to appease their advisor as somehow a proxy for getting accolades from their parents. Although I didn't know it, I, too, fell into this camp to a moderate degree.

In other words, going to grad school to /prove/ something to the world (e.g. "See, Dad, I am smart I AM A DOCTOR!") is a recipe for misery.

Despite not getting into a phd for the right reasons, it was a good lesson in learning how to salvage things. Research not working out? Well, try a different thing (thankfully my advisor was exceptionally great as a manager and adjucator of adequate progress). It was a great way to learn to persevere against a sea of disappointing results and learn to make progress on your own knowledge while being able to ignore the disparities from your own knowledge and the eminent researchers in the field (to whom its unlikely one will ever be comparable to on a research level).

Basically it was a kick in the ass to actually get it together mentally that I don't think I ever would have been able to do without those external forces foisting it upon me; I probably would've been miserable in silicon valley trying to buy things to grasp at happiness. Moving to a foreign country, having to learn the language and customs, being an 18 hour flight from my parents, etc, was the final set of straws that kinda forced me to either address my anxiety / depression, but it could have broke me. I consider myself lucky because I saw many other grad students who just couldn't take it anymore (due to absolute asshats of advisors mostly) and quit.

Still it's nice to now have the ability to live and work in a place that is nowhere near teetering towards being a failed state than where I grew up, and I certainly wouldn't have been able to get a visa to live and work here had it not been for this phd program.


I can totally relate to the piece about it being a kick in the ass to pull myself together. I also got into the PhD partially to prove that I am smart enough. I think I needed to play that pattern out one way or another, it was something that would have come out in other ways in a different situation. But I did learn something about myself by confronting this issue so directly in the PhD, even though it’s difficult to articulate what exactly I got out of it.

Actually I came around to the point of view that most people get into the PhD for “the wrong reasons”, but that the process of being confronted with those wrong reasons helps you grow. Similar to “nobody is ready for marriage, marriage makes you ready for marriage.”


I think you can also partially think of it as a gamble (similar to doing a startup).

For example, I did a machine learning related PhD that propelled me into my dream job, earning about 3x more than I would have otherwise.

My motivation wasn't money though, and that's probably the mindset you need, but it's not guaranteed to be a bad outcome financially :-)


I am also getting a PhD related to Machine Learning. Can I ask what your dream job turned out to be?


I did a PhD in physics and it was fantastic. I knew I would not stay in academia (and actually moved at the very end of my PhD).

Money is not everything, there is also the joy of doing science (and in my case - teaching), many of my best memories are form that time.

My PhD did not really helped me (I work in a completely unrelated field), but neither it was a problem.


Same here. I met some great, great people and had a great time intellectually. But I never needed anything I learned there in my career and basically "lost" 5 years compared to peers.


I worked in a large corp you know about in California.. as a loner with few colleagues, I was deep in some assembly language and other nerdy topics, and not great with culture and certainly still a visible rebel. Meanwhile, my colleague from Big School Nearby was hired as staff engineer. There was serious IP on the table and security was an issue always.

It turns out that my colleague had an appetite for money beyond his paycheck as a starting engineer, and was talking to certain third-parties that sold peripherals and such out of Silicon Valley; not massive money by today's standards, but not nothing either. My colleague it turns out was somehow providing inside information to whomever. I was not interested in all this sort of stealing and whatnot, but I showed my 'rebel' flag as a cultural thing at that young age and was viewed with suspicion by the security people for sure.

So the Senior Engineers of the department figured out that there was a serious leak one day, and my clean-cut colleague and I both had access to it. The engineering management literally stormed my office, but I happened to be out. I was called to the main office later and it was serious. I denied involvement (TRUE) but they could see I was not telling them everything. My clean cut colleague .. no idea, but I think he worked there for more than a decade after that, with raises. I was put on a secret black list and didnt last much longer.

I never told on my colleague, and he has a house in Marin now. I am certainly unhappy telling this story. Reflecting on it - that story is probably part of why I chose this nick on YNews.


Extroverts can be incredibly ignorant and dangerous when they encounter introverts. They seem to operate on very simple heuristics.


What an over-generalized and incredibly strange comment.


I think it's great if something I said made you self-aware, if you think you may have been in error and are asking for clarification, but what is making you pipe up? It seems like you want to be included.

I'll reciprocate. - If I'm understanding what I am reading, at the stage of life OP seemed to be when he had his experience these would have been relevant social categories. They are highly generalized like you say, but none of us were born with perfect reckoning. This comment is not strange, because I am showing that there are others who suffered the same and we don't have to be silent about it.


Oh wow.. Why didn't you tell them? And if you could go back, would you tell on him?


Twice I have built entire full-featured applications and then not shipped them out of embarrassment(fear of failing I guess?). Both times, a few years later similar applications became very popular. Very recently one of them showed upon the front page of HN to high praise.

It's a mistake I'm still making, I guess, which is to assume that it could never "be me". It can be anyone. Just ship the damn thing.


Overcoming this 'mistake' is very hard. I have faced it many times. As long as I am an engineer on something it is never good-enough for me.

I am now trying a different approach that seems to work - the essence is that after some time to give up ownership of the code. I am involved in day-to-day dev decisions, but play more of the role of the Product-Manager - talk to potential customers for pilots, and define tight scopes so that the pilots and subsequent launches are successful.


Don’t feel too bad. My grandfather had the opportunity to buy some land in Atlanta in the late 60’s/early 70’s and turned it down because it was shanty town and the guy offering him the opportunity was a known crook. Shortly after that it became CNN Center.


This kind of feeling isn't really helpful to anyone: https://en.wikipedia.org/wiki/Hindsight_bias

It's better to stay in the present moment: What should you be doing now, to be/stay fulfilled?

Your best successes are likely to be random, very hard to foresee and not what you expected at first, anyway.


When thinking about this, I always come back to the scene in "The Office" with Michael's Golden Ticket idea.

Long story short; Michael loses the company a bunch of money on a foolish marketing scheme, and gets Dwight to take the fall. David Wallace drives down to presumptively fire Dwight. Instead, when Wallace shows up, he gushes that Dwight is a genius because it appears that although the marketing campaign has cost an immense amount of money, somehow it worked out and Dunder Mifflin is, in the end, far in the black.

The moral of the story is judge decisions in the future by the information the person had at the time of making the decision. A stupid choice that happens to work out is still a stupid choice.


Kind of reminds me of lots of 50:50 stupid remarks in recent year, that 50% pan out for the wrong reasons. Hindsight bias could make a cult out of that.


The only part I feel bad about is not really "learning" from these mistakes. I don't worry too hard about things I cannot change, so those two opportunities came and went. The part that bothers me is the fact that I haven't been swinging harder at ideas that I've thought about pursuing. There's _some amount of evidence_ that the ideas I'm having in this particularly industry are valuable and others would want.

After a long day at (usually at least mildly frustrating) work, it's just hard to work up the energy to just keep coding.


If you really want to learn from the mistake, it sounds like you need to ask for a personal leave for a few months and really take a bet on one of your ideas. There's not much to lose, in the worst case you learn from how it went and can decide whether you may want to raise the stakes and quit.


I feel the same about bitcoin sometimes. I heard about it on /. when it first came out. If I'd gotten into mining in the early days I'd be rich by now. Assuming, of course, that I still had my wallet and everything.


As my grandfather told my Dad one time (California) “Why would I pay good money for worthless dirt in La Jolla?”


My dad has a similar story about being stationed at Moffett in the late 70s and turning down the chance to buy property in Mountain View because he was a bit short on cash at the time.


You might enjoy a blog post I wrote on this topic [0] :-)

TLDR - ship it and welcome all negative feedback which is actually a great outcome! The usual outcome is no feedback at all as nobody cares.

[0] https://davnicwil.com/negative-feedback-is-positive/


Ah, self sabotage. I know this all too well.


Ha, I've had this experience recently. I was working on a private pototype of automated dependency updates in GitHub repos before it was a thing that was widely available. Ended up abandoning it. Of course, a few years later....


My biggest mistake for most of my youth was that I valued technical complexity over business utility. As a result, I kept moving from one trendy thing to the next one in technology, skills and domains.

Very late did I realize that putting simple php scripting to good and right use is enough to make the same money as trendy job and skill hopping. (on average ... i.e. ignoring outliers)


Can you tell me more about simple php scripting? I enjoyed php when I was new to the industry a while back, but do you mean that someone can be good at php and just work contractually and actually get by still? That’s pretty incredible and tempting tbh.


Sorry ... the message I was trying to convey was to focus on business value from any technical skill and figure out a smart way to monetize it. The technical medium isn't particularly relevant.

A small script can (has) paid $1K in an hr due to the business value. This is an outlier and isn't repeatable due to the limitations of the approach. So, skill selling isn't particularly scalable ... value selling is scalable.

However, there are more experienced hackers on this forum who have done such stuff way more meaningfully and at scale. That can be a topic for an Ask HN and will likely gather lots of insights if it gets momentum.

PS: Pls don't mistake this as a get rich quick idea. The message is to figure out and deliver business value (functionality, time, organization, entertainment) ... what have you ... and figure out a way to deliver it through a technical medium (be it HTML/CSS, Node, PHP, Rust, Scala, Python, R ... or whatever). PHP can do it too!

There are many things to learn and become good at. Technical prowess in isolation is surely not one of them.

Hope this helps.


Working for a company that exploits [mostly] kids/teens' attention while being aware of the long term negative psychological effects of such.


We all hate it, but it pays the bills. It's ultimately better to be in this position as a thoughtful person aware of the consequences of your work, since they would just replace you with someone less conscionable otherwise.


> It's ultimately better to be in this position as a thoughtful person aware of the consequences of your work, since they would just replace you with someone less conscionable otherwise.

If you do the same work, what does it matter?


No it doesn't matter, but hypocrites will keep on saying this along with other lies to avoid facing the reality, that is that they are complicit in doing whatever they don't regard as ethical or whatever.

I haven't seen many people just plain say it: "the company I work for does harm but I don't care because I get a fat paycheck every month".


The harm done to your psyche when you work on something you know makes the world worse is… hard to recover from.


I don’t buy it, that’s just more useless virtue-signaling.

It feels like every other week on Twitter I read a thread from someone announcing their leave from FB for ethical reasons, conveniently ignoring the years they spent there happy with their paycheck.


I think this is true for important but dangerous things, but I think it's vacuous and false for dangerous and unimportant things.


Extended to absurdity this framework leads to cringey edge examples about could be justified on the basis “someone worse” exists.


> It's ultimately better

For who? I'm not convinced that keeping things subtly bad, but maybe acceptable enough that users don't revolt, is necessarily a better outcome for anyone.


Getting too big for my britches, and thinking that recruiter emails = job offers. I quit a lucrative junior position that had just promoted me to mid level thinking I would have multiple big offers lined up immediately. After 6 months of desperately interviewing and going broke I ended up somewhere I could work my way back up, but I learned the hard way to never quit a job without another offer letter signed.


Biggest mistake that impacted my career was not having a "rolodex" or keeping up contacts with people I met over dozens of projects my first decade.

Biggest whopsie as a 15 year old building servers was starting a server with case covers off to check whether it boots, then dropping a screw on the exposed hard drive board. It left a neat trail of sparks and smoke as it bounced down. 200mb full drive of insurance company data burned in front of my boss watching.

Later in career, different place different times, my colleague and best friend ran a mistyped grep on prod server that tried to suck up all of the files content redirected into a single file. AIX in my limited experience is an unbelievably robust system - but it does Not handle root disk out of space well. Or at all.


This is probably my worst error as well, one that I've kept repeating for over 20 years. Making the effort to maintain professional relationships over time, especially when inconvenient, is the number one piece of advice I'd pass on to anyone new to any field. Sending a "how's it going" e-mail every so often cost nothing. It's the one thing I've emphasized to my own kids repeatedly. Hopefully they'll do better at it than I did.


Landing a first job while holing up with an acquaintance after escaping my birth family, and then trying to move to live by myself without realizing just how screwed-up a lot of my subconscious and worldmodel was (and some of you will have noticed that possibility already after reading “escaping my birth family”). Access to the city and not wanting to be more of a burden on my host were legit motivations, but it turns out that that much stress at once combined with the wrong kinds of weakness in handling results in going near-catatonic (at least externally) a few months in and getting fired.

Whoops! Oh, and there's that multi-year non-compete agreement… in the only thing I have experience in…

Fifteen years and several retry cycles later, someone who graduated twelve years after me now has the three solid years of full-time experience that I never got (in significant part because once you have a Résumé of Nothing, it stays that way), and just landed a job making about twice as much as I'm potentially going to be able to start making a month or two from now if I drive my context-switching ability and energy output right up to the limit.

Did I mention that getting access to healthcare to fix relevant issues was almost impossible for almost the entire time? At least I have a potential path to it now—and there's only a decade of backlog…

Don't do what I did and waste your life. You need a fucking real job. Do whatever it takes to keep it for long enough. Otherwise you lose.

(In fact I am not entirely coherent in my opinions on the matter, though—and the rule of equal and opposite advice applies…)


All I can say is: don’t worry about that other person, and I wish you the best.


I went into programming PLCs for industrial applications.

Totally stagnant, backwards industry, were the platform suppliers basically make a living, handing in advances from 20 years ago to the industries suppliers in the walled garden.

Its stressful, every machine developed is a unicum, software reuse is widely not used and often not possible, due to the "lowest common denominator" setting up what can work for a team.

All good programmers leave the field as fast as they can. The others, who cant and are worth the salt, are in eternal fear of the A-day or G-day. The day one of the large valley software companies turns around and says "boo".

They could easily replace the whole infrastructure of used software for all machines involved and install a steam like software market place for industrial controller components. No more "laptop-guy" sitting next to the machine for half a year and "thats normal".

The only thing keeping this industry "alive" is the phobia of the great ones from anything "physical".

I tried to leave, but this job is like a taint on your resume. People will not touch you with a stick, cause normal software companies have usually made bad experiences with the "programmers" leaving industrial automation. There are actually companies who try to lock there programmers in, by teaching them a "unique" bad software development style. I had people explaining git to me as a hot, new thing in 2018, at a company were we suggested it 8 years earlier. Yes, that resistant to change.

In every company you come, you are viewed as a sort of union-busting freak of nature, because that is the only way one could be that "good" at making software. Obviously i must be possible to memorize a million globals, instead of packing them into objects and systematically develop my stuff.

And you have that moment over and over again.

In dubio pro rubicon.


PLC programmers are a different breed of person. Note that they ARE often very skilled at industrial hardware and electronics; so never underestimate their abilities!

A lot of them just... aren't what you think of as programmers. (I've quizzed a few, they can't do fizzbuzz).

I semi humorously tell people I want to overthrow the industrial programming market. If you want to team up and try to corner the market, drop me a line (email address in profile)


You can definitely switch and other companies don't know as much about your industry as you think.

Just be bold, go interviewing.


Staying in the first company of my professional career for too long. I would have learnt more and earned more if I moved companies regularly early on.


I have been at the same company for 25 years, and so have many of my co-workers, who have grown up with me, and I always wonder if that has been a mistake.


Financially I have to imagine it is because of the pay raises that you get from switching vs not. Companies simply do not value their employees enough.


Whoa, that's pretty cool. Mind sharing the company or at least the industry?


What if you're happy where you are, you're perfectly satisfied with your salary (above median income right after leaving school and increased ~35% since then), and there is basically 1 alternative company nearby (where you'd have a lot more travel) and the rest is either a leap (hoping that you'll like a different kind of work) or more than doubles your commute time (to >1h one-way)?

I heard this advice before and at 4 years I'm quite due for a change in the statistical sense, and I've been offered more money already but... I feel like I'm already rich with no expensive hobbies and the money just flowing into long-term ETFs for retirement. Am I just in an exceptional situation or does the advice still apply to me and should I leave within the next 1-2 years?


I think it really depends on the industry and location. There's a clear tendency on HN to only consider the tech market in California, where it makes the most sense to hop companies regularly. It's not the case for everyone.

I work in a large European industrial company in aerospace, and the vast majority of the employees stay until retirement. Yes most change job regularly, even relocate to different countries, but within the same company. Outside options aren't great, you're not looking at large potential raises and will have difficulty finding as good of a package unless you go into another industry completely. If I was fired I'd probably have to move to a different country and get into another industry to get a good offer.


An argument I would make would be for future proofing your employability. You clearly care about thinking long-term. What if the current gig goes under, are you properly trained in technologies other companies in 5-10 years would use, that maybe your current gig doesn't?

Just spitballing. If you really are 10/10 happy, and aren't concerned with the possibility of that company blinking out of existence and being screwed, I would probably just say ride with it until you feel like quitting.


Thanks for the input!


There's an opportunity cost in _moving_ too; ever heard the saying that three moves equals one fire? If you're in a position you find satisfying, and see a technical and financial advancement path that seems acceptable, don't trade the roots you're putting down for some theoretical improved later slope of earnings.

But keep your resume up to date, and go on interviews from time to time. See what the offers are, and do the math on them. And if the math says "Stay put", ignore the techbros who disdain roots. :)


You probably should not leave.

At the very least, preserve the option to come back. Be honest with your employer, tell them you enjoy the work but are just curious what else is there.


I have this weird feeling that I'm making the same mistake right now.


If you feel that way, you probably are.


If you've been there longer than 3 years, then yes, you're making the mistake.


This is a strange attitude; if you change jobs every three years, then how much are you going to get done, really? If everyone took this approach, then would any large project ever get finished?


Well, OP is talking about their first job, so my advice is targeting that specific situation. As a general rule, engineers see a fairly large bump in pay when going from their first to their second job, particularly if they did a poor job of negotiating their first salary. So yes, in terms of career development and realizing your earning potential, you should not stay at your first job for more than a few years.


Why wouldn't six months be more than enough time to ship a project?


It can take time to build political capital to be trusted to lead/ship a project.


Depends on the project. I just launched something last week I'd been working on for the previous 18 months.


Not every company works only on small software products.


At the company, or in a specific position?

I'd say continuity is fine, if the firm is large enough to offer a career path.


In many startup product companies, the specific knowledge about the product is not interchangeable with other tech companies. The tech skills and the soft skills are, but a large part is know-how about the product and the market.

It makes sense to stick around longer if you see yourself as a "knowledge worker" rather than as an interchangeable techie. It certainly makes sense from the company's perspective to keep knowledgeable people around.


It's very likely. 2 years seems to be standard, and I'm moving jobs after 1.5 next week. 20% raise for very similar work, there's no reason not to move.


I was recently told I was "long" with the company for moving after a bit under 2 years (I'm leaving 31st July, I joined on 15th september).

I can't help but think that it's pathological to consider that "long" :/


I wish it wasn't. Many companies simply make it too difficult to move up and grow internally.


Part of me says I did this with my first job in the computer industry. On the other hand I was reasonably compensated (for the time) and that job led directly to a progression of a few other jobs that have served me fine.


I had the benefit of my first 4 companies imploding within 2 years.


what did you learn from the first 4 that made 5 go to the moon?


I was at IBM, fixing a critical mainframe that had brought the entire check clearance system for the country down.

An angry customer was breathing down my neck, making idiotic suggestions. I was rattled.

He wanted me to try swapping out some component. I said no, I was 100% sure that was not the problem. I was laser focused on fixing this problem.

Turned out I was wrong. Customer complained to my management and I got a sound bollocking and took a couple of steps backwards in my career.

I learned that day to always remember that, no matter how unlikely, you might be wrong.

As a sidenote, this is one of the 25 points of advice in John Perry Barlows "adult principles" which I discovered late in life. It is the only written work I have on my wall, with items 1, 3 and 10 marked with highlight pen by my wife as areas for personal development for me.


> As sidenote, this is one of the 25 points of advice in John Perry Barlows "adult principles" which I discovered late in life. It is the only written work I have on my wall, with items 1, 3 and 10 marked with highlight pen by my wife as areas for personal development for me.

I want a little more context because if my wife highlighted areas for my personal development that was hanging on our wall, I would feel controlled, diminished, and disrespected.

By the same token, I would never force her to eternally view highlighted areas of personal development I had judged she lacked. It privileges your view as holy, when you are in fact just another person with a perspective, not absolute legitimacy.


Additional context: it was provided to me as suggestions, none of it came as a surprise, and I decided to put on the wall. There was no "forcing" involved. I personally don't have any problem with anyone suggesting areas of improvement for me, and equally would disregard it if it was off base.


> An angry customer was breathing down my neck, making idiotic suggestions. I was rattled. He wanted me to try swapping out some component.

I dunno; I agree you should always remember that you might be wrong, but under those conditions I wouldn't make that change unless they signed something saying that we did it on their say-so over my objections. Way too many red flags.


Thank you for pointing to John Perry Barlow's 25 Principles https://www.jambase.com/article/john-perry-barlow-25-princip...


Disdain for sales. My first exposure to a sales team was as an engineer that had to deliver on whatever requirements sales dreamed up. Several years of head-shaking bullshit and I decided that the entire vocation was worthless. Took me ten years to figure out the better approach is to build bridges there, not burn them down.

Co-founding a company without really understanding my personal exposure. Had a small consultancy that had some early success, I was personally billing and leading projects, hiring folks and managing them. CEO just stopped actually cutting checks to IRS for a few years in a row. This snowballed into a major issue that I was personally liable for. Unfucking that took 5-6 years of my life. Yes yes yes I'm sure some of you out there would have been auditing financials every quarter...I didn't. Maybe that's the second half of the mistake.

Getting comfortable. After the above, I was running the show and just got comfortable. No real growth but a good salary for myself and a few other folks. Turns our there are parts of running a company that I'm just not wired for and never got good at. Decided I should let someone else do that and shut the company down (long explanation as to why selling it wasn't a good option). Worked at a FAANG for a bit then took another job. Doubled my TC in about three years and think I should have probably done this a long time ago.


- Not leaving jobs often (even without clear immediate reasons).

- Not being aggressive about trying to get better salaries. This was mostly due to the previous point.

- Not leaving shitty managers and teams ASAP (“trying” is the biggest mistake in such situations).

But when I look real close then the single biggest mistake is:

- Having not identified early that Software/CS simply doesn’t interest me. It’s just a skill because I happened to study it and then started working. For me there’s just zero passion in it. And not trying to find an alternative career path early.


Why are you here?


Why are we all here?

...

It's a news aggreggator, get over yourself.


What's the meaning of life?


I decided to study electrical engineering instead of computer science because I was dead certain there was no money to every be made writing software.... in the 1980s!

I chose the wrong school because they accepted me, and my high school counselor thought I had zero chance. I couldn't afford it, and dropped out. I would have gone much farther studying computer science at Purdue Calumet, and could have had it all paid for.

Once I had the Windows NT 3.51 server drive mapped as D:, and got confused thinking it was a local drive. Had to drive 25 miles and rebuild things in the middle of the night, sweating bullets. We were a small ISP with 200 customers, I was the tech staff.

My next to last big mistake was staying at a system administrator job far longer than I should have.... they really didn't need someone full time, and it zapped my drive to get things done.

Then I took a job making gears... the pay and commute sucked, but I liked doing it. 5 years away from technology, then Covid hit, I got sick... and I've been tired ever since.


You clearly have important and valuable software and engineering skills that our industry's recruiting ability has a hard time activating; I hope that you get healthy soon and, if you chose to, are able to find a job that uses, and rewards these skills appropriately.


Making gears, like literally assembly line work? Or do you mean modeling/designing them in solidworks or similar?


Job shop work... it takes 2-4 hours to set up a machine to make a type of gear, and anywhere from 30 minutes to 2 days per gear depending on how big they are. I made almost all the drive bandwheel and pinion bevel gears for Marvel 18" Bandsaws for 4 years, along with a variety of other bevels, along with some spur and helical gears.

It turns out that gears have a rolling contact surface, never sliding (unless you did it wrong), which is why they can last decades. I learned a ton of interesting things about small scale manufacturing. I want to make them on the small scale (4" or less) as a hobby, once I get employed again.


long haul covid-19?


Yes, as far as I can tell. I had some co-workers who had Covid really bad last March. My case wasn't that bad, but I've been short of breath, and haven't really been able to focus on things ever since. Unfortunately, testing really wasn't a thing back then, and by the time I did get tested as part of my workup, it was negative for an active infection. If I talk for an extended period, walk a block or two, or just go up/down the stairs, I'm winded and have to rest.


I stayed for almost four years at a job and in a location that I knew with great certainty was a poor culture fit for me by the one-year mark.

Similarly, I knew that I needed to do some therapy work, and deliberately did not do it so as not to end up with a diagnosis that could affect my potential admittance as a Peace Corps volunteer. (This was deeply misguided; the volunteers that did their work were both admitted and frankly more effective.)

Both of these mistakes were arguably the same mistake: I did not take care of myself. As a result, the first half-decade of my career was basically a wash. I burned out of the industry I went to school for, and a large chunk of time I could have spent deliberately learning and building was instead spent essentially coping and surviving.


I took down all cellular data traffic in Philadelphia for 2 hours.

I wrote the operating procedures for performing a backhaul upgrade in preparation for the launch of LTE. The upgrade was being performed on our primary routers which all traffic traversed. The operation had been performed several times successfully, but after the last implementation before the issue, I was informed that a couple of the lines were wrong (they had extra arguments). I did a find and replace all, shot the document off to the next team, and went about my day. The technician who was doing the upgrade called me on the afternoon of the upgrade (it was a Sunday) and asked if any of the initial steps were disruptive as he wanted to get started on the prep work ahead of the maintenance window. I said no and he proceeded. Mind you, this was also during the World Cup so I was out at a bar with my friends and not paying attention to my phone. About two hours later I looked at my phone and had multiple missed calls and voicemails from him, so I immediately ran to the MTSO. Turns out my find and replace changed some commands - the end result was that instead of adding additional VLANs to in-use interfaces, it replaced all of them with the new ones, which weren't carrying any traffic.

The fix was simple, we had failover routers and at some point after he couldn't get in touch with me the technician reached out to one of my peers who quickly told him to failover. He should have known to do that but he was also panicking. I called my boss and told him what happened and that it was my fault (and I genuinely believed it was. I wrote the bad procedure AND I approved activities outside of the maintenance window), and he told me to be at the office with the technician first thing in the morning the next day.

I couldn't sleep that night, this was early on in my career and I thought it was over. But that meeting ended up being one of the most transformative moments of my career. My boss's boss, a director, quoted the FAA's ethos of how a good system should have checks and balances, and if a mistake happens, the system is at fault, not any individual. We walked through the play by play and identified multiple opportunities to both avoid the issue that arose and to resolve the issue more quickly. We came up with an action plan as to how to make sure our "system" was more mistake proof for next time, and that was that.

That meeting has always stuck with me, and I always remind myself of that conversation whenever things at work don't go as planned. There is almost always something in the system that can be improved to account for human error, which should be expected.


Back around 2000, I was writing software patches for a large telecom company. These patches had to be applied to live, inservice telephone switches and equipment that were powering public phone services - restarts and downtimes were not an option. Needless to say, careful consideration had to be given with regard to how a patch was developed and applied.

I don't recall the specifics, but one fateful patch had a very large compound boolean expression that included an invalid condition. For whatever reason, that expression didn't or couldn't receive 100% test coverage.

When applied, this patch took down the entire phone service (including emergency 911) for the island of Newfoundland Canada and all its residents (maybe 300-500k people).

The immediate fix was simply a new patch that reverted the bad patch. Unfortunately, it took several hours from the point we learned of the issue to writing, delivering and applying the fix.

I've heard that Newfoundlanders have a reputation for being very friendly, so I like to believe that all has been forgiven and forgotten and that I may one day visit the island in peace.


In the old days as you approached 30 being a pure programmer was unheard of (or at least you were going to become that "weird guy" in a corner office) and you were expected to move into management / consulting

I resisted and became that guy. I would be far richer by now if I had put on a suit and gone into consulting. It's not like I didn't have offers

Keep an eye on your pension / savings when you are younger. It gets much harder to top them up the older you get. My pension options scare me now and I can't see retirement as a realistic path

Take money seriously!


Not keeping up with professional connections as I made them from the start. Even a "happy birthday" card would've been enough, but here we are.


Why do you consider this to be a mistake? I've thought about this in the past, but can't really articulate my motivations, and in the end I haven't followed through. Some of my previous colleagues have fit into the gap between co-worker and friend. I would never spend time with them outside of work and since we no longer work together I'm not sure what I'm really missing, so I'm curious to hear your thoughts.


Those connections become invaluable as you reach the point where you are responsible for putting a new team together / growing one.


Opportunity loss. I came across the phrase "increase your surface area of luck" somewhere and it is relevant here.

I am guilty of the same.


Happy birthday? That seems unnecessary really you don't need to send cards to all your connections. Just reach out if you want to reconnect don't overthink it - I feel it's pretty normal to drift in and out of connection/friendship even.


Yup! Not everyone will jump at it, but most will. I let some connections lapse for 10 years and then reached out. Ended up with some great conversations, good advice, and two job leads (from the hiring managers themselves.)


Accepting a job with QA out of school. It was 4 months before graduation, and I had been searching 2 months and my morale was low at having been rejected a few times. I was a very good student with many accolades so rejection was new.

As it happened, 1 month before I graduated, a job opened up in my ideal group, one I had interned in before and gotten a strong review, but by then I had already accepted the QA position (at the same company) and it was impossible to transfer. Took me nine years to transition to being a dev, studying nights and weekends.

At least in the U.S., your first job out of school tends to become your "career"


This is why the right time to leave some jobs is "not yet"

My current employer is great about letting people transfer through the business, and it's a great place to build a bunch of solid unsexy skills


I put too much effort into work which lead to a severe burnout that rendered me incapable of being useful and productive for years. I'm one of those guys who grew up using computers, every wake minute I was thinking about computer related stuff, everything had a solution using software in my head. I lost this from one moment to the other. Luckily for me it came back after 4 years of the crash. Fun times. Have a life outside of work even if it's just the same you do at work, but do something unrelated. People need to recharge their brains using activities they truly enjoy


I haven't reached severe burnout but have recognised I am coming up to it, and coming from a background as similar to yours. The doing something unrelated part has to be key to a healthy work/fun/life balance.


Not taking enough chances. I've been doing this for over 20 years and there's only a couple of jobs I've interviewed for that I didn't come with an offer. I thought that meant I was hot shit until a few years ago, I realized that I was really just aiming too low.


Not putting the hostname or something distinct in my shell prompt, at least on my machine.

  sync && reboot
  Connection closed by remote host.
Mild panic sets in... Oh, lets up-arrow and see what customer server I just rebooted. Reboot on Solaris did not do a graceful shutdown of anything, it just sig-kills everything. Veritas clustering in it's early years did not like this one bit.


Well... at least you synced! Your comment about Solaris reminds me of the time I learned the hard way that "killall" doesn't do quite the same thing on Solaris as it does on Linux.


Yup, that's why every single linux system I ever work on has molly-guard installed. Don't know about Solaris back in the day though.


I have fond memory of Veritas cluster manager, if that's what you're talking about.


1) not spending enough time developing professional network.

2) Becoming too comfy with the position and not pushing the bar as hard as I could could.

3) Staying too long with the company.

4) thinking too well of how the rest of the business perceives my position.


Taking a job as a solo "lead" developer at a startup for my first job out of school.

I picked up so many bad habits and it took a while to figure out how to collaborate with others on code. If I had to take that same path again, I would get involved with an open-source project to solidify the fundamentals.


Can you talk about some of the bad habits you picked up (and maybe how you could have avoided them at the time)?


Sure, here are a few off the top of my head:

- My Git commits/changesets were huge. There were so many code changes to so many files that it was very difficult to review. I learned how to write better commit messages and streamline my commits a few years later.

- I ignored best practices for the sake of getting things done. Programming wisdom and best practices seemed like overkill at the time, as I only measured my work by the number of lines of code I wrote. I needed to find the middle ground between quality and productivity.

- I organized projects/files inconsistently. This was because no one else had to work with the repo at the time.

- I was bad at managing expectations of stakeholders and estimating tasks. Because I was inexperienced, I would over-promise and under-deliver at times. As I went along, I realized better ways of communicating what could and couldn't be done within a sprint. Now, I think when someone asks for a feature -- the answer should generally be yes, with whatever caveats/blockers that are foreseen at the time.


Made this mistake too, good lord.


Reinventing the wheel. So many hours wasted on creating something that already existed in the form of PHP libraries or Python libraries that are written by much smarter folks. I tell my guys now, tools such as Ansible exist, don't try to write a whole Bash program to mimic what Ansible can do.


Counter to that though, re-inventing the wheel is a great learning exercise.


As a learning exercise yes, no need to "learn" with new production code :)


Commented out the credit card charging part of the order processing pipeline during testing and pushed it to production.


Ah, almost like a colleague's story. He entered the payment provider's test backend credentials and pushed to production. A few months later, the high-end-ish fashion company whose shop was outsourced to us said a customer of theirs called to ask them when they were going to bill her credit card for a purchase made weeks earlier...


Surely this couldn't happen with any kind of reasonable testing?


Automatic tester? I hardly know 'er!


Used the x.25 pad (telnet, for an older protocol family before internet became ubiquitous) command on the console of a vax 11/780. The pad break-back sequence to get back to the calling shell was ^P which was alas also the vax break to halt/debug command if you were on the main console. Took down the entire campus interactive logins


In terms of a "whoopsie" without guard rails: lost data because I was in a production database and didn't create a transaction. But, to be honest, I shouldn't have even been able to do that in the first place.

Otherwise, I spent too much of my early career focusing on learning application development tooling, and ignored database systems. Often, a fantastic distributed, networked application is right there in your stack. A lot of good information comes from getting to know how these pieces work, instead of treating them as "magic black boxes".


A belief that as a JavaScript developer competence and a thorough understanding of the standards are a valued commodity. This is absolutely wrong. The name of the game is tools. Most people are scared to death of writing applications in JavaScript and absolutely hate the DOM and many other standard APIs, so… tools. If dicking around with tools and frameworks isn’t your thing look for somewhere incredibly niche to park your career.

I learned early to not be an architect unless you have the support of company leadership. If you do your job too well you are disruptive, people get sad, and then you are on your way out once the crying gets loud. If you aren’t doing that then you aren’t effective and the position should be eliminated. You can reasonably determine this during job interviews if you ask the right questions in the right ways.


>not be an architect unless you have the support of company leadership

Ain't that the truth. Luckily for me I was just a witness to my superior getting rekt for trying to push through their vision without the necessary social capital to do it right. The worst thing is, in that case they weren't wrong, but the lack of buy-in and effort put forth by others doomed the project to failure. That failure was subsequently used as justification for their release. After seeing that happen, I know not to push anything without the explicit support of leadership. Now if someone doesn't like the direction we're going in, well that's their fight with the executives and not my problem.


>You can reasonably determine this during job interviews if you ask the right questions in the right ways.

Surely then, listing some examples here would be relevant?


Conversation and interviewing are managerial skills best learned through practice.

I will say this though, this point of learning has applied equally to my corporate technology career as well as my military management career. Sell your executive a vision of success without any bullshit and deliver what you sell.


My biggest mistakes were: - I loved studying CS. I was in a class with 5 other students and we had close interactions with the professor. After I took the exam, the professor asked me to become his assistant (not PhD but student). I turned down the offer because I would have needed to quit another shitty student job. In my case, this would have been an important experience for getting a PhD position though. - Taking one of the first offers after graduation and sticking with it for too long.

Maybe this advice is helpful to someone. Let's divide people into those who don't realize that they don't understand something and those who realize that they don't understand something. And into those who ask questions and those who like hearing themself talking/explaining.

Out of the four the combination of 'don't realize that they don't understand' and 'likes hearing themself talking/explaining' is horrible. Run away as fast as you can! You cannot do anything. If you ignore it: then, it leads to a bad project outcome. If you try to fix them: your relationship will deteriorate which again leads to a bad outcome and more.


On one of my first database projects, I developed an absurdly inefficient SQL database for time series data. Oh but it had a beautiful, easily generalizable, fully normalized schema which I was so proud of... Who cares that it requires a complex join before every insertion? And that multiple tables needed to be updated to keep track of metadata for each insertion?

It went into production without any load testing, and it struggled to keep up with even a few dozen time series.

I suppose the good news was that the product it was developed for never got many users, so it just hobbled along after applying some caching hacks. And of course I learned an important lesson about considering database access patterns.


Technically not a mistake but a good lesson anyway, db2 drop database dbname, where the production and Dev db had the same name just on a different VM. For a very long probably only 10s of seconds in reality I thought I had dropped the production DB of a securities and money market reconciliation system that was reconciling up to 50M a day at the time. Still gives me a shudder when I think about it 10 years later


I used a data migration tool that, unknown to me, reset the counter for auto incrementing indexes. I had used those counters for serial number fields.

There are hundreds (thousands? It’s been a long time) of high end bicycle components in this world laser etched with overlapping serial numbers because of me.


Non-technical - was too outspoken/somewhat abrasive and expressed opinions/ideas a bit too strongly. Of course it depends on exiting culture but in my case, it got labelled me as hot-headed and not "reliable" (even though objectively looking, some of the stuff I wrote is still being used). Perceptions form fast, are not always rational and pretty hard to break so it might be beneficial to observe more, express only when necessary and do so in an even and calm manner.


I didn't immediately end a meeting to demo a prototype when 2 out of 3 stakeholders were no shows.

I got lots of feedback from the remaining stakeholder that the other 2 strongly disagreed with.


Not sure if that's the right lesson. After all, the 1 stakeholder did show up. It would have been a slight to them if you had called off the meeting (basically saying to them that they're not the important one).

I think a better lesson would have been to make sure to check in with the other 2 stakeholders soon after the meeting and provide them with the minutes so they were in the loop.


Same lesson different phrasing —

A CTO was in my country and wanted to see our prototype. We had meetings booked the whole day, and the CTO ran very late... could have easily waited, but decided to go to the next meeting.

Instead in 3 months we flew to the CTOs home base, and the demo fell over... it was fine in our home country, just screwy in the other.

lesson: be with the decision makers as early as you can


Nah. It's on the other two for not showing up


In my new career as a freelance consultant / mini-agency: taking on a large fixed-price project. It’s not that the scope has changed - it hasn’t at all - it’s just that I judged it like shit.

Don’t do this, kids!

(Though many of you still will. I knew about this beforehand and still got myself into this mess. Never again!)


The biggest one I remember is telling everyone that I was logging off for the day, typing "sudo poweroff" and then wondering why my laptop hadn't shut down… turns out I was ssh-ed into our main production server which was not redundant and the whole system went down.

Thankfully my boss was understanding. I intercepted the on-call notice and took care of it before filing a report about how it happened which was probably helpful. I had pushed back previously against passwordless sudo as well and been overridden, so maybe they took that into account too. Still, I thought I was going to be fired for the mistake either way and am very thankful they didn't.


I learnt and worked on how to earn money, but didn't learn and work on how to grow the money I earned.


What do you know now that you wish you knew then?


The effect of compound interest. Second time your money doubles and you've quadrupled your original investment. Requires patience and self-discipline though!


Very well put!

I really need to work on this too!


I worked at a really toxic job at a hedge fund where I let them burn me out in a year and then they fired me. Several mistakes were made:

1) I failed to realize the importance of face time/asses in seats time. I was spending tons of ime working late nights and weekends solving hard problems outside of trading hours where nobody could see the hard work I was putting in. Also, being the only hourly, all of my coworkers would disappear early Friday afternoon and everyone else senior in the department would ask me to do weekend work that would effectively have me working 2 days of overtime without going home. Essentially on Fridays I worked for 3 straight days without going home every weekend for 9 months.

2) I accidentally exposed an embarassing mistake made by several seniors in the department. A simple question that I asked in a meeting when I saw how two pieces of network gear were hooked up identified that if either went down we would end up with a network loop and a minor catastrophy for a very expensive trading system. Two of the network engineers in particular were really angry at me for this and would no longer speak to me afterwards. Apparently correcting the mistake took several weekends of off-hours work.

3) I let an absolute snake in the department "mentor" me when I was new. I failed to realize she was using me as an opportunity to reassign her work. When I got sick for three days with a sinus infection, she reassigned hundreds of her outstanding tickets she was delaying on to me and then started calling me out in department emails asking where I was and why I wasn't handling the tickets. Nobody bothered to look at the history before forming their opinions about me. Luckily, she's no longer in the industry and works as a baker.

4) I let the traders physically abuse me. One asshole spilt a cola on his Bloomberg keyboard and I was at his desk with a replacement within 5 minutes. Apparently I wasn't fast enough for his liking and he spent that few minutes kicking me in the ribs as hard as he could while I was under his desk hooking up the new keyboard.

5) I was addicted to World of Warcraft. Despite the long hours I spent at work, I unfortunately filled my free time with video games instead of finding a better job.


Did you think that perhaps World of Warcraft kept you sane under those insane working conditions, ina. therapeutic way? Perhaps it was a form of escapism; gaming helped my numb brain find motivation to look for a job later in life


No, it was very unhealthy and caused problems in my life.


> he spent that few minutes kicking me in the ribs as hard as he could while I was under his desk hooking up the new keyboard.

For real?


For real.

The "traders are God' attitude was so thick that nobody seemed shocked about this nor motivated to do anything about it.

This was barely 15 years ago and I was a naive PFY. I wouldn't stand for that shit today.


I worked for a company with an excellent mission but poor engineering growth opportunities for way too long.

I paid little to no attention to how my engineering efforts benefited the business.

I spent few years doing frontend while i hated it.


In '98 I uploaded an index.html for a subsection of the corporate site to the root, squashing the corporate home page in the process. We didn't have any source control or backups. I had a colleague who had the page open, and I was able to copy the code from his browser. Learned a lot that day!


Haha, oh my god.


> I had a colleague who had the page open, and I was able to copy the code from his browser. Learned a lot that day!

ha, I can almost see the situation as if I'd happened in my old office. Now imagine doing that with a Typescript SPA bundled using web pack :)

I'm not criticising SPAs or the modern web stack in whatever flavour you choose (there are pros and cons to abstractions), but I still do miss the ability to just browse the page code, the web being more open in that regard.


Not starting with a big name tech corp or a high-growth VC-funded company. Big brand on CV makes big difference when recruiters are doing initial screening. A CS/MBA degree from top university helps. Do whatever you can to work with a big tech brand early in career, otherwise later you will regret.


I’ve often wondered if I should be working for a high-growth VC funded company. Does it really make much difference when I still have to go through the same leetcode and interview when switching jobs? I still get left out if I fail the leetcode from the start. Not to mention, these high-growth companies are usually more demanding and long hours are expected. Is it worth it?


For senior roles CV/brand still weights. You need to be in initial shortlist then only leetcode and interview will be any help. I now work at a big brand high growth company and get pitched 2-3 new opportunities every week, although I have been in the current role less than 9 months. Previously I have to apply and rarely a recruiter approached me.


same here. could have done too. just one big-name tech company would have done it.


I made a dumb mistake and got fired three years in. Instead of dusting myself off and jumping back in, I tried to pivot to a new career, went back to school, and just failed at all of it. Took five years but I made it back to my original career track and I’m finally back to where I should be.


My biggest mistake was not accounting for the ethics of what the company was doing.

I was young, and super excited to have a job in software while still in school, building things. Only much later did I realize that multi-level marketing (pyramid schemes), pay day loans and companies selling bath salts to smoke, all hurt people.

I was removed enough from the problem that I didn’t see it at the time, and it all seemed so exciting, but I certainly have lots of regrets from that time.


Invited a community of users to help fix bugs in software and accidentally implicitly bust the IPR of that software suite.


I behaved as though what I knew mattered more than who I knew.


Quite common I imagine. For many folks acquiring knowledge is almost a hobby, and expanding your network of contacts is a challenge.


Taking a year break in 2014.

I lost potential to earn a few millions from continuity of my career.

I also discovered I like coding and don't really enjoy traveling.

Traveling is romanticized too much in our culture.


How can mere continuity be worth millions of dollars? Or did you skip a particularly lucrative opportunity?

You're right about travelling. Unless you're travelling with a reason or at least knowing people at your destination, it's usually fairly unfulfilling.


> How can mere continuity be worth millions of dollars? Or did you skip a particularly lucrative opportunity?

If you are at tier 1 non-FAANG like Square, Stripe, yes, it is very lucrative.

Back then I was a junior that got luck with IPO ~2011 and went up to senior fairly quickly.

If I stuck to that company, I could have been staff/senior staff by now. Imagine being staff eng since 2015. That's a lot of millions probably.

I regret a lot. I came back and join tier 1 non-FAANG and still hit a few millions. But I could have had ~10 millions instead of a few millions.

This is a lifetime money that is worth sacrifice a few years of my life. Also, working at these companies are not bad. It's actually great and enjoyable as well. You live like a king (e.g. spending 20k for a 2 weeks vacation is kinda meh.) and still save like 200K-400K a year or something.

For me, this kind of money is just crazy. I made like 10x more than my parents. This was why I took a year break. I thought I was already too wealthy (oh boy I was so wrong).

Deciding to take a year break and traveling at the height of tech is one of the worst decisions I have made.


I've never taken a break year but I have taken full advanrage of travel opportunities. I took a few one month vacations at one company. Certainly didn't cost me millions though unless it would have been it discouraged me to make a big change regardless of changes in vacation time maybe. But I doubt it.


One month vacation is great. it's a change of scenes and paces (you cannot just sprint all year long). We all need to slow down once in a while.

Traveling for a year is just tiring...


I could extrapolate to 2 or 3 months given I've done a month or so (whether pure pleasure or a mix of business and pleasure) a number of times. But even the practical issues aside, I think I'd find much more than that tiresome after a while.

I've known a few people who jumped into the digital nomad thing and by and large it didn't last too long.


I could see 2-3 months sometimes.

Working while traveling is very hard. It's very hard to focus. Digital Nomad who is productive is simply a different kind of person.


Not joining organizations with an solid engineering culture (potentially a current problem depending on the next few months).

I'm relatively new (2 years experience), but haven't really had a chance to learn how to do many things properly in many cases due to a lack of more experienced people to learn from/business priorities meaning it gets waved away.

This won't get me fired in my current job, but the lack of knowledge might get me fired in future ones.


Picked up too many boring jobs with messy legacy codebases as opposed to prioritizing building and specializing. Went into industries that ended up being on their way down and didn't take care of their engineers and switched to tech late.


Under HP-UX, I had a script that did an "rm -rf *" once, prior to a cd.

A SAN firmware update (forcibly installed by a technician onto our hsg80) silently prevented my filesystem from mounting, so the rm ran from the root directory.

I got everything back.


Working for too long in a place where I was (literally) the expert. This was dotcom bubble time, so I ended up in a graphics firm wanting to get into ‘the web’. This inflated my ego, but left me without a proper mentor, or people to learn from. In retrospect it was fun, but mostly wasted time and we did so many dumb things and reinvented the wheel so many times I blush to think of it all now.


Staying too long at my first job. Held back my wages and career. Thankfully I am above the industry level now....but it took a lot of effort to get to it. Lesson: Never say loyal to a company. Stay only loyal to yourself.


Working on a ServiceGuard cluster of HP-UX boxes for a major retailer, I put the IP address onto the wrong computer, and stopped all warehousing operations (for the country) the day before a long weekend. Might have been a million dollars worth of losses incurred...

My brother short-circuited $25k worth of test equiment (at a time when salaries were around $30k/yr) on his first day at work at one job.


Believing that senior management had a legit plan for my career track. In actuality, they would have preferred the status quo as long as possible. I stayed 2 years too long in a 6 year gig; there were other manipulative issues from the boss on all his staff. You own your career progress/development 110%. Think like a mercenary and don't let anyone fool you otherwise.


Thinking I was irreplaceable and the business couldn’t continue without my expert system knowledge. Boy, was I wrong and it was eye opening.


Not going to to a software engineering heavy organization. Instead I went to a place where we had to justify using Java 8 instead of Java 7.


I know this all too well. I should've known the day I walked into that interview at Target corp when they said, "we're trying to go from java 8 to 11, but it's been rocky..."


Launching a venture backed bespoke eCommerce website many moons ago using staging payment gateway credentials and not coming to the realization until a week later when the accountant asked me why hadn't any funds settled yet.

Boss threw his blackberry out of a high rise window shouting profanities in German while I shrunk into my chair experiencing waves of hot flushes.


Not seeking medical attention sooner. I have anxiety disorder and a large amount of unproductive times were due to mental health issues.

My excuse to.myself was "its not the right time" over and over again.


Working at the NSA.

I am no longer able to travel to mainland China out of concern for my safety. I work closely with hardware and the inability to visit Chinese factories is becoming a career limitation.


Hardware Security?


I currently work in hardware security, but my job at the NSA was mundane and barely involved anything secret.


Any good books that you would recommend on "Hardware Security"? I understand it is a broad field but would like to start somewhere.


what made you leave?


I married a foreign national and was promptly walked out.


Is that a blanket policy on any foreign national? or only specific countries? For example is a Canadian treated the same as a French and are they considered the same as Chinese?


About 6 months into my first proper gig I was working on some code for emailing people in estate agencies. Typically you've got three channels, Rental, Sales and Commercial there. This was a Java Spring app and I didn't really understand all the annotation magic, and the channel field was nullable as to make it non-null you needed to write a @NotNull annotation above it. To add insult to injury I gave the field the wrong name too, it was agentChannel, not channel.

I then wrote some code like:

  if (channel == AgentChannel.sales) {
     emailSales()
  } else {
     emailRentalOrCommercial()
  }
So when parsing the JSON, the field name silently failed and all emails got sent to rental or commercial channels.

Sales is obviously the most lucrative channel with the biggest contingent of, shall I say, "pushy" people and so when this was discovered I had quite an upsetting day.


I would say not prepping enough for technical interviews. I did a lot of prep (hundreds of hours) but it wasn’t enough. I needed more because I was always being compared to senior engineers with 10+ years of XP who had been through the gauntlet a lot. Very few companies were ever explicating hiring for a junior or “mid” level role when I was looking. (Less than 3 years xp)

In the end, I realized I need to be doing interview prep pretty much all the time. Maybe give it up just before you start the next job and while you’re ramping up but it should just be routine once you hit 6 months or a year. There’s no reason to not do it because in all likelihood, you’ll be switching jobs.

I’m going into my sixth job in about 8 years now. I shouldn’t expect to stay at my next place longer than 2 years and thus should be prepping well before my planned time of exit.


That's terrible. What is anyone gaining from all that interview prep?


Yeah I don’t really get it. I’ve interviewed and got offers (but also lots of rejections) at many companies including FAANGs. Never prepped more than a couple days. I think I’d go crazy with the schedule you set out.


$400K+ compensation.


Same experience here. I always considered myself poor at interviews even though I've done well wherever I worked.

This time around, I put in 6 months of preparation and it paid off. It's the first job in my 10+ year career where I've felt like I got to choose the job I wanted rather than just accepting what was offered. Although the difference with me is that I feel like this is the first job where I have a strong possibility of staying for more than 4 years.


I get why you would do it. But what do they get out of only hiring the best at interview prep. Is the correlation really that good between good engineers and those who can leet code for six months?


So working after work? Ehh sounds pretty exhausting.


Their are no junior roles, only mid level and senior roles.


Frankly, the biggest mistake of my career thus far has been starting it. I didn't get in to a university, so I bumbled around for 6 years at a community college. In the middle of it, I managed to get a 6-month stint at a help desk (which I needlessly proud of, and then promptly fired from). Went back to the community college, burned out on trying to get an associates and transfer, and tried changing course to getting some sort of certification. Ended up with a CCNA (which expires later this year), but it turns out nobody near where I live wants to hire a network technician or engineer without a diploma, and my savings aren't enough to move.

So now I'm in my mid twenties and I've only just managed to get an (unpaid, remote) internship thanks to a sympathetic small business owner whose pet technical project is falling behind schedule. Every time I open the project management tool, I feel a vague sense of unease because I'm socially tone deaf and I can't tell if I'm breaking some unspoken rule about "don't word this message this way because you'll sound too confident for an intern speaking to the senior developer," or "don't make a comment on this task because it's assigned to an intern on a different team and you're not supposed to go out of your lane."

I've been writing code of some sort for 11 years, and using Linux daily for 8. Every day I wake up in my childhood bedroom and send my one remaining friend a message. Sometimes she even replies. Then I have the pleasure of spending most of the day fighting with some stupid self-inflicted issue, like why Ethernet broadcast breaks every week on OpenWrt, or why Pulseaudio uses 200% CPU when I try to get it to communicate with a certain cgroup, or what I'm going to use when Fedora 33 hits end of life and I have to get some other DE set up to replace GNOME.

I've dug myself into a labyrinthine, unsatisfying, inescapable hole. So if I could do it all over again... I wouldn't, because, like a ball on a hill, I'd end up right back in here.


First off, it sucks to feel trapped and anxious. I’m sorry.

Your story sounds somewhat common on HN- lack of formal education credential, degree of isolation socially, and emotional/mental health problems.

Do you have a mentor/coach type figure you can talk to? Someone that you aren’t trying to get a job from, but who can talk to about the non-tech parts of working?

What are you doing in your non-working hours? You said you are down to one friend. I suspect that being more social would help your mental state and work on those important social skills. In my 20s I met friends though social sports leagues (bocce ball, dodgeball, etc…), and in my 30s through service organizations/volunteering. These are nice frameworks for meeting people because they give you a shared sense of identity and commonality out of the box. Remember to be generous in how you interact with people, smile and laugh a lot, and that they are probably awkwardly seeking friends too.

Apologies if you hear this all the time. If interested, I’d like to hear your story and maybe do some mentoring. I’m (my hn username) at outlook.com


Rushing a job search. Decided it was time to move on (right decision), but allowed one company to court me and did not take enough time to play the field (bad decision).


It was 2006 and I was working at CollegeHumor, my first job after graduating from college. During my first week I dropped the production database. I thought I would be fired…

I ended up working there for 4 years and eventually managed the backend engineering team. I haven’t dropped a production database since.


Thinking the best course of action is to operate within the bounds of an existing paradigm, rather than lobbying for paradigm altering changes at the highest levels.

Buying into any zeitgeist at any level. Related: underappreciating the pervasiveness of financially-motivated thinking.


Didn't attend the hiring fair in my last year of uni, and missed the chance to become fully vested in Microsoft and like companies in the 1980s


Sent out the HBO Integration Test email this past week.

Joking


I came here to say this same thing tongue-in-cheek. This made me chuckle. I immediately laughed when it happened and wished the person well who made the mistake.


Joining a company out of college that I thought was good and staying with that company to this day (9 years later). I'm a midlevel making under $100k and was screwed over multiple times in contradiction to what the company promised and what the policies say.


Yes, I got one which affected me a lot.

It was a story about my last manager. 2 years ago, I transferred to Cloud team internally from blockchain. Yeah, both of them were so hot and even today. I had to make this transfer because I have to relocated to another city where my family resides. And my mom was so sick, I had to consider to take care of her. This is the background.

At the first few weeks, I tried to learn the new knowgede of cloud native and it was so depressed. I was so new and I was not an open man. Because my mother's health condition always makes me so gloomy. I could not be open. So it was not efficient. Well, I love opensource and I have some experiences. So I was assigned to do some open source projects for our products. Now here we have the them:

1. My manager called me to out of the opensource team for something else that I did not listened and not interested at that time. 2. He said this was his team and he was the only man can decide that no one could change.

I was a little shocked at first. And hated this then. But I could not change this. I knew the only way I changed this that I argued with him or leave. I knew at that time every body in our team had quarrelled with him. But I felt down at that time I could spare the energy to fight.

I made my mistakes. Not sure this was a mistake. I have no idea who things would went if I had a different choice. I chose to accept it even though I felt so bad. I could have choosen another blockchan startups.

So I had a bad 1.5 years work experience in my career. One interesting story:

My manager wants us to show our minds about team. Guys had their voices out and the summary sent to him, which were all agaist him. Can you image what he looked like?

He denied all the comments from guys. And continued to do as his will. Then 8 months later, our team was laid off, all but me. I had a health condition at that time.

It was a bad experience. I should not have hesitated. I should have called out my thoughts. Or just leave.

Life is short. Please stay happy and focus on the lovable things.


Took a first job that played to my weaknesses but was in a field I was intellectually interested in, rationalizing it was an opportunity to grow.


I rejected an $800k deal early in our company's life because it didn't involve licensing the existing software we had written — it was work for hire, which "wasn't our model." Looking back, that was pure stupidity.


I didn’t realise how important politics were and how far some people will go to crush you if you think you are a threat.

I had a senior co-worker tell me some documentation I had written was terrible, when I asked what was wrong with it he replied “everything”.

Months later I found much the same document (as in 90% of it was copy pasted from mine) in our company wiki, under his name.

I /think/ (thankfully such a situation has n out come up since) I should have raised this with him and more senior managment immediately instead of just sighing and moving on from it.

I also echo sentiments about not leaving early enough - if the ship is on fire, be with the rats, not the captain.


Not making attempts to grow. Skated along for over a decade on the same skillset, took whatever jobs came along. "Working to live" has its perks, but one of the drawbacks in this field is you can be slowly left behind.


Stuck too long only with Microsoft ecosystem.


I told a fairly obnoxious and (in my mind) idiotic customer to "take a chill pill" on a conference call. This did not work out well. I did call them back and apologized before my management told me too, but I'm claiming no credit there, that was just pure self-preservation kicking in. On the plus side, after that day, I (slowly!) started to understand how salespeople can be really, really good at a really, really hard job. I very much enjoy sales now and I think I have a lot more empathy for where my customers are coming from thanks to that very dark day.


* Not communicating enough with my team lead. This impacted my ratings. There will be places where you will be stuck early in your career. It's better to openly ask for help in such cases. This works even well if you are a star performer. Pratall effect is real.

* Applied wrong Cron job string for a mailer job to renew an IT asset. Instead of mailing at a specific time, mails went every second. A Senior exec(boss's boss) called and asked me to take it down. I was mortified for a moment since this was an unapproved use of company's resources. Thankfully nothing bad happened.


Any significant action or inaction early in a career can be considered a huge mistake years later with 20-20 hindsight.

And it actually depends more hugely on exactly particular goals which are always going to change over a career anyway.

Especially if you allow for this in advance, the very same actions or inactions of the past can turn out to be a great advantage in case an unforseen future comes along.

Where you can respond to a moving goalpost or even help place it in the path of your most applicable strengths, when you need it most.

You certainly won't be able to change those early career actions or inactions regardless.


Didn't start my own business sooner.


My biggest mistake... is not a technical mistake. It's a mistake about the career in its entirety :) The story is that I spent all my university years (and a couple of years after that, working in the IT industry) thinking that what I really wanted to do was being an CS academic. For a few personal reasons, I really inflated the idea. Then, finally, moved countries to start a PhD in one of the best universities in the UK, and... quit after not even 6 months. The mistake: idealising the academic lifestyle. I thought that being an academic was the only way to really work on something you love, being free to do it when and where you wanted, engaging with brilliant people. It turns out that two things are true: that you can find these things in many other professions; and that... often the reality is you won't find these in academia (of course, there are great exceptions). Moreover, a PhD – especially in the UK, and especially in computer science – is an really, really narrow endeavour. I wanted breadth on the side of depth, and a PhD (nor 90% of academic research) would ever be like that. I had entirely idealised a profession without looking at the reality of what it's like, and the reality wasn't a good match for what I wanted. It's taken me about 10 years to process and be happy with it, though :-)


I built our CI and tested failures and deployments. I never tested someone intentionally stopping CI while it was in progress. Two days after the team started using it, we realized we needed an immediate revert but the code was currently being built. So we just hit “stop” on the TC job. No big deal right? The current step was stopped, but it moved onto the next step like it passed. It deployed terribly broke things to production.

This is when I learned TC sent SIGKILL on a stop and not SIGTERM, which my scripts were expecting.


Deployed some code worked on by an intern without properly reviewing it. The changes weren't so much the issue, the problem was that they had migrated the project from SVN to Git but had neglected to check in the .htaccess file restricting access based on UNIX group membership. It took us some weeks to discover that everyone on the intranet now had access to the app.

I recall this particular intern used GUIs for everything and suspect their file manager wouldn't have displayed dot files by default.


Early in my career I was working at Cinematronics, a coin arcade game company. One of the developers came back from some meeting/conference with a glossy flyer for a startup. It had a line of people dressed as cowboys, astronauts, race car drivers, etc. It said something like, “We’re looking for rock star developers to help us create the future of video games. Join us.”

We thought it was cute, but none of us followed up on it. And that’s how I didn’t (try to) go to work for the startup Electronic Arts.


Before I understood Git merging strategies and so on, I accidentally introduced a ton of merge conflicts one night when I was trying to wrap up a bunch of UI things. My teammates were not happy, but I chose to spend all night resolving it manually. Now I have a better sense of git lol, still terminated later on tho.

Other than that, I still don't really know how to hold a programming job for longer than 6 months, so I'm sure there's a lot of mistakes I'm making.


My biggest mistake was while studying in university in 2004-05, i took three electives in AI, such as Neural Networks and Machine Learning. Even though I enjoyed the subjects and did well in them, I was too afraid to major in them and make a career out of it. I got scared by the math but also life took over and i probably didn't see myself having a career in AI. Now 15 years later looking back, it seems such a dumb mistake not pursuing those further.


I was working on a small webdev company. One day I had to update DNS records from X to Y because of Z (don't remember exact reasons) - turned out that my change broke setup for company e-mails (not ours, our clients) and they were offline for like half of the day until someone figured out what exactly happened.

Later it become a meme in that company, that every webdev need to break client's e-mails at least once, because it happened to other devs 2 or 3 times :)


From the perspective of an MSP, this happens incredibly often. Whenever a client calls in about their email not working, the first thing we check is their MX records. Often someone has just changed the nameservers to the ones recommended by the host, which only contain the A records for the new web server.

It's a meme in our company that web devs break client's emails as well. ;)


Putting up with crap from all the peripheral people sucking the life out of creating great software. So many self-absorbed, clueless people trying to tell me what to do. If you are great at coding and getting software to work.. BELIEVE in yourself and fight for the code. Don't let social hierarchies dictate your art and it's form. And if you don't think code can be art then maybe do something else.


If you're not making an abundant number of _technical_ mistakes early in your career (like your examples), you're playing too safe.

If you're working at a place where you'll be punished or "get fired" for mistakes such as the ones you exemplified, and you have the chance (most of us are fortunate enough to have more plenty of options) - avoid that early career mistake and change jobs (-:


Staying with the first company too long.


Report a defect in a product that production management did not want to fix. I got kicked off the project and it took years to clear my name.


Sounds like you were doing the right thing for a company with terrible management.


Any reason why you stayed for years?


The low expectations and decent hourly pay make for great work life balance.

Besides at this point in my career my core competency is no longer being an engineer, it’s navigating organizational chaos to accomplish stuff.


I am in my second company, I am here for 9yrs now. In the first company I was there for around 3.5yrs. Reason to leave was, I had nothing new to learn, I basically automated most my work, trained subordinates well enough to give me reports also trained them to review reports and send me one-liner like something needs attention or not. Learnt MS-SQL SERVER, SSIS AND SSAS and Cognos me originally being mainframe z/OS Db2 DBA. Lead SQL Server and Db2 team. Salary was avg but life was good, good managers, good place, location U.S Vermont, I am chennai, south india, it's summer throughout the year. Seeing snow was awesome.

I quit to learn new things. Now in this company I learnt and learning, made lots of automations but I always look back and feel why did I leave for that reason.

Like I have automated most my work, I have subordinates who report well, my lead DBA, managers are good, colleagues are good. I just didn't have patient to enjoy that.


In my first job as a software engineer I was working on an inventory management system for the University I attended. The original source for the data was a wacky Access database. We had a copy of the data imported into MySQL in production and it was not uncommon for me to try something, corrupt my local database, and need to restore it from backup.

When doing so I would typically run "TRUNCATE items;" on my local and repopulate it with the content from the not-yet-live production copy. This worked great until the afternoon where I was doing a demo for my boss in the office, realized my local datastore was in a bad state, and then got my tabs for "production" and "local" mixed up in my terminal. I truncated the entire dataset on production while my boss was standing behind me.

I got to learn a lot about how to export from Microsoft Access and import to MySQL that month. Lol.


Not asking what the promotion path of my first dev job would be. As it turns out, there wasn't one: I was hired to be a code monkey, and a year and three "annual" performance reviews later, I was still a code monkey, with no change in responsibilities.

Don't be shy about asking what the near future of a role is.


My biggest mistake was to discount and ignore the importance of management as a skill.

As a good technician, I moved up to being a junior officer in the Navy and completely missed the point that I was to work through the enlisted sailors, not join them.

I found myself staring East all night wondering why I was struggling. Suddenly, it dawned on me.


Not quite clear what you mean; Can you elaborate please?


The difference between tactics and strategy, specific and general, mechanism and policy.


I got a call back from havok to interview for an internship during summer of my third year of college. I said no, because I'd just walked out of accepting a summer internship with a physics professor in my university. Never quite forgave myself for that one, I should have just bailed on the physics dept.


I worked at a consulting place for ten years that was packed with a bunch of wise veterans who were mentors for me. They also paid poorly and had no benefits. A pivotal place for me in my career but I should have left a half decade earlier.

And I wanted to work there so badly that I jumped on their first offer. The classic.


My biggest mistake was not investing enough in relationships - especially with peers. To anyone starting out now, this would be my number one point of encouragement: greet each day with love, invest in your relationships from the outset - perhaps moreso than you think is typical.


Aimed too low. If you are smart enough to be hirable in tech, you are smart enough to do so much more, and less clever people than you luck in to more success, so be luckier.

Also in the 90's, knocked west coast offline by null routing the /24 that contained peer router addresses. Broke DNS for a few thousand domains by corrupting named.db on our primary NS before going to lunch, editing the sendmail.cf on the primary mail server in production for an ISP without revision control. I worked for the kind of people who could debug a sendmail.cf cold, so they could afford to have someone as dumb as me around, but still, I meddled in the afairs of wizards.


Becoming too emotionally invested and involved in the welfare of the company where I worked for seven years. This had the opposite affect with my boss and management because I was making delusional organizational and engineering decisions with no authority to do so. Even though I thought my intentions were aligned with the future of the company, nothing could have been further from the truth.

My advice is keep things professional and even ruthless long into your career at a given company. Clock in and clock out and always take challenges impersonally. Be the impeccable toy model your boss wants you to be and nothing more.


> This had the opposite affect with my boss and management because I was making delusional organizational and engineering decisions with no authority to do so

I have experienced this from the management perspective and it resonates strongly with experiences I have had. Some of the hardest employees to manage are those that are both talented and heavily invested, but unable to accept what their role actually is. When you have someone like that doing things that aren't in alignment with the technical vision - whether its right or wrong - they rapidly diverge towards having negative value.


I also had experience leading both talented and heavily invested teams. Differently from your experience, we were able to get the team hyper productive and accomplished a lot of good things together. A couple lessons I learned:

- Micromanaging and "make them accept their role" is how you make them unproductive. Smart/talented people can tell if the manager doesn't care. They know if they are being forced to be a cog in the machine. They either become frustrated and quit, or resigned into doing just enough work 9-5.

- Having talented and invested folks voicing ideas that aren't in alignment with the current technical vision is a critical signal you should take note. That may mean you don't have a good Tech Lead that can convince those folks why the current approach is good. It's not the job of those folks to "align" with the Tech Lead. It's the Tech Lead job to convince those folks that the approach is correct.

- Everyone requires a different way to lead/manage. But in general, the more talented a person is, the more autonomy they would expect. To get the best out of them, assume good faith, and trust their autonomy.


> in general, the more talented a person is, the more autonomy they would expect. To get the best out of them, assume good faith, and trust their autonomy

That's a really interesting observation. If this thread was about the opposite - what mistakes did you make later in your career - one of my responses would be the above - because its exactly what I did and it turned out badly. I recognized talented people, seeing in them earlier versions of myself, and I gave them lots of autonomy. And they took it, and I got back amazing works of art that created all kinds of discordance with our longer term architecture and vision. I regret now that I didn't intervene more strongly at that point. Instead, those people have left and I now have years of technical debt to fix. Meanwhile the less talented but more aligned folk are chugging away and creating more value longer term. It's tortoise and the hare.


That's where we differ on the cause.

> "And they took it, and I got back amazing works of art that created all kinds of discordance with our longer term architecture and vision"

I interpreted this part as you attributing the cause to the talented folks creating the discordance in your team.

For me, it's the reverse. That shows insufficient technical leadership from the top. It's the job of the Tech Lead to convince and ensure good architecture. If the Tech Lead get "amazing works" that are "all kinds of discordance", it's the failure of the Tech Lead. People don't believe in the architecture/design. They see flaws. As I mentioned above, it's the signal that you may have a weak TL. I would focus on improving that aspect first.


I think you're probably right and that's definitely part of the issue.

However your assumption that people can all be convinced to agree on the technical architecture is part of the problem here. There are so many areas of software engineering where "reasonable experts" can disagree. Static vs dynamic typing, functional vs object oriented, loose coupled messaging based flows vs tightly coupled APIs etc. Successful systems can be built in all these ways as long as one is chosen and there is some consistency. But it is hard to be successful if they are built in all different ways at the same time.

So inherent in this picture is that you will have people with irreconcilable differences about how things should work at a fairly deep level.

Acknowledging your point however - part of what I say my mistake was in not "intervening" was to do more of this advocacy proactively, and flush out earlier on - can these individuals be convinced or is the difference irreconcilable.

An example, if it helps, is in one instance one of the team was tasked to implement a particular feature, and they found that the implementation was too slow when written in Python. So without consulting they selected a different language that is not in use or understood by anybody on the team at all, and then developed this whole critical subsystem in this language. Meanwhile there were many alternatives within the team's chosen tech stack that could capably solve this problem with adequate performance (even Python if properly utilized). The solution was an amazing work of art (although quite buggy as it turned out). But it was a disaster for the project and actually sank the delivery of it.


If a piece of work is buggy, hard to maintain AND failed to deliver, I'm not sure if it can be described as amazing engineering.

It sounds like you might have a team of talented and enthusiastic junior/mid-career engineers who lacked the experience and vision to see the bigger picture and long term future of their work.


Don’t be afraid to say it, the language was Rust wasn’t it? Although Rust usually replaces C or C++, so maybe in your case Go is more likely.

In all seriousness, seems odd that they were able to go so far down this road without anyone throwing up red flags.


I agree with this right up until the last sentence. If you feel the need to be an “impeccable toy model” I’d say leave. Sounds like a recipe for a life of misery.


It is like that. Leaving for what? Most places are similar. Same shit different people. Some times you get lucky, and you get some time where things are working for you - but teams never remain, good people move on or up.

Leaving is not always the answer, keeping your head low and surviving is modus operandi for a lot of people.


In my experience a team breaking up or role model leaving is a good moment to do a temperature check and decide whether it’s worth staying.

Perhaps I’ve been lucky though. I’ve worked at places with potential to move internally which has kept things fresh and allowed me to grow expertise on the same larger team without losing tribal product knowledge altogether.

I’ve only switched companies once and it had more to do with curiosity than bad management.


We were codependent, the misery was mutual.


This is a great point! I'm starting to realise this too. I work for a company where I really think the suggestions I make will set up the company now and in the future, but the more I fight for the decisions I make, the more I realise that a) my team mates aren't interested because they (mostly) don't understand the tech, and b) management isn't interested or doesn't care.


Man this epitomises the modern day slave for me. What a dismal life to look forward to.


I pretended to often that I had figured everything out and didn't need any help. Although this worked out ok, I would have surely learnt more if I had more often admitted that I was stuck and asked for some input.


Biggest mistake was suggesting parellelizatio n of test procedures in a satellite program saving multi-million dollars of test time then not claiming it as my own idea.

- The boss stole it and got all the upper-company accolades.


Based on the comments, this might be a slightly different POV on the topic, but not understanding the value of personal/professional networking and soft skills. Very early on in my career, I was less interested in the networking aspect, and more focused on (for lack of a better way of describing it) pure meritocracy - if I become more skilled, more opportunities will naturally become available. I eventually discovered how narrow of a view this is and sometimes wonder how life would've gone if I'd had a different mindset earlier in life.


Sofware unrelated: I was an underqualified "sales" associate handling an incoming call for an order, when I thought it would be better for the business to call the overdue account of the client into question. I ended up saying "If you don't pay your bill, then my boss doesn't get money, then he doesn't pay me and then I can't buy groceries for dinner." - only for my sales manager sitting next to me go completely wide-eyed in disbelief as he had to wrestle the phone off me and recover the phonecall!


Don't look for jobs, look for opportunities. Just because you like the work today doesn't mean you will continue to do so. If you can't grow and evolve...well, that's the worst thing ever.

Put another way, it's a relationship. The opportunity is relationship with your employer; a career is a relationship with yourself.

Don't get stuck in bad relationships.

To that point, when in doubt update your CV and look for work. When you eel helpless (i.e., you don't like your current work situation) looking for sonething else is empowering.


Don’t focus on being friends with anyone and just make the boss happy.


Stayed in Canada too long.

It had always been in the back of my mind to move to the US for work but I never did due to not being confident enough.

I realized in my mid-30's that I was approaching a "now or never" scenario and finally made the move to the Bay Area. I really wish I had done it right away at the start of my career rather than spending time at small companies working on small projects.

I know it's better late than never but I know I would have been so much further along in my career by now had I followed my instincts.


Not early, but: talking to the press without any media training.


I didn't listen to people who knew better.

Time and again I learned harsh lessons that shouted "Why didn't you listen? He/they/she said that would happen."


My mistake was talking about other job opportunities with my colleagues. Ended up my boss learned about it and talked with me saying that I was being ungrateful and thinking too highly of myself or something on that line. Well, I do not resent my boss or anybody. What I got out of it is to simply "shut up" and do the job or quit the job - which has been serving me well ever since.


Not pushing boundaries and (respectfully) questioning authority about why things were the way they were, being afraid of making mistakes.


Working in tiny companies rather than large one. Now large ones will say to me - you've messed around loads why should we take you?


It was my third year of my first job, I was alone working on the live database. I ran the following SQL command in SSMS:

DELETE FROM TABLE WHERE ID = something

And the table had a million records. Guess what!

In SSMS, the DELETE FROM TABLE was selected.

It took an hour to restore from backup, it stopped a lot of people from working, many new records was lost, they had to keep pile of papers to enter into syatem again.


Not following thru, on so many things.

Perseverance is everything.


1. Not networking. ...and I still don't even though I'm actually quite good at socializing.

2. Not trying to make money from day 1 for something slightly non-profit because we were afraid it would drive people away. I think it would have been more honest, closer to where we wanted to get and ultimately it could have funded us to continue our work.


I once worked for a startup where the founders had a very obvious bias towards hiring people with a certain skin colour. My mistake was mentioning it to HR. I was accused of racism, demoted, and forced to take cultural sensitivity training. That was the day I learned you can't trust HR no matter how friendly they are in person.


In a test project for new location services inside a mobile network, I was provisioning 1000 employees with new sim cards, and inevitably a few got mixed up. One of those was someone's secretary who ended up having a phone number of someone with high security clearance who deals with national security type stuff.


Does being born count as early in my career?


In the early 80s, assuming that programming was easy, and that there would soon be a surplus of programmers. My mom was teaching programming at a nearby community college, and her students were getting programming jobs after one year of instruction.

Still, I don't regret my career, and I get to do a lot of programming.


I would say, not letting go when I disagreed with some decision I knew was wrong. Younger me would tend to tenaciously fight those, to my detrement. You end up getting a reputation for being argumentative or hard to work with. Later I learned waiting things out and more subtle ways to affect change.


Undervaluing myself and not having my personal life in check. Spent a lot of time juggling what was essentially dead end volunteer work with trying to sort out whatever drama my ex had constructed that week.

Not quite what you're asking, so sorry about that, but it's my answer to the general question


Not believing in myself, having low standards, not being picky enough and ignoring immoral actions and dumb decisions made by CEOs. Those of us who come from poverty often have low self-esteem, it's something that needs to be worked on constantly, like a rotting codebase.


“Upgrade these systems for a customer”, they said.

“They have backups”, they said.

I encourage the reader to guess what they said next :)


Turning down a promotion to VP early in my career, now I’m in my mid 50’s and no one truly understands why I didn’t. Personally I didn’t want to ascend into mediocrity like most VP’s and above. Now I’m having trouble with age bias as a Director or Senior Director.

Ho-hum.


I used to forget my note to self TODO messages and accidentally sent “oh fuck fUuCcccccck you stupid idiot fix this you suck at your job…. Blah blah blah “ In a deploy that made it to production, the actual copy was much more offensive


In comments or user visible?


My company gave me a little too much responsibility as a junior data scientist... I pushed a model to production without doing due diligence, and ended up spending an extra $60k in about 45 minutes before it was discovered and pulled.


Turned down an acquihire offer at age 21. It was my first "startup" (me, cofounder, some code, few never ending trails, 0$ income). It was a 1m$ for each of us spread over 4 years, in addition to bigcorp salary and benefits.


i was too focused on the intellectual side of technical work and didn't understand i was in the business of selling my labour, the importance of exploring and cultivating different opportunities, and then negotiating a good deal.


Staying in one place for far too long.

You learn and earn more by jumping ship after a year or two.


I encouraged my employer to get on board with the personal-data-for-access trend.


My biggest early career mistake was starting a career too early (18). In my case (and I’m tempted to generalize it), having good knowledge of the self prior to working is critical for long term outcomes.


Not taking investing seriously or making a budget when I had my huge wins


I put up an "Under Construction" page for an insurance claims processing site at my first internship while I worked on changes to something or other.

In production.

That didn't stay up for very long :)


I once broke an NDA by posting to a forum about software I was evaluating from a big company. Super not cool. I survived but had a good beat down from the CTO.


Joining a big company and not leaving on time. I spent 15 years there but the last 3-5 were looking for something else. Finally I just quitted.


Fortunately the repercussions were minor, but the mistake is still a huge facepalm. Storing monetary values in the database as simple floats.


Not focusing on single topic and being an expert on it at my job but mixing personal development and professional career.


My biggest mistake is that I was working in security but left it for a different path. I could have been a hero!


Stayed too long at my first job.


I should have stayed in the Bay Area and followed up on WhatsApp and Instagram.


I joined the Army. That's seven weeks of my life I'll never get back.


Qualifying as a lawyer when what I enjoyed was building things.


It's never too late to start building stuff! Don't give up!


Fixed that problem 20 years ago ;)


Trying to work for someone else.

It turns out that I just can't work on software that other people built. I have too strong of opinions, which could also be considered a mistake.

I'm still early in my career, so I haven't made many.


I moved to LV, NV.


Not leaving my first job four years earlier.


Spending time on non-technical tasks


Not asking for help, generally.


Not signing up for ESPP. Doh!


The rational thing to do with ESPP is immediately sell and collect the discount from market value. So if you were fully rational, at best this would have gained you a couple extra thousand per year.


>at best

How rich do you have to be to consider a couple extra thousand a year is an "at best" situation? At best? Its the very best thing!


Ok, sure, it’s great to have an extra couple thousand a year. But I assumed someone saying it was a regret meant they regretted not piling into their employers stock years ago which is now worth 10x or whatever. So just commenting that even if you used it, the rational choice would not have resulted in a windfall.


going to the wrong university.


Mistakes?

(1) By accident, I had a relatively good career going around DC in applied math and computing for US national security. I thought it would help my career to know more math so got a high quality Ph.D. in applied math. I WAS then better qualified, but I also had broken my career continuity. My brother saw that early on: "After your four years in graduate school, you will be four years behind in your career."

And, I didn't realize that the opportunities in DC were unique or nearly so. I would, could, should have (A) not assumed my career would work away from DC and (B) stayed in DC.

Lesson: If you have a good career going in DC, NYC, Silicon Valley, wherever, don't assume without good evidence that that career will also work in another location.

(2) Near the end of my Ph.D. work, I had a part-time job and did some good things. Then occasionally a person never seen before was in the office for a few hours one or two days a week and wanted to chat with me about whatever, even sports. Eventually he got my opinion on what the US did in Viet Nam. In retrospect I was being recruited for some high end highly secure slot but violated a rule Mom gave me -- never talk about politics, sex, or religion. I had talked about politics. Don't do that. So, being frank and honest about Viet Nam cost me a good career step.

(3) Dad's idea about a career was to get a good education and, then, a good job based on that education. Eventually I concluded that, nope, instead, with or without a good education, it is from important to crucial to own a business and to make it successful, and early in a career near the top of the TODO list is to find a way to own and run a successful business.

(4) I didn't understand an important point about career dynamics: (A) It is tempting to guess that academics is good preparation, maybe the best, for a non-academic career. (B) Instead, for a successful non-academic career, it's important to ride the waves of the hot topics, and, bluntly, academics is largely out of touch with what the hot topics are. (C) While some academics can help, possibly a lot, there is a special way to know what the hot topics are in a non-academic career -- see what work and topics people are getting hired for.

Net, be reluctant to let academics tell you what will be important in a non-academic career and, instead, let a non-academic career tell you what topics are important for you in academics. And if have a good ugrad education, then pursue those topics while on the job by independent study evenings and weekends, maybe partly on the job -- to pursue those topics, don't leave the job to become a full time student.

E.g., when I was in my Ph.D. program, there was a prof, soon famous, who apparently had been hired as a consultant to work on a topic, call it, X. Well topic X was in practical computing, a bit tricky, not at all a topic in academics, and from my non-academic work a topic I knew well. With resentment the prof asked me: "I suppose you know X?" I had a one word answer: "Sure". Really it was a collection of topics such as X that had my career going well, e.g., annual salary six times the cost of a new high end Camaro. For that summer job working on topic X, the prof was about to have a tough time!

(5) One possibly good career direction is to get a job in a startup in its early days and get stock. For the stock, before joining (A) get the stock deal in WRITING, (B) study the details of the stock deal (e.g., vesting), and (C) have the deal reviewed by an appropriate lawyer. Handshake deal? Don't do that.

(6) Applied math and, usually, computing work or don't independent of human emotions. People, however, commonly are driven more by their emotions than what is true in math or computing. It is crucial, then, to pay close attention to the emotions of people.

As a special case, one way to get people to hate you and work against you is to present some work in math or computing that (A) has power important for the organization, (B) is understood only by you, and (C) looks rock solidly correct and, thus, not easily ignored. Then the people who hate you maybe cannot find fault with your work but might be able to arrange to get you fired.

Part of one way to get you fired is gossip -- be aware that you may have to defend yourself proactively, guess what you are secretly accused of and then defend yourself against the accusations.

More generally, whenever you start to be especially successful, you will attract attacks like some piles attract flies.

(7) There is discrimination in the US. Not often mentioned is that there are some cases of severe discrimination in the US against native born Christian males of European descent. So, it can be important to realize that fact.

(8) Try to keep confidential and not to report on work in progress: If your work looks good, your enemies will try to kill off your work before it starts to show its power or arrange to take credit.

(9) There can be corruption, e.g., people getting quite secret financial kickbacks. So, you can get a bitter enemy if, even without realizing it, you threaten their corrupt money. So, at least try to guess who might be corrupt and how, and then try to avoid that person or their source of corruption.

Of course, if there is someone corrupt in the part of the organization chart you manage, you will likely want to get this person moved out. Of course if the corrupt person has some close, say, family, connection with, say, a member of your BoD, then you have to be careful!

Point: Be aware that corruption exists.


I don't know if it's huge, but I should have put more in crypto and perhaps should have joined a company pre-IPO. I think at the IPO price I would have netted a net worth of $1m+ from option exercise for just about 2 years of work. Of course, now they've halved in value post lockup so I don't feel too bad.


I remember being 16 or 17 and pondering if I should buy 1 bitcoin. Back then they were worth about $50/BTC.


Similarly, selling the 60-70BTC I mined at around $2-3 each (early 2011), after I (CS student) and a couple of economics students came to the conclusion it was never going to last. Really wish I'd kept even one just as a punt.


Oh yea talk about it even being $28 back then, crashing to $15, was also a teen that time, same damn regrets lol


It's fascinating how many comments are of the form "stayed too long with an employer before finally leaving".

Take heed.


Staying too long in my first job

Not pushing for promotions/more responsibilities

Getting attached to my original team.

Thinking other people had my career as their concerns

Tolerating some bosses disrespect

Attaching my visa to my job <- Modern slavery


Moved to Canada instead of moving to the US.


Why the United States over Canada? I can see money being a reason, but the quality of life, I believe, is better in Canada


Canada has turned into a totalitarian hell-hole. First things turned bad in Quebec, but then all over Canada now. Quality of life wise is only good if you're enjoying the scripted theatre show, I do not, never have.

At least, the US (outside of the blue states) have some leftover Rights worth fighting for.


mind elaborating what rights are being curtailed in Canada? Quebec right now has that stupid no religious attire in public offices law right now. What else?


- The Canadian Charter of Rights and Freedom is a mockery of a Bill of Rights. The first article makes it worthless as it essentially states the Law supersedes the Charter. In the US, it's the opposite; the Bill of Rights supersedes Congress' rule.

- Canada has literally no enshrined property rights (fuck, even People's Republic of China has private property rights in its Constitution). This was a special request of the socialist eastern provinces when the "Constitution" was put in place in the 1980's under Trudeau senior rule.

- Canada is the only country in the world where the Law grants special status to people by blood, cf. the Indian Act, which was used as a model for the apartheid laws in South Africa.

- Socialized health-care is essentially a joke.

- Taxes are higher.

In a general way, Canadian hate the Americans while desiring their lifestyle (same as what's happening in Quebec versus the Anglos; Quebekers hates English folks without realizing how their own culture is based on "Englishism" (often just badly translated in a patois french); in Europe (I come from there), they hates the Americans, but are submitting to American culture unable to develop a strong culture of their own, all being nothing but basic petty resentment).

Finally, everything otherwise plentiful south of the border is harder to find / more expensive (CAD is called the Canadian Pesos for a reason, because it ain't worth shit).

Of course, I didn't know any of that 15 years ago.


Not having a lawyer review my ESOP.


how did you go about finding a good one? the search parameters, so to speak


[flagged]


[flagged]


You can't do this here, regardless of how bad another comment is or you feel it is.

We've had to warn you about breaking the site guidelines many times in the past, and you unfortunately have a history of being an asshole to other users on HN. I appreciate your technical comments and don't want to ban you, but given how many times we've warned you and what you've sunk to in this post, I don't see what choice we have.

I've banned this account. If you don't want to be banned, you're welcome to email hn@ycombinator.com and give us reason to believe that you'll follow the rules in the future. They're here: https://news.ycombinator.com/newsguidelines.html.


Sorry I got carried away.

It's not clear to me if I'm banned or not though.

edit: I have emailed hn@ycombinator.com


You're banned (see last paragraph in my comment) but we'd be happy to unban you if you'll commit to following the HN guidelines in the future.

https://news.ycombinator.com/newsguidelines.html


I have reviewed the guidelines and I commit to follow them.

Can I be unbanned?


Good! Yes. I've unbanned your account.


Taking a year break in 2014.

I lost potential to earn millions from continuity of my career. It was the early days of many startups

I also discovered I like coding and don't really enjoy traveling.

Traveling is romanticized too much in our culture.


The fact that you learned those things about yourself are valuable as well.


Certainly, but I wish it didn't cost me a few millions to learn about it...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: