My first month has been quite a struggle and I constantly feel like I don't belong here. I'm getting paid more money than I could have imagined making but my output is a fraction of what it was at my old job. I usually make a conscious effort when I start at a new job to carve out some work that needs to be done for myself and get cracking but I'm having trouble understanding the project.
Everybody is much more experienced and older than me. I'm in my early 20s so I'm used to people seeing me as green. I had a chat with my 'boss' (not my boss per se, I don't really have one) and he seemed OK with my performance. I asked for what I could do better and he had something pretty minor for me.
I just feel like dead weight and like I should be fired.
Another thing to keep in mind: navigating bureaucracy in order to get things done is a skill in and of itself, and it takes time to learn and master. It's made that much more challenging by the fact that this is not widely recognized as a skill, and so there aren't any books or manuals. You have to mostly learn by doing. But three rules of thumb that I have found tremendously useful:
1. Be friendly. Keep in mind that everyone you interact with is a human being and they are all in the same soul-crushing boat as you are. A little bit of common courtesy can move mountains.
2. Read the rules. There are probably mountains of documentation somewhere about policies and procedures and who is at least ostensibly in charge of what. This documentation may or may not be complete, and it may or may not bear and resemblance to actual reality, but being familiar with it is nonetheless very useful because nothing strikes more fear into an uncooperative bureaucrat's heart than someone who has read the rules and knows what they say.
3. Rule 1 is more important than rule 2.
Also, it sounds like you’re insecure about how much money you’re making. Let me clue you in on something. You’re not making very much money at all. You will realize over time that they’re paying you the bare minimum to keep you around. That number just happens to be higher than what you’re used to. There’s so much money in the world and as a salaried employee you’re never going to get more than a paltry sliver. You should feel the opposite of how you’re currently feeling about money. You deserve more.
If you are coding on a complex system with a lot of legacy it takes a long time to understand it, in a perfect world people could draw a line around some part of it and give you just the right guidance to get started but mostly people can’t be bothered to do that. A company able to do that would be able to use workers a lot more effectively but the difficulty of doing that is one reason why ‘big tech’ is frequently perceived as unproductive and bloated.
Long story short. You won't invent anything if you are afraid of laughing and being laughed at.
Oh, and I'm a named inventor on a dozen patents and patent applications. How do you think Edison got through it, if he was worried about stuff not working?
Also, I've been fired a few times. Sometimes those were the best times. I shit you not.
I went through the exact same thing, fortunately I had close teammates that followed me between employers. They understood my life path pretty well. They helped me navigate it.
They helped me understand that I wasn't an impostor, at least not any more than anyone else. Doing the thing makes you part of it, and you're there for a reason; someone saw something.
Now hundreds of people know me by name; with all of the help I've been able to give, I've made a really good reputation inside our org.
It just takes time to build, stay with it.
Remember that sometimes it is valuable to learn the skills to navigate the business too. Being a tech wizard only goes so far
Big companies have to comply with basically all the laws and regulations -- some of which were written to apply only to them -- and their "target customer" is often everyone in the world. So you can't skip many steps in the checklist. Trademark searches, i18n, l10n, a11y, privacy, data retention, UXR... they deal with all sorts of stuff that little companies defer because they haven't found their product-market fit yet or are willing to risk annihilation if they get caught skirting a regulation.
Even if this doesn't affect you directly, the process sets the company tempo. If you don't take that into account, you might feel like you've inexplicably switched to the slow side of bullet time.
Find a coworker you respect but don't report to, and ask how you're doing on the terms that you're concerned about. Either you'll find out you're just fine, or you'll get practical tips to wade faster through the quicksand of big-company process.
Other engineers will be very happy to spend literal hours with you, including breaking down the overall architecture and figure out ways to contribute. Anything to help you get less lost in the sauce.
Maybe carve out additional time to understand the project. The problems it solves may well be far beyond anything you've encountered. Thus the motivation for the project and the technical challenges it takes on en route to solving the overall challenge may all be opaque to you. Maybe toy projects and demos can help you build intuition for what's happening.
Pay attention to the feelings of shame. You've done nothing wrong and this is a common situation. There are pros and cons to it. If you still hate it in a year you can take your new shiny resume and go find another job.
Imposter syndrome happens to everyone. You interviewed, you got the job, you are not an imposter.
But ask for help when you need it and it can take a long time to learn about the systems. Your boss should be able to point you in the right direction. But do your homework! Is there good documentation to read to help get up to speed?
Also you might try writing down your day to day feelings in a journal etc..
Also, bigger companies realize younger (cheaper?) folks are to be trained and integrated and they will start incrementally producing more and more over decades.
As to imposter syndrome - it is a real feeling, and if you give into it correctly it will be the push you need to achieve something that the next crowd of incoming folks will look up to.
To be honest, that sounds pretty normal to me.. It's an entirely different beast.. And the organization is so large and complex that you're no longer going to be "measured" on your direct output.. The org. does not care if you in particular has zero or negative output.. The org may care if the project you work on succeeds, it may not.. It may care only that the group you're in is doing okay.. Maybe it does not.. Maybe it only cares if the division your group,your project is in does well.. And it may be willing to also take a loss at that level..
Large companies move slower and have more money. That's simply how it is. I remember my second project at a large bank; I needed to do something, talked to a bunch of people, and finished the thing in about two weeks. That was not good. I was part of a big team that was tackling some complex stuff, and me running ahead of the pack was disruptive. Take it slow, be part of the team, etc. We then made a planning with the team, specified everything that we thought needed to be done, and did the thing exactly in the planned 14 sprints (which is still pretty fast and accurate for a bank).
Big projects at big companies have complex contexts and complex dependencies, and can serve highly specific abstract needs.
It can be frustrating when things move slower than you think they should or could. And it can be frustrating when it takes a long time to grasp a project. It's not unusual if it takes a few weeks, or even months, to get up to speed.
In between a bunch of big projects for various banks, I've also done one small project for a friend making an online game. Suddenly, I'm pushing changes to production on my very first day, when on other projects, it can take me a month to get up to speed. It's them. It's not you.
I've been working for decades in multiple jobs, and it's always the same. Sure as you progress you know more, but you also lift your personal standards as well to compensate.
Stick to it and you'll get there!
Second, you must have an internal compass; you must work on deriving satisfaction by contributing something of value. I used to tell a boss of mine, "I can't let my job interfere with my work" ... he still recalls it with a laugh 30 years later.
I tell my students to adopt an entrepreneurial mindset wherever they are, even if they are part of a big company ... identify your customer (*), work on a problem that your customer cares about (the tech bits), show why your work is better than other solutions or is good for the customer (this involves networking and marketing your ideas), take it to an appropriate level that will fund the project and deploy it. You act as a startup within that ecosystem.
(*) The customer could be your company's customer, or could be someone internal (a fellow dev, an HR person, a sales guy ) whatever. Your focus should be on providing value to _someone_.
If Yes: then you'll get better because that's what passion does.
If No: then meh, I think if your work is good enough for your boss, it's good enough. Save the money you make there and then look for something else. If you're really making a lot, use the money wisely to do something in life that is truly self-enriching.
The thing that I had to grasp was the tradeoff that although it might take 5 times longer to get a feature safely shipped following all the processes, once it's 'in the wild', it's used by 10,000s more customers than if I was still working at the small company. I also spend more time trying to make my work visible while in-progress so that it levels-up the team, which is another benefit of working slowly.
I've found sweet-spot cadence of switching between 2 or 3 WIP, or gardening/grooming ideas/experimental work on the side. I don't produce enough persistent documentation (e.g. in the codebase or formal docs) as opposed to Github issues/PR descriptions that tend to not get looked at after the work is done.
Closely related to this philosophy is the Peter Principle, and the above-described philosophy basically represents embracing the idea of pushing yourself beyond your own self-assessed competence - the worst case being that you push too high on the corporate ladder, expose yourself as an impostor, and get cast back down a rung or two back to where you're no longer an impostor, and the best case being that you stabilize at a new baseline from which you can Peter Principle your way further up.
Also closely related is the Gervais Principle and its framework of Losers, Clueless, and Sociopaths. Whether you strive to be a Sociopath or not, it's worth understanding that their success and power over the Losers and Clueless does indeed derive from sociopathy, and that you and I exist in a socioeconomic system designed by Sociopaths to favor Sociopaths - and if we can't beat 'em, might as well join 'em (or, at minimum, disguise ourselves as them and learn to counter-exploit the exploiters).
Long story short: all of us are either impostors or marks. Better to be the former than the latter :)
That's an extreme example, but it's always jarring to move to the bottom of a knowledge mountain and start climbing again.
People expect it, its ok. Provided your attitude and aptitude towards picking up the necessary knowledge is good, most organisations factor in that ramp up time.
We had reason to pull out a project plan from just after I started my current role, and a burst out laughing.. every task I had was "safe make work for the new guy because we don't trust him yet"
Your "carve out some work that needs to be done for myself" quote made me wonder though - what is your team setup? Do you have a project manager or anyone guiding you on what you need to work on? Or team members to ask questions?
Usually it's best to focus on the tasks that they expect you to do and provide them with regular feedback to keep them in the loop of your progress. If anyone else thought you need to be fired, you would've known by now.
Imposter syndrome is real, and it's rampant, but I believe it's because most of us are imposters. That's how the software industry has organized itself.
It's surprising to friends and family in other industries when I tell them that interviewing for a software dev role is always like starting over from scratch. Even as a senior developer with nearly 10 years of experience, every interview process is an exercise in convincing the other person that you're not a junior, and is more often a losing battle. Doesn't matter if you were recommended from within. Doesn't matter if you've got stars on your GitHub projects. Every time interview will be like Groundhog Day and you'll feel like you're interviewing for your first job. Every coding challenge will make you feel stupid, even if you complete it in time because you know you could have done better if you were given another hour and didn't have someone staring over your shoulder.
But sometimes we make it lucky and get that shiny new job. The paycheck is bigger than the last, and the benefits are better, but you quickly realize the reason your paycheck is bigger is because the work will be at least twice as difficult as what you were working on before, and probably more so. We applied for senior and even lead roles to find ourselves questioning whether those titles make any sense. How senior can we be if we still need help from others because nothing is adequately documented, or because the code is too confusing to us? For all we know, the person whose position we're replacing understood everything and was a "genius" within the company. How does one at least feel adequate when one's mental ass gets kicked at least a few times a week by astonishing problems and never having a complete enough picture of the problem domain?
We tell each other wonderful things about code quality and best practices, but the reality is that we don't work our way up from shitty problems to interesting and enjoyable ones. Far from it, I believe, most of the time. We get more monies and prestigious titles not to write better code or do the real exciting work, but to be the ones who manage to make the code do what the owners want within an expected period of time, and have a willingness to frequently be wrong and be able to fix at last as many wrongs as are created. It feels like being an imposter when a decade went by and the work difficulty seems more related to the passage of time than your ability to code. In a way, it is a form of imposterdom.
What disorients us is the sheer amount of opinion and theology in the field of software that we disguise as fact. Everyone is constantly wrong about everything. Take any given "best practice" or "way of the future", wait a few years, and those best practices will now be "considered harmful" and the way of the future will be "yesterday's software." How is anyone supposed to feel like an expert at anything when the inner reality of the software industry is frequently flipped on its head? How many of us are able to actually be experts at anything? How do we know what's right and what's wrong? If we can't answer those questions, how are we supposed to believe in ourselves and know what we're doing?
The only option left is to power through the slog, fool yourself and others into thinking that you belong, and focus on the better things in life that don't directly involve software.
And they pay more so they can choose who to hire
Don’t worry, you will be fine
Just keep trying to understand the workflow and their projects
If you want you can talk to your bosses about your concerns (if you feel like they are approachable, else I wouldn’t)
DO NOT QUIT. Stick it out at least for a year, so if you flounder a bit and think about quitting, just don't do it. You're fine.
1. This is an excellent opportunity. Take as much as can and want to from it. My experience felt a lot like what you describe, moving from a design shop which mostly specialized in brochureware websites a little on the advanced end, to a smallish startup which had more tech talent than it probably should have. After I got far enough into processing my impostor syndrome, I decided to swim (vs sink), and became much more comfortable admitting when I was inexperienced, or ignorant of even “basic” stuff, or just felt intimidated by my preparedness for a given challenge. This had the wonderful benefit of freeing up the “syndrome” portion and allowed me to accept the due praise I did get and see where I did actually contribute value in the ways I expected or better. Then whatever “impostor” was left… I was surrounded by talented people to learn from!
2. Most software engineers are far less productive than one might expect, particularly coming from a high output background. Again in my experience: this is probably a good thing. What’s better than moving fast (regardless of whether you break things)? Moving slow with clear intent, clear understanding of the value of your work, and the ability to sustain it. In other words, you’ll achieve more by being methodically circumspect, and you’ll be less prone to burnout by having realistic expectations.
3. While point the previous might suggest some degree of comparing yourself to others, please resist that urge or at least temper it with permission to be imperfect and frame it as a tool to determine how and what you could improve on. Otherwise you’ll always come up short, especially going in with self doubt.
4. Your self-expectations are different from your employer’s, and from those of your teammates. Seek feedback, often enough to know where you stand in their eyes. You might find that you’re already exceeding expectations! You’ve done this with your somewhat nondescript superior, but it’s good to get feedback from peers too. This is another good opportunity to assess whether (a) you’re working too hard, (b) your priorities are what you [or others] want them to be, or (c) whether you might at some point actually be outgrowing your role.
5. Take a vacation. It’s holiday season most everywhere. If you’re inclined, do a side project that focuses on whatever interests you but might feel a more slight challenge; or just chill because it sounds like you’re doing fine but stressed. Either way give yourself a win.