After a couple years I hit the big time and got a job at a tech startup that was blowing up. There was one really successful project I worked on, and otherwise I didn't really accomplish much - the whole organization I was in was very dysfunctional and we churned through management and new projects really quickly, but nothing really landed. During this time our stock price went crazy, and I sold all my stock to make a down payment on a house and max out my retirement savings. Eventually the mismanagement got to me - every project seemed doomed to fail, and I was paralyzed with indecision daily. They promoted me to the level where I was supposed to propose and run projects, and I hated it.
To try and get back to building things, I joined a small startup around the time the pandemic started. Everyone there gave me great feedback, but there was no product focus, very little management, and ultimately it still felt like the things I was working on didn't matter or lead to anything. The product itself was hard to use and had so many problems that I couldn't imagine trying to untangle them all, so I left after a year.
At this point I was terrified that I just couldn't work in tech anymore. I had developed medical problems from stress, and took months of time off to try and recover. There was nothing else I wanted to do for work, but the thought of sitting down and building anything was terrible.
Fast-forward to today - I applied for and got my dream job, working at another very successful startup that has a lot of high-performing people. They get things done, and the product is great. It's been a couple months and I have achieved nothing. Not a single PR merged. I came in with all the momentum from my unemployment, all the enthusiasm and energy I could muster, and proposed a bunch of projects. Nothing landed. My manager left a few weeks after I started, my onboarding buddy has been absent, and the fear has started creeping in again that I'm alone and can't hack it in this high performing team. If I can't work in the tech industry it would completely upend my entire life.
Does anyone have any advice from a similar situation? I think I need more support and guidance but my experience has been that tech companies don't really offer that, and also that everyone seems happy and successful regardless.
Most of my best times as a software engineer was when I worked at non-techy firms. When I worked at a local NPR affiliate station, I was able to both solve new problems and improve existing things without a lot of the buffoonery seen at a lot of hip tech firms. As a mid level developer at the time, I had lots of room to try things and could afford to fail, yet my seniors actually had time to help.
A lot of people not happpy with their careers should consider non-tech over hip startups, Silicon Valley, and fintech. You will still encounter headaches, but you may also avoid a lot of the mental agony from the big tech world.
It gets exhausting having to repeatedly say "we are going over budget due to unforseen complications as a direct result of low quality code".
It gets exhausting having to constantly rework solutions to fit the boneheaded design decisions made with zero forward thinking.
If you show up saying you can develop apps and also manage servers, handle complaints, etc., they will often hand you a lot of responsibility to do things yourself.
Not great for advancing as an engineer unless you actively challenge yourself, but I’m just suggesting that it’s a field out there.
I did this for an education company. Been employed over a year, developed a few web apps for them, basically been handed keys to the kingdom, and they love my work.
My previous job was Generic Startup 7,923™ with a company-provided snack table, and company-provided lunches once every week. The other devs there were decent people. My boss certainly expected too much though. Now I know what not to look for in a job.
This is how I make money. I create products that serve real needs of real businesses / people. Bit of warning - I am not a direct employee for those businesses, I have my own company that does product design / development and contract as such. Still I get much satisfaction looking at my products doing something real
I think that's true when joining a young startup (e.g. company less than 2-3 years old).
But there are plenty of 15-40 person "startups" that have been around for 5+ years and are profitable - I would say these types of companies are good to join (if they've had a stable and consistent management team) since after 5 years, the company would have worked out most culture / HR kinks.
PS - things like "are you profitable" and "tell me about the management team/culture" are very acceptable questions to ask during an interview.
Edit: "how many employees were there 1 year ago" is also a good barometer for how hastily the company is scaling. If they're 100 today but were 50 a year ago, I'd steer clear. As another commenter mentioned, go for slow and steady growth startups rather than high/fast growth.
Honestly never understood why joining startups is meant to be so amazing unless 1) They are working on exactly the niche that YOU personally want to work in and 2) The startup's company culture is exactly your kind of weird/niche culture too. IMO unless it's a perfect match, you're going to have a bad time as there is less stability and diversity of ideas/experience in small startups.
I love large orgs because there are tons of characters, experienced professionals and frameworks designed to support and enable me. I can always move projects when I get bored or something isn't right.
I would join a startup however if there is something very very specific I want to build and I want to circumvent all the corporate barriers/rules to move fast and ship something. But so far, I've not felt that yet.
This comment is so underrated. In most big companies, if your manager is an asshole or the project is boring, you can always move to a different role.
Meanwhile, investors reward the company for "traction" and regardless investors both private and in the public markets reward growth at whatever expense and first-mover / big-mover advantages.
The sweet spot are those financially stable, slowth growth companies with enough employees so that people aren't worn too thin but not too many that the wheels are coming off. Often that's around 100-300 or so, could be less a bit more.
It sort of sucks, but idk - in my late twenties I'd like to think I have a much better understanding of what makes me happy now.
I'm actually trying to pass FAANG interviews and it sucks, but at the same time I've realized just optimizing for TC over the next few years is something I actually prefer.
I happen to be close to some people who work at the CDC tabulating death statistics. You know what one of their greatest success stories over the past few years was?
Updating their death-reporting from once-per-year to once-per-month (albeit preliminary / unreliable statistics, but monthly reports nonetheless). They still revise the numbers up to a year out but it turns out that having this project done _BEFORE_ COVID19 hit helped a lot, since decision makers at the White House (and other parts of the country) got the statistics they needed faster.
And before you say its easy: the 50 states have 50 different death certificates. The information is standardized but the data-entry and reporting methodologies are non-standard. Plus territories (ex: Wash DC, Puerto Rico, Guam also have their own death certificates). Pushing for more standardization (ex: the rules for how to report COVID19 deaths and on what line) and pushing that training out to doctors also results in partisan bickering, as you might expect.
----------
Doing these kinds of things is a massive undertaking in general. If computers were easy, everyone would do it. A lot of it is just growing up and realizing that the Iron Man movies you watched 10 years ago are unrealistic crap, and that the daily grind to make small bits of progress are hugely important.
Other bits are to truly celebrate these accomplishments, even in the face of widespread disdain. There's a ton of people giving crap about the CDC's death statistics with regards to COVID19 (some legitimate criticisms due to the accelerated release schedule they've got behind monthly statistics). But a lot of the criticism is just partisan bickering that no one really takes seriously. Everyone basically agrees that monthly-reporting (though less accurate) is better than waiting a whole year.
Still, its hard to argue against progress or the usefulness of this "monthly death statistic reporting" project. Originally created in response to Hurricane Maria (where US Newspapers reported a different death number than the CDC), the whole project was launched just in time for COVID19 (and was online for part of the opioid epidemic as well).
EDIT: That goes to show what a "real success" is like. Its like lighting in a movie: if you do it perfectly, no one notices. If you make the slightest mistake, a ton of people online make a big stink about it. High risk, low / non-existent reward. But its hard to deny the importance of the project. This is the prototypical "easy job but not really" scenario, everyone just expect it to get done, people don't really realize how hard it is to do (50+ states with 50+ different formats. In the case of the Opioid Epidemic, there was new language being used on Death Certificates that didn't exist before, words like Fentanyl, and people just expected the CDC system to automagically detect these words, new-misspellings and collate results together despite no one actually asking for that feature, etc. etc.)
There's a lot to be said for getting into a rhythm of picking an issue, solving it, and merging it. Doing it a few times can be a real confidence booster.
What's the reason behind having no PRs merged? Did you create them, only to have them rejected? Have you not completed the work for any? Is there nobody to review them?
Also, just how big are the issues in your tracker?
I'm going to assume that everything is in place to get a PR merged. Given that, try to find a way to shave off an issue from a larger issue. Go for the smallest possible unit of work that might be useful. Then focus on getting that one PR merged. Rinse and repeat.
Not knowing who's responsible for reviewing your code is also not on you but on your manager, bad onboarding, bad documentation and general communication. Still you can check in the repo who's been working recently on adjacent work and reach out to them on slack/whatever and ask them.
I suggest to try and get small wins (like merging those PRs) as soon as possible and then pause and reconsider if this startup is for you. BTW, I don't see the "constant failure" you mention in the title anywhere, more like not being lucky with startups, which is normal since often they are shitshows.
Deleted Comment
Clayton Christensen made an academic career at Harvard researching market leaders getting replaced.
The Office of Advocacy of the U.S. Small Business Administration reports about half of businesses fail after 5 years, https://advocacy.sba.gov/2011/10/19/what-is-the-survival-rat...
Skill plays a role in these outcomes, but so do other factors including luck & imperfect information. The top engineer at Blackberry was a rising star, until suddenly the iPhone showed up.
- More immediately, however, from the way you wrote it sounded to me like you're really, really down on yourself & have this constant churning sense of fear (above/beyond the typical "background radiation" of our insanely distressing life right now)
- I hope I didn't misread, but it sounds like generally you've got your $$$ locked down for foreseeable and are getting paid to work with high-caliber people
- Just going based on what you wrote, all the stuff going at this new gig (omg manager left, less-than-flawless onboarding, new person with lots of ideas learns they might need to come up with different business-valuable ideas, it's unclear how to get stuff merged, etc etc) are not that unusual. Your career trajectory as you describe sounds like somebody who actually gaf about engineering
However, that underlying fear or whatever the gnawing feeling you describe that threads through everything, might be worthy of further examination. Like figure out why is that monkey on your back?
If you're not already, hang out with kind people who don't work in tech
Also this group is like the khan academy of mental health-- check out the mirror exercise: https://wiki.healthygamer.gg/en/Insecurity
Don't know you but rooting for you
Objectively the rest of my life outside work has been extremely stressful, and I'm scared of losing my job.
The thing is, you have a lot of stress to deal with and you've been joining some seriously stressful job situations. I've found that burnout happens not because of working (most of us are lucky and enjoy this work), but because of a outside factors, often because of a lack of control. Burnout can happen because the work feels meaningless. I know if I am stressing out over something I don't believe in or endless projects that fail to move the needle, I will lose interest in the work.
To compound things, you have a completely unrealistic expectation of success. Retiring at 30 is hitting the lotto--and that even already happened to you. Though you said you wished you had held on to the stock, you got your big exit already. You bought a house. Congrats! That is far more successful than most of us. I've been working for 20 years and never had this. I pump out a ton of code, it's not about being good, exits like that are about being at the right place and getting lucky. You are expecting to get hit by lightening again and that's not reasonable.
If you're open to it, working out expectations like this is where a CBT therapist is good. They will hear those "should" statements about yourself and help set realistic expectations of yourself. They are like mind debuggers and I think you might thrive with the right thinking because you have already been super successful. You have done great things, you just aren't seeing them.
I would also recommend that startups are not the place for you until your life is less stressful. Big companies might be out, too, because you control so little of the output and there can be a ton of competition, they can be crazy stressful, too. Find a medium sized company with happy employees and punch that clock for a while. You've got enough to deal with.
Good luck to you! My email is in my profile if you'd like to talk.
Also sounds like you're an earner, survivor, tough-as-nails individual too
What I’ve figured out is that I need to have a new way to measure myself. I wanted to be a hotshot from day one, and impress everyone by cranking out new features. But on a project this complex, it will take half a year to ramp up and become an important part of the team.
In the meantime, I’ve realized I can’t simply call myself a failure every day. I need to find smaller goals that I measure myself against, like learning a new part of the codebase, building a relationship with another developer, building a little prototype that might not get used, and so on.
This suggestion might be a bit out of left field, but reading The Wisdom of Insecurity by Alan Watts has helped me a lot with this problem.
If more is thrown at you, push back using phrases like "adding this initiative may put effort #1 at risk. I think we should concentrate on effort #1 a bit longer while #2 takes more shape"
Why are your PRs not being approved? Do you need more time pair programming so what you submit is more aligned with reviewer expectations? Have you asked for that pairing time?
Overall I hear two disconnects, one at a business/product level and one at the engineering level. Your expectations sound out of alignment with your peers. You might try and work on relationships, build trust, find the fun puzzle and try and enjoy any little bits you can.
PR approval is mostly down to not being able to get any person to actually +1 - our deploys are pretty slow and high-risk right now, and if your project isn't important it just kind of seems to hit a wall. The code itself is fine, but nobody cares about the result (even though I've talked to them about the benefits and they agree).
This could be a potential focus? Everyone loves continuous integration. What would it look like for every team and every project to deploy confidently? If you could be instrumental in getting that going, every single dev and manager would be thankful
Right before the pandemic I joined a large company you've heard of. My boss was mostly absent - I talked to her maybe four times during my entire stay. We were actively hiring for an intermediate lead to take the load off her.
My teammates had no idea what to have me do. We operated a confusing distributed workflow that touched many teams. Changes and deploys were seen as risky, but failure was also constant, and my teammates spent a lot of time shepherding various parts of the workflow manually. The whole thing had lots of dependencies that were owned by different teams, and none of them felt the need to take on the risk of approving each other's changes.
I ended up leaving after a couple of months. Satisfyingly, the company went on to lay off 20% of its engineering staff right after, including the intermediate lead we had just brought on. I managed to fall back onto another offer I had received earlier in my job hunt (and then left that position about a year later for similar reasons).
What I took from the experience is that not only do a lot of software teams treat hiring as a mystical ritual full of supernatural risk to their very existence, but they also don't have a clue about what to do with a new hire. That's also a mystical ritual, in which they want you to somehow "get absorbed" into the team without any explicit planning or guidance on their part.
Some teams (some) have wish lists of project ideas and tasks that they wish they had the bandwidth to work on. Other teams at least have bug queues that range from bugs appropriate for new hires to much more general issues that take planning and triage.
But a surprising number of teams hire as a means of throwing spaghetti at the wall to see what sticks. Maybe the lead is frustrated with the pace of work. Maybe the team has an unfilled FTE role and they don't want to lose it. So they end up hiring someone because (a) you must always be hiring, duh, and (b) not filling that FTE vacancy means your team loses the zero-sum competition for prominence with other teams.
In my experience, I would have probably unearthed some red flags, had I dug in more. There are usually red flags in the hiring manager's description of what they want a new hire to accomplish. I now know what to look for, I think (basically, comments suggesting that your job, as an IC, is to "transform" things or even "blow them up!").
What would I have done if I had to stay? Well, sometimes dysfunction works well for all parties involved, and that would have been mind-numbing. But I would have gambled on the possibility that painful, risky deploys and unclear success criteria were a pain point for everyone. That means work on metrics, tests, and the tooling for them. It means building reliable rollback and faster deploy. It means building parallel testing pipelines. Overall, when there is chaos and lack of buy-in, one possible solution is to build stuff that demonstrates usefulness without a need for buy-in. I wasn't eager to build any of those things. I had another opportunity, so I took it and left.
My guess is that your experiences are only partially connected to who you are as an engineer. A lot of teams are just disappointingly unprepared to use a new hire. Some people do thrive in such environments, either thanks to past experience or a quirk of personality. Given the opportunity of unformed chaos, they build projects that they know can't fail and then deliver on them. You might not have that confidence or experience. If you want to get more resilient to this kind of situation, either keep rolling the dice with new teams (they can't all suck at onboarding!), or find ways to use dysfunction as an opportunity to show off your initiative and experience.
The new very successful startup, the many high-performing people. Is that the truth or is that appearance? Fake it until you make it. That may apply to people, but also to companies.
Find a hobby, something outside your workfield that gives meaning to your life. If I hear you, you are successful, but you choose the wrong companies. If they pay you and don't complain, then you are a success in my book, much more successful than I ever was.
It's how you introduce new code to many projects. OP was saying he was unable to contribute any new code.