Ask HN: First month job anxiety. Am I actually an impostor?

187 points by rericks ↗ HN
I joined one of the big-4 tech companies a month ago after years of freelance work. Since joining, I’ve had trouble “hooking in”. For one, it doesn’t seem like I have all that much to do. I’ve submitted a few very simple bug fixes, and I have some larger feature work coming up, but it’s all on the order of maybe a few hundred lines of code. I’ve also spent maybe a week more than I should have on a fairly simple feature, just from fighting with my tools and trying to figure out where to put a few sparse calls in the codebase. It’s really embarrassing.

The other issue is that I’m riddled with anxiety every day. For one, I’m worried that my coworkers might think I’m slacking off, or that I’m incompetent or a bad hire. Everyone around me is always on point though many of them are younger than me. Their thoughts are completely clear. I rarely hear them make mistakes or misunderstand anything: they seem to have no weaknesses. In contrast, my thoughts tend to be extremely muddled. I often take in information without making much sense of it at first, and it seems to take me a while to clarify these thoughts into some whole. (And even then, I’m not always able to talk about it clearly.) I think this has always been my way of thinking, but it feels out of place here..

The other big issue is that I don’t really know how to reach out to people. I’m not a collaborator; I’m a recluse. In my life, I’ve always done things from scratch. Now I have to make meetings, ask people for information, decide that something needs to be done and tell another team to do it, etc. To get good at this, it feels like I basically have to rewire my entire personality, and I don’t know how to go about doing this. I’ve also found myself not asking clarifying questions when something doesn’t make sense in a meeting—see “muddled thoughts” above—and then I’m stuck figuring out whatever it was that I misunderstood on my own time (or not at all).

I don’t know if this is impostor syndrome, because I might actually be an impostor. Deep down, I think I’m riddled with fear that I’m just not good enough to be a “Googler” (or your favorite FANG here).

What do I do? How do I get better?

95 comments

[ 3.8 ms ] story [ 87.1 ms ] thread
deep breaths, and try to chill. when you need help, simply say "I need help" and that should be a trigger for someone to change context and actually help you, if they can.

not asking for help is the biggest mistake you could make.

Agreed. I once joined an engineering team as junior engineer at the same time they brought in a new principal engineer. He had lots of experience, but not on this specific project, so we were both on equal footing regarding the project itself.

I noticed the big difference between me and him was that he was very good at asking questions, whereas I fumbled around and tried to figure things out on my own.

Sometimes figuring it out on your own is exactly the right thing to do. But sometimes -- and especially now, as the newcomer in the group -- asking questions may be a better strategy.

First off, anxiety sucks and it's more than likely bringing about these negative thoughts.

Second, you're experiencing what a lot of people experience in their first month (or even months). Especially coming from a freelance role, the team experience will take some getting used to. Changing up your collaboration style will take some time, but ultimately you'll be fine. I was also pretty reclusive when I started at my job.

To answer you question about getting better. Reading Code and asking questions is the #1 thing to do. In order to write good code, you need the context surrounding your problem. If you're working for a FAANG company they will (hopefully) have coherent coding standards which makes reading code easier. Along with reading code, asking questions is perfectly normal for _everyone_. Engaging with other engineers and seeking knowledge is a part of your job description. If you feel you're asking too much, take some notes and document your learnings.

Overall, you're going to be fine!

I feel for you. I just joined a company about three months ago as the only senior engineer on the team and I’ve been going through the same thing. The way I get through it is by reminding myself that I got hired for a reason and that I need to give myself six months before really evaluating how the situation is going.

As someone else mentioned, don’t be afraid to ask for help. I’m used to “firefighting” and being the fixer, so asking other people for input and help is totally new to me, and it’s reasonable for it to take some time to adjust.

Also: Do not feel bad for taking time getting to know the tools and codebase. I’d much rather someone on my team take a week longer and gain knowledge vs just jumping in and breaking things by making changes to things they don’t fully understand.

Have solace in the knowledge that you're not the first or last one to have these thoughts. Some advice from a fellow introvert:

- ask all the questions. If things seem 'too quiet', then you're not asking enough - dig deep enough to find out what the active big projects are, what their roadblocks are, and how they fit in with the CEO's vision. (Those high visibility projects have the bonus side effect of making you look very good if they go through successfully. positioning yourself as an active problem solver goes a long way in corp life.). If everything's stored on the server, spend a month memorizing where and what the "juicy" files are. If there's one person that is truly a knowledge dragon hoard, spend time with them.

- go out to coffee with at least two people every week. I hate talking to people over meals (and am actually a misanthrope under a very well constructed mask) - but this made the biggest difference in becoming "part" of the team. Find the interesting people (or at least the people you can tolerate the most), what makes them tick, what advice they have, what advantages they think you bring to the table, and ask what they would do in your shoes. The answers may surprise you.

- If someone tells you to do something and you're not 100% sure on executing it, repeat it back to them. Not word for word, but repeat it back how -you- interpret their decision. ("Understood. Just to clarify, I should write X lines of code that do X Y and Z and do [this purpose] for [this department] and have the first draft by [this date]?") Easiest way to be on board.

- your brain is a shifty little meatbag that _will_ inadvertently try to sabotage you re: anxiety. (I mean that in a plural sense - mine does the same if it tries to wiggle out under the leash of my will.)(Put more kindly, think of it as a runaway puppy that gets distracted by every little new smell and has to be gently trained.) If things seem suspiciously out of control and no one else is nervous/worried, take a step back, note what is under your area of control, what is not, schedule some 1-on-1 with your supervisor and explicitly ask for a list of 3 things you are currently doing well, and 3 things you could improve on. As long as you make an active effort on those last 3 things, and your manger is a functioning reasonable human, they'll have nothing to complain about.

Good luck. You can do it.

(comment deleted)
I frequently have similar thoughts about whether I am capable enough, whenever I join a new project or take up a new task. So you are not alone.

One thing that helps is to look back and remember some of the cool things you have done, or the times when people acknowledged your work. Then that makes me think "I can't be all that bad".

Good luck!

It's not you, it's them. A proper manager should be actively integrating you into the team. It's as simple as dragging you along to meetings so you learn what's going on, or CC'ing you on emails, or having you assist a coworker instead of handling a feature by yourself.
Re your first paragraph: What you're doing now is learning the tools, learning the codebase, learning the terminology, and learning the company structure and procedures. This takes time. Nobody is surprised that it's taking you time. The people in your second paragraph who are doing fine? They already learned this stuff. That's why they're doing fine. When you have learned this stuff, you'll probably be fine too.
This is entirely normal for your first month. Be patient with yourself and you'll catch on.
(comment deleted)
Here's some scattershot hopefully-positivity.

Keep in mind that a lot of these companies are good at hiring for potential, not for an immediate burst of productivity. You are supposed to have time to figure out how to fit in and how to work with other people in your new environment.

A solid first step in "getting better" is allowing yourself space to not be as good as you want to be, yet.

You don't have to be a copy of your coworkers.

Reaching out to people is something you can learn. It's a skill you may have to explicitly practice, but you can learn it. Make yourself do it at least once a day (more if you feel up to it!), and explicitly congratulate yourself when you actually do.

I think it's worth pointing out that your coworkers may rarely hear you making mistakes or misunderstanding anything, and might see you just as you see them. It's natural for everyone to present strength and hide weakness. You have a chance to make a positive impact on your team as you learn to clarify things as soon as they come up: your teammates might also be afraid to do this, because they also don't see anyone speaking up with non-perfect questions.

I joined a large company last year after years of freelancing and found immediately that one of the skill sets which I had to develop was my ability to talk about technical details. When freelancing I would often be the only person on the project - I would have to talk to clients about the interface and the behaviour, but never about the details. Additionally the way I organize my thoughts about technical things doesn't naturally lend itself to verbalization.

It's been a bit of a struggle and initially the sheer amount of time I had to spend talking to people was a bit exhausting, but FWIW, I did get better at it and I think it was actually very valuable for my growth as a dev. Really, it was unrealistic to think that I could be dropped into a completely different atmosphere and hit the ground running with all the skills I needed. You're probably an overachiever to get hired there in the first place, so the experience of not being great is probably somewhat new to you - the rest of us have to deal with this more regularly ;)

Good luck!

Thank you for putting into words what I experienced with my past job.

In just every single previous job, I was either the lone coder (small companies or startups) or mostly expected to figure things out on my own and didn't have to discuss architectural decisions or issues I was having too often.

But in my most recent job, I suddenly had to start explaining things in detailed and technical terms multiple times a day to coworkers and managers and was finding it really difficult to have anywhere near as precise of language about it as my peers had when they spoke about the same things.

I've gotten better at that over the past three years of being here, but I still struggle with it, and sometimes feel awkward when I have difficulty finding the right words when it seems my peers have no issues describing with precision.

I'm curious: Did those verbally talented people also produce complex working code?

My experience is that people who sound impressive and accurate rarely do.

The quickest way to get comfortable is to ask questions.

Actually, IMO, that's the only way to get comfortable since technically you don't know the ropes yet. Literally the only way.

The difference between a Jr Engineer and every other category is that Jr's don't yet know how to ask questions because they don't yet know what they don't know, but Jr's that learn how to ask quickly advance.

Asking questions gets one through anxiety humps, and also helps you get to know your teammates better (without worrying about all of the other interpersonal baggage that comes with being introverted).

Lastly, for every group there's a person who enjoys answering questions -- find that person!

This is how the brain works. At first, even understanding social norms, the lingo, codebase is hard. People are talking but you're probably only absorbing like 30% of whats said. You read a codebase, and think you 'understand' but really again, only probably 30% is retained.

The brain, memory, and the 'automatic' unconscious mind lag behind and take a lot of stimulus to rewire;you need to give them the inputs they need, and the time to catch up. Once they do, it will be night and day, and you'll start flowing.

The main thing you need to do is to keep bombarding your brain with new information and critical thoughts. Even if you don't have questions, force out some stupid ones to get the questions flowing.

Doing this now, versus after a year, is critical.

So the question really is, what behaviors do you need to start that will allow you to give your brain those critical stimuli?

- Generating questions - actively email or seek answers from colleagues

- Ask to do some pair programming and work through stuff with people, were you assigned a mentor or manager? <- if you can find someone, one-on-one learning is the MOST efficient way of knowledge transfer when beginning a project

- Make sure you act VERY POSITIVE, VERY ENGAGED, AND VERY EXCITED, these will make people want to help you.

Good luck.

Talk to your manager about your concerns and ask them what their expectations are for your performance. For the 6 months to a year the expectations are honestly pretty low. In the very unlikely case they aren't happy with how you're doing then at least you'll know and have a better idea on what to improve.
To add to my patent coment I'm sure you're doing fine. In my experience as long as you are learning stuff in your first month it's fine. Also you mentioned concerns about collaborating and communicating in a large organization, for me those skills took like 2 years to learn after joining somewhere and they seemed happy with that rate of growth
Yeah, I constantly tell new devs that I don't expect them be very productive until 6 months in. Prior to that I just expect them to be absorbing as much information as possible and doing minor fixes.
> I’m not a collaborator; I’m a recluse.

> What do I do? How do I get better?

What is this "better" you speak of? Sounds like you know yourself well enough. Get a different job. Bigco is not for you. Even once you get familiar with the environment (it will take time, just don't stress about it) and can concentrate on doing your job and not HOW to do your job (if that makes sense), you will still fail at bigco and FA*G (I don't include N). With your personality makeup you are not going to be successful at performance review.

I would even say put in a year to not be a hopper, but it doesn't sound like you will do well and 1 year doesn't look good either. With just 1 month you can easily just not put it on your resume at all.

The other commentors are replying as if you are they. But you are you. Know thyself.

If you were first year out of school I might answer differently but you are old and experienced enough to know what works for you. If at this age you don't even know how to approach being a social animal ... work the way that makes the most of your own skills and personality.

This doesn't sound like normal first month anxiety to me.

I have the same experience. The difference is, I have been doing it for a year now, and still feel the same way. Although I've learned a lot, and am much much better, I still struggle on simple tasks, and don't understand much I have to do.

Being in such a consistent state, the anxiety couldn't sustain, and now is only like once a week of terror.

I just keep learning and practicing and getting better. It's the only thing I can do to try and get myself up to a basic level to be a somewhat effective contributor.

I'd like some technique to improve my learning, but the reality is I've tried techniques, and it just wastes more time than just practicing, and reading code, and learning.

It's a problem, my only solution is to get better.

Perfect example of the hiring process these days. Companies don't even communicate with candidates, they don't want to know anything about people besides their ability to crack a function on a whiteboard. If you crack it, you get the offer, otherwise bye bye. Such a shame... They don't understand that our job is way more than Leetcode. It involves collaboration, communication, creativity, thinking out of the box, etc. What's happening to you my friend is the byproduct of our current hiring techniques. Especially the ones used by Faang's.

I'm a serial faanger BTW, so no bitter taste at all... I've been there done that.

It is not your fault at all, it's just a different way of working. If you've done only freelance jobs then you have a lot to learn in terms of team work and the corporate world. You are not an impostor. Your current "weaknesses" are part of our job and what you're lacking here is a lack of experience within that type of environments. Just be humble and don't hesitate to ask questions to people. Also, keep in mind that 90% of the people in the corporate world fake it until they make it. They collect knowledge and hold on to it like they would hold on to gold. If you start digging you realize that they can't think outside of the box. They only know one little thing, but they know it very well. Of course, when you repeat the same thing over and over, at some point you become the master of that little thing. Exactly like Leetcode... spend 3 months on leetcode and you'll easily get offers at Faang's.

Sounds like you've been set adrift in a canoe without a paddle and you're trying to keep up with the other canoeists.

You need to ask your colleagues to pair with them, and your management to encourage the practice. The amount of institutional knowledge you need in order to thrive should be more fire hose than eyedropper. The reason people fight with their tools? The tools suck in terms of instructions and the only way you master them is to watch others master them.

As soon as you make yourself indispensable (this can take many forms, and you should explore holes in the lineup that you enjoy doing, which may include project tracking, or thoughtful code reviews, or bringing homemade pizza in when everybody's starved and exhausted and can't bring themselves to eat), you're secure. Work as hard or as little as you like, and don't feel bad about it. That's the maximum degree of control you get, with a sizably random portion that will forever be outside your control.

Take some comfort in your idle time and try to push it toward reading or documenting something, even if it's as mundane as your own on boarding experience (in order to make it easier for the next new hire). Try this philosophy: As long as you put in your hours and meet expectations, you're fulfilling your purpose to the company by prettying up the place and using your weight to keep the building from blowing away.

I wanted to chime in and say that I really liked your advice and the way you presented it. It's actionable, comforting, and not at all didactic. :)
> The reason people fight with their tools? The tools suck in terms of instructions and the only way you master them is to watch others master them.

Sometimes the tooling is genuinely rubbish and sucks for a variety reasons. My advice would be to look for ways to improve it, especially if several people agree it needs improving.

> The amount of institutional knowledge you need in order to thrive should be more fire hose than eyedropper.

I don't think this is what you meant, but I disagree as written. You shouldn't need a fire hose or institutional knowledge to thrive. Of course in practice, this is rarely true, but in general I think aiming to require minimal institutional knowledge is a good goal.

It's just playing catchup mate...you'll get your own project soon enough. Also, likely bad explanations by them...
I remember my first job was working on a massive enterprise system in a complex business domain on a codebase that had survived multiple iterations over the last 30 years.

It took a full 9 months before I finally thought 'I can do this job'.

I think part of it was eventually working out the baseline level of competence of the seniors and seeing just how much everyone had to communicate to get anything done. Over time I got used to the various systems and processes but also used to the fact no one knows everything and we just have to clarify with others what we don't know.

It's a team sport.

A month ago I started into a new position at the same work place after working in the old position for 9 years and I feel everything you describe.
Don't worry, it's completely normal. First few months can be hard. Especially if it's a Amazon where they will have no team specific on-boarding.

I guess your best bet is to try to get help from peers, go for lunch with them and that kind of stuff to not feel left out.

And don't jump into projects, alone by yourself. Try getting another person allocated on the project with you. Their domain knowledge will go a long way in getting things delivered.

I think there are just some work environments that are like this.

When I transitioned from freelancer to 9-5'er, I felt the same way you do for an entire year. Confidence comes, but only slowly.

It doesn't help that I've repeatedly heard people say that nobody knows what I do, and that I can go an entire week without anyone in the building talking to me. (The rest of the computer folk are in other buildings, and we do communicate by e-mail.)

All I can tell you is learn what you can. Do your best. Save your paychecks. If they do decide to jettison you eventually, you'll need the cushion.

Are you based in Mountain View? If so, feel free to email me - my username at gmail.

I've been building a course on helping people think like an engineer and I would be happy to help you change how you think when it comes to coding.

I have a very solid approach that works well, it's easy to learn and master.

Be thankful you're living outside of your comfort zone. This means your growing as a person.

Feel free to contact me. FYI I'm not selling nothing; my course will be made available and free to folks.

> I don’t know if this is impostor syndrome

It is a question worth asking. Our industry talks so much about impostor syndrome that people forget that there are other sources of lack-of-confidence.

I'm going to go through and try provide a clear vision of what challenges you are running into. Based on my interpretation, I'll then write out what are hopefully some clear actions to take or concrete questions to resolve. However, if you think Ive missed the mark in my interpretation, please let me know.

> joined...a month ago

Oh, so you're totally new then. Cool.

> all on the order of maybe a few hundred lines of code

Lines-of-code can be a proxy for the scope of a problem when you adjust for language expressiveness, but it is a very rough one. What I'm hearing here is that you're used to taking on projects for clients which are a fairly meaty bit of their business and require you to write whole features fairly quickly...but probably doing greenfield development. Modifying code that has been running for a while in an established organisation is a bit of a different beast.

> I’ve also spent maybe a week more than I should have on a fairly simple feature, just from fighting with my tools and trying to figure out where to put a few sparse calls in the codebase. It’s really embarrassing.

So I'm hearing a mix of frustration at your developer experience and disappointment in yourself for running into that frustration. I'm guessing that before you had a toolchain you were very fluent with and now you are...not. Okay, this is a problem to solve. Not as in "this is a problem with you", just "this is a problem you've got to deal with". Ideally, you deal with it by scoping out the pieces required to fix your development environment and tacking them as engineering challenges. This process will be significantly accelerated by asking well-framed questions of your coworkers who have the same sort of development environment. Julia Evans has a blog post on how to ask good questions which you should absolutely go read right now. https://jvns.ca/blog/good-questions/

But some of your struggles with your development environment might apply to the lots of other folks and be the sort of thing that requires your team to do an investment project to solve that problem.

> Their thoughts are completely clear... I rarely hear them misunderstand anything

whoop whoop sampling bias alert! You cannot telepathically read anyone else's mind. However, you can read your own mind. But this perception of yours still comes from somewhere. Where then?

* I suspect your coworkers are probably reasonably concise and organised in their speech. This is a combination of a social skill, knowledge of the domain, and a willingness to wait to speak until you've organised your thoughts. The last one is a habit that depends somewhat on backbone. The former takes a combination of practice and

* I would be a very surprised if they never ask for clarification on anything. Indeed, the ability to notice that something is ambiguous and pin down reality is one of the most important communication skills for an engineer. However, there is a skill to expressing confusion confidently. You can pick up on it if you hear phrases like "could you clarify something for me...", "There is a point unresolved here..." or "so if I understand you correctly..." Are you sure that they aren't merely exercising the skill of projecting confidence while resolving confusion?

> In contrast my thoughts tend to be extremely muddled. I often take in information without making much sense of it at first

So when you check your intuition to see if you understand whats going on, it comes back saying "bwuhhhhh?"

Yup. Thats kinda how it goes when you're new somewhere.

Wh...