Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: My boss doesn't think I'm doing good work, how to proceed?
384 points by dazeandconfuse on Jan 6, 2022 | hide | past | favorite | 488 comments
Dear HN,

I'm working my first job out of college and I really enjoy it. I get to do fun computer vision stuff, write Rust, great pay, great benefits, short commute, etc. And my manager and her boss are both super smart.

However I'm a bit frustrated. I thought I was doing well - I'm working hard on the project I was assigned to, and it's coming along nicely. The deadline was pushed back once (which that seems to be very common at this company), and the new deadline is still in the future.

Two weeks ago, my manager's boss schedules a meeting with me and my manager. My manager is busy putting out a fire so it's just me and the boss, and the boss made a some of criticisms of me. I've been thinking about them and I can't shake the feeling that some of them were kind of unfair. (To be clear, I absolutely did make some mistakes on this project that contributed to it taking longer than it had to.)

First, he basically tells me this project should have been finished a long time ago and he can't believe it's taken this long etc. I had no idea that he felt this way before the meeting - I've mostly just been working to get it done before the revised deadline my manager gave me.

He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions. (When I bring this up, he says I probably just misinterpreted an offhand comment of hers as a hard requirement.)

Part of the reason it had taken so long is because I put a substantial amount of work into a part of the project that's no longer necessary due to changing requirements, which I don't think I could have forseen. I don't think the boss appreciates that and just sees that the amount of usable output is low for the amount of time I'd been working.

He did also make some criticisms that I thought were fair. For instance he said I should have looked at other projects to see how they accomplished what I'm trying to do. That definitely would have been a good idea.

After our meeting, my manager and my boss had a meeting with just the two of them to discuss the status of our project. I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

As of today the project is pretty much done (save for some procedural details). I'm happy, but I can't stop thinking about that meeting. I really did work hard, so it's demotivating that it feels like the result of me working hard is unappreciated.

I'm not thinking of quitting over this or anything, but it seriously bums me out. I don't know if I have a future at this company if the boss thinks I'm not a good dev, and I really like it here. A month or so ago they added someone else to my project and I trained him on my code, and he's super smart and capable, and I'm thinking that now they probably feel that they could fire me if they wanted and not lose much.

But the saddest part is that I really admire my manager and my boss, and I wanted to make them happy to have hired me, and now I feel like they probably aren't. I guess I can try to learn from my mistakes and get over it, but at the very least it feels like an inauspicious start.

How should I proceed?




> Part of the reason it had taken so long is because I put a substantial amount of work into a part of the project that's no longer necessary due to changing requirements, which I don't think I could have forseen.

One of the things that I've experienced with new grad junior devs is that there's an adjustment needed to change from academic working to business working. In academia, usually the professor gives an assignment and you have to go off and figure it out, without bothering the professor, no matter what. In business, it's much better to 'bother the professor' regularly and check in affirmatively on whether the assignment has changed, or to tell the manager about challenges that arise to re-plan together. As a junior employee, you're not going to know the full business context of what makes sense, and checking in can save weeks of time that would otherwise be spent off on your own.

Not sure if that's the case here, but certainly something you could consider going forwards to prevent similar situations.


I have this junior engineer DM'ing me right now and I've been ignoring it because I don't want to deal with him and I have my own work to do. I'm reading through your comment here thinking "hey, I'm pretty good at walking that line, bothering the professor when appropriate, not waiting too long and not asking him for help too soon"... and then it occurred to me this guy is probably bothering the professor where I'm the professor. Oops. Need to work on being more charitable with my time.


I have a theory about why it is so difficult for great IC's to make the jump to being a great manager. As an individual contributor, you need two things most of all: 1. quiet uninterrupted time to focus your mind and get into flow, and 2. quick responses to any blockers or questions that you have so that you can get back into the work. As a manager, a key part of your job now requires you to be infinitely interruptable, so that you can get those answers back to your juniors quickly, and also, you must protect your juniors from as many interruptions as you can. AND THIS IS IMPORTANT: Make sure you are not that interruption. If you want to ask your junior a question, HOLD IT and batch your questions, if at all possible, so that you are not a source of interruptions.

Beyond that, have clear goals, and communicate them clearly. Most people want to do the right thing. The better they understand the goals, the better able they will be to make decisions on their own that don't need adjustment later.

You need to encourage your juniors to ask questions as soon as they need to get clarification or unblocked. To do that, you need to embrace the interruptions, that is your job now. Both the interruptions from your juniors so that they get unblocked, and the interruptions from pesky people that will distract your crew must be short-circuited by you before they get to your team.


> I have a theory about why it is so difficult for great IC's to make the jump to being a great manager

I find it very odd that most ICs take the path of management. This seems like an unnatural transition, like going from being a minister to playing in a death metal band.


There really isn't a pipeline for for entry-level managers in tech: I've never heard of anyone interning for, or graduating from college and managing ICs as an entry-level job. However, those managers are needed, and have got to come from somewhere, so here we are, looking to start a death metal band at a seminary.


As someone who's done both (dev and dev management), it's more that it's very hard to manage dev teams unless you've been a dev. We have all experienced the clueless non-technical manager who doesn't understand why any of this has to be this way and keeps pushing for "common sense" things like accurate estimates for project development.

There's also nothing stopping a good dev from being a great manager, or vice versa. A good dev learns to listen well, which is also a key skill as a manager. A dev creates working systems out of conceptual components, a manager creates working teams out of actual people. The biggest difference is that there's no Stack Overflow for management - every situation has to be treated as unique and you can't just copy-paste the solution.


> We have all experienced the clueless non-technical manager who doesn't understand why any of this has to be this way and keeps pushing for "common sense" things like accurate estimates for project development.

This is in my opinion actually quite easy to explain to managers: asking for time estimates in software development is like asking for time estimates in proving a deep conjecture in mathematics.

Since every economics major has to take some courses in mathematics (which at least in Germany are often there to weed out bad students), this should not be difficult to understand for managers.

The problem rather is that these clueless non-technical managers insist that this perspective is simply wrong and theirs is right.


Having never had a manager with any clue about maths, I found the golf analogy works better:

"Why can't you hit a hole in one with every golf shot? You know exactly where the hole is, you know how much the ball weighs, you know the length of the club, you know how hard you need to hit it and in what direction. So why isn't every golf shot a hole in one? Because, obviously, you may have miscalculated how hard and at what angle you should hit the ball, you may not have the skill to hit the ball exactly right, and any amount of random factors can affect the ball between you hitting it and it arriving at the green. Same for software development"


> Having never had a manager with any clue about maths,

This is exactly my point: at least in Germany, the compulsory "mathematics for economists" courses are there to weed out student and are thus feared among the respective students.


Since I'm both an IC and a death metal connoisseur, I'll argue that it's more like going from playing in a death metal band to being a minister ;)


Indeed, I got promoted to a managerial position, which seemed a nice career opportunity for me, but my productivity and happiness tanked so much that when I had the opportunity two years later to go back to just being an engineer with no one waiting for my input, I just took it. This is how I learned that while I think I can be a decent manager, the skillset of managing people are totally different than being an engineer and it's very hard, at least for me, to context switch effectively between the two. And in that case I'd rather be an engineer.


I'm fairly sure it's done mainly because if you want to make more you need to become a director of something.

In companies when expensive tech only people are allowed you see less techies among managers.


In many industries that’s the fastest and best way to get paid well.


Doesn't have time for junior dev, because has so much own work. Then hangs on hackernews :D


If your a senior dev it’s part of your role to help the junior ones out. You should cultivate that behaviour as it brings up the quality of your colleagues and builds work relationships.


I draw a corollary to how graduate medical education works. You go into residency a fresh doctor with zero applicable skills. You may not even be CPR certified, but you're an MD/DO, and you've matched into a residency. You know less about actually helping people than a nurse who's been on the job for a month. You spend the next 3-7 years working 80-100 hours a week learning your chosen specialty. You become an absolute expert at your specific field. If you're in a surgical field you spend thousands of hours practicing and performing the surgeries you'll be responsible for. You may or may not specialize even further with a fellowship for another 1-4 years.

Then, when you graduate and can start making real money (probably), if you work at a hospital that does resident education, you're almost immediately expected to let the residents do as much as they can safely do, so they can learn. You go from working 80 hours a week performing surgery after surgery at a senior resident to working 30 hours a week watching the senior resident perform surgery.

Similarly (and admittedly it isn't a perfect analogy) as a junior and mid-level you're spending all this time learning how to write real software. Most of it's bad and especially at the junior level you're going to spend a couple years being more trouble than you're worth in terms of productivity. But by the time you're a senior, when you theoretically know what you're doing, you're going to have to spend most or a large portion of your time helping out the juniors in your org.

If you don't want to do that, you shouldn't be accepting senior positions. Or at least, go work somewhere where they don't hire juniors.


What if you just want to write software and not be responsible for mentorship? Why do capable individual contributors always have to be roped into leadership?


> What if you just want to write software and not be responsible for mentorship?

At a certain point, you probably know considerably more about the work than the people working around you. You might say you develop "seniority". At that point, the balance of value between your individual contributions and the knowledge you can share with others reaches a tipping point.

If you're limiting the value you're bringing to the company to only individual contributions, you're capping the value you can bring the company and by correlation the compensation you're due.


Work at places that don't hire junior devs.


I think there is a limit of the efficiency of a single person. At some point, helping out others to be more efficient is more efficient than doing it all by yourself.

With that said, I don't see anything wrong with stagnating at your peak IC efficiency if that's what makes you happy.

I agree with sibling which says that mentoring is not leadership. Helping out others is not the same as giving them instructions or evaluating performances for example. However I can understand that someone would like none of that.


As long as you are not your own boss (and even in this case, tbf), you are likely to not do only what you "want", because you are not the one defining what is your job.

Honestly, it's a weird remark. Pretty much all jobs on this planet have aspects you wish you don't have to do. You work for your employer and your employer needs you to train the juniors. If you don't want to do that, change for an employer who only recruit senior engineers, if you can.


Employment is a negotiation, always has been. Senior technical staff often negotiate from a position of strength.


I'm not sure I see mentoring as leadership as much as I see it as passing the experience along to someone less senior than you. Or did you become a capable IC in a vacuum, without the guidance of more senior engineers?

Beyond that, you could go into contracting. Do the work, point to your contract whenever someone asks something else of you, move on after 3-6 months, rinse and repeat.


I mean, actually, mostly yes. I've usually been the last stop for technical help since school. There hasn't been anyone I can go to, so I've had to figure everything out on my own. I guess I'm wanting to work with senior peers more so than constantly dealing with juniors who seem to get lazy because they know I can solve their problems for them, often trivially.


Not wanting to help juniors so they're left to struggle the way you did seems incredibly devoid of empathy. I could describe my career the same way you have, but mentoring juniors is now my favorite part of the job. When you were a junior, would you have been satisfied regurgitating a senior's answer without understanding it, or would you have wanted to learn? If you were into learning, why assume nobody else will be?

When pairing with juniors, I avoid directly solving problems for them as much as possible–lessons tend to stick better when you ask leading questions and let them discover solutions for themselves. Perhaps this technique would also work to filter out "lazy" questions.

Working with a mix of super competent developers at all levels has really driven home for me that everyone is better at something, and worse at something, than you are. I've learned lots of new things from developers with less experience than me. I've also worked with many devs with senior titles who were worse off than most juniors.

Ultimately it's okay to find mentoring unenjoyable, but if this describes you, please stick to teams with most/all seniors and don't agree to mentor even if pressured. Attitudes like this can really exacerbate imposter syndrome for juniors, and I've seen it damage several careers.


I'm not sure how not wanting to deal with juniors is devoid of empathy, much like not wanting to look after children isn't either. In either case, I don't see how a high degree of empathy is a prerequisite for technical excellence at any level. Leave the feelings at home.

When I was a junior, I would have been greatly satisfied by more time and attention from seniors, as I would be today grateful for more time and attention from people in differing specialities, where I am quite junior. We do however live in the real world, where these people's time is extremely valuable, and I wouldn't dare disrespect it by asking them trivial questions. I would value 10mins of their time and the context switch they pay to help me on the order of days of my own. And if I do resort to bothering them, I do so with an attitude of utmost humility, akin to digital dogeza.

I get frustrated when folks fail to do any of this. I regard is a breach of professional etiquette that unfortunately seems all too common. I've found myself responding "Try harder" or "LMGTFY" to these sorts of inquiries, which is about as polite as I can muster.

> everyone is better at something

It seems that this would be trivially easy to prove false, and very difficult to prove true. I've certainly met developers with nothing uniquely useful to contribute, in spite of best attempts at coaching them.

> imposter syndrome

I'd like to note that I'm actually extremely forgiving of mistakes, even very expensive ones, so long as they're honest. We all make them, and it's really on me to ensure that processes are in place and enforced to prevent the most critical sorts of them. But you don't know what you don't know. It's more the "I'm a baby, please hold my hand" attitude that I'm frankly somewhat disgusted by. If that describes (hypothetical) you, then perhaps some imposter syndrome is in good order.


> I'm frankly somewhat disgusted

I wouldn’t want to work on a team with someone who has such an attitude. I’m very grateful to work in an environment where we all want to help one another. This really reminds me how good I’ve got it.


Do you really work in a team where people are not at all expected to try to help themselves?


> Why do capable individual contributors always have to be roped into leadership?

Training your replacement is how the cogs in the machine reproduce.


And yet a junior dev who LCd for a few months will get paid way more than a MD in residency. It might be interesting to see if the quality of people (measured with IQ) or some other simple metrics who pursue medicine relative to other fields have gone down over the past decade.


Let's say you are the cryptid 10x engineer/tech lead, supervising a team of 8 junior engineers. You can spend 4 hours, the equivalent of a 40hr week of lesser mortals (this math is almost never true in my experience), or spend a half hour of time on each of your junior engineers. The problem you help each of them solve is solved in 30m as opposed to the 3-4h they might have tried solving it themselves, and they've learned something that maybe saves them an hour a day. You do this twice during the week.

You've 'lost' 80h effectively of productivity for the company (remember, mythical 10x), but you've gained 104h (32h+32h+81h/day5days) from your team, for a net 24h gain.

Of course, numbers are exaggerated, but the point remains the same: if you are a tech lead helping your team succeed is your primary job, not coding/design. You are the person who connects the lines of communication, removes obstacles, mentors the team on coding and design, and gets the team moving in one direction that aligns with the customer needs.

You probably will code, to fill in gaps and help out, but personally I find it's split around 5/2/2/1 - 5 parts are working with your team to guide them and help them overcome obstacles, 2 parts communicating with management and customers, 2 parts coding/design, and 1 part administrivia/training.


This requires an environment where long term productivity is more important than short term productivity, it doesn't account for juniors who won't get it, no matter how hard they try, it doesn't account for juniors who will leave the company after becoming more proficient because they can't get an adequate payrise.

10x engineers can be a good match for startups where shipping now is essential and for big businesses who need something done quickly (for a change, the bigger the company, the slower everything else).

The only cons of 10x engineers is that they will burn out and that they're incredibly rare. Advising 10x engineers to help out other and collaborate is also nice to give them a bit of down time so they don't burn out and leave for the next startup with a 50% raise.

That said, it's not like HR managers are able to distinguish between senior low productivity engineers and 10x engineers, so it doesn't matter. No company will have a strategy around employees productivity.

I disagree the 10x engineer is a myth, as an hiring manager, I can easily tell you who is a 10x engineer after working with them for a year or so.


You may well be right. +1 karma for the adjustment. Mentoring/helping the juniors is part of the un-tracked/unplanned workload of the seniors.


I have no trouble if somebody with less experience ask me anything, but I expect at least one or two ideas how the person thinks she would solve the problem.


Definitely, I remember as well, that everything they hated me for in school was super beneficial in business. Copying other work? Amazing. Telling boss that I don't have time to do the new task? Trendemous. Solving issue without using latest tech that I just learnt? Incredible. Compaining that some parts of task are harder than anticipated? Brilliant.

The only hard part is to bring fake absences into this mindset, so I can be praised for them.


You called in sick yesterday and went to the beach with your buddies? I'm glad you did! We all need a mental health day once in a while. Being happy actually makes you more productive in the long term.


> You called in sick yesterday and went to the beach with your buddies? I'm glad you did! We all need a mental health day once in a while. Being happy actually makes you more productive in the long term.

Not quite. It's great when employees take care of themselves and make a point to enjoy their time outside of the office.

However, it's not really cool if you commit to be somewhere on a certain day, no-show, and then lie about being sick.

If you want to take a day off, that's perfectly fine. Please just communicate about it honestly. Don't lie. Reputation and trust are hard to build but easy to destroy.

Also keep your coworkers in mind in these situations. It's rare that engineering work exists in a vacuum without connections to other people's work. If your team mates have to fill in the gaps because you disappeared for a day without warning, that's not really great for the rest of the team.


> However, it's not really cool if you commit to be somewhere on a certain day, no-show, and then lie about being sick. If you want to take a day off, that's perfectly fine. Please just communicate about it honestly. Don't lie. Reputation and trust are hard to build but easy to destroy.

People sometimes take "sick" days because the culture is such that they aren't allowed to be more honest about it. Many places I've worked operate in a never-ending cycle of extreme urgency. Taking days off usually must be approved far in advance, making it useless for those times when you wake up and simply cannot be productive. This leads to burnout pretty quickly. I have no issue with saying "I'm not feeling well" when I know I've hit a wall mentally and need to separate myself from my work. This makes me much more productive for the weeks following.


"No showing" and "calling in sick" are two very different things.


Cross-cultural programmer here, and I can help.

In Europe, calling in sick when you're not actually, recognizably ill is a pretty serious breach of trust. No cutesy "mental health break" exceptions. That said, you likely have at least 20 days of paid vacation, plus holidays.

In the US, where 10 days paid vacation is the norm and you're often punished in some way for actually taking it, the occasional "mental health break" of calling in sick is winked at.


A company I work with was recently acquired by a US company (I'm British). I was quite confused when, in a meeting, all of the Americans suggested that the company should implement mental health days several times a month. My thought was: isn't that what the weekends and holidays are for? It would be quite unusual for British employees to demand mental health days. Perhaps the lack of paid vacation explains the difference (Although, I haven't had a full week off since 2014 because I'm a freelancer, so maybe they have a point).


I can assure you there is nothing "cutesy" about mental health. Feeling severely depressed/suicidal is much more serious than some minor cold. Thank god the US is moving in the direction where mental health is recognized as a serious issue. Comments like this show that we still have a long way to go.


> I can assure you there is nothing "cutesy" about mental health

You misread what I wrote, and then got angry about what you imagined I wrote. Usually I don't explain myself to strangers on the internet, since people who angrily misread also usually angrily double down, but here goes.

In the US, it is frowned upon to take a scheduled day off just to relax, outside of your annual 2 weeks of vacation. So you call in "sick". Since you're not really sick, but want to relax, you call your reason for illness a "mental health day". I characterized this practice as cutesy, because it's a cutsey repurpose of the concept of sick day for self-care. It's not a mental health crisis, it's relaxing. But as long as you characterize it that way, it gets a nod and a wink from anyone who cares.

In Europe, by contrast, if you need time off because work is stressful, you plan ahead, take the day off and be cheerfully honest that you spent the day at the beach or whatever. But if you tell people you were sick, and then spend the day at the beach, people will at best think you are odd, but probably will think you're a liar. Telling people it was a "mental health break" to call in sick in order to go to the beach will not get the same cozy reception it gets in the US.

Clear?


Apologize for misreading you and getting frustrated. I appreciate the explanation. I hope you can understand where I am coming from.

If I am anxious or depressed, going outside into nature or to the beach would help me tremendously. Much more so than sitting at home. How anxious and depressed do I have to be before it flips from "relaxing" to "legit"?

At my job I get x vacation days and y sick days. If I feel I unwell mentally I am going to use a sick day. Why is it anyone's business why I am sick or what I did on my sick day?

If my coworker said they were feeling terrible yesterday so they took the day off to go to the beach I would understand and encourage that. I would also admire them being brave enough to admit that rather than pretend they had a virus.


You get as many sick day's as you need, but if it longer than 2 (or maybe 3 I forgot) days, you need note from doctor.

> If I am anxious or depressed, going outside into nature or to the beach would help me tremendously.

If you are feeling that semi regularly, you might be on your way to a burnout or actually experiencing one.


Oh yeah absolutely feeling that. 2 weeks of vacation for years on end has done that to me. Planning on interviewing and trying to get a start date as far out as I can. (maybe 3 months or even 6 months if they are ok with that).


I agree, confidentlake. You should be able to take time off of work to relax if you need. And, if the only outlet the US culture allows is to call in sick, then there's nothing wrong with doing that!


Slight tangent, I've been seeing a lot of companies from the US advertising remote roles in the UK and advertising "20 days paid vaccation + public holidays" as one of their "amazing benefits". I often wonder if they realise it's a legal entitlement over here and not seen as all that amazing.


its also.. actually quite bad, I can't remember the last 'professional' job listing I saw that wasn't at least 25+holidays


I agree, my last role was 25+ public holidays. They also offered holiday trading, which is a real "benefit" that should be advertised in my eyes. That allowed me to go up to 30 days annual leave + public holidays which was great. Current job is setup as unlimited with a minimum of 20 + public holidays, all in all I take about the same as I did at my last place but it's a bit less hassle to track.

Advertising 20 days + public holidays in the UK is basically advertising that you give people the minimum the law will let you.


Uh, or you have allotted hours that you can use and will use? My boss isn’t my mother, they don’t need to know the “real” reason why I’m calling in sick.


So far the companies I've worked at don't have "vacation" or "sick" days, they have "paid time off" (which is really great if you're healthy and really shitty if you're not).


Atleast in Finland there is a clear, legal, distiction between vacation and sick days. They are not exchangeable in any way.


Exactly. You can be out legitimately sick for 2 weeks, and then take a full vacation!

That's why it's such a breach of trust here to take a sick day in order to relax. A sick day is to recover from illness.


if your manager is ok with it, don't register it as a sick day. Makes it potentially more complicated with the company doctor. Just consider it a workday spend on ...whatever. Manager being ok with it means you deserved it though :) (EU based engineering manager speaking)


company doctor?


In EU companies have to appoint a medical expert that checks worker's health (for free) upon joining the company, and routinely (1-2 times a year, depends on country I guess). Edit: Could be something that only companies whose workers have to do physical labour ("blue collar" jerbs)

If you call in sick for more than three days you usually go through your own doctor, so that you get a certification that you're taking X days off in order to cure yourself


It is compulsory at least for all companies over 50 people. There is a three level risk profile of the work the team does that assigns the respective doctor hours to the team. That is mostly for work related incidents or prevention as per the EU legislation.

For long term absence each country has different rules and paperwork.


EU citizen here, never heard of that, what country is that?


It's similar to what I see in France


.at .de .it .nl .no .pt .se for certain


interesting, we don't have it in dk, never heard of a company doctor or anything like it


I know the UK isn't EU any more, but I've never seen that before we left and I've worked in lots of companies in the UK, big and small.

In theory you should get a sick note after 3 days, because the government pays SSP (statutory sick pay) if you're ill, but in practice most companies pay you at your normal salary rate (if you're permanent, not per hour) and don't bother asking for sick note as the SSP is little more than minimum wage. Of course, this is in tech, I know that there are a lot of crappier jobs where employers trust their staff less, and I suspect in those industries the sick note is very much required.


My first manager would call these “health days”, and they were always supported. He would declare random “sun” days, when it was an especially nice New England day.


> Copying other work? Amazing. [...] Solving issue without using latest tech that I just learnt? Incredible.

The business goal is usually to have a new product, feature, a/b test deployed to make money/validate an idea. If there's code ready for that, it's not a great idea to write it again.

Also, _latest tech_ is only meaningful for the devs, and usually not even helpful, since the shine new things might have new problems that you (and other people) still don't know and will have a rough time trying to find a solution to.


Wow - this is the best advice on HN (top comment to while I write) in a while.

For junior folks I REPEATEDLY say, if you find yourself getting stuck / slowing down touch base. Or keep me in the loop, let's check in regularly when you have a good moment to chat, I'd love to hear how its going.

Here's the other thing I noticed. I work with someone who is is my peer. Ie, 15 years+ experience etc. THEY check in with me proactively 5x as much as the folks who really need to be checking in.

I also like that they don't schedule a call, they just zoom me. I know this seems rude, but it actually saves time. If I'm busy I don't answer, but usually I can. This is a personal preference. For junior folks if you schedule some time for early next day that works well (my calendar auto-accepts).

Also, not end of world to socialize / connect with 1-2 other devs below your managers level to share tips / get help, just be sure to pass it on to the next FNG.


> For junior folks I REPEATEDLY say, if you find yourself getting stuck / slowing down touch base. Or keep me in the loop, let's check in regularly when you have a good moment to chat, I'd love to hear how its going.

Sometimes work goes in such small incremental steps, full of unknown unknowns that there's so many occasions you can get bogged down. Even if you apply the rule of "touch base if you get stuck for more than an hour", you can still end up interrupting the senior guy 5x / day.

And when they're obviously annoyed and provide too short an explanation it becomes very uncomfortable to interrupt them again. Often it's not even their fault, they have a high workload and supporting the new guy isn't foreseen. Or, they're good devs but just incapable of explaining things.

I had this experience at a fintech company that didn't have a single page of internal documentation and you'd have 8 point Jira tickets that consisted of one bullet point - figure out the rest (everyone remote).


One issue is turnover, it's annoying to spend time training someone who you won't be working with a long time. I've only had that really happen once.

So a tip for junior's might be to look at places where folks have a bit of tenure and stick around (I know some places cycle folks between teams like crazy - that makes this hard).


> without bothering the professor

What the hell kind of academic culture is this? Maybe in graduate research, if I expected a research assistant to know how to do a task... but certainly not true in an undergraduate course! If they can't do the assignment, that is the perfect time for them to come to me and learn from me how to do the assignment. That's like, the whole point of my job as a teacher is to help people learn. Yes, I make assignments too, and people underestimate how difficult that part of the job is, but helping people figure things out is like my #1 job. It's sad to hear that your experiences (and apparently many other commenters) are something very different?


> That's like, the whole point of my job as a teacher is to help people learn.

Many professors see teaching as a distraction from their real job, research, not an adjunct to it.


This resonates with me, I had a real mixed bag when I was doing my undegrad degree. There were some incredible professors who wanted to teach, were very approachable, and would always make time and reply to emails with good detail. Then there were other professors who clearly only had their open office hours because they had to, would rarely reply to emails, and the moment you stepped into their office it was clear their top priority was getting you to leave.


This is getting off topic, but I'd love to see a fundamental rethink in how 'teachers' for undergrad courses are hired. Certainly for year 1 and 2 courses the 'teachers' should be selected and hired ~100% based on their pedagogical skills and passion and ~0% based on the impact of their publications. Universities also need to start recognizing, valuing and rewarding teaching ability.

The best first year math lecturer I had at university (and the person that is the reason I ended up majoring in math) didn't get tenure and ended up taking a job a smaller 'unprestigious' local college. The by far the worst lecturer I had is now at MIT.


Could it be because you lose your professor job is in peril if you don't get research funding? Survival explains so much.


In my uni in Poland, had I asked teacher for help, I'd be at best laughed at. Homework/assignment is graded and it is fully expected that student does it all by themself.

And if you have questions, it is fully expected of you to just study harder and check for the question in books.


Thanks. I definitely will take that into consideration in the future. I'm not sure if it would have helped in this specific case but I can definitely think of other situations at work where taking your advice would have helped me.


Pushing back on changing requirements is also a good skill to pick up. Part of it is getting a really clear agreement on what you're actually doing - what's the real scope of work - and actively changing the agreed plan when requirements change. I also find it helpful to highlight that changing requirements will have a cost in time, etc.

There's also a an art to getting together a good MVP efficiently. You can treat lots of added requirements as shiny feature requests, and prioritize them below getting the MVP working. Having an MVP that people can try out and see it working at all goes a long way towards building belief in your work. At the same time, you want to build flexibly enough that the MVP can expand rationally to take on those added feature requests... without writing in SO MUCH generality that nothing ever gets done. Doing this well is a skill learned on the back of many failures and tedious refactors... But efficiently getting a demo+MVP is golden, even if you build up some tech debt to get it.


I'll add here that there's a ton of nuance to "pushing back on changing requirements." My rule of thumb is this: program managers should understand the expected and worst-case consequences (including baseline time, switching costs, stepping on other team members' toes, etc.) of any proposals to expand scope, and as an individual contributor it is vitally important to be vocal to ensure they understand the full dynamics.

But if and once they do understand and acknowledge the consequences, and still say a scope increase is justified, it's highly highly likely that they have more business context than you. Document the decision, of course, but fundamentally trust your team.


It really is the solution to everything. A shitty coder who communicates well will do better in a corporate setting than a good coder who doesn't communicate.

My advice to you: 1. Put serious effort into Slack (or whatever your company uses). It is just as much a part of the job as writing code 2. "You don't get a second chance to make a first impression." I'm not saying you should definitely change companies, but you should seriously consider it, as you are now going to have to put in a ton of effort to regain trust. There is a good chance that you'll have a better ROI just putting in that effort at a new job instead - if you kick ass in your first 6 months to a year, you will enter into a flywheel of being well regarded which makes you more effective, which makes you more well regarded.


I’m afraid the boss’ boss was talking with the wrong part of your team, in that his criticism really seems made for your boss, not you? That said, you were not treated like a novice at all, being given a fair share of high-level feedback. Take it as a nudge to improve and do better, without thinking too much: it will be your manager’s job to assess your output fairly.


The 'bother the professor' part is key. With new teammates, I want them to reach out if they're on a project I'm leading. If things look like they're going well - then it's great to get positive feedback. If not, better to change direction early (lost work due to changing requirements).

Do you have a weekly 1:1 with your manager?


No, I don't, is this something you think it'd make sense for me to request?


Yes, or just schedule the one-on-one yourself. You have Outlook, same as them.


While changing requirements are outside of your control, clearly the consequences affect you, however unfairly. It's a skill to predict what might change and which parts of the project could end up being wasted time, and you will develop it with experience. I think being in continuing regular communication with your manager and team members as others are suggesting is also a good idea and partially for indirect reasons, because you might pick up on some clues of what these things outside your control may end up affecting how your performance is perceived.


I agree 100% that learning from the people around you is paramount.

But I disagree with the idea that you can't/shouldn't do that in an academic setting. During my undergrad, a lot of the more driven students were always bothering the professors for help. Those students often brought back gold nuggets of information while working on a team with them. It made me regret not doing so more myself.

Though to be fair, the assignment doesn't really change in academia - that's true. Those students aren't asking the professor if the requirements changed; they're bouncing ideas, and asking for further explanation.


I'd go one step further and log my work and blockers in a place that's visible to everyone internally, like a company wiki if there's one. Still check in frequently but have that already written up and ready to share with anyone else who might be able to help.

The biggest problem I've had being new at a company is knowing everyone else's skillset, and many people have a history at the company that gives them a unique voice or perspective that's especially valuable to someone new.

(A big example: people who transferred between departments over time and can contrast how things are similar and different between them, what the connections between them are like, and the history and changes over time in them.)

Having something easily sharable and already public can make it trivial for your manager or boss to track your progress — managers LOVE focusing their meetings on actions with context already in hand — and also make it easy for your boss to point you in the direction of someone else who can help with specific issues or blockers.


Also, related to the OPs comment:

>"he says I probably just misinterpreted an offhand comment of hers as a hard requirement."

It's sometimes helpful to explicitly reiterate your understanding of tacit/implied direction, especially when in a junior position. For example, a short email of "my understanding is that you want me to do X".

A lot of this stuff boils down to communication. In academia, it's not as much of an issue because professors assign well-formulated problems with a definite solution. In business, a lot of the work is fleshing out those details and building a consensus about the right approach. Plus, it creates a trail to CYA (although that shouldn't be your primary goal)


This is a mind shift for the new hires. I typically ping them after a few days asking if they need any help understanding the problem or just a friendly chat on why we are doing that particular project and how it will make relevance to the business. The good ones quickly understand if the path they are choosing makes sense and most of the times opens them up to ask questions.


Definitely agree, I would say, if you think about something we might have fallen short (likely) go ahead and say it, the abilities to see your own shortcoming is gold for a manager.

They should be expecting rough edges with a junior dev, but if you are willing to talk about your weakness real or imagined you will grow fast.


> if you are willing to talk about your weakness real or imagined you will grow fast.

Similarly, owning up to mistakes (rather than making excuses) is gold. It wins respect and trust when you really weren't at fault.


I just don't understand that part. Where I live, admitting to making a mistake would be equal to admitting to your incompentence, and I'd be shown the door on my way out.


> In business, it's much better to 'bother the professor' regularly and check in affirmatively on whether the assignment has changed

This is definitely management's responsibility. If they assign a task and let it continue after it has become obsolete, what kind of management is that?

> As a junior employee, you're not going to know the full business context of what makes sense

Agreed. I would add that explaining enough business context is also management's responsibility.


This is definitely management's responsibility.

Ideally yes. But the truth is that you will often find yourself in situations where management is less than ideal, and no matter how unfair you will end up looking bad if you fail to navigate that.


Definitely. I argued the same in a top-level comment.


Yes! I'm trying to convince junior devs to bother me more.

Some do (did) a lot, and are very efficient as a result, they learn fast and become more autonomous quickly.

Then I feel it's also part of my job to evaluate when the bothering was not needed and to let them find on their own for a while.

After a while, they adjust and ask only good questions.


I often find myself falling into this trap of not reaching out for help quick enough and I've been a dev for a decade. It really is a super bad habit and I've made some strides recently to get better at it.


this is really good advice. To go further, sometimes the homework changes, sometimes its not really necessary and can be delayed or ignored. Sometimes other unassigned work is more important. All of these are important discussions to have with co-workers, mentors, and managers.


This boss telling you that they felt the project should have been done a long time ago: I wonder who that comment benefits? Feels like no one. You get bummed, they give late feedback without a lot of constructive aspects to it.

I am trying to think of one way it was useful to tell you that, but I can’t.

Seems like you should feel justified in not being a fan of working under this person. What you do with that is hard to say. Sounds like you got to work on a cool project and got to mostly solo it. That’s pretty great for a junior.


I agree with this sentiment. And in fact, I’ll take it further:

I’m not sure any “you should have” phrase is ever beneficial UNLESS it’s in the context of giving guidance about the future. And even then, it’s better to phrase it as “next time, I would suggest…”

This has been a pet peeve of mine for a long time. “You should have” phrases are often used to berate or make the recipient feel bad while acting as a vent for the sayer. By grammatical definition, they refer to events / things in the past and suggest an alternate course that didn’t happen. A theoretical construct. Good for language construction, bad for feedback.

I’d love counterexamples if anyone thinks differently, btw.


This reminds me of a case of a director asking a "tough question" of a dev team as a way of providing feedback. I don't think the feedback was taken the right way in this case.

I was in a meeting where a group of devs were presenting a technical solution to our director, who was overseeing the product as a whole. At one point the director asks, "Did you look into other companies doing this and potentially licensing their solution to the problem instead?" All the devs were confused because they were tasked with building a technical solution in-house. I was confused as well because it seemed like a question the director should've asked a PM or one of the dev leads, not the grunts who were tasked with writing the code. The devs presenting were flustered by the question and didn't know how to proceed. The director continued with the line of questioning and it was clear he didn't like what he saw in the presentation.

The experience left a bad taste in my mouth.

Anyway, a couple weeks later, my manager mentioned the incident and told me he asked the director about it. The director admitted that he had only asked the question to get the team thinking differently about how they were solving the problem and cut through some of the technical details they were providing him. My manager thought it was a clever tactic, but I thought it was manipulative. I also think he just lost his cool since the solutions weren't to his liking and wanted to take it out on the team a little bit. I didn't think it was a great way of building trust with the team, nor do I think it made them think differently about the problem.


I think the question is fine, and a good one, but the motivation should have been made explicit, certainly no later than the end of the meeting.


It can be used in the context of explaining what changes that need to be made to someone's work for it to be acceptable. "You should have used established crypto library calls here instead of rolling your own SHA-256 implementation with probable bugs. Please fix it"

I also think it works well, better than "next time I would", for giving someone permission to do things. "You should have called me when the client asked for XYZ" sounds more forgiving and less venting than "Next time call me when the client asks you for XYZ". Or "you should have felt free to take a mental health day". It's more empowering.


Your first example is great -- in a correctible situation (as with code, or writing, or design), it works and is helpful. You should have used, should have written, should have drawn, etc.

But I respectfully disagree with your second example:

"You should have called me when the client asked for XYZ" is _exactly_ the kind of phrase I find unhelpful. All that does it lay blame - it says you did something wrong and in a perfect world you would have done something right. Your counterexample is the kind of feedback I'd MUCH rather hear.

"Ok, you didn't call me when the client asked for XYZ. That is fine. If it happens again, call me." It addresses the situation that happened, emphasizes that you are indeed forgiving, and gives guidance about how to handle it in the future.


I agree my second example was poor. The intention was "should have" would be used when you had an optional, not imperative, future choice. "If you thought something was wrong, you should have (implicit or explicit) felt free to call me and escalate it." And (upon reflection) I don't think it really expresses that at all.

I still feel like "If you needed a mental health day yesterday you should have taken one" can be empowering more than "If you need a mental health day in the future, take one", for the same reason that the middle example is poor. It shifts agency (and blame in the second example) to the person you are talking to. But I no longer even feel as confident in that example either, and would welcome pushback or not on the point.

Thanks for pointing it out. I'll try to be more aware of that going forward.


All good! I hope my respectful disagreement came across that way (and not combative). I appreciate this exchange.


It totally came across as a non-combative (and friendly/respectful) disagreement.


>"You should have used established crypto library calls here instead of rolling your own SHA-256 implementation with probable bugs. Please fix it"

in this case, i would say something like "hey, we need ot[or should] use a cryto library here since it's battle tested, rolling your own crypto might have issues [yadda yadda yadda]".

it makes it feel like it's not a single developer decision, but a team/company wide one.


The only counterexample I can think of is the present tense.

For example: You have kids, you should have life insurance.


Yes - you're absolutely right. I should have (ha!) specified I meant in the context of a past participle ("you should have <verbed>"), not the present suggestive (is that the right term?) -- eg "you should have <object>" or even "you should <verb>"

Man, grammar is weird. ;)


At my workplace, we have explicitly banned the use of "should have".


So i work with this person that is really slow. She should have accomplished a task in 2-4 weeks and it took her 6 months. We gave her 3 months to accomplish it. So at some point you do need to point out that a task should not have v taken as long as it did and ask the person why it did. Was there some sort of unknown issue that caused the task to take 4x longer than expected


(1) I don't think you can reliably say after the first suck project. Some people are a bit slow at picking up new things, but become very productive after a while.

(2) Others pick things up super quickly, but never become super productive as the first group.

And of course lots of variations of people that don't fit neatly into either group.

I am in group (2) I think, but in my experience you really want people that become strong experts after a while. They are the ones I have seen do the best over the long term.


Salman Khan talks about this a little. He said one of the things they learned from the Khan Academy is that you can sort of group everyone into either "convex" or "concave" learners and they all basically get to the same level of competence by time T, and it's more a matter of do they plateau at the beginning or at the end.

He seems to be very careful about placing value judgements on which is "better", and he's also very careful to crop the graph near time T. His big push is to make sure that teachers understand that people that are categorized as "slow learners" actually often take just as long to get to the same level of proficiency as "fast learners".


Yes, agree with all that :-)


This is a great example - thank you. Rephrasing as a "you should have", it would read:

"You should have been able to finish this in 2-4 weeks, but it took you 6 months. What went wrong?"

That's actually useful feedback, I think. It highlights that the giver believes the recipient has abilities that exceed the demonstrated result.


My one quibble with this example -I sincerely hope there was feedback given the entire duration of those six months. Being told far after the fact that you are doing X thing poorly is a kick to the self-esteem.


Oh absolutely, it was pretty clear that this person wasn’t on track 4 weeks in. And after that you have to keep communicating that we were expecting more progress… what are the issues will you make the deadline etc.


Try to break down the tasks so that their single task doesn't take more than a day/two, see how it works out. Some people seem to operate better on short, simple tasks with visible understandable impact.

Also a 4 weeks task for a member of a larger team is something that turns them into their own development shop and it's probably not something you want to have in a team.

I also understand some will say "a senior dev should manage such a long task on their own" - well maybe they should and some might, but in the end it's not their business and they can jump the ship 2 weeks before the deadline of a 3 months task (seen that) - that's why good project/tech/team management is a skill ))


More generally, I would say that any advice of the form "don't do X" is useless unless paired with "instead, in that kind of situation, for the goal(s) you were optimizing for, do Y".


Your phrase is also a good replacement for "why didn't you ..."


A project being late involving a junior dev due to architectural and scoping issues is probably not because of the junior dev but the tech lead and product/project manager. The junior dev is still at risk in practice because the team is at risk and their manager can use them for the blame game.

In this scenario, I'd work through a 5-whys for figuring out why the multiple reasons why the "you're effectively on warning for being fired, and certainly not being promoted" just happened, and the reasons behind them. Ideally with someone at least a few years ahead of you who, and not at the company to avoid politics/bias issues. Maybe you need a tech lead or a senior dev mentor. Maybe project planning is broken. Maybe product expectations are broken. Maybe they don't know you're a junior dev and that means basic stuff like teaching you how to work in a team. Once you've done that, then repeat it with your team: they want to do better too, hopefully.

From there, if possible, maybe get it fixed... but it's not your job to fix team culture as someone junior, so also look at switching teams (managers) or even companies. If you believe you're being diligent and working hard, it's a net loss for yourself and better functioning teams to keep underdelivering for reasons not under your control. Other places would be happy to have you, help you be more productive, and your career + their results will be better. Leaving at 1-3mo point is not that bad on a CV (and you can drop it later) -- leaving at 6mo-24mo is the bad one.


I wanted to post in this thread saying all of these above things but you put everything I was feeling into words perfectly.

I think this is the most accurate and actionable advice in the thread.


I think it is useful to let the employee know what are the accepted delays in this company, for future projects. But the boss or the manager should have said that earlier, at the beginning of the project, then the employee knows what to expect.

That's quite clumsy to say it only once the project has been released. Anyway, don't take it too personally, he/she probably just wanted to keep the pressure on you so you keep improving and never stay satisfied with your current pace. That's not very good management, but that's the way it is in most companies.


I'm not sure. I'm glad he told me, otherwise I wouldn't have known I was undershooting his expectations. I did make mistakes that made the project taking longer than it had to. I guess if I want to keep working here I'll need to find a way to make fewer mistakes like that in the future.


> I guess if I want to keep working here I'll need to find a way to make fewer mistakes like that in the future.

Communication is the answer.

If you think you're going to quietly go back to your laptop and solve all of these problems by being more careful, you'll probably end up disappointed.

You should take this as a learning opportunity to improve your communication skills. Communicate early and often. Ask for feedback. Ask for clarification. Ask for code review. Ask for a performance review.

Also: There is some good advice in this comment section, but there's also some absolutely terrible advice. Please ignore all of the low-effort comments insisting that you should quit or the comments suggesting that your boss's boss is malicious "gaslighting" you. This may be your first stumbling block in the workplace, but it won't be your last. If you make a habit of shutting down, quitting, or becoming resentful in these situations then you're never going to learn how to build actual healthy relationships in the workplace. Do as much as you can to learn from this, but make sure you do move on as quickly as possible. Don't let it eat you up.


To piggy back on this, you will most definitely work with and for people who are malicious and gaslight you. Not saying that is the case here, but even if it is, a valuable skill is learning how to cope through it and work with those individuals. It isn't easy, but it is more sustainable than just being a victim.


You want a strategy that works regardless. E.g. if your skip-level manager tells you a project should have been completed a while ago, and this is the first time you're hearing about it, it's better to say "let me follow up on that after the meeting and get back to you, because it's a bit different from the timeline we've set within the project" than to push the blame onto your direct manager, get defensive to your skip-level manager, apologise, or agree to spend the weekend working. Get some breathing room, put together a paper trail of emails and meeting notes, and let everyone cool down.


I've had modest success with this kind of thing. Managing to stay calm and maintain your internal composure is very important in the moment.

In a situation like this you need to be able to think on your feet and choose your words carefully, which can be very difficult if you have reverted to a defensive or fearful "fight or flight" mind state.

I personally have benefited a lot from biofeedback and meditation over the years, if only because it has given me the tools to recognize when I am in a fearful state and calm myself down.

The "fear is the mind-killer" mantra from Dune is not really fiction!


Mistakes are a part of life. Do not be ashamed of mistakes, you will only limit yourself. I'm sure you're already aware of this, but sometimes we all need a reminder.

As for the project, you should consider how much mentorship you received. If there was none, then obviously a high degree of mistakes is natural, especially for someone new to "professional software development" (if such a thing exists). If there was a lot of it and you blatantly ignored it, you should take responsibility for it.

Most importantly, keep a healthy work-life balance. It's easy to forget it, especially when first entering the workforce and thinking that you need to "prove yourself". Most of us are average; if you are too, accept it and keep living as best as you can. The 10x coders can keep on 10x-ing, but the world depends on the average person.


I think your last statement indicates how bad that feedback session reflects, not on you, but on the “boss”. On the one hand, we all have bad moments, that might have been theirs, which sounds pretty terrible though, especially in context of you having limited experience. On the other hand, while if you discuss he/she would probably apologise, it sounds exactly like the kind of boss that will throw you under the bus when the going gets tough.

Early days. One of the key things you get with experience is the cold blood to wait some things out and to not let minor or major incidents get under your skin. If/when this becomes a pattern assess it against the rest of your experience and decide on your best path forward.


I think just about every new developer makes mistakes that make a project take longer than it had to but this is how you learn and improve for next time.


I mean, at the baseline I think it's useful to know you're not meeting expectations. Of course it's more useful to know in a timely manner.


> I am trying to think of one way it was useful to tell you that, but I can’t.

It's useful if it's a warning that OP isn't meeting expectations. Getting that feedback before a formal review, when there is still time to turn it around, is beneficial.

I've seen junior engineers be blindsided during a review more than once. They go in thinking they're doing great, because they've gotten no incremental feedback and lack the experience necessary to guage on their own, and then hear they're not cutting it. Getting this feedback before review time (and preferably even earlier than OP did) is good, even if it hurts to hear.

Obviously that feedback should have gone through their manager though. OP's manager should have rescheduled this meeting if they couldn't make it, since they probably already knew the feedback was negative.


I have this feeling most workplace structures are pressure trickling systems. Nobody really knows how, but things get pushed down blindly, everybody grinds hard and higher ups complain about progress not being good enough. People grind again through fear. Rince, repeat.


The first meeting where your manager just abandoned you and you ended up talking to your manager's boss is totally inappropriate. Being so new to the job basically all the responsibility is with your direct manager and her boss is wrong to dump on you without your manager present.

I'd give it another chance though, sounds like the work is fun and maybe you can communicate your concerns to your direct manager.


This was my reaction as well. The skip-level should not be the first person to let them know they're perceived as under-performing. OP: Schedule a 1 on 1 with your direct manager and have a conversation about all of this.

My skip-level at my first MAAAM job used to snipe at me when I was a new hire. He told me to my face he "would not have chosen me" and "didn't know how I got in." It made me so angry it was all I could do to hold my tongue until I got the fuck out of his office. But I went on to become very successful there, and he eventually had no choice politically but to support me. He got managed out a couple of years later.


> He told me to my face he "would not have chosen me" and "didn't know how I got in."

Holy shit. Glad that this person got managed out... eventually.


Can be motivitating words for some people. Coaches will say stuff like this to a talented athlete who is underachieving, if they think it will light a fire.

A good manager would not say stuff like that unless he really felt the person would take it the right way. A bad manager will say stuff like that to stroke his own ego.


I don't think tech managers should be taking management lessons from Full Metal Jacket in any case. But I sat at a lunch table with this guy every day for 3 years, and I know he was not trying to motivate me. He was trying to keep me in my place.


Coaches are not involved in hierarchical relationship where they could fire you or make your life hell. Neither they are involved in the decision of how much you should earn or if you should be promoted or not.

So those are absolutely different sorts of relationships. The coach is not your superior so it changes everything about what they could say to you and the consequences it could have on you.

So no, a good manager should never say stuff like that. It's the sort of words that can be the involuntary sparkle which could ignite depression or even suicide. And for what ? A better performance at writing crud programs ? No. Professional things are not important enough to say any of this.


I would also add that sports can be highly emotional games, and getting a player angry or passionate (assuming they direct this at the other team) can actually be productive. This isn't the case with work that requires higher level of cognition, and not smashing someone against the wall to get a puck from them hah. I wouldn't want my subordinates to be angry at me or the rest of the organization for any reason.


I know how that "I wouldn't have hired you" thing feels. I didn't go to college for software dev, but am now working at my second job. When I got hired at the first, eventually a conversation came up that was supposed to be light-hearted with all the employees at a lunch (small startup), and the CEO (who is the one who had interviewed me) said "when you got to work coding, you seemed very experienced. But had I known you were only __ years old, I wouldn't have hired you."

Not sure if it was meant to be a good job, or a "you're lucky."


sorry, not aware of that acronym, is that a new acronym for FAANG? I could see facebook turning into meta, google to alphabet... can't see netflix in there? is the other M microsoft?

Or is it something else?


I assume it's: Microsoft Apple Amazon Alphabet Meta, or some structure-preserving permutation thereof.

I immediately hate it.


Completely agree. As a general rule if a junior developer does something “wrong”, unless it purposefully malicious, it’s on the manager.

OP, I’d say keep this situation in the back of your mind and reevaluate in a few months. If it happens again, start the job search.


Agreed. OP should schedule a meeting with the manager to find out how they're doing, if expectations are being met, etc. It's entirely possible that things are just fine, but the boss has the wrong idea about this particular employee.

I think it's a sign of bad company management, but it's by no means a dealbreaker. i.e., not something to quit over.


Before that, OP should get a clear set of expectations from the manager. If a manager doesn't express clear expectations and the metrics used to measure outcomes, then they can't expect them to be met.


Absolutely do schedule a meeting with your manager. Ask for actionable advice, ask for goals between now and review time or this will cost you.


Anytime your skip-level steps in to guide your work directly, it’s either a failure of your manager or the skip-level themself.


Well, depends on the specifics: I was embedded in an operational unit so neither my manager or their boss were techies. It was often necessary for urgent issues for the upper boss to talk/meet with me directly to hash something out and translate from operational needs to technical capabilities and logic.

But both of them always filled each other in, and it was never about any performance issues on my part.


I took from the TP that the direct manager was meant to attend the meeting but couldn't for reasons. Obviously the meeting should have been rescheduled.

I also got the impression that the manager's boss was venting... presumably they were feeling some pressure from elsewhere to deliver the project. Not a great sign that they took it out on the junior, but this would normally be the job of the middle manager to deflect / explain / shield the junior from.

To the OP: try to not take it personal, the manager's boss was almost certainly venting their own frustrations and "taking it out" on you. Very unprofessional but it happens. It's very unlikely to be a real reflection on your performance. Try to take it as a growth experience to build a bit of "thick skin". You shouldn't have to but it helps to have it (especially if in future years you become the middle manager who has to absorb the venting). Hopefully your direct manager will give you more useful feedback on your performance and perhaps explain the boss's frustrations.


The plan was that she would be present? Maybe the boss' boss just had a plan to whine at her, but only OP showed up.


Right that's a huge failure of the manager in this scenario. If you can't make it, do your best to get the meeting rescheduled. Don't just bail and throw your junior dev to the lion.


I had a VP bail on me in a meeting with the CEO when there was an issue and it was the VP's responsibility. It was sudden and without any explanation: just a no-show. I don't think it was a coincidence.


Yup. I am concerned, because it sounds like a lack of mentoring on a technical and an organizational level. I've made similar mistakes and I dislike it, but my lesson is: a junior should have mentors they can lean upon and draw into meetings for technical and political support. Or lean upon just whenever. It can grow overbearing if the junior doesn't grow wings, but under-mentoring and seeming abandonment inside the org can be much, much worse.

Like, why are they complaining about this on hacker news? They should be venting to their manager (we can see why that fails), or some engineer with some clout they trust. If they don't have these avenues, that can turn sour quickly.


I'm sure the vast majority of the criticism of the project should have just been directed to the manager. Taking too long on a single part can definitely be directed towards a junior dev but there should be some guidance attached to that (check in more often, etc). Anything that doesn't fall under the specific tasks given to the engineers is entirely the manager's job.


This, big time. The other answers seem like victim blaming.


Yeah, this the root cause.


Your boss is gaslighting & intimidating you.

- Do not be intimidated into thinking you did your work poorly. I've seen this happen many times with employees being guilt tripped, especially the younger more junior employees. You are a professional and the work you do is important for the company, you do it with pride and to the best of your ability.

- Beware of gaslighting. Some bosses can be incredibly manipulative and will resort to all sort of tactics to get more from you. They can have you attend more meetings than necessary because there's a deadline coming up for them. They might want to shift the blame to you when something hasn't been done in their department, even when it wasn't your job in the first place. When this happens clearly state that it is not your responsibility and that you do your job well and on time.

- Stop caring too much about company problems, and focus on your own work. You should not care if the manager does his job poorly or if the company is not doing so well. It not your fault. They are running the business poorly.


>Your boss is gaslighting

That's not gaslighting. Or not how the word should be used. It has a very specific meaning that somehow lost in the last couple of years, saw a lot of times on reddit too where people use it wrongly all the time.

https://en.wikipedia.org/wiki/Gaslighting

In OP's case gaslighting would be something like this

- BOSS: I told you to finish this project X weeks ago

- OP: But this is the first time we sat down talking?!

- BOSS: Are you joking? We had this conversation 2 weeks ago! Right, MANAGER?

- MANAGER: Yes it was after the big meeting, can't believe you you forgot that too

etc

That being said the boss doesn't come around nice to me from OP's story


Your example conveys that gaslighting occurs as between three (or more) parties, but that's not necessarily the case. Gaslighting most often happens between two individuals.

OP's boss wrongly and intentionally asserting OP didn't do something on time would be gaslighting. So too is each of the following. They are more commonly referred to as gaslighting. That's because they're more subtle, yet might have an even more profound impact:

* You are remembering things wrong.

* You always make a big deal out of these things.

* You need to learn how to take criticism better.

Of course it really depends on the situation. Suppose I negligently publish my organisation's private API keys to a public Git repository. My boss calls me in and says I shouldn't do that in future. I threaten to quit at being blamed for my mistake. My boss says there's no need for it to come to that, and I should be open to constructive feedback. None of this is gaslighting, it's all grounded in facts and reality.

Wikipedia is, of course, not an authority on the use of language. However, it looks like your example is the alternative definition they give, rather than the main one they talk about: making someone question their reality. You can do this by making someone think that by offering erroneous and gratuitous remarks to them.


Nobody’s making OP question their reality according to OP’s story. It just seems that OP was completely unaware of the manager’s opinion and now he became aware of it.

There’s nothing nefarious in that, happens all the time.


> Your boss is gaslighting & intimidating you.

The person giving the feedback was the boss's boss, and they clearly didn't have the entire picture of the situation.

That's not gaslighting. The term "gaslighting" gets thrown around far too readily. Assuming malice and manipulation in cases of miscommunication is a quick way to sour any relationship, this one included.

There's no question that communication wasn't great in this scenario, but I don't see any reason to believe it's malicious or manipulative. The OP needs to work on proactive communication, but receiving unfiltered feedback from above is much better than blindly continuing down the same path without ever being informed that something is wrong.

Learn from it, adapt, and move on. Don't assume it's "gaslighting" or manipulation every time two people have different perspectives on a situation due to miscommunication.


>>The person giving the feedback was the boss's boss, and they clearly didn't have the entire picture of the situation.

Then why even have a discussion about something you don't know.

It looks a straight up case of cya, followed by manipulating a junior employee into believing it was their mistake all along- a.k.a gaslighting.


Not all manipulation is gas-lighting. Gas-lighting is when you intentionally create a scenario to make another person doubt their competence as a distraction from your own nefarious actions.

If the boss had intentionally given the subordinate a task that was harder than it seemed in order to make the subordinate feel inferior, causing the subordinate to feel at fault for the lateness of a larger project and therefore not report the boss' bad decisions up the chain of command, that would be gas-lighting. But just telling them they are at fault is not gas-lighting.


To clarify, I don't mean to say the boss did something ok, just that I think the term gas-lighting as a term is very useful to describe a particular phenomenon in various relationships, but is less useful if it gets broadened. I think this is something different, not necessarily better or worse.


That was the point of the meeting, to find out more. Since nobody volunteered any additional information contradicting their view, the lead manager had to go with what it looked like: a project was late for no good reason.


> - Stop caring too much about company problems, and focus on your own work. You should not care if the manager does his job poorly or if the company is not doing so well. It not your fault. They are running the business poorly.

This entirely depends on whether you care about promotions. Understanding the company problems, and your manager's problems will directly impact your ability to get promoted in the future.


What a can of worms promotions are. The politics involved stink to high hell most of the times. It's significantly easier to sell yourself as a lead in another company than to scale up the ranks in the current one.


Junior dev should be able to jump ship for promotion without much issues


> Your boss is gaslighting & intimidating you.

Yep. And it won't be the last time. There are a lot of people who deliberately manage this way - in fact, a lot of times they're promoted to management because they act this way. For the most part, it's bluster and you can ignore it. It's really, really hard to find programmers and, no matter how good a programmer they found, the next one won't be as capable as you because he/she will need to spend time coming up to speed on the codebase as well as the rest of the company.

That is assuming of course, that you're actually doing the best work you're capable of. If you really are slacking off unreasonably, stop - but if you're not, then there's not much else you can do except be fatalistic about this job and take comfort in the fact that in our business, jobs are easy to come by.


I don’t think someone slacking off would post on hn as emotionally agnostic as op. It does sound like there’s a fair amount of gaslighting though, if you associate ‘the performance of the project’ with yourself as a junior, that’s on your manager - if you screw up, it’s their fault for not providing top cover.

I employ one full timer and another junior, most screwup’s are my miscommunications or me not setting expectations.

@op, Mind if I ask, are you part of any minorities which may result in you being bullied? Obviously you don’t have to answer, and I don’t want to gaslight you, but a lot of *ist behaviour I see is smart enough to be camouflaged.

To be clear though, junior’s screwing up is par for the course, if you’re a net zero (bring in as much income/productivity as you burn in screwups, but with the ability to learn), I’d consider you a win.


Since this comment became somewhat popular I'll post the entire guide here. I wrote this a while ago for someone else. It summarises some of my own struggles after being let go from a company I cared for deeply.

Not all companies and bosses are the same, but even well intentioned people can have some of these traits depending on the situation. The end goal is to have a good work/life balance and not work yourself to death.

* Put yourself first no matter what. No job is worth your mental and physical health. If you will work for your own company some day maybe then it's worth putting in the extra effort. Maybe not even then.

* Respect yourself and make sure they respect you.

* Do not allow to be bullied in the future. Bullying can come in many forms. Sometimes it's an inappropriate comment from a colleague or boss. Make sure you say it out loud when it happens but do it respectfully, in a serious tone: "I'm very surprised of your comment <name>", "This is a professional setting <name>". "We are at work here <name>".

* Do not allow them to overwork you. Most of the time you won't get paid for working late and no one will appreciate it. Finish your work at 5PM. If your contract states 9 to 5 then that's exactly what you are doing. Stand up from your desk and leave. Ignore snarky comments from colleagues or bosses. There's absolutely nothing they can do legally to make you work more than you have specified in your contract. They will whine and moan about stuff that needs to get done ASAP. Stuff will get done regardless of you leaving now or an hour later.

* Do not be intimidated into thinking you did your work poorly. I've seen this happen many times with employees being guilt tripped, especially the younger more junior employees. You are a professional and the work you do is important for the company, you do it with pride and to the best of your ability.

* Beware of gaslighting. Some bosses can be incredibly manipulative and will resort to all sort of tactics to get more from you. They can have you attend more meetings than necessary because there's a deadline coming up for them. They might want to shift the blame to you when something hasn't been done in their department, even when it wasn't your job in the first place. When this happens clearly state that it is not your responsibility and that you do your job well and on time.

* Stop caring too much about company problems, and focus on your own work. You should not care if the manager does his job poorly or if the company is not doing so well. It not your fault. They are running the business poorly.

* Raise issues early and in writing. A quick email to HR or your boss depending on the situation can work well. Exercise diplomacy and keep a copy - print to PDF works.

* When you are sick take sick leave, do not allow to be bullied into coming in to work or working from home instead.

* Do not divulge too much about your personal life at work. This can sometimes be used as leverage against you. Loose lips sink ships.

* Leave work problems at work. This is easier said than done but at the end of the day you shouldn't care about what happens there after you have left for the day. Enjoy time with family and friends.

I have been manipulated, bullied, devalued and treated poorly at work by Machiavellian bosses. I would never allow these things to happen again.

I've had recruiters trying to low-ball me from the very first call with a smaller salary figure than the one they had advertised (or with completely different terms than advertised), by suggesting that my skills were somehow not up to scratch. I respectfully told them that my skills are exactly the ones stated on the CV and hang up.

Good luck and try to stay positive. Focus on yourself and what benefit you get out of work.


You have a lot of cautionary advice here which would be good for people to have awareness, but I have to say it comes across as very confrontational advice rooted in an us vs them culture that may be very much influenced by where you worked and what you went through. I'm sure these are all learned defense mechanisms but I'd beware of this way of living life.

Sure you can hypothetically get in trouble later if you share your life issue with a colleague and somehow this would bite you later, but you also may have a lifelong friend or simply a friendly face to talk to.

Your advice reads as a guide on "How to make sure your feelings never get hurt from work" whereas you can optimize for somewhere more in the middle where you allow yourself more freedom and happiness by increasing the risk of some potential but less likely bad outcomes.


> You have a lot of cautionary advice here which would be good for people to have awareness, but I have to say it comes across as very confrontational advice rooted in an us vs them culture that may be very much influenced by where you worked and what you went through.

Yup, but I think OP's advice should be the baseline from which you relax these things as you learn that level of caution is not warranted.

The business world as a whole has a bad enough reputation in regards to individuals that caution is the correct tact to start with.


This should be mandatory reading for anyone entering the workforce. If you're about to start as a software engineer, print it out and read it every day.


You should absolutely care if they company isn’t doing well. Companies that are failing bring more stress and fail to you


This.

The conversation had was entirely one sided with no grace or responsibility. Furthermore if they don't appreciate it that feeling isn't going to change. They are rolling their bullshit down to you because they lack the maturity for something else. Also juniors are expected to need hand holding to adjust academic expectations for real world and if they haven't done anything to correct or provide more direct technical feedback that is also on them.


It's not even OPs direct boss - that meeting just screams inappropriate to me.


Shrug it off and keep your head down. Keep on producing good work. Your manager should of deflected this sort of stuff and you are a junior developer. The responsibility doesn't really fall on you.

Take some notes about what you can do better on future projects and try and improve. Rinse and repeat.

Gj on delivering.


DONT keep your head down though. That's part of the problem. Get out of your bubble/headspace/etc and talk to other devs. Compare approaches. Reach out to others to see how they're solving problems. Even problems you're not having. Especially those actually, for when the time inevitably comes when you have to deal with those issues.

As a new person you can't possibly know everything. If you dont have someone showing you the ropes then you have to take initiative and talk to others.

Especially in larger orgs, this is invaluable.


It really seems they isolated him and / or he's working solo on a project. Dangerous place to be in a mismanaged org.


Agreed. No reason to panic. Your experience is not at all unusual. The further up the management hierarchy you go the more results oriented they become. At a certain level of management profit & loss, delivering faster at less cost become the focus of attention. Your immediate manager might be coping some flak from his manager. But that is not for you to be concerned about.

Simply continue to produce good work. Learn from the more senior devs and remain respectfully accepting of comments from your manager's manager and anybody further up. Remembering that they do not have sufficiently detailed knowledge about what you do but they like to think that they do. Being diplomatic means that you never debate with them. If they make any substantial suggestions, discuss them with your immediate manager and ask them for advice on how to proceed.


>Your manager should of deflected this sort of stuff

Also keep in mind that there is a good chance the manager might have had OPs back in all this, maybe it's just the managers boss who has unreasonable expectations (maybe due to poor communication from the manager about changing requirements etc).


Unlikely because she left him alone


Be slightly wary of taking advice from people that use 'of', instead of 'have'.


Or, take the opportunity to teach them the real phrase and explain that because of people's verbal speech patterns it confuses younger generations...


Pedantic Comment


I would have an honest conversation with your manager about the meeting that you had with the manager's manager.

Be plain and tell them that it made you uncomfortable and confused given your contributions to the project and the fact that you hadn't heard any negative feedback prior. Their response could be one of many. They could say that the boss is an asshole and just overreacted. They could say, "Actually, they were right. We've been disappointed with this project and think you could have done better."

If the response is the latter, it then really opens a whole other can of worms because if they have been disappointed with your performance all along, why are you just learning about it now?

Managers have responsibilities to their direct reports, especially junior devs to provide ongoing feedback and guidance. If that hasn't happened in this case and the project is considered a failure, that is a major problem.

I also think it's possible that your manager's manager is uncomfortable being direct with your manager. So instead of having a candid conversation with them, they used you as an emotional punching bag as a way to air their grievances. Which is totally inappropriate and nothing you should take personally, but is also something that should be considered a red flag to working for/with these people.


This. You manager was expecting negative feedback and left you holding the bag. She should know that you know, and that you were a good sport this time, and that going forward you would really appreciate to be on the same page. Otherwise it's a toxic environment and a huge red flag.


Yes.

Maybe the programming world is different but in any corporation there must be a frank, honest, exchange of info and discussion (not necessarily agreement) with your immediate manager/supervisor, it is their responsability to give you directives and if not fully protect, at least shield you from the higher in grade (or on the contrary tell you what your mistakes are, not let someone else in a higher position do that).


That's a terrible advice. Smart people avoid entangling their emotions into their work.

If somebody is pissed at you at work, filter information out of it, discard all emotions, from information discard all information that is not actionable for you then move on.

Don't engage into emotional layer, don't seek emotional allies. Don't expect people will behave in just and responsible manner. It should be sufficient if they are predictable. People never change, they just become more so.


>but it seriously bums me out

Talk to your manager. If you don't have 1:1s, ask to have routine meetings. If your manager can't help you, alleviate your stress, or guide you forward, look for a new job.

It's hard to really say anecdotally if things were fair or unfair, but your manager's job is to help you (and selfishly, for you, they should help you grow in your career).


Yes, you should be able to tell your direct manager basically what you told us. Copy and paste into an email if that’s easier. (Your tone here is fine.)

It does sound like your manager’s manager has poor people skills / favors a more confrontational management style. If you have a good direct manager that can be tolerable, up to you to decide how much it bothers you.


A few takeaways from an old-timer here:

> First, he basically tells me this project should have been finished a long time ago and he can't believe it's taken this long etc. I had no idea that he felt this way before the meeting - I've mostly just been working to get it done before the revised deadline my manager gave me.

You need to communicate, build relationships, and get feedback from many people in the organization. One of those people is your manager's manager.

> He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions.

It may be the case that your manager is wrong, his design suggestions were dumb, etc. Or, it may not. This is one reason you need to get feedback from people other than your manager.

> Part of the reason it had taken so long is because I put a substantial amount of work into a part of the project that's no longer necessary due to changing requirements, which I don't think I could have forseen.

Use this as a learning experience. Do not put work into things that may or may not be needed. The correct way to tackle a big project with changing requirements is to get something working end-to-end, possibly with a whole lot of copy and paste, hacks, hardcoded stuff instead of configuration, whatever. Then, when it is doing what it supposed to do, go back and improve it, rinse and repeat. Do not put lots of work into one part if other parts are missing, non-existent, and the project doesn't work end-to-end.

> For instance he said I should have looked at other projects to see how they accomplished what I'm trying to do.

This is great advice. It is often the case that if you ask the right question/person, someone will say "oh, yeah, I already did that, here's the code." or "I tried that last year, and it didn't work". Or, they might not, but the only way is to ask around, talk to people. This also goes back to the first point, build relationships with people other than your manager, because your manager doesn't know everything, and is probably wrong about a bunch of stuff.


As another old-timer, I honestly think this is not very good advice.

I mean "communicate" is always good advice, but reading between the lines, the situation as described is a setup for failure. I doubt it's intentional, but no one there knows how to develop software, apparently, other than to blame the junior for a timeline slip. There's only so much "managing upward" this kid can do.

My practical advice is:

Do tell the immediate boss what was said in the meeting.

Keep a good, positive, helpful attitude.

Understand there is no future for you at this place, because it is poorly managed. This is a place that will blame a junior for a timeline slip.

Do not blame yourself for the failures of the people whose job it is to support you. They are asleep at the wheel. This will be hard, because at this stage you don't even know in what way they are failing you, and likely will never learn that while there.

Do your best, anyway. But don't kill yourself over this.


> Do not put work into things that may or may not be needed.

You're a junior dev, someone tells you something is needed, you work hard on it. I guess you learn to question your boss as to whether it's really needed, but that sometimes isn't optimal, either.


Trust, but verify. The advice was about how not to be a junior dev.


As a junior, you really shouldn’t be constantly maneuvering around your immediate supervisor up the chain of command.

Either your supervisor is good, and you need to trust them, or they are bad and you are likely SOL. Ultimately an organization who is holding a junior directly responsible for high level project decisions that were made in concert with their supervisor, is a bad organization.


i find it useful to develop my own internal model of the goals and direction of a project and lay peoples (including the higherups) "opinions" against that.

if they match, it's probably on point

if not, its probably not worth it


> Do not put work into things that may or may not be needed.

Hindsight is 20/20.

> You need to communicate, build relationships, and get feedback from many people in the organization. One of those people is your manager's manager.

This is valid advice, but the manager/colleague/etc's feedback has to be useful. In that regard, OP's manager's manager failed.


> You need to communicate, build relationships, and get feedback from many people in the organization. One of those people is your manager's manager.

That's an unreasonable expectation. That's your manager's job, not yours. If you have a skip level manager that is expecting direct updates from you... they're doing management wrong.


Building relationships with a skip level manager doesn't have to be about direct updates. It's not about going around your manager, either. It's building another channel of communication where you can ask for help on blockers, get updates on issues specific to what you're working on, build visibility for the work you are doing, and create good working relationships. Unless your manager never goes on vacation, you're going to have to work directly and report to your skip level manager at some point in time anyway. In my company, my manager has regular sync-up meetings with his skip level manager, and encourages me to do the same.


It's hard to do but an effective tool to build political standing and gain insight to be able to assess the quality of feedback.


I think this advice is out of touch. It’s been written without considering the person the advice is for. There is a time and place for these points and a junior developer in a new job is not one of them. OP listen to others, not this one.


I guess I also qualify as an old-timer and I just have to say that your comment meant I didn't have to write one. You hit all the points I wanted to make.


Putting on my (thankfully former) manager hat, I'd say that you are bearing the brunt of your boss's poor planning. As others have commented, you getting blamed by a skip-level manager is a bad sign and something is off. But, now that you know that, don't turn around and blame your manager for it or make a big stink. It will not be in your favor to make a big stink, especially if it's to take sides against them in a public way. Your relationship with your manager is important, so you have to find a way to move forward that doesn't inject more bad blood into the situation. Try to keep your conversations about this confidential--don't go blabbing about it and loudly complaining. It can make the environment toxic. As the low person on the totem pole, you might just get shown the door.

Going forward, make sure that expectations are clear. Particularly requirements! Make sure you have requirements spelled out, on paper, over email, in planning documents. Make sure you point out when requirements change, and do it over email or paper, or some durable medium. Don't let situations get murky and rely on faulty memories. In short, try to be the organized, rational, delivering engineer that puts in good work and reliably delivers. If your management doesn't have the attention span or organizational skills to spell out plans and requirements, then it's going to be on them when failure occurs.

Things not being on time is almost always management's fault. They set timelines. They set expectations. They have the power and make the decisions. As long as you are giving them good estimates and delivering, it's definitely their fault if things slip.

edit: I will add that you don't need to keep what you are working on confidential. Talk to your coworkers and friends about your technical challenges all the time. Just don't bad mouth your project or your manager.


> (thankfully former) manager hat

Care to elaborate? (I'm considering starting a small thoughtbot-like company that focuses on elixir/functional languages primarily, where I'd mostly play dev-shepherd)


I want to do research and be more hands on. The manager part had me spending a lot of time not doing that, but doing things that benefit the organization rather than the technology.


I will preface my comment by saying I'm a little later in my career, and consider myself a little more cynical than average. The following is only useful in the company of other comments to offer a more balanced perspective...

I would have found it entirely unacceptable, and my notice would have been on the table within the hour. I've handed in my notice for less.

That kind of behaviour from leadership/management is terrible. Depending on the type of person, it can plant a seed of resentment and disillusionment that will make them hate the work, or create/worsen confidence issues. Employees are people. Of course, some people will shrug it off or perhaps even use it as motivation to get better who knows.

I would also be suspicious of the manager who ducked out the meeting.

The fact that you're on HN posting about this shows that it has already had a negative impact on you. You should be enjoying your time off, but you're just thinking about work.

How should you proceed? Depends on the type of person you are, and your ambitions in your career. Both those will change throughout the years to come. My advice - just do the job, enjoy yourself, get paid, and apply for the next role whenever you feel like it. You will not be on your deathbed wishing you'd gotten to the bottom of this incident.


I'd definitely be looking for other options. If the language is true, it's definitely inappropriate to be getting that kind of feedback this late in the project without a more friendly warning. Especially if I had put in the work / was capable.

My hunch is the words were more likely meant for OPs manager and the skip boss is just an ass. I'd be suspect of the manager, bit either way it seems ruined and I'd be looking at an exit.


The one time I ran into a scenario like this it was an upper level executive looking to flex and show that they are the alpha. My manager and manager’s manager stayed after the meeting to tell him that my project met the specs perfectly. Later on I found out that every person who had been in the department over a year had gone through that exact scenario. I kept on working and ultimately it was fine, but the department had a lot of churn with people mentioning this practice in their exit interviews, end result was him getting promoted even higher.


> end result was him getting promoted even higher.

because of course it was :(


Keep your head down, and use the time wisely to line up a new job. No need to accept anything just yet, but start putting out feelers.

If your boss is saying bad things about your work while you're in the room, you can bet your bottom dollar it's amplified when you're not there.

One way things may play out is in the review cycle, if things are coming up negative there, with no positives, then you can throttle up the job search.

Either which, look after yourself first and don't let them pull the rug from under you with no options.


I would say something like:

Wow, actually that feedback is quite surprising to me. I’ve been working hard on the project, and all the feedback I’ve gotten until now is that it was coming along nicely. A lot of the design decisions you pointed out were direct suggestions from (manager) and I thought I was doing a good job by implementing them thoroughly. Maybe we should have this meeting again with all of us in the room?


I'd change that last sentence to "I will work with my manager to address these issues right away." The meeting with the three of them should have never happened. The direct manager should have been raising these issues along the way. It doesn't help that it sounds like the direct manager is a weasel. Couldn't attend the meeting because of putting out fires? Please.


The first thing you should do is go to your direct manager and discuss the feedback you got. See if they feel the same way. One of three things is happening. Either your boss went off on you without communicating with your direct supervisor.(unlikely) Or your direct supervisor feels this way and is too chickenshit to them yourself. Or they are throwing you under the bus.

The second thing you should take into account when planning your career is you probably aren't going to promoted under this boss.

Third thing is "welcome to the corporate world!" You probably need to do two things more often. One is request feedback from your direct supervisor more often. The second is let people know what you're doing, how you're doing it, and what circumstances are holding you back. Basically if someone changes something and that means you're going to miss your deadline let everyone know in via email. If you run into any issues that will delay the project, again send out an email explaining the issue why it was unforeseen, and how it'll impact the deadline.


> Either your boss went off on you without communicating with your direct supervisor.(unlikely)

I think whether this is unlikely depends on the boss. I've worked under higher level bosses who would say lots of things in the spur of the moment in a meeting that they would have forgotten ten minutes after the meeting ended, and which certainly would not have led to any longer term consequences. They were just venting at whoever happened to be present. I agree this is not an ideal communication style, but that doesn't mean it's not out there. As a newbie in the organization, I would be asking for feedback from coworkers about the higher level boss's communication style.


That's fair. But I haven't seen that communication style very often in engineering managers. I've only seen it once in an engineering manager in the last 12 years of professional development. (I saw it all the time when I worked service industry or sales jobs though.)


> I haven't seen that communication style very often in engineering managers.

It might depend on whether "engineering manager" means "an engineer who has risen to management" or "a manager who happens to manage engineers even though they have no engineering experience themselves". The communication style I described is indeed very rare in my experience for the first type of engineering manager. But in my experience it isn't for the second. It's not clear from the OP's account which type their manager's boss is (or their manager, for that matter).


I assumed the first because OP mentions

> He looks at the code and criticizes design decisions


This is pretty sucky, either you have two bad managers or you have a bad manager and another who was having a bad day. Either way, this is largely more a reflection of them than you.

But that doesn’t help you, what does is a concept commonly known as “managing up”.

You need to manage your manager to get the best out of the situation. Good communications are key, you need to provide regular updates that are easy to digest and that can be referred back to later. If you have a decision to make that you want their input on then ask but also propose a solution and, if you are right on time, tell them that you will proceed with you proposed method if you haven’t heard back from them by X time.

You can’t change the past but you can learn from it and implement this kind of thing.

Also, a trick to do with sneaky managers you don’t trust is to make these updates in channels with other people in on Slack/Teams etc. This is why email CC hell occurs, you’re basically covering your ass BUT if it’s in a group chat you can call it “desiloing, knowledge sharing” etc.

You’re fine, you just got burned by rubbish people, there are a lot of them, manage them and your life will be easier.

Also, if you’re a fresh grad and been left totally unattended and you’ve basically hit the deadline then you are not the problem. Expectations on new devs are very low usually.


A lot of good points have already been made. The feedback isn't actionable. What's your right of reply? This is especially difficult since you're a junior and don't know the protocols. Perhaps you should be more comfortable interrupting your manager/other stakeholders with progress updates/regular questions (again, difficult for a junior).

What strikes me the most is the absence of your direct/immediate manager. While the praise in public, criticize in private principle isn't being directly violated here, something like it is. Your immediate manager's responsibility is managing you, and to a degree this includes protecting you. This kind of criticism should be passed through the chain of command and only be delivered by your direct manager. Their job is made harder by the introduction of ambiguity by being excluded from this conversation. (Healthier work places can operate differently but you've already demonstrated it's not a high trust environment where you are allowed to jump the chain of command in the interest of getting things done. I've only seen this work in a few teams.)

I think the gaslighting comments may have more merit than others. I'll be clear: this is about someone in authority telling you how things are and this directly contradicts with your knowledge of the situation. There is at least a modicum of this in your description of events, but it's probably not the most important issue here.


A few others have said it but I'll repeat: talk to your manager about this.

One of a manager's many responsibilities is to be a "shit umbrella". This means taking the often direct, often unfiltered (often ill-informed and ill-considered) feedback of higher-ups and filtering down to only what you need to hear to actually help you do your job. And conversely, when these opinions are shared, another responsibility is to "manage up" and guide or reset expectations, filling in gaps.

When the umbrella is absent, we all get drenched. It happens to everyone at some point.

One reason this experience was so shocking is because it came entirely out of the blue. That was probably by design of your manager - they didn't share these concerns about your project because you don't need to hear them right now. Your manager knows the project is overdue, your manager knows they need you working on other things ASAP. And your manager also knows you, your strengths, and some areas that can be improved. And your manager is... managing all those variables.

These aren't things you should have to worry about at this stage of your career. And chances are, what the higher-level boss says about your current project has little correlation to your security at the company. It's just brutally unfiltered (and unhelpful) feedback about the project. The only person with enough context to have that conversation is likely your manager.

Talk to your manager about the conversation you got stuck in and your concerns. You'll feel a lot better after.


I would add in this context, there may be a difference of opinion between the direct manager and the upper manager on a) how much OP is capable of and b) whether OP will get flustered if they're expected to perform near the higher of the two estimates of their capability. The direct manager may have been shielding OP from the higher standards of the upper manager out of concern for their emotional wellbeing, even if they think they're capable of the higher standard of performance once brought to it gradually.


Unfortunately alot of people don't know how to manage junior developers well.

Take it from me - you are FINE - you are doing well. I know this because you have the right attitude and you are working hard - these are the primary factors that determine how a junior developer is doing.

Do not be disheartened by the incompetence of your managers.

You are at the beginning of your career - keep doing exactly what you are doing.

In time you will find you have suddenly levelled up. Keep working hard and every few years you'll jump in level again.

Start looking for another job now - get out of that place because your career there is finished and your management are incompetent.


Time to start looking for the next gig. That boss is unsuitable for management. Lacking emotional intelligence, willingness to mentor, and so forth.

I've never successfully managed upwards, never have been able to turn situations like yours around. I've had jobs that I really liked, so tried really hard to make things work.

It was never worthwhile. I always regretted the effort.

The good bosses I've had made all the difference. And why I happily stayed in gigs, despite other offers, despite red hot job markets, despite more interesting work.

Life's too short. Don't stress the losers any longer than it takes to get away.


This is dead on accurate. You cannot control upwards, well said. You have to work with good people in the first place. This is not a fashion industry parody where you are supposed to be insulted to be tolerated. This is development and you should be treated with respect.


"Managing up" exists for people who want to remain in a company long term and typically found in large organizations with bad managers. When the job market is bad, it is worth the effort. In this job market? I'd be gone in a heartbeat.


Large organizations have bad and great managers, so the best thing is to change team if there’s a problem with the manager in a good company.


Yeah you can do it but it’s high effort and low reward. Good in a government or union job where you outlive your boss most of time.


Write down all the criticisms & comments and add two columns : fair, actionable. Go down the columns and honestly put a tick in the boxes - if its a fair comment and if it's actionable. If you have any with two ticks then that's a learning point. This is great - you have a gift. Then decide what to do about them, you will get some progress and something to talk about in your interviews in the future.

Ignore the rest - there's nothing you can do about imaginary problems. If you get fired for them then you are being fired for an arbitrary reason, nothing to do with you - everything to do with them. If you ignore the real, actionable comments then that's on you - it will probably be fine in the long term - but not as good as it could be.


There's lots of good advice here already but one thing I don't see suggested is whether this might be laying the groundwork to let you go... and that might not be related at all to your ability as an engineer/developer.

It's not uncommon for companies to use "Performance Improvement Plans" as a structure for this. You get set targets that are difficult to reach and when you don't reach them, they conclude you're not a good fit. They're awful.

My advice would be to look out for this. If it starts being mentioned, it's time to start looking for work elsewhere. Try not to buy into the idea you're no good, they never fostered the opportunity for you to be excellent.

I'm sorry to read your experience so far. You seem passionate and willing. While it'd be proactive of you to look at other projects it's a red flag to me your manager would be critical that you didn't think to do that... why would you? They should be setting the standard and it's pretty clear from their comms they're not.

Best of luck.


I was on the path to a PIP at one company. They put me on the team of a manager that had recommended against hiring me. He gave me impossible tasks and actively subverted my success. It was pure hell.

When I finally got to the point where I was failing to meet the goals, I got dragged down into a recorded video chat with my boss and his boss. They pulled out a job description I’d never seen and outlined point by point how I was failing.

When I put on the PIP, I went straight to HR. I complained about how I had been completely screwed, was super pissed, and suggested they pay me to resign. I’d only been there about 5 months, so the best I could get was 30 days severance.

I left, interviewed like crazy, and has a job within 30 days that paid 25% more.


>When I put on the PIP, I went straight to HR. I complained about how I had been completely screwed, was super pissed, and suggested they pay me to resign.

You were lucky to get 30 days. Bear in mind HR works for the company, not you. In general, when you talk to HR expect them to act in a way to protect the company, not you, and keep HR's bosses happy, not you. Your complaint went right to the boss, and they conspired to use that as further motivation to see you out of the company in any way legally possible.


This is a classic case of miscommunication: there's evident misunderstandings on both sides, and that's totally normal, since no human is a perfect communicator.

My advice (as somebody who's been in your shoes), since this is the only occurrence of this behavior so far, is to reach for mercy instead of justice and try to obtain her point of view through direct, good-faith conversation. Even if you disagree with her priors or decisions, you'll learn something valuable. Emphasize that you don't hold anything against them but just want to learn from the situation, and no egos will be injured.

People on the internet can spend all day pontificating on what she or you might have meant or felt, and what the greater ambitions of yourself or herself might be, but it's all futile because (1) it doesn't solve the problem for you (2) none of us know you or your manager. Instead of reading every comment on this thread, my advice is to schedule some time with her and air it out. Good luck!


A company puts a newly graduated student alone on a project... It's on them.

The buck stops with the manager in these cases. He's blaming you for something that's 100% his fault.

Talk to your direct manager and tell him about this. He should have been at the meeting and he should have guided you.

It isn't like this in other companies. You're doing great, dealing with a complex rust project right out of college is tough. You're expected to carry on your own in every project. But your manager has the responsibility to keep the finger on the pulse. Gauge shifting requirements and make sure everything works smoothly for you. At this stage your job is to code and report.

Project delays happen, that's just inevitable. If a manager makes you feel small they're a bad manager. Empathy to subordinates is the most basic skill a manage should have.


If you are writing code every day, it works, and your peers (not your manager) are using it to meet deadlines and ship more working code, don't listen to your manager. If your code has observations and design issues it shouldn't get merged unless everyone is ok with the tradeoffs, if it's being merged and people are not ok and you are junior developer, it's your managers fault and you probably need better process in the company as a whole.

But seriously if you are writing rust code every day and it works and none of your peers is visibly complaining to you, you are probably doing right and your manager is just not doing their job at filtering high frequency nonsense from chattering at the management level.


OP's description sounds like they are working alone on this project and that there's no peer review. Which sounds like a weird thing to do for a junior dev that just got out of college.


Yeah that definitely falls on "you probably need better process in the company as a whole"

If they really slipped a deadline because a junior developer wrote code with design issues even when it was pointed out by his manager, it's the managers problem. The way to deal with that is tell the developer "this is the new peer review process" and just stomach the delay.


"my manager and her boss are both super smart"

That doesn't mean they are good at growing staff. In our industry that seems to be lacking big time.

You need this sort of feedback but it should probably have come from your manager. You said your manager was too busy. It sounds like the company is struggling to meet deadlines. There must be a lot of pressure on your management. That might mean they don't manage you very well .

Don't get down. You were probably very good at university and now as a junior you have a lot of growing to do. That's a shock many of us face. You will always have a skill set in demand. Learn as much as you can here. If you don't like it you can move on. Don't let your confidence get shaken.


A lot of a manager's job IMO is to shield his devs from this kind of deadline pressure and negativity. In the past I've worked under some managers that explicitly told me take my time and get it right and not worry about the deadline. After shipping one of those I later found out that the product manager was so upset with the delay that he was about to call a huge war-room and start micro-managing the project himself. I had no idea we were a week away from that or that anyone was even upset. When I brought it up with my manager he said, that's cause I didn't want you worrying about that. The scale on this one is too important to rush through. He took a lot of heat and deflected it to the point I was totally oblivious and just focused on coding.

I'm not saying this is necessarily always the right approach. It could have back-fired if my manager had judged it wrongly. But what I'm trying to say, is that manager would have never left me alone in a meeting with the PM exposing me to the scenario you describe. Eventually, as I grew more senior it was useful to be exposed to that, but at that point in my career, I really appreciated being shielded from the politics while I just focused on improving my craft.


> A lot of a manager's job IMO is to shield his devs from this kind of deadline pressure and negativity.

No. It's to shield upper management from consequences of their crassness. That kind of negativity pisses off the devs and they end up either quitting, sometimes on the spot or seriously underperforming while lining up another job. Either way it's the company that pays for these unfortunate negative exchanges.


I doubt if your manager really had to miss the meeting to put out a fire. It feels like things were set up so that your skip-level manager could upbraid you about your work. One possibility that does explain it satisfactorily is that your manager was promoted recently into people-management, and your skip-level manager is still handling some of the performance management conversations. If this is not the case, this is something of a red flag.

In the same vein, it's very unusual for your skip level to have a meeting about this and talk about design, code etc. People at that level typically do not get involved in things at this level: in fact, your manager is the one who will have a lower-level involvement.

Alternately, your immediate manager is leaving or being fired and your skip-level manager is taking stock of what he's going to have to deal with in the near future.

In either case, it does not look like a good situation. You should interview aggressively and take a new position, even if you really are at fault. Impressions of someone as a bad performer almost never go away, and it is rarely worth the effort to stay to fix that impression. You are better off being able to get a reasonable reference while things have not escalated.


I am yet to see a project of a reasonable size where its success or failure can be contributed to a single person - it is always a group effort. A good manager always knows how to distribute work and manage things so that even underperforming/sick/demotivated/frustrated people (things happens) are still delivering value so that the things are moving ahead no matter what. Looking back and pointing fingers is a useful as looking for a toilet after shit already happened.

People's behaviour/actions/attitudes should be adjusted while we are in progress and any reviews/post-mortems/retros are normally embarrassing and offensive and non-productive as we are not given a chance to do differently which brings frustration and breaks the spirit rather than improves things.

The only thing that matters is people around you, not technology, or projects or anything else. We spend more time with them than with our parents or partners - but the good thing is - you can always ditch them - not that easy with the parents or partners )))


I quit my last job over less than this, and I felt really uncertain about it at the time, but my career growth, compensation growth, and intangible feeling of management support have all been massively better at my new place - and I found it by being randomly contacted by a headhunter. My old job wasn't bad nor was my old manager, there just wasn't a fit between what I wanted to do with my career and what my employer wanted to do with that role. The immediate trigger was that I had a conversation much like this one where I thought I was being treated unfairly, and in retrospect I wasn't really, but in fact it was a good sign of that mismatch.

So I do want to encourage you to keep your eyes open for other opportunities. If you're a Rust coder working on computer vision stuff, and you're early-career enough that you're not particularly tied down as a person, you have a lot of options.


As a manager, I have learned that when projects are delayed, 9/10 it is due to bad management (of either the direct manager or the project manager).

Conditional of course that the developer has a sufficient amount of skills and is motivated, which you seem to be.

In my early experiences as a manager, I was frustrated when projects where not delivered on time, and below the expectations. After several iterations on self-evaluation and attempts to do things differently, I eventually found out that structure on the planning, and having a common understanding of the requirements are the key to a successful delivery. As a consequence, I spend now more time on the actual planning (up to 15% is allocated to this), and ensure that everyone has understood the expectations fully.

Those people that I was complaining about before, turned out to become extremely valuable to the company.


I just left my job because of a new first time manager who had the EXACT problems you mentioned above.

Good to see you have the self awareness to fix this in yourself. My manager went completely ballistic every time something didn't meet his never mentioned "expectations." He's fired 2 people and one person just left our team... and upper management doesn't give two shits. It's like they're so uncaring of his incompetence that likely he isn't getting any sort of reprimand.

If my manager is learning lessons from all this garbage, good for fucking him, however it's his employees that are the ones paying the ultimate price for his lessons. I hate this guy like no one I've ever hated in my entire life.


The problem here isn't the feedback. The problem is the surprise. It's on your management chain to reduce surprise. Concrete achievable actions on your part are:

* Ask for weekly 1-1s with your manager

* Proactively bring up the subjects of difficulty here.

  * This means you bring up the subject of how long it's taking etc.

  * Don't be afraid to look stupid. It's her job to make you non-stupid if you are.
* Ensure progress is both real and visible to every level. It might not be that easy for someone fresh out of uni.

* Don't get too down on it. You are at the beginning of your career. 10 years from now it'll be a memory you can only bring up with conscious thought.


First, make sure you’re not over reacting to negative criticism. Remember, you paid your university and rated your professors. As a result, they probably coddled you to an extent. Now you’re in the real world, people are going to be brutally honest.

Second, ask for constant feedback. I try to ask my boss what I should keep doing and what I should start doing and if there’s anything I should change.

This serves two purposes. It helps me grow and make sure I’m meeting expectations. But it also serves as an anchor for your boss to also think about you in a positive frame (I’m assuming your boss likes at least some of what you’ve done, otherwise you’d be gone).


This is my take. To the OP, ask yourself, how accustomed are you to being critiqued? If you're smart and did well in school work, you may never have heard someone frankly point out where you can do better. Remember your manager is also accountable to his boss and his boss is accountable on up the chain. Your tenured professor in school is accountable to nobody; he's not managing a project that's behind schedule and having to explain why to his boss.

It's not uncommon for a new employee on your first job to get your work torn to shreds in the beginning until you figure out all the unwritten rules on how work gets done. It's normal.

And yes, do try to stay more "in touch" with your mananger and peers on work you are doing, your progress, state of the overall project, questions or blockers you may be facing. It's not school (those assignments are toy problems for the most part, now you are in the real world where things are not as cleanly defined and requirements can change midstream); it's not a test; it is about getting work done with all the resources you can utilize.


Haha! Gotta LOVE this forum: Ok, after reading 242 comments, I have summarized them for you:

Your Boss is Good -> Your Boss is bad

You should keep your head down -> You should keep your head Up

You should quit -> You should NOT quit

This is really good advice -> this is really BAD advice

Go to HR and record this -> DON'T go to HR because [bad]

Tell your boss FU and leave -> Be humble and learn from this

Your boss will Never EVER get better -> Your boss just had a bad day, etc.

---> more entries to be filled by more good/bad responses (equal amounts)

The ultimate take here OP, is that you get here the same you will get inside your own company, that being a S/N ratio of ZERO. Go with your heart. (oh, I just HAD to add that, lol)


HN is telling them what to do. The answer:

https://imgur.com/aHYEEOm


Start updating your resume and applying for other jobs. If you don't like it there then you will always have a gap between your performance and being happy.


One of the responsibilities of your manager is to deal with a lot of this stuff for you. It can be nerve-wrecking as a new grad, but one of the things I would do in your shoes is have a 1-on-1 meeting with your manager as soon as possible and explain what you have said here: what was said in the meeting, what you felt was fair / unfair criticism, that you plan to learn from what was fair, but that you're concerned about the unfair perception they may have of you. Get their advice. Ask them to help do some damage control of your reputation if that's necessary.


Your boss's boss didn't do a good job communicating. Your boss didn't do a good job communicating. You didn't do a good job communicating.

The nice thing about it is that if you focus on really good communication, you can almost entirely solve the problem yourself. You can give status updates, you can ask questions, you can set up 1-1's to go through what you are working on and get advice. You can control a lot more than you think by being a really great communicator and being organized. It does take work and organization, but you can do it.


Just relax and try to learn the most that you can from this interaction: This person could be on a bad day or be a natural asshole, maybe you did misunderstand your manager comments, you definitely should have looked at other projects and most importantly, now you know how not to give feedback to someone else.

Anyway, this is your first job and you are playing a very long game. Don't let a single interaction determine how you feel. As many others already mentioned, you can also talk about it with your manager to figure out what happened.


Welcome to adulthood it sucks, youre gonna love it.

If you manage to find a workplace that does not sport atleast one manager that does this, consider yourself lucky.

My advice, look for truths in what he said ( I am sure he was correct on some aspect somewhere ) and work on that. Ignore the rest and move on.


I haven't had this happen anywhere in my 7+ years of experience under 10+ different managers, some of whom were much better than others. While it might not be that unusual, op might also consider that this reflects poorly on their work environment and that there are better ones out there.

Also, this sounds like something that would happen at Amazon. I'm curious if it was there.


Hey mate. This situation is pretty common in my experience. Its not your fault, its bad management but by the same token bad management is so common in software development you need to develop some defence against it so in future i recommend the following:

1. Make sure all your time is tracked on a file you control. Don’t necessarily share that information freely but it might be useful to you if you need to explain stuff layer to answer why something took so long.

2. Always have a written down scope and when it changes make sure there is evidence and record this with your time log. (If its exploratory work then the scope might be what you intend to learn rather than deliver)

3. Always send an ass-cover email saying “scope has changed and here is a revised estimate”

To be fair for your first job out of college they are treating you pretty badly and my gut here is after getting your 2 years to prove to are not an early quitter it will be time to move on, and when you do expect a big salary jump.

Unless you are a master negotiator they are probably paying you half what you can get elsewhere.

Also I wouldn’t trust their knowledge or opinions based on what you said, so make sure you learn good Rust practices outside then org from trusted friends/colleagues/courses so when you get the next job you look smart.

You also have a good story for the “tell me about a situation questions” so make it a great story bu being a pro, improving the stakeholder management (communicate project and estimate changes more often) and then show the next employer you are awesome!


Tell your manager that you are scared by what happened in the meeting with the skip manager and ask if they want you working for them or if you should start looking for another job.

Most likely you should leave in this situation, because if your skip manager thinks you suck, you don’t have much of a future at the company. They will likely need to approve promotions, raises, etc.

However, you don’t have much to lose by being very open with your manager and seeing if the situation can be repaired.


Absolutely don't signal to anyone higher than you that you might start looking for another job. That's the worst thing you could possibly do and will leave you branded as a lost cause.

What manager is going to stick his neck out or put effort into a subordinate that doesn't even know if they want to be there.

It could also leave you in a compromised position under many circumstances if they wanted to get rid of you / move you etc.


I’ve successfully gotten promotions multiple times at big tech companies after talking to my manager about what other companies are offering and not-that-subtly threatening to leave. The pot is only so big, so sometimes it helps to be the squeaky wheel.


Have you gone to your manager and discussed the meeting? Start there, One on one.

Just tell them what their boss told you and go from there.

Take any criticisms with a grain of salt. While they may be valid they also may be their own frustrations seeping through.


Talk to your manager about it, 1-1.


This is the first advice I agree with.

See how your actual manager describes what you just went through. If they're supportive, write them an email thanking them for their defense of the aspects where you felt attacked by your super-manager. Having it in writing will make sure it's _real_ and you're not being gas-lit.

If you don't get it in writing, or if your manager isn't supportive during a 1 on 1, then it's time to start looking for another job.


Many similar good pieces of advice in sibling comments, but I'll add my agreement to this one.

From the subject line, I came in all fired up to start with "just quit; it's the greatest market for SWEs that the world has ever seen". After reading some of the details, I'm inclined to think "eh, it's some poor leadership being shown, but it doesn't sound irretrievably broken anywhere yet."

Start with your direct manager and setup an hour long 1:1. Let her know that you have some mixture of confusion and a small amount of concern, but that you're focused on understanding the feedback and, where appropriate, using it to improve. I think it's terrible form for your manager to bail on the 1:1:1 meeting and, if she had to, your skip-level manager should have rescheduled it. It's not just development for you, but it's development for her and while you should be having quarterly or so skip-level meetings with them, you should never be in a position as a fairly fresh grad to have your project work reviewed in a setup like this one. Poor leadership technique (IMO), but it's not evidence of anything toxic if they're open to "yeah, that sucked; we won't do that again".

I'm often in the role of wondering "why the hell is this project taking so long?!" and simultaneously realistic that there are generally very good reasons for it. (How many software projects in the history of world took wildly less time than originally contemplated?) Two years from now, I expect you to have developed a clear sense of how to explain those justified delays in a way that's convincing and non-defensive, but it's pretty damn unfair to expect you to be able to do that now, especially if you're a summer 2021 grad. You're spending all your time busting tail to just get the damn thing to work and someone's chirping about a second-order effect ("sure, it works, but why'd it take so long?" is just not a question that you're well-positioned to evaluate yet).

I think your overall approach and attitude here is going to serve you well in your career and dive into this one head-on and with curiosity with your direct manager. You've always got the great SWE market to fall back on, but this one seems like staying and fixing is a better plan.


Indeed, this is what you should do. Proceed a bit carefully if you don't have a good relationship yet with your manager: by good relationship, I mean knowing them enough to figure out how much you trust them.

You would also benefit from talking to other engineers who have more experience, especially in that company. It is easier to talk casually to people you don't report to.

It is difficult to give more concrete advice w/o more context:

* a "best case" scenario is that the senior manager (your manager's manager) was having a bad day, maybe got themselves into trouble for X reason. Managers are human too.

* another scenario is that your senior manager is actually still inexperienced. E.g. did not have time to talk to your manager first and then decided to skip directly, etc.

* a worst case scenario is that there is something weird going on between your manager and his manager.

[edit] A manager's manager talking to an individual contributor (you), especially about technical details of a project is just weird. It is hard for me to think of a scenario where I would do this. Why ? Because as a Manager's manager, you lack context about why certain things happen. And the person responsible for your outcome is by definition your manager. You mention both manager being smart people, "knowing their stuff": they may lack experience on the "people manager" side of things. That's often a drawback of working in very technical environments.


Sorry that happened, sounds like it was a very difficult experience. Talking this through with your manager or a trusted coworker is definitely going to yield better advice than what people can offer without context. However a few thoughts:

1. Treat individual bits of feedback as one of many inputs to career growth: Feedback isn't infallible, even if it comes from smart / experienced people. It is tinged by personal quicks and biases, and often comes from a place of incomplete context. There are valuable things to be learned from it, but you should use each bit of feedback to update your existing priors rather than throwing out everything you previously believed.

2. Perception and reality are not the same: A dirty secret about "work" is that the perception of your work is often more important to advancement than the objective quality. I think it's helpful to keep that in mind when reflecting on this person's feedback, and think about what are the actions you can take to ensure that perception of your work is improved (not just here but in future roles).


This is not how a serious professional would provide feedback to a junior level engineer fresh out of college. If your boss is tearing you down instead of building you up, I'd go look for something new. You need mentors and people that want to see you grow.

As a director if I had the same thoughts, I'd approach it much differently.

  - What do you think were the major blockers?
  - What do you think we can we do differently to speed up next time?
  - Have you had an opportunity to see <insert exhibit>, looks like some really cool ideas and examples
  - What were the good parts of this project in your opinion?
He had an opportunity to build a rapport with you and decided instead to instill fear and doubt. I have never called myself the boss, I'm on your team, my goals are just a little different, but most of them hinge on the fact that you'll be successful, and that it's my job to ensure that success.

Plenty of people are hiring, you shouldn't have to feel like this for weeks on end because he lacks intelligence and empathy.


A few thoughts:

Get the project goals in writing. With good relations, an informal assignment and commitment on both sides is sufficient, if met. That does not appear to apply to you.

If you met the (nebulous) goals, your upper manager might be trying to talk you out of a bonus, or other accolades. This time, let it pass (and say so), but remember how the game is played.

You were criticized for not mining the work of other teams. Place your plans of collaboration before your management, and ask for guidance.

I could say more, and far more options are available to experienced developers within your organization, but the point is that you don't (yet) have these connections, and a grapevine is something you don't have. Your management wants you to have a technical grapevine to mine, but not a running history of their management style assets and disadvantages. Cultivate both.

Be ready to step into another job. Even though you met your goals, they don't seem particularly loyal.

Save your admiration until you are certain that it is deserved. You haven't seen all sides.

Above all, take time to set all this aside, and enjoy your life.


> How should I proceed?

My suggestion is that you didn't know what you didn't know. Your Boss's boss should not have ambushed you like that either. Consider talking with your boss to have them expressly describe what their expectations are and how they are measuring them. Then, using the same way they are measuring, measure yourself and check with your boss to see if it matches up. It will help you understand what is expected and it will help them see how you hear what they are asking.

Also, have your boss put their expectations and their measurement criteria in an email to you, also email them with what you think the measurement should be and get them to confirm, in email that you are correct. With that information in hand, you cannot be ambushed like you were because you have "the receipts" as they say. What's more, if they fire your boss, and the next boss doesn't know what to put in your review, go over your email with them and that will set them straight.


You should switch managers. In this job market, no reason to keep working with them if they aren't working for you.


The problem is that your manager was not there; you were interacting with the wrong level!

The issues with the project that you were chewed out for were actually issues between the boss and your manager.

I'm guessing that planning of this task went on between your boss and your manager. Your manager made some promises about delivery that were unrealistic. Possibly, there had been an earlier (totally unrealistic) deadline for the project that you don't even know about that your manager initially promised, and that the boss still has engraved in his mind as something that should have been stuck to.

Your manager possibly bailed out of this meeting on purpose, using the fire fighting as an excuse, to expose you to the proverbial shit she has to deal with at the management level.

> I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

But you can probably guess. The boss likely reiterated all the same stuff, and your manager realized that you heard all of it, and that it was unfair, since some of the problems were her fault: everything from the code suggestions that you followed, to unrealistic promises that didn't even have anything to do with you.

Maybe your manager didn't do anything on purpose, but as a general rule, never discount that. It happens that managers will take credit for everything that goes right, and use the people under them as scapegoats to blame when things don't go right. Plus do other things like make adjustments to information they think you don't know. They might promise to the higher boss that something get done by end of December, but tell you that the deadline is end of November. That sort of thing.

For that reason, it would behoove you to establish rapport with your manager's manager. Do not allow your manager to be an entirely opaque proxy between you and the rest of the organization, and your only source of information.


Sounds like your shields are down: https://randsinrepose.com/archives/shields-down/

Fundamentally, do you trust your manager? You admire them, but do you trust them?

If so, I'd have this conversation with them (outlining what you've said in your q) and say "I really like working here with you and [boss]. I want to succeed here. What can I do differently next time to make sure that I hit a home run?".

This should give you some tasks to do (check ins regularly, design review, looking at other projects). Do them. Make it clear that you are doing them (overcommunicate). If at all possible, loop in the boss (ccing via email works great, as does public slack channel).

On the other hand... If you don't trust your manager, start looking for another job.


Highest order bit:

This sounds like you have an inexperienced manager. You should be given baby projects, with clear (generous) deadlines when you’re this junior.

Second order:

The most common failure mode I see in new employees (some of them quite senior!) is, given a 12 part project, thinking it makes sense to spend 1/4 of the allotted time on part one. This is almost never the right thing to do.

You have to spend much less than 1/12 of the effort on each individual piece, even if this means you’re hacking it together, THEN fill in the gaps, or you are setting yourself up for disaster.

A really good manager would’ve given you a 2-3 part project, as your first “real” project, so that you could learn this lesson without much harm done.

If, in fact, you got a project that needed only a few things done, and you committed way too much time to the first part, then this is just a lesson you’re learning about shipping real projects!


1. Communicate continuously with your manager/other stakeholders any time there is a setback. It’s possible your boss’ boss got pissed that they found out about a delay in your project very late.

2. Big difference in working a job and doing schoolwork is that it’s a lot harder to finish “assignments”. Don’t procrastinate right up until the deadline because you WILL miss the deadline. While missing deadlines is no big deal generally, it looks a lot better if you were working continuously on the project and communicated issues/the need to revise estimates as early as possible.

2.5 Don’t do pseudo-productive stuff like fucking with vim macros or playing with a new rust package unless you actually need to do it for your job. Obviously doing this a bit is OK, but time box it, don’t spend weeks on it. I only bring this up because you mention having fun working with new stuff at work.

3 Don’t tolerate assholes. But also be honest with yourself. Nobody here has all the details to know if your managers are being reasonable or not.

4. Don’t over engineer. Do the bare minimum to get what you need to get done (so long as it’s reliable and maintainable). Use libraries. This is a big learning curve for new engineers, since writing professional software is more about getting some functionality to work than your academic assignments which were about teaching you new stuff. This is what your feedback is getting at: see how other people did something and copy it.

Another thing is that I notice you got your project done within 2 weeks of getting this negative feedback. What was the total timeline of the project? I ask because it kind of sounds like your manager “cracked the whip” / “lit a fire under your ass” and you got the project done pretty quickly after that, since two weeks is almost nothing in the software world (as I know it). In this case your manager may have done the right thing in getting you to focus on landing the project (at the expense of your happiness) assuming you weren’t working way overtime to get it done.


> I don't know if I have a future at this company if the boss thinks I'm not a good dev

I have no idea what the tone was when these critiques were given, but is it possible that this was not a case of "You're a bad dev, look at these problems" as much as "You're a young dev, let me help show you some mistakes so we can do better in the future and make you a good dev."?

Critique is part of learning. And it can bum you out. But it sounds like you already know some of it is valid, and you have rebuttals for other stuff you can hash out. To me, this sounds like a terrific opportunity to improve communication and start making this a productive mentoring relationship.

I could be totally off base - but I'd just consider the possibilities before you assume negative intent.


Good point. I should try to look on the bright side.


1) Take the constructive criticism and use it. That's the most important, most objectively actionable, part of this whole thing.

2) Your management structure is broken. You can fix it or leave, but you should definitely do one of the two. If you want to fix it, it seems like you should be talking to your manager. She is either not giving you feedback that you should be getting, or you should completely ignore the boss, but which of those two is the case needs to be cleared up. If it is the former, you're probably being managed by someone that isn't comfortable being a manager yet, and you can help her by asking for feedback while being super transparent about the work you're doing. If it's the latter, then just ignore away.


From my experience, any time a project isn’t on time, something like this happens from someone up high. And guess what? They are rarely “on time”. The solution is adjusting the definition of “on time”, whether it is cutting the scope of the project, better estimation, or conveying the scope and velocity during the project. Usually this falls on senior/leads/management, but it is a good skill to learn as a junior.

Don’t sweat it. The real world sometimes recognizes your effort, and sometimes beats you down and gaslights. You know the effort you put in, and that’s what matters. Get experience, and if it continues, hop somewhere else after a year or two. Get a nice pay bump. Win-win.


Punching down by skip levels should never, ever happen. If you are actually underperforming, that's something to be discussed between you and your manager. The skip level may have legitimate concerns, but by going around your manager they are undermining her, and creating a pretty toxic situation for both of you.

First priority should be for you to sit down with your manager and discuss the feedback you received from your skip level - it's entirely possible your manager isn't aware of the specifics, and also possible that the skip level has it out for them, rather than you, and is taking it out on you.


Unfortunately once you have more experience you will probably agree with your boss: the project should have been finished sooner. This however is not just your fault. The "blame" needs to be shared with your direct manager who should have been keeping more in touch with you and pushing for more immediate results. In terms of the way you were criticized your boss should have approached this with a "you are still learning" attitude in the way they spoke.

Your manager might be more used to working with people who need little guidance. Having worked with juniors who excel out of the gate and those who think they are doing ok but are moving slowly, your situation sounds like the latter. The only way to overcome this is through getting more experience and being much, much more communicative.

Case in point: you say you haven't heard anything from your manager? This manager might lack the proper communication skills, but that doesn't mean that you also have to lack those skills. As scary as it might be, you need to kindly ask them what they think. Talk about what could have gone better. Establish a rapport. Once you have more experience, you might want to look for another job. That is, if you have a successful project under your belt at this company and you still don't feel appreciated the company might not be for you. Be warned: generally speaking companies are not very good at making one feel appreciated in my experience.


All the criticisms you mention concern the responsibility of others and do not reflect on the work you have put in (expected scope change, deadline changes) so it sounds like there is a communication issue between your manager and the boss. It was therefore ‘unfortunate’ they werent at the meeting. I don’t see how you could have produced anything more based on your account. Perhaps you’re able to reflect similarly.

Besides remind yourself you are all working towards the same goal and put your best into the job, projects are never ideal, that’s ok


Strikes me that the person not doing good work here is your boss and, probably, your manager.

What did the meeting you have actually accomplish? How will it help you or the rest of the team improve?

If the project or the timeline are so important, how does any of this help you get there? If I have a real deadline that I need somebody to hit, I'm going to explain the context of the deadline to them—how else are they going to make good decisions to actually hit the deadline?—and I'm going to continue talking with them throughout the whole process so that both of us understand how the project is progressing compared to expectations. If something is slowing the work down, what should we do about that? If there really is some mismatch in skills, what can we do to help you improve, and how should we adjust the rest of our plans?

Feedback like this should never come as a surprise. I don't like absolute rules in any complex scenario, but this is about as close to an absolute rule for leading a team as I can imagine. Even if the overall assessment of your work is "fair"—how likely is that?—the fact that it came out of nowhere for you and that you are not sure what will happen next is straight-up bad leadership.

It sounds like you're feeling guilty about the feedback, or that it means you are not an effective programmer. The one upside about this situation is that there are specific reasons to believe it really is them, not you. The downside is that there probably isn't much you can realistically do to change the situation—after all, if your leaders aren't effective, how much do you expect working "harder" to change anything? The main thing that I've found helpful in these situations is to remember that your "performance" is very context-specific, and the context here sucks. I've often found it hard to feel this viscerally, but even just thinking this rationally and recognizing my feelings for what they are has helped.

Recognizing this also helped me get in the right state of mind to decide what to do next. I've had situations like this a couple of times; the first time I ended up switching companies and the second time I switched teams within the same company—both times, it made a larger difference than I expected.


Early career devs need to accumulate a few things, roughly in this order of importance: - projects where you made a key contribution, where you "owned" something - senior people who will be mentors / boosters - a portfolio of skills, technologies, domain areas, engineering practices, soft skills - maybe a fancy name? A FAANG or a startup that hits big.

It sounds like you're getting a couple of these. Jobs that hit all these points at once don't grow on trees. But, always have your feelers out. Keep in touch with former colleagues and schoolmates.

Don't assume that senior people know what they're doing. They've probably been promoted to a role in which they're just trying to figure it out. It sounds like your manager and her boss are struggling. Have empathy, but don't get stuck paying for their mistakes. Managing up is a skill. I wish I had it.

Expect requirements to change. They usually do. You can't beat direct contact with end-users and rapid iteration based on their feedback. Serving real users is fun and even the most clueless and back-stabbing of bosses will respect it.

- Don't assume management cares about your best interest. Some will. Most won't. - Don't think you can change a dysfunctional org from below. You can't. - Don't beat yourself up. Look for lessons and keep on keepin' on. - Don't stay in a bad situation. Everybody's hiring.


> He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions. (When I bring this up, he says I probably just misinterpreted an offhand comment of hers as a hard requirement.)

This is very hard to do and feels very unfair, but try to own this rather than say "but this is what I was told to do." If the person is a manager she isn't writing code day to day; she is likely experienced and can offer helpful suggestions, but she can be wrong or vague, or you may simply not be familiar with the way she uses certain terms. Try to discuss these suggestions with technical leaders or the more senior engineers on the team, they will likely have more context.

Make sure you're actively listening to what people are really saying in meetings. Volunteer to take notes if it helps and then review them with the participants at the end to make sure you got their key points.

When I worked at Amazon, I was really impressed by how seriously folks took the "Leadership Principles." Two particularly struck out: "disagree and commit" and "have a backbone." Obviously the two conflict with each other at first view, but on a second look the theme is the same: know when and how to listen to others and accept their suggestions, but also know when and how to convince others to accept yours.


Dont worry too much we've all been there. If you want it easy, work at a junior farm first (badly funded startup), that will both lower expectations from the top (you re cheap, nobody is experienced), and create contrast if you work a little bit better than the rest.

I joined a new industry with new methods and Im one of the youngest dev at 30+, and I can tell you all those years working with result first and insane deadlines because no money, makes me more comfortable: even if I dont know something they all do, Im the one pushing for doing it faster anyway and I know the tricks to use productively things you understand halfway while you learn the other half. And when I screw up something they never would have, it's management defending me "but at least he got it done in 2 weeks eventually when you quote us 6 months all the time", which is unfair to the perfectionist OGs (shortcuts were taken) but such is life.

Also accept, as we all do, that it's the job of some people never to be happy and to try the pressure angle on devs of projects slowing down just in case it does something to move faster. And try to stay on the cheap salary side for 2 years while you become useful, that tends to compensate for your lack of xp and their impression of juniors. In my company, the training material for managers to deal with "millenials" is that "they are impatient, they care more about their impact and the praise their receive than the company bottom line" so while that's exaggerated probably, it's also good to reflect on why you care so much about the kudos. Make the money, claim the money.


This sounds like an internal political game between your boss and the skip level and has really nothing to do with your performance.

The non-asshole way of your skip-level to ensure a critical project gets delivered in time is to discuss the deadlines and priorities with your boss and KEEP HANDS OFF THE TECHNICAL DETAILS! Then your boss should break it down to milestones, answer your technical questions, and keep politely bugging you if they believe you are going to miss the deadline.

If the skip-level is not happy with the progress, they should express it to your boss, and the boss should get back with some compromises (hiring more people, simplifying requirements). The golden rule of management is that all praise should be public, and all criticism should be private and candid.

Setting up a meeting with 2 bosses and 1 employee where the skip-level is blowing steam at the employee, forcing the employee to point fingers to the boss is a sign of GROSS managerial incompetence. Skip-level looking through technical decisions (rather than user-impacting perf metrics) is another sign of GROSS incompetence. Having 2 managers and 1 junior programmer work on a feature is yet another red flag.

The key takeaway is that your skip-level is either an incompetent asshole blowing steam off, or trying to get rid of your boss, using this as an excuse. You can find out by checking their previous history (how long they worked together, who hired whom, how big is the company, whos idea was the project) and asking some questions (suggest adding some features to the project to both bosses in separate conversations, and ask about their overall project opinion in between).

If the skip-level is trying to kick out your boss, they may keep you nonetheless, or may try to kick you both off the boat. Your boss may also want to scapegoat you to keep their job (and it may work if the company is shitty). If the skip-level is just an emotional asshole, your boss should give you some hints about not taking it too seriously, so then it's up to you on how much shit you want to put up with.

Either way, most software companies these days are an absurd theater fueled by gossip and human emotion, while the actual product is secondary. You need to either account for it and be cynical, or just ignore that part and be ready to sometimes get fired or blamed without any reasonable explanation.


Talk to your co-workers about it. It's impossible for us to give you any good piece of advice. Your boss may be a prick. He may have been screamed at by someone higher or some client. And maybe he was just having a bad day...

All in all, it's not good for a boss to tell their employees that they're fucking up. unless he comes with a plan to fix it and it's actually better than what you guys were doing... So technically, he's the one who's messing up...


For me it sounds like she is trying to pull the blame on you instead of taking the blame herself. "It is not my fault", this is how bad organizations do stuff. It is all about not avoiding blame, so in such an organization always do front end stuff which is visible since the management in such orgs do not understand the stuff underneath. What is not visible do not exits. I know this is hard to comprehend and understand, but you can not change it.


Dogs have a boss. Start using the right names for things - at least in your own head - and you will work it out, I'm sure. And besides, he might act like a boss, but this is probably not a good leader. There's a difference.

What helped me in these kinds of situations, is having a very clear picture in one's head of the relationship. It's work, there's a horizontal agreement made upfront. This dude is not your father, not your king, not your slaveholder.


There’s a ton of good advice but I’d like to add my two cents.

Your boss also has a boss that (s)he is also trying to make happy to keep his job.

Regarding design decisions, timelines and everything else, look at that from the business’ perspective. Are they about to miss a launch (and $$) because of a dateline pushed back?

Are they getting heat from customers (and risk of loosing $$) because some feature is faulty? (read, bad code, slow, buggy, etc)

At the end of the day the bottom line is money, so when you are able to optimize for that, you are usually held in high regard (good use of business money).

This can be a little counterintuitive for us engineers, specially if we haven’t been that long in the industry, because we are trained for beautiful code, elegant solutions, etc. instead of a company that is trying to meet next quarter’s goals.

I’ve received raised based on “hacks” that felt not dignified enough to be worth my time (read, junior with big ego wanting to solve hard problems), but that little toy app saved multiple members of the team about 2 hours daily!

Hope this makes sense, and don’t take criticism too personal, it can really affect you.

Try instead to put yourself in the shoes of your boss/manager and figure out what’s important for (s)he, what numbers is (s)he monitoring, who might be screaming (hopefully figuratively) at (s)he and optimize for that!

Good luck!


Ouch, that's a really rough spot to be in. It's really harsh of your boss to tell you that they expected you to get this project done earlier when you are so new to the company, it doesn't feel like very valid feedback and I would try not to take it personally and just assume that they were having a bad day and unfortunately they took it out on you. Regardless, giving that type of criticism is not a good pattern for your boss. It's just not effective.

The idea of proving your worth at a company is definitely something that has been repeatedly proven to me as being invaluable. I would try opening a dialogue with your immediate boss and having a bit of a check-in. I think that as this project comes to a close now is a good time to do that. I would let them know about how uncertain you felt with that bit of criticism, and maybe asking for concrete suggestions to address the problem with your upper level boss. Maybe some way that you can submit extra weekly reports detailing more of the work that you are doing on specific projects, including changes to requirements and how they affect your workflow. Sometimes bosses get so caught up in the big picture they don't recognize the ways that unexpected changes impact their teams.


I’d say just walk away when you still can.

It’s VERY hard to change the perspective of a boss that thinks you aren’t doing your job. I recently had a horrible manager who ignored me for months when I told him the dev environment was so unstable it was impossible to get anything done.

I kept asking for him to look into fixing it, again ignored. This continues for a good while until his boss takes a look. Boss boss is upset we don’t have a stable dev environment, which makes what I do get done take 5x as long. I blame myself for not clearly documenting these issues in emails. I’m really not a confrontational person, and I can’t know if it would of went better had I sent a bunch of angry emails saying without a stable dev environment nothing will get done.

Then it happens, I’m thrown under the bus and I have to leave anyway. I will say this was done in a very nice way. I’m given time to find another , far more enjoyable job.

Going forward I’ll walk out sooner if my boss doesn’t take my concerns seriously . I don’t argue with people, not at work, not in real life. As if this wasn’t enough I received a few late paychecks since my manager would neglect to approve my timesheets on time !

Drop that admiration, assuming you’ve finished a full year you can leave right now and it looks fine on a resume.

Good luck !


Part of the reason it had taken so long is because I put a substantial amount of work into a part of the project that's no longer necessary due to changing requirements, which I don't think I could have forseen

That's a pretty unfair judgment to pass on your work based on a decision that was almost certainly made at a level far above you.

I don't know if this is mentioned explicitly, but your company sounds small. Here's something I didn't learn until a decade into my career: good managers are expensive. The corollary to this fact is that good management is frequently too expensive for small companies to afford. That means your managers will likely be, at best, inexperienced, or at worst, actively harmful (for example: they don't really want to be managers).

I suspect that your manager is blocking and tackling some of the boss's bullshit. Giving your manager the benefit of the doubt, and assuming that's the case, it sounds like she made the mistake of putting you in a position to receive some unconsidered feedback from the boss without positing herself as a moderating factor.

I don't have great guidance for you here - just context. If the tech challenges are enough to keep you happy, then stay. If it's weighing on your mind, and an honest conversation with your manager (if you trust her that much) doesn't fix it, then leave. (The job market is red hot right now. You'll be A-OK.)

I will say that this situation does remind me how tired I've become of working small cos with lousy management. I've just spent enough of my life dealing with it.


You mentioned that you got to work with Rust. Is the critical boss an opponent of using the language for projects? The issue could be political and have nothing to do with you. Another thing worth noting is that this can be a manipulation tactic of lighting a fire under your ass to get more out of you (churn and burn). Again, it has everything to do with you working even harder than you have going forward. Finally, this discussion with you can be your performance review that is held against you when cuts come. They may already be coming and they already decided who should go, and this discussion was necessary for legal reasons.

Your code, if it works and has been tested, is already better than what could have been written in many other languages. You will learn software design and architecture with experience. It will come in time. Keep investing effort to learn how others design and your work will improve.

You should proceed by working your ass off and keep doing what your doing. Computer vision and Rust? Get it all while you can. Whatever hard work you put in will pay itself forward. Either you'll quit on your own or be cut and have done everything you can to prepare for your next job. It's a win/win situation for you.

Keep going.


This feels toxic. Immediately start looking for another job in the related field. Don't wait. Have something lined up. When smells start... they don't go away. Time to be proactive instead of reactive. If this keeps happening, it is you. If not, it's them but you shouldn't wait to find out. If it is you, don't worry, you can always improve. If it is them, well, you are better off. From what it sounds like, its them.


I think first thing to be sure is that you're not misinterpreting the intent here. Sometimes random comments that aren't really delivered with bad intent can easily get misinterpreted. Perhaps the manager's boss intention was to help you in some way. It's expected that a really junior person will make bad decisions (maybe not what you're looking to hear here). That's (partly) how we learn. How well do you know this person? (Wasn't clear to me from the above who is "he" and "she", you said your manager and her boss and then you referred to that boss as "he").

If this is not a question of misjudged intent, and probably after trying to clear it up with your immediate manager (but be subtle/diplomatic about it), I would consider my future with that company.

The other thing to note is that us tech managers are notoriously bad at people skills. It's possible both your manager and your manager's boss think you're doing great work most of the time, and say nothing, and just say something when they feel it needs improvement. So on the whole they think highly of you despite your perception that they are critical. Again, a more open talk with your manager, while being a little careful, should help clarify this. This is a good conversation to have after you've accomplished a major goal (like "pretty much done"). Just ask for feedback in a neutral way, don't accuse anyone of anything... If you get great feedback, it's a good time to ask for a raise or a bonus if you feel you deserve that! If you're not having these conversations it's really hard to gauge what people are really thinking...

Good luck!


I doubt that this comment will surface to the point where the OP can find it, but just in case -- I'm not sure if it's obvious whether they're saying that you need to improve communicating or improving something technical.

One of the things I needed to learn in a real job was that if things aren't going well they need to know loudly and early in order to fix it. They can't allocate resources if they don't know things are behind.

If they don't see progress, what I hear is that they want more regular updates about what is being done because while you may be making progress on things it's not being recorded in a way that reminds them about it. That is frustrating and takes some effort to handle. You could send them more emails that feel unnecessary to you but are intended to make them feel involved and up to date. You could simply write down what you accomplished each week so that you can be specific about it.

I hope it works out okay, it sounds like either your manager needs to do a much better job backing you up or else there may be some maybe not too bad communication steps that can be taken to make them more confident about what is going on.


Thanks. I'm reading all the comments. I definitely felt like what the boss was upset about at the meeting had more to do with the technical side, rather than communication.

I feel like my communication with my manager was good. We have all-team meets (that the boss isn't a part of) where I gave weekly status updates, and there's a group chat on slack with my manager where me and the other person on the project discussed what we were working on. I also maintain a github project that shows the status of everything I'm working on that takes me more than one day (and try to keep it up-to-date with what the other person on the project is doing too).

But there was virtually no communication between me and my skip boss. My feeling is that I should have been doing more to keep him in the loop. I think, viewing from the outside, some might say that the management hierarchy exists for a reason and just communicating with my direct manager should be fine, but I think the skip boss would have appreciated being kept more directly in the loop.


That's very weird. I don't know much about office politics but it seems suspicious that your manager wasn't there to directly address your complaints.

Here's how I figure it. Let's say they felt they had conveyed the issues to you and that they could not get you to understand it. It happens, whose fault doesn't matter so much. But if that were the case I'd think a good manager would want to be in the room so that they can reinforce the thing being said and make sure everyone is on the same page.

Or what if they knew exactly what was going on but didn't see any issues. So then a good manager would go in and defend you because you did your best and if your manager knew what you were doing and didn't, well, manage you then who screwed that up really? But a bad manager might just conveniently not be there and who knows what they've been telling your boss you've been doing.

It really sounds like you three need to be in the room at the same time and agree on exactly what you're going to do and with what tools and how you'll explain what you're doing and get it approved. I don't see how else you can cover your butt, they need to take ownership of your technical choices or they aren't really managers or bosses.

But I suppose they could just honestly doubt your technical skills. If that were the case though then why would your manager and boss not both be there? No matter what happens it's really weird that the person who knew what you were doing and what needed to be done was absent.


I'm not expert on your situation and commend you for posting here. Not sure how useful any of this will be (or any of any of the comments will be) because basically nobody knows you or your team and everyone brings their own perspective and experience--and you'll have to figure this all out on your own--I mean, it is your career, right? This may sound an obvious caveat but I think it's important--because there's always gonna be people eager to give you advice, simply as a way to validate their own experience--even when it doesn't apply to you. But I'm sure you know that already.

I'll just try to offer some general meta comments that got prompted for me while reading your post.

- Your manager may feel she doesn't know how to have a difficult conversation with you (for whatever reason) and may have deliberately slyly ducked out of the meeting under the pretext of fighting a fire to let her boss do the heavy lifting of that conversation. Lest this despair you, it's not a bad reflection on you that your manager may find it hard to be critical--it's just about her, but if that's the case, you could always help her out by giving her lots of opportunities to share where she's up to with your performance.

- Maybe you are seen as a rising star and are being 'groomed' eventually for some sort of leadership (hey, sometimes in tech companies things move fast). So the boss is giving you some pressure and criticism to see how you're going to handle it. It's not the content in that case that's important, it's the fact of its existence, and what you do about it. Maybe you're seen as someone who could report higher, so you're being given a meeting that mocks that up.

-


This is really incredible. You are on one end of the spectrum by being hardworking and motivated, while I on the other end of the spectrum by being lazy and unmotivated. While both being misjudged.

I started last year, and since then I was constantly late to work, left home early, and always complained about design, tasks and so on. Took ages to understand code written by others and just thought it's over-engineered when it's clearly just my lack of skill. Moreover, the deadline and planned launch is delayed too; I firmly believe this is my fault. Yet, my boss thinks I worked really hard, and the delay is not related to me. I told him this is not the case but he says just work hard this year while giving me a good performance review.

I'm completely blown and with the shame and guilt I'm feeling, the way I proceed is to work hard and actually contribute to the project. If I was in your case, I would tell them the truth of which you did work hard with so much care. I'm afraid if you don't do this immediately it would end up as a trauma and will stay in your head for a long time.


,, thought it's over-engineered’’

Every code in the world is over-engeneered, as it’s a living thing changed by many people whose only goal is to not introduce new bugs while introducing a new feature. Removing code is hard, because it requires a deep understanding of the system. The best software engineers I know are the best people who can improve messy code substantially with the minimum amount of changes.


You need to balance letting your manager know that this is a bad way to manage with the likelihood that your manager will forget about this. Managers should let you know early if things aren't going well so you have time to course correct. They also shouldn't leave new juniors alone to make important architectural decisions. On the other hand, to the extent that this "counts against you" if you don't say anything about it your manager will likely forget it happened in a relatively short time.

I would create a list of your manager and his peers. Record how long, approximately, they've been in their current role then average those times.

If the number is short, like six months, then I would let this go on the premise that, in six months or so you'll probably have a new manager and it's just not worth arguing about.

If the average tenure is much longer then I'd wait a week and implement as much of the feedback as possible. Then I'd schedule a meeting with the manager to go over what I'd done in response to the feedback and raise the concern about late feedback.


Doesn't sound like a great place for you to grow and succeed. I am sure you're a smart engineer and you're doing good work, but a junior dev straight out of college should absolutely not be the solo dev on an important project.

The structure of the dev team seems all wrong. Who created the tickets for this project? Who did QA? Who was supposed to be reviewing your code as you went? Who is writing the documentation? How often do you and your manager meet to discuss the project and your role/growth at the company?

From your message it sounds like you were left alone to do a waterfall style project from beginning to end with little to no supervision or direction. If that is even partially true, you should consider polishing your resume and looking for a different job.

You can give your direct manager feedback about how you were set up to fail, but it doesn't sound as if this engineering department has even the basic structures in place to help you grow and succeed. A junior dev fresh out of college really should not ever be left alone on a project.


I think you have to learn, pointing out that some design decisions are from your manager is a worthless point, I also have a coworker who doesn't have an opinion and changes idea on each contrasting message on a PR discussion, but you need to have yours and your knowledge and ability to reply, they hired you to contribute not to do what you are told, otherwise go be a policeman.

In the end someone told you to do something, and you didn't have the knowledge to disprove and YOU did that, not your manager

On the other hand they hired someone fresh of university who still need to create meaningful knowledge, so maybe they could've defined better the figure they needed beforehand

On the other hand, I think you should be happy and motivated to learn and improve for yourself, in few years probably you won't even remember your boss and managers names, and on the other hand I don't see any personal criticism in here, given the fact those are criticism and I see myself making too, and of course seeing an improvement or will to learn would definitely be seen as a good thing


First don't ever say this is what my manager told me to do to his/her boss, accept critics and say that you will improve. Then talk to your manager and explain the situation, you don't know their relationship and if the critics are towards you or really are a way to criticize your manager. Besides that work at your best and speak a lot to your manager for feedback


Sounds like there’s some blame game going on. Project is late and they’re looking for scapegoat. That’s a red flag that the management is poor. You can do as great work as possible, make sure you take notes what was assigned to you and what you delivered, even better: overdelivered, and think how you’d present your results. Just don’t join the blame game, you cannot win.


While maybe your boss could've used some more empathy, there are many good learnings here that I struggle myself with:

- communicate your progress more often. The status of the project should never be a surprise, especially when things are not going perfectly well. Write it down, send slack updates, be proactive in communication.

- being proactive includes asking for feedback and for help when needed.

- avoid doing with the goal of being praised. You know when you're doing well, you know when you're learning. That's all that matters really. Especially in your first job. Your goal should be self-reliance.

- avoid attaching your sense of self worth to the code you write. You'll write great and shit code. That doesn't reflect on who you are. You'll be horrified at the code you wrote 2 years ago, but you will also be proud of how far you got.

- you are good enough

Take it easy my friend. If the goal of mountain climbing was to get to the top then people would summit the Everest on a helicopter. Enjoy every step of the ascent instead. Slow down and enjoy the view sometimes.

And fuck your boss.


My work is only tangential to the software engineering industry. Therefore, my view may not be as applicable as others.

I think it’s inappropriate for this senior manager to have given any feedback about the status or requirements of this project directly to you. As a recent graduate, I would hardly consider you to be responsible for any project management duties. It’s up to the project manager to set expectations and make decisions regarding things like meeting a deadline. In this case, I would assume the project manager is your direct manager.

There is a direct correlation between the output of a project and its inputs: the deadline, any specific requirements, and resources provided to the individual contributors assigned to the project (e.g. a senior resource providing code review). The project manager’s duty is to be the “neck to wring” when there are issues with the project. That is why they are responsible for communicating and setting expectations.

Perhaps your manager did not handle these duties well in this instance. In fact, it sounds to me like this is the case based on your story. Because your manager was not present in this meeting, the senior manager apparently chose to wring YOUR neck instead, which is inappropriate, especially given your tenure.

This is going to happen to you a lot in your career. You can protect yourself or prevent it by keeping good records of your actions. For example, your commit messages could contain a copy of whatever specifications you received, or you can make a habit of confirming your assumptions via email with the appropriate contacts in copy.

Either way, don’t take this too hard. You are unfortunately bearing the brunt of unprofessional behavior that is happening well above your head. The fact that you completed the project and feel proud of the output is what you should remember from this experience.


> project should have been finished a long time ago and he can't believe it's taken this long

Yes, this is quite common. The problem is seldom on the performance of developers though, but rather on the misaligned expectations.

Your managers boss is probably stressed out about commitments or promises thy made that cant be met due to such expectations or otherwise really don't like being uncertain about a reality they have little control over. People generally hate uncertainty.

The solution “agile development” came up with wasn't to improve developer performance, or provide better plans, instead the main focus was to tighten feedback loops.

By having frequent “inspect and adapt” cycles with stakeholders two thing happen. First expectations are frequently brought into alignment making it easier to adjust other plans. Second it provides an opportunity change plans, thus providing more control.

It is my experience that stake holders provided with both expectation alignment and control tend to feel safe enough to not worry so much about deadlines and budgets.


You may not like my advice, but it’s the truth.

1. you’re doing well enough. If it is a pattern your boss will mention it, if not it was just feedback. Maybe your boss was having a bad day, maybe you need to work harder, maybe you had some mistakes

2. Grow a thicker skin. Every single meeting with my boss I ask for harsh feedback. Every meeting with my teammates I tell them to lay it on me. Honesty, is what helps us grow.

3. No need to be mean, but if someone in my team is missing expectations I tell them so. I suggest ways to improve, say “hey; you really let me down here”. And we try to figure out how to improve. That’s how business works. Take the feedback and move on.

4. If you can’t move on, self reflect. Maybe you’re too sensitive. If you feel your manager was unprofessional, mention it. If you feel it’s just your feelings hurt, then recognize it as feedback and when you feel you improve, ask your manager if they saw said improvement. Make it a two way conversation.

5. People get impressions — you don’t change them by complaining. You change them by performing well.


It's impossible to tell from a write up like this.

You could have taken a little project and turned it into something big, not leveraging knowledge and resources, and maybe misinterpreting requirements of it being 'quick and dirty'.

Or - you could have a manager who lacking in perspective, which is entirely common.

To boot: you could be both right, or both wrong as well.

Boss could be needlessly nitpicking, at the same time as he's right about the time required. Maybe he's just in a bad mood, or under pressure, or miscommunication the requirements himself.

It's also very typical of devs to nitpick their own projects and fuss around features they don't really need, corner cases etc. and forget the 'big picture' and take too long.

It's a really, really hard thing to fathom.

I suggest talking to your manager, letting them know that you thought you were doing well enough, that it's a surprise to you, and maybe dig in a bit on the 'actual requirements', make sure that 'timeline' is part of that. Also take a moment to make sure that you're leveraging the right tools and team knowledge, and that you're on board with the internal coding standards, and make sure to ask about communicating - its' important to you that you're doing a good job, so if something is 'off' you want to know right away from your boss. Oddly, if there are weekly updates or something along those lines ... none of this should be a surprise.

Finally: Don's Sweat It.

It's going to be ambiguous like this for the rest of your career, whatever you do. Try your best to put it into context, roll with it, keep your chin up, move on. If you're even asking questions like this, you're probably going to be ok.


One of the best things about my job is that the CEO and other product owners genuinely understand and accept that when they change requirements and blow out X weeks/months of work the project will take that much longer. Not having that at the upper levels of management is going to make everyones lives painful. It's not a quit immediately issue, but certainly an explore your alternatives issue. It's also sometimes a symptom of financial stress. Life is _much_ better working at a company that is significantly and reliably profitable. Deadlines at the C level are bankruptcy and/or negative cash flow. Even decent executives have trouble not trickling that pressure down on the entire dev team. But as a dev without a signifiant equity package, the solution to that is just find a better company. Also, as a junior you pretty much shouldn't be making _any_ architecture decisions. Suggesting them, sure, but actually making them, no.


"Code monkey think maybe manager wanna write Goddamn login page himself..."

You are right to feel bummed out. However much you may like your manager's boss, I don't feel he addressed his concerns in a constructive manner. Not only was berating you about your past mistakes a tone that is not conducive to future progress, but he failed to take your youth and relative inexperience into account. If there's a way of working he wants you to do and you're not doing it without prompting... that's understandable because you are fresh out of college. When you get to be my age, it's a whole lot less understandable.

Maybe you should talk with your manager about it. Sit down and say, look. I like working here, and I want to do better, and I think there are ways we can improve the quality of feedback we're getting. And just, hash it out, maybe put together a list, and then go to your boss with it.

I dunno, maybe it's not that kind of place, though. Read the room.


Sounds like a bad mentor. You may need to cut your losses. It's possible your interpretation of your progress is not accurate compared to expectations, but that does not mean anyone should interact with you the way you are suggesting your dude did. Software development is hard and a good boss will understand that and help you grow, not belittle you.


My first boss used to mark up my work with red pen (it was a lot of printed output). He was correct to criticize the work, but really sucked how he went about it. Like, it was intentionally a bit demeaning. I left after a couple years, even though I was doing quite well.

After reflection some years later, I would say I was overly reacted / was overly emotional over it. But it's hard to feel that way at the time.

Alternately, after several more jobs and life experience, I have made the most money by jumping companies and not sitting still. I have also learned some bosses are just dicks / incompetent. That boss was niether, but some definitely are.

So, I don't know where you and your bosses fall. If you genuinely think they would fire you (have they fired others?), then it would be prudent to interview other places. If it just 'feels bad man's, try and take the hazing with some pride that you survived. Over time, they may just respect that you are tough.

Good luck!


The boss is definitely not incompetent (he's incredibly smart), and I don't feel like he's a dick either. Maybe this is just my naivete from being fresh in the job market, but I really wanted him to like me, and one of the things that bums me out the most here is that now I obviously feel like he doesn't. I do feel like some of his criticisms were unfair, but like I said in my post I can't deny that some of the problems are genuinely my fault.

Thanks for the encouraging words though. I probably am being overly emotional about it. I have a lot of model uncertainty about my boss so I have genuinely no idea whether he would fire me.


I think OP meant incompetent when it comes to management, not technical skills. And I'd agree based on your description of how he handled what in reality is a very minor setback for a project.


I'm confused about this scenario. Reading between the lines, it sounds like you were put solo on a project with very little guidance, just as you walked in the door on your first job. No team, no mentor, no buddy, no code reviews, no daily stand up, no issue tracking (which is a way of measuring progress). This sounds like a place that has not upgraded its software development practices in years, if they even know what they're doing at all.

The first feedback you get is from boss's boss, who directly criticized architecture, coding decisions, and timeline? No. This is not on you.

Here are lots of replies telling you to be a better communicator, which is always good, general advice, but this is not a good situation, and will not teach you how to be a better software engineer. "Do better" is just terrible feedback.

I know that you like this job, but know that there are better places out there, and that better places would never strand you like that.


How should you proceed? Grow some thick skin.

Modern education has failed you (and you were probably coddled a bit too much). Hard work is small part of a much larger equation which includes context, bigger picture, results etc.

Everything you mentioned is completely normal except for you whining about it on HN, as a junior dev mistakes are inevitable. You accept responsibility and push back on the "unfair" criticisms.

Maybe your pushbacks were discarded, maybe they didn't "understand" your side. Welcome to the real world, you work on what you can control and if thats not good enough maybe this is not the right place for you.

This idea that you are entitled to an "understanding" is silly. This is not college, you're not paying them. In fact as a junior dev, they are investing in you. This mistakes you will be making and the resources (senior devs) it will take to bring you up to speed is a net cost for them for the next few months.


You seem like you'd fit in great as a manager at OP's company.


In this case, my strategy would be to turn criticism into a potential improvement, and focus on the improvement.

Take every criticism seriously, frame the problem, and seek a solution. For example, he says your decision to consider an offhand comment from your manager as a hard requirement was a bad decision. First, was it? Let's say it was indeed a mistake. Now, how to avoid repeating the same mistake, because clearly, there is a communication problem. You can then try to make suggestions, maybe formalize requirements a bit more.

And if you have no idea, don't hesitate to ask "How can I do it better?", after all, you are the junior, you have a lot to learn, they have experience, take it. If your boss is as smart as you think he is, only good will come out of it. If he has no idea but he continues criticizing you, maybe he is not that smart after all.

But if the suggested solution is for you to work harder, run away.


This may not be the case where you are, but it illustrates the things that you can't see that could color interactions.

I was hired into a highly prestigious team. My manager always seemed gruff; I worried that he regretted hiring me.

About eight months in, he had back surgery for a slipped disc. Suddenly, he was fun, joking, smiles. I realized that all the time before, he had been in pain.

Later, a friend in HR broke the rules and showed me the notes from my interviews. My manager had said something like, "He didn't understand how X works, but after I explained it to him, he understood how to solve the problem." And this exact quote: "We should try to hire him for my team." I felt such pride.

When I later had a medical crisis, he turned out to be very empathetic. "Take care of you. We'll be here when you get back," or something along those lines. This was the guy I thought hated me.


Don't sweat it too much, but it sounds to me like this organization has communication problems, and it's not really realistic to expect a fresh face to industry to identify them consistently and act proactively. I personally think your skip-level was having a bad day (in which case they may feel bad about how they said what they did) or an abrasive personality (in which case they may not). In the latter case, they may or may not hold a grudge. Ideally, it's the "not." Some people are brusque but really do not overweight it in ongoing evaluation.

Now that you know the communication problems are there, regardless of the accuracy of fault finding, you may have an inkling on how to compensate for it now.

If they start dogging you with bad projects or bad work conditions, I'd start looking for the door. If not, write it off, hold no grudges, and focus on learning.


I would agree. Abrasive managers aren't necessarily bad managers, though if the skip-level is abrasive enough that OP's direct managers is avoiding meetings with them that is a warning sign.


I think what probably happened here is this ... your bosses boss, has had misgivings about the project and your work on it, that he's been passing on to your boss. I think your boss either disagrees, or agrees but has been trying to softly nudge you in the right direction without alarming you.

My feeling is that it's probably the latter, which is why you haven't heard anything since the meeting between two of them after you left. You're new in the industry so this isn't something that you should even be able to pick up, but what I'd suggest is a bit more tactful probing around these ideas to find out if one of those guesses is correct.

If you, or worse you AND your boss are on the higher ups shitlist, you want to take corrective action as quickly as possible even if your boss doesn't (which might involve lining up another gig, just in case).

As an anecdote, in a toxic environment, I had a boss who was shielding me in similar fashion from his boss who was supportive of some other coworkers I was repeatedly butting heads with. My boss agreed with me and thought my approach and work was the right way to do things, but I had no inkling till one day he casually mentioned that his boss had weighed in on what up to that point just seemed like low level squabbling. That got me very alarmed indeed, and he was shitcanned not even 4 weeks later. Turns out that they had pressed him repeatedly to fire me, and used he refusal to do so as one of the reasons to get rid of him.

In came a new boss, and within weeks (conveniently after I'd wrapped up a very difficult project, which was part of the reason my now-former boss had been shielding me from them) I was told I had no future at the company (directly from the higher up). So, keep your ears and eyes peeled and proceed to do some digging.

Your boss might not be giving you the full scoop on what's going on behind the scenes, and you might need that information to take evasive action. Hopefully I'm wrong though.


Hate to say it but start looking for another job. I've been in the same situation and learned that its almost impossible to change a boss's perception of you once it becomes negative. Maybe there are some things you could have done to be more transparent and those are great learnings to take to your next gig.


It seems like you are already analyzing the mistakes you made and will adjust in the future accordingly, so you’re already many steps ahead of many of the less successful engineers I’ve worked with. Many of them will just blame everyone and everything else for poor outcomes rather than accepting responsibility and trying to improve in the future.

My main advice: always under-promise and over-deliver. Managers don’t see code typically, they usually are more focused on deadlines. Be very pessimistic when discussing deadlines. Take your initial estimate and double it to account for potential problems. Be very clear about risks beforehand. And lastly, no one cares if you wrote some chunk of code or if someone under you did, all they care about is knowing who lead the team that delivered it on time. Be that person and you will be successful at almost any company.


This feedback does not sound particularly constructive.

If they wanted something done faster or better: Well isn't that special? Look at the special boy who wants work to magically go faster with 0 additional work coming from higher ups or senior engineers. That's really nice, but that isn't how things work in the real world. Stuff takes as long as it takes.

If you aren't having regular, as in daily, meetings with your team to make sure you are working on the right things: That is literally your manager's only job. Do not let them brush you off.

Meetings are for YOU to make sure YOU are doing the correct work. It isn't you turning in your homework, it isn't an accountability check-in where you get a letter grade and a lecture. It is the time you communicate about progress and goals. They are YOUR meetings, to help YOU, NOT theirs!

Helping you with these meetings and other forms of communications IS YOUR MANAGERS JOB.

And if your team isn't considering changing requirements when planning work, then that isn't on you either. Requirements changes should go through your project manager and it should affect project scope.

However, at a certain point, you have to manage UP to get what you need from your team. Set a cadence of accountability with your manager and team. If they don't make that reasonable accommodation, at least you can say you tried.

===

As an aside:

Here is a fact you probably have not had to deal with too much yet: Some people are cruel assholes, and they don't even know why. They just say and do cruel things because that is who they are. Don't deal with assholes.

The other thing about assholes: They manipulate you. They make YOU feel bad for THEM. They make YOU feel like YOU are doing a bad job instead of taking on the responsibility themselves.

If I had a Jr engineer who was struggling, I would tell them and I would help them. If I had a Jr engineer who I forgot to manage and then they failed to meet expectations... well, i wouldn't behave like your boss. But shifting that blame downwards is a tactic you could use.

We have too much mobility in this industry to deal with assholes. If you are writing and shipping computer vision projects, cash the checks, keep your head down, get the experience you need, and once you are done with this place: Leave without looking back. You don't owe them anything.


Your manager’s manager shouldn’t be directly criticizing you. This is so wrong on many levels. That manager should relay feedback to your manager directly and your manager discusses performance in a 1:1. That’s the ethical way to do it. This feels like a power play and you should get an exit strategy worked ASAP.


A manager cannot ever blame a product delay on individual developers in a team. That's the whole damn point of being a manager and getting the top brass, large office and colored parachute: you must take responsibility for the end result, the buck stops at you.

If a critical path activity is not completed and delays the product, it may be that an individual developer failed in his task, but it your fault as a manager for the product delay: you should have dedicated more time or more experienced talent to that component, you should have tracked it closely and corrected the problem, you should have communicated to upper management the objective reasons outside your control and team for a delay, etc.

Otherwise, what does a manager exactly do? Sits around at his desk waiting for task to be completed on time like some sort of plantation owner?


World is not fair. People expect it to be. That expectation seriously harms them in nearly all instances.

Listen to criticism, extract from it anything that you think might guide you to any sort of improvement. Ignore the rest of it as if in was never uttered. Don't dwell on where it came from and never think about whether it was just or unjust. It doesn't matter.

Don't develop any emotional relationship with your bosses and your place of work. You are there only to earn money and learn things. If those two things happen everything is as good as it needs to be. Disassociate yourself from any drama even if it is about you. Value of your work is increase in your bank account balance and new things you can put in your CV. Your work has no value beyond that.

Work is not a place to make respectful friends. Especially among your superiors.


Welcome to corporate America, where you are a disposable cog in a machine of managers trying to build their own empires and save their own asses. You either learn to play the game or you get crushed. If this is a name band company where the stock and benefits are worth it, then stick it out and find your way to move to another team. If this is a no-name company, then think really hard about what your future career looks like there and whether it's worth it relative to other opportunities. Are you going to get fired? No probably not - they probably aren't giving you two thoughts and it was as much about a manager posturing or venting as anything. But, that tells you something about the quality of management above you and you have to decide whether it is worth harnessing your career to them.


>>First, he basically tells me this project should have been finished a long time ago and he can't believe it's taken this long etc.

>>He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions.

>>For instance he said I should have looked at other projects to see how they accomplished what I'm trying to do. That definitely would have been a good idea.

Very bad manager, in fact novice would be an understatement for these kind of practices, based on everything I've learned from these statements. Feed backs are a continuous, never ending process, given in a positive direction. Any surprise or a shock down the lane, implies the manager has utterly failed at their job.

Don't beat yourself up. You have done nothing wrong, and this is not the end of the road.


A few things to consider before making any decision: 1. How long have you been at this job? 2. How long was this project estimated to take? How long has it taken? 3. Were you part of the estimation process? 4. How hands on was your manager when it came to the execution of this project? 5. How comfortable/safe do you feel having difficult conversations with your manager? 6. How large is the company and how much mobility do you have within it? (Could you switch to a different team if you wanted to?) 7. How many months of runway would you have if you didn't have this job anymore?

Pending answers to the first set of questions, I see two possible scenarios here:

Scenario I: Your manager was in the loop about this meeting.

If she knew that her boss was going to have this conversation with you, she should have been in the room with you. If she had a fire to put out, she should have rescheduled this meeting so that she could be there. She should have, in fact, had a conversation with you about her boss's displeasure (and perhaps her own displeasure) before you walked into this meeting.

Scenario II: Your manager had no idea what this meeting was about.

This would mean that perhaps the project/product you are working on is at risk of getting deprioritized, and both you and your manager are about to get shuffled around to work on something else.

If you are very early in your career, I would recommend valuing mentorship above anything else (even compensation). In both scenario I and scenario II, it does not seem that you are receiving an adequate level of mentorship within this organization. If you are comfortable putting your job at risk, this is something you should definitely bring up very directly with your manager and maybe even with her boss or her boss's boss.

If you need a job right now, just keep your head down and start looking for positions either within this company or somewhere else, where you can get mentorship from excellent engineers who are also excellent mentors.


I'm looking at this from a PM's perspective and not a devs perspective so take it as you will.

>he basically tells me this project should have been finished a long time ago and he can't believe it's taken this long >>Sounds like a manager with a MBA and lack of hands on technical experience.

>he says I probably just misinterpreted an offhand comment of hers as a hard requirement >>The problem isn't you not understanding her requirements, its a lack of documented well defined requirements - and any changes to said requirements should be noted and tracked.

>no longer necessary due to changing requirements >>Once again, this sounds like your manager is deflecting the fact that they didn't have well thought out and well defined requirements before the project began.


It took me a long time to learn that it can be very valuable to stay in the loop with PMs and planners. Once, I was tearing my hair out over a huge task, and literally on the verge of quitting in shame, having realized it was beyond my ability to even move the needle on that mess. Fortunately I happened to vent about it to a PM, and she just says, "Oh don't stress out about that. That's getting cancelled." I don't know who was going to tell me or when. But as a mechanically-thinking engineer, my only solution to this was to figure out how to move the moon with a lever. Their solution was one line in an email that said, "Cut it."


I generally suggest that all dev teams send at least one person that's in the trenches daily to the steering committee meetings and any other decision making meetings.

This way, there's always someone that can keep expectations in check and can relay any minor/major changes back to the team. Ideally, these would be the tasks of a competent PM/Sr.BA but it doesn't always work like that.


1) Schedule a meeting with your manager and ask for a mentor. Tell them what their manager said and say that you want to do the best work you can do if they could get a good mentor, you will work hard to meet future expectations.

2) email your manager’s manager and thank them for their point of view. Tell them that you have taken it to heart and tell them the actions you are taking, namely getting a mentor to help guide you.

Don’t make excuses. Just tell them both you want to do the best job possible and want to learn.

Doing this without making excuses or sounding butt hurt because your feelings were hurt will elevate you in their eyes.

And you should move on and stop feeling butt hurt. Accept it, get the mentorship and learn. In the end it’s not a big deal but it’s a good opportunity to act the way professionals act and getting mentorship will help.


There are a couple assumptions you're making here. For instance the firing (from your perspective likely but will they really?). Take a step back and take stock of the situation.

Communicate with your manager. Your manager not being there in that meeting definitely didn't do you any favors. Make sure the both of your are on the same page. They should have been there to deflect. Be proactive about communicating and making sure everyone is in alignment. Easier said than done especially if the company is smaller or the manager is busy. But a 20 minute time investment per week will be worth it.

Figure out why this happened. Figure out what can be fixed and move on. But be vigilant because that kind of behavior is frankly uncalled for. On the other hand getting a new job in this market should not be too hard.


Generally, it's not reasonable to have your first round of feedback on your first project at your first job straight out of college come from your skip-level manager. Frankly, that strikes me as fucking insane.

This post isn't enough for anybody to judge your work or your qualities as an employee, but taken at face value it raises major red flags for me. I would ask your direct manager, directly, how she feels you are measuring up to her expectations so far, and what her expectations are going forward wrt. the issues she and your skip-level manager raised.

Don't let them gaslight you. Without experience, you are an easy target to take advantage of. Advocate for yourself, believe in yourself, and if you truly think your employer is being unreasonable then walk away and find something better.


First you need to understand what is actually happening here and who is responsible.

Deadlines are creative fiction. It's nice to hit them, but they are almost always management tools to extract work from engineers. Only sometimes are they intimately connected to actual business needs. Don't get me wrong, they can be a helpful tool, but equally they can be harmful.

Scoping and requirement changes are program management issues. It's useful to push back on obviously bad requirements and scoping. But this requires understanding of the business space and what likely is good and what isn't for the end user. Sometimes you can save program management blunders with the right questions and friction to the desired feature set. But this is more the in the realm of experienced devs correcting management issues (an invaluable skill). Customers certainly can change their minds, and it's often appropriate when figuring what the real needs are. But it does cost additional schedule and money to pivot. Sometimes significant amounts of both when fundamental assumptions are changed. This should be understood by management or they are not doing their jobs.

You experienced some common management issues. Your boss was expressing his frustration to you and that may or may not reflect on you down the line. A lot of people don't own up to or recognize failings.

Engineering issues also can happen, but that typically involves failure to build the thing to spec. Also can involve over engineering or under engineering given the communicated business needs. This happens plenty too.

Unless you're just lazy and not working, that's when delivery time is your fault.

Good management of engineering projects is pretty rare. In twenty years I have only experienced it a couple of times.

As for what you can do, ask your direct manager questions like "I really liked working on this project, how can I be successful here?". This helps align your interests with his and communicate your willingness to pitch in/contribute.


> I really did work hard

First of all, this doesn’t really matter too much. You mentioned it a couple of times, so I wanted to respond to that point. If you can slack off and still get your work done, that is better than working hard but not achieving your goals.

That being said, I think it is unfair to criticize an inexperienced dev too much over things like design decisions or not knowing to look at how other projects have done something.

If anything, the rest of your team deserves blame for not providing adequate guidance and assistance along the way.

Do you not use some kind of agile process? This would bring problems to light much more quickly and give you many opportunities to communicate the status of your progress along the way, so hopefully you can avoid the “this project should have been done a long time ago” meeting.


I'm sorry you had this experience. It sucks. A lot of managers suck, because the skills and traits needed to get a promotion or run a business don't necessarily align with the skills/traits needed to be a good manager.

First, this is not your fault. Do not take this personally. Your manager/boss is the "adult" in the room - what happens between you is their responsibility, because that's their job. If you are walking away from an interaction feeling demotivated, annoyed, etc, then that's them being bad at their job, not you being a bad employee.

Second, this is not how professional, constructive, feedback is given. If your boss wants you to make some changes in how you work, they will be specific about that. This kind of unfocused complaining contains no actionable instructions, so you can safely ignore it. It's good that you've found some specific things that you were able to take away from the meeting, but given the context, those may not have been intended and you may not find yourself being praised for following them.

Third, your boss is only human. Humans have bad moods, bad days, and some humans make themselves feel better by making other humans feel worse. Every human is just trying to feel safe and loved, and your boss is no different. Be aware that they are this type of human, and try to remember that if it happens again.

Fourth, take some meeting notes while it's still fresh. For this first time, I wouldn't send them to anyone, but if this recurs then start obviously taking notes during the meeting and emailing them to your manager and your boss after the meeting. It's amazing how having written records of meetings stops unprofessional behaviour during them. It will also clarify if the criticism is genuine, or just your boss offloading their problems onto you. If anyone objects to you taking notes during the meeting, then they are definitely just offloading and you can ignore everything they say.

There's probably more, but I think the main point to realise is that this is not your fault. Try not to let it get to you.


My advice is, do you work profitably not "right." Business cares about profit, so don't burn money (your salary) on stuff that won't make more money than is being spent. Not that you should ditch quality because quality affects profit but you have to find the way to make money for the company. I hope it works out for you because it sounds like you're good at your job and don't phone it in. That sometimes gets punished when it's not done profitably. For what it's worth, you are likely really hard to replace because the supply is so limited but if you like the job and want to stay then this is "fixable" (quotes because it's not really broken but you're not gonna win that argument with your boss).


> I'm working my first job out of college and I really enjoy it.

As a (former) tech manager I'd stop right there. I take it as my duty to provide guidance, by means of code reviews and frequent discussions about code and architecture, naturally if the developer wishes so - usually something i ask for during the interview process for early career candidates. Furthermore I encourage the team to help in a friendly meaningful manner. Although it is the duty of the employee to try and brush up their skills (as their current job will not be the last, and training on the job for a specific job doesn't do magic for one's career) it is also our duty (those with a bit more experience) to pass on the torch. Of course there is nuance to everything.


Tell your manager about the conversation with your boss. Keep working hard. Communicate with colleagues, and always ask questions when you have them- or even when you think you might have a question.

Your manager's manager has authority over you, but remember: that job is probably 100% non-technical. Highly technical advice (e.g. anything relating to how you write/structure your code) should be taken with a grain of salt. When it comes to code feedback, listen to other engineers, listen to your manager, and listen to whoever is reviewing your PRs. Those people actually have to use your code, so you should write your code in whatever way they prefer.

If you really feel like they might try to get rid of you, get a signed letter of recommendation from your manager now.


Think on the feedback received in a constructuve manner for what it might contain of value but do not let it undermine your confidence. Use it to get better.

Many of us will receive undeserved negative feedback at some point in our career. Receiving at the start of it, it is just harder to take it but use it to grow. This is one more thing to learn.

I must say that your managers seems pretty rubbish for many things: conducting this meeting wihtout your manager in the room, unloading his fustrations on you and apparent lack of steering.

Whether to leave or not: do not fight it as they are part and judge so you will not win. But have an open conversation what this means. Do not overreact but do not ignore it neither. And be cool, your present job have great things on it but there are many others.


I've seen this happen a lot. 9 times out of 10, it's actually not about your specific job performance, but actually about setting expectations (which it turns out, IS part of your job)

Your boss doesn't know all the details, but they see the end result (a delay), so they jump in and critique everything in sight.

What they probably need is to be looped in throughout the project and made aware of major decisions that change the end result or whatever it is that they care about (timeline / impact of the work).

Here's a template I use for managing expectations upwards: https://www.notion.so/Manage-your-manager-26a26b82bd824f97bf...


You are not getting thrown under the bus, so all is good! The project is done, you've learnt something, kept your job.

It's a good time to exhale... and recharge, shake off some doubts and guilt. Everyone feels that bad when wacked like a mole by big boss and when orphaned by the direct manager. So, I'd rather see it as it's not about you, it's about them... Your ego got a bruise, but it'll heal.

The next steps depend on your company/team culture. If there's some formal retro process, then there will be a chance to look over what worked and what did not. Patch over it collectively.

If your team has no such practice and just zips into the next project/stage, then you may want to find ways to gain such feedback by yourself.

In general, if you perceive a blame from your boss, then the team is somewhat dysfunctional, esp. knowing that you are a "green mind". So this may by itself present a finding for you.

Meanwhile, just chart three columns and fill what and why you think worked well , what did not work, and how to possibly make it work (if by yourself or by the team). Keep this analysis to yourself, primarily just to offload it from your mind.

Also this may prep it for possible talk-it-over chance with a boss (there usually will be a review at some point). Though I won't keep hopes high, I would just learn things as I could.

That early in your career, just find a sane way to gain the experience, mostly good one. Try not to color everything personally, it's just a project, there will be others. Learn what makes you feel good at your job, what sort of interaction, dynamic. This will help you guide your future decisions and career choices.

Good luck!

P.S. there are some political ways of handling this, basically "managing your manager" but I won't try to go there, as it's exhausting and only spreads the dysfunction.

Congrats on surviving the project. Get all this shit off your mind and make it ready for the next run, now you're battle-tested!


I was in this kind of situation once, and it was basically a setup for subsequent termination.

My advice is that you should have a 1 on 1 with your manager ASAP, and ask them to be upfront with you about things.

In the end, if someone says you failed to deliver on time, or you failed to follow instructions, or you failed to write code as it should be written, you can't do a thing about it. If you've been tagged as a "failure", arguing your point or trying to say they are wrong will go nowhere if they already have made up their mind.

If your manager is "managing up", then you are not in a good place as you will become a scapegoat for problems. If your manager really has your back and will defend you, you are in a better place.


It could just be some careless words by other manager and nothing comes of it.

It's very hard to know. Personally I'd write up my thoughts on the project, list the changing requirements and etc, but not share them at this point if you don't feel comfortable doing so.

I will say that I find the idea of any kind of astonishment or frustration about a project given to "new guy + first year out of college" guy is absolutely absurd.

Any "new guy + first year out of college" should have someone assigned to them and monitoring / helping and there should be NO surprises / blame assigned to "new guy + first year out of college" (outside of some very unlikely bonkers level lies or poor performance).


Just stay open to appropriate criticism, reflect and discuss criticism you cannot accept (maybe it is really inappropriate, but maybe not), talk a lot about expectations theirs and yours, maybe make some suggestions to * on the job training, * mentoring, * code reviews

Be also open about your respect for your managers and their skill, but do not belittle yourself. Keep the story of the lion and the mouse in the back of your head :-)

Also see to it to get feedback on criticism from a different perspective, i.e. talk about the talk with the boss with your manager. They might help you separate the rambling about project mishaps from the stuff really concerning you.

And finally: Always remember there are other good bosses out there.


It sounds like your manager had particular expectations and failed to communicate those to you. I think you've done well to recognise that you felt like you were treated unfairly, but also to recognise valid feedback and things you could improve upon.

I think it's a good idea to make it clear that you simply didn't know about those particular requirements, and that you would benefit from clear communication. I doubt that they're unhappy that they've hired you - you've done good work, and they can only expect so much from a junior. I'd keep at it - there's a good chance these are just some minor issues that will be ironed out as you continue to work together.


Is criticism from being late due to changing requirements normal / valid ? I can't wrap my head around that. You're not paid to predict the future.. you do what you're told to do every day, if it ends up useless what can you do.


Anyone who picks on subordinates is an asshole. If you need opponents, you should look for them in your own weight class.

Keep an eye open for another job. Keep in mind that you could always quit and do something meaningful together with people who deserve your help. Have that mindset when the toxic boss approaches you next time.

Ask for a meeting with the manager soon. Check if the manager has a backbone and is supportive to you.

You should not be managed by two persons at the same time. You should only report to one superior — which is your manager. Ask your manager to shield you from the boss.

If your manager is not able to shield you from the toxic boss — find a better place to work.

Your mental health is much more important than this job.


When this sort of stuff happens, you should have a paper trail that you can point to call out this kind of BS. This is why story grooming, sprint planning, and documentation are your friends and not some useless chore—they keep people accountable.


Congratulations, you now have a personal experience that is required to increase your future effectiveness. It will continue to inform you on a visceral level when you are heading down a meaningless road.

It sounds like you spent your time and attention on an aspect that is not of value to the customer (user) that is paying the salaries of yourself and your managers.

There are various reasons for this, but keep in mind that you only have control over your own familiarity with the customer's needs and what you then prioritize. If you rely on the guidance and understanding of your manager and boss, you will only get resentful whenever they make a mistake and treat you unfairly.


It's time to move on.

Your version of what happened shows several signs that are red flags:

Shifting requirements, without realistic expectations.

Unclear expectations.

Lack of proper oversight for Jr developers.

But, more importantly, you are in a position that you have a lot of baggage to overcome with your leadership and that's a really hard place to be, especially if you are looking for advancement. It's much easier to find another job and start fresh, from the position of someone that a company is excited to have onboard.

I have no idea whether or not you deserves the criticism, but the mental anguish you're feeling isn't going to go away without you continuing to feel pain, for a long time.

It's not worth it. Best of luck!


It's your first job out of college. To be honest you aren't a good developer yet. That might sound harsh but it's actually totally okay. I don't care how great your grades in college were, new grads don't understand how to build maintainable enterprise projects. They don't have ample experience to draw on when it comes to how best to solve a problem, because most of it time it's the first they've seen of that problem. Thrashing and failing is just part of the career. Having a nice long think over a post mortem is how you learn and grow. What really matters is whether you have a good attitude, if you can reflect and build on your mistakes, if you're pleasant to work with, and if you can gracefully give and receive feedback. You're not a great dev yet... and that's fine, because you're working on it.

The problem seems to be with your boss's expectations. So if I understand this right they gave a junior developer soul dominion over a CV project with evolving requirements and a tight deadline? That your manager isn't really reviewing your code and offering feedback on a daily basis? That you don't have a dedicated mentor? Of course you're thrashing. To give you a project and expect otherwise is stupid.

Look, I'm a firm believer in giving good people the support and tools they need to succeed, because I've never really seen it fail. People who want to do good will. I've mentored lots of junior devs and they all have their own strengths and weaknesses. The one weakness I can't abide is if they're too full of themselves to accept feedback or hard to work with. If that's not you then you'll keep getting better. Look, you might think you like that job and maybe today was an exception, but you don't really have a basis of comparison and what you described sounds kinda wack. I can tell you with 100% certainty if your colleagues don't have realistic expectations you're going to have a bad time. The blame fest is coming. There are a ton of chill teams out there that would appreciate your time. Might not be as flashy as CV, but at the end of the day building Rube Goldberg machine business software is pretty dang similar. What matters is if you enjoy coming to work.


There could be any number of reasons why you were the outlet of his frustration that day. It could be entirely you that was the catalyst, or not, it could be something that has nothing to do with you.

People have bad days and it’s entirely possible your boss may also be making a mental note not to come down on you like that again.

If either of you don’t given each other a chance from that moment to possibly walk back from the edge and let cooler heads prevail, then this simple bad moment cannot be forgiven and will act as a butterfly effect for an inevitability.

Brush it off and lay low, unless push comes to shove.

Signed Yours truly,

I’ve worked in corporate forever, and know the ups and downs.


These are classic mismanagement patterns. It's their responsibility not to leave feedback until it matures into surprise on your side or resentment on both sides. Eventually, it becomes your problem though. So, ask for feedback frequently. “You should try harder.” is not a good feedback. What are you supposed to do exactly? Ask for actionable feedback. Ask them to exemplify what you could have done differently in a certain situation, for instance.

More importantly, always be looking for a job. Your moves are restricted by your BATNA (best alternative to a negotiated agreement). More alternatives mean more leverage.


One possibility seems to be: your manager and the boss had some issues recently. The boss is unhappy with your manager, something has been brewing between them. Your project may or may not be directly related to this tension. The boss wanted to put some pressure on your manager, but your manager dodged the meeting. This may have added to the bosses frustration and he kinda vented on you in the heat of the moment.

It’s possible that there is objectively nothing wrong with your performance, but situation like this can still happen.

Your bosses behavior may be the way they operate to influence others or it may be a one time loss of nerves.


I would advise not to make a big deal about it. Someone who looked at the project from far away made bad comments on it. This is actually very common. When things start working and sell, all this is forgotten quite quickly and life goes on.

Your boss feels like he has to act as a customer to his engineers. I am not sure this is the best way to manage engineers. Anyway take this for granted and act as a supplier towards him: defend your work, the team, blame unclear and changing requirements, hide your work from scrutiny and claim you will improve processes and communication, remain positive but vague on details.


1) we have your side of the story. It may be completely accurate. But try to step outside yourself an imagine you were looking at an employee doing what you're doing. Would the impression of productivity be the same?

2) Have a frank, blunt conversation with your direct manager about precisely what was said by the boss and determine if they agree with the boss's impression. If their impression is the same, you really need a deeper conversation about the specific criticisms. Make sure your explanations do not sound like excuses: preferably it would include a fairly accurate accounting of time spent on each aspect of the project and why it was necessary at the time. Ask for feedback on how you might have done something different.

3) If your direct manager is on your side, do what you can to encourage them to explain things to your boss. That may be difficult because there could be aspects of it that would make your boss look bad-- things that were your fault, not theirs. That could even be why the manager bailed on the meeting. That happened to me once, with the CEO no less. The VP that was supposed to be in the meeting with me was a no-show, and the issue was their responsibility not mine. If the manager didn't deliberately leave you out to dry, they may still be able to mitigate the damage a bit.

4) it's possible the boss just doesn't like you. Personality clash, something else, I don't know. I've seen that: a relative of mine had to fight to keep their job when their manager loved them but the boss higher up had an unreasonable dislike of them and thought they didn't work very hard. Luckily it was a good manager who fought for the relative.

5) if none of the above help and things continue on this path, prepare your resume and actively seek another job before they have a chance to fire you. Especially in tech, it's a shoppers market for people shopping for a new job. If you live near a tech hub or really any metropolitan area then it shouldn't be hard to find another job. You might not like it as much as your current job, but if not then you can bide your time there, learn what you can, do some good work to add to your resume, and then find a more satisfying position somewhere else.

Good luck!


Whatever you do, DO NOT QUIT. The lessons that you just learned are going to help you and most likely will guide you in the future. After a while you will meet other people like these two, who are most likely responding to pressure from above, and since both of them seem to micromanagers (my assumption) they would find something to fuck about with you regardless. You know what you have done, and there is no possible way to respond or meet deadlines when there is a hidden agenda. Just do what they ask to the best of your ability and the rest will take care of itself. Good luck and Godspeed.


> Whatever you do, DO NOT QUIT

I disagree with this. Maybe do not spontaneously quit, but having worked at many places with this kind of toxic multi-level management pessimism/pressure, it doesn't get better, one just gets jaded or apathetic. Never appreciated. Your outlook is defeatist and comes across as giving middle mgmt excuses.

It's totally acceptable to find somewhere where you'll be happier, even earlier in your career, especially with the leverage devs have now in the employment market. There are a ton of places out there not like this.


Not a ton of details in your post but I will attempt to decipher what appears to be the problem from a tech dev manager perspective

1. Project time - were expectations communicated up front? What estimation methods are you using? Agile scrum for cadences/daily reporting? Your post reads that you did heads down work for awhile. That is a recipe for disaster for a junior dev. Daily checkins (or at least 3x a week) is the norm for my organization.

2. Requirements - see frequent check ins above - as well as what mushufasa comments as well. A HUGE part of great modern development in enterprise is constantly iterating requirements and getting feedback. This is something I specifically sit down with new college hires. This is not college anymore with a well bounded problem - you have unlimited problem space and you need to define boundaries constantly. One of my favorite quotes is: "the difference between a good developer and a great developer is that a great developer knows when NOT to code"

3. Design decisions - does your group have a design review / peer review process? A junior dev should always have a senior dev review code prior to check in. Your check in's should be frequent (daily is common but there is debate on exact frequency). It should not be weeks particularly for a junior dev.

4. Perhaps your most egregious error is your comment that you should have checked other projects. I assume youre working for a large-ish company. It is imperative you do not re-invent the wheel for every assignment. Particularly for the "glue" or standard pattern parts (which usually amounts to 80% of the work). This is something your manager ideally makes explicit early on (perhaps this was the meeting). I have had lots of frustrating convos where the developer took weeks to solve something that was a known pattern or solution if they just went to the firm's stack overflow or checked another similar projects github.

5. Managers are people too they have off days and can be frustrated with a million other pressures going around. I have definitely had days like that and likely took it out unfairly on a junior dev. More-so if this is your managers boss who likely doesnt deal with junior dev's day-to-day. His/Her expectations are different.


Your boss has a problem of some kind and is trying to scapegoat you. Write up notes in as much detail as you can recall and store a copy somewhere with a date stamp - if you're not comfortable putting it on the internet, send yourself a letter by registered mail and don't open it when it arrived.

Then keep it on file and return to work. Change tack as explicitly instructed by otherwise just keep doing your job. Your contemporaneous records of the conversation are insurance that you can mention if/when you find yourself having an uncomfortable conversation in a HR office.


It's hard as a new grad to know how to always be on the same page as your manager, much less your skip-level. But, you've now learned the lesson. While fresh it would be a good time to be a bit humble and even a little contrite. Admit that everyone was not on the same page, and proactively ask for weekly 1:1 with your manager and biweekly/monthly with your skip-level. They are there to help grow you in your young career.

Also, maybe go on an interview or two. Can't hurt to have the confidence that other offers are possible if this goes further south.


Stop thinking about it. Keep working hard. Maybe push back harder against design decisions that you disagree with.

Always remember that almost any negative comments might be due to the perpetrator simply having a bad day.


First thing: communicate. Whatever you wrote down here, sit down and go over it with your boss. Also ask him what's worrying him. Obviously what's keeping him up at night (maybe even literally) isn't matching what you're doing.

Second, some small tips that will probably help any junior:

- It's not college anymore. We don't do assignments. You don't work for your boss, you work with your boss. You both have the some goal, albeit some difference in roles and responsibilities. Therefore treat your boss like a co-student and not the professor. That means: get frequent feedback, make sure there is a common understand of the goal that is in sight and the steps you (both) have taken to reach that goal. Essentially treat your boss like a peer, but with a different role. In a healthy organization this is appreciated.

- The next thing that is different from college is that in the working life no one cares how you got where you are. You are not getting graded. That means cut to the case. Basically there's a three step approach you need to take every day that will help you get to seniority pretty quickly if you master it: 1. Explain the current situation ("so we want to build this feature for customer X because blabla ..."). 2. Explain the problem in the current situation ("... but our platform isn't ready for it yet and we want it to ship it next month ...") 3. Then the magic part: give your boss options and avoid open-ended questions. Don't ask him what to do, but rather present him with a few options on how we can proceed, and ask for his input (" ... I think we can solve this in the following 3 ways: <list them>. I think we should go for A given XYZ, what do you think?")

- The third thing you need to remember is that need to be visible. Transparency is key. That means sharing your current('s team) status, even if nothing's changed. Never go underground for longer than 2 days without anyone knowing what you're doing. You might think you're doing something amazing but it's a huge red flag you're wandering off in the wrong direction if no one's what amazing stuff you're working in and why it's important. You can easily achieve this by scheduling a short recurring meeting (maybe there is one already, then use it).


I'm getting a suspicion of an "umbrella manager" here, like the boss is a storm and your manager has done a good job keeping you out of it. Either that or he threw you under the bus, but that feels less likely.

I would try and talk with your manager about this. See how he feels about the boss and their method of delivering feedback. If my suspicion is correct, he's getting it even worse than you.

Either way, I'd recommend you start hunting for your next gig. If your manager is dealing with the same type of degrading feedback, bring him too :)


Start sending out resumes, sounds like a dysfunctional management structure, probably wont get better and you'll be happier somewhere else.

If a lateral transfer seems possible, tell HR you would like be transferred out of your manager's boss's org structure.

Go above manager's boss's head and file a complaint against them for incompetence and unreasonable expectations: blaming workers for delays caused by poor project management is counterproductive and unacceptable CYA behavior. (Ideally once you already have a better offer in hand)


I'd advise against this. In many companies HR sides with management if he works for one of these companies HR could even report what you say to them directly to your manager. Be very very careful about this.


> Go above manager's boss's head and file a complaint against them for incompetence and unreasonable expectations: blaming workers for delays caused by poor project management is counterproductive and unacceptable CYA behavior. (Ideally once you already have a better offer in hand)

This is terrible advice..


Why? If you already have a better offer in hand, let the company know where the incompetence is on your way out the door.


One thing I’ve learned running various teams including many very talented new college associates is this.

Young new college graduates are not any good at work until they either learn how to be or are coached how to be. It appears to be a tautology. Honestly, it’s totally ok, what’s not ok is for them to have expectations of young new college grads to be experienced hires instead of associate level employees. This is poor leadership not representative of your failings (which I expect are plenty given youth and first job).


With a person just out of college, I would say if they have this many complaints then they totally lack management skills.

If you do not get an apology, then I would leave as they will just damage you more.

What the manager boss did was wholly uncalled for. I recommend sending the link to this discussion to his boss.

Your manager and boss may be very technically smart, but like many people who are technical, they need a lot more education in management. I have been, in the past, as bad as your manager and their boss. But I have learned to be better.


Your manager's boss shouldn't have given you criticism without your manager being there. You and your manager are the most informed about your work and it should have been a discussion among the three of you.

I think you're going to get more of the same. If not directly from your manager's boss, it will be passed down to you. And again you will be puzzled. It won't quite add up and will feel like you and your bosses are on a different page.

I would make sure to stay at least a year, then find something else.


I think this is a pretty normal experience for a new dev. I had a similar thing happen to me after one of my first projects, a guy who I didn’t even realize was my technically my boss pulled into a meeting room and asked me why I took so long. It bummed me out a lot because I thought I had done a good job and in a reasonable time. I got over it though, and apparently they did too; I ended up working there for another 2.5 years before changing jobs because I wanted to move back to my home city.


first of all, congrats on finding a great job with smart colleagues and fun problems.

you need to be able to put this aside for the moment. as in, not the the useful advice, but agonising over 'fair'.

I've had negative feedback that I thought was exaggerated. How I dealt with it was to take on the feedback nonetheless, because I wanted to satisfy to myself that the criticism while valid was not a useful perspective on my work.

I've also had negative feedback that I was convinced was totally misplaced. How I dealt with it was to sympathise with my manager's position: they were obviously having difficulties with their own responsibilities.

I've also once had negative feedback that I had to admit was totally valid. How I dealt with it was to realise that my colleagues wanted me to perform at a higher level. I took their advice on what changes to make in my work, and went on to enjoy many more years in that role.

The first few years of my career were punctuated with consistent positive feedback, and I think I was the worse for it. Any mistakes I made were treated as aberrations, and for a few years I never got any advice about how to be better. Instead I got totally unhelpful declarations of brilliance that did nothing to help me grow.

quite likely your boss and your manager are more at fault in this scenario, but if so, you need to let them be wrong this time. As others here have suggested, I'd encourage you to pursue regular progress reviews with your immediate report.


I'd spend some time browsing through the ticket system and understand how colleagues handle tickets (duration, discussion section, difficulty of ticket). Also I'd check the code with a linter. So you can confidently say how you compare. Next time someone complains you can prove the opposite. Also I recommend sticking to process, commenting tickets as needed, marking them as blocked timely and generally making sure you're aligned with the PO/PM during each sprint.


You should not worry and learn from the lessons. Really, nothing happened that doesn't happen to all of us. Such situations and their handling would not be different in other industries. With experience they will happen less.

Anyway, when your bosses stress you it means their boss stresses them and so on. It's part of the job, and you should decide whether such an environment is good for you, because in good companies the more junior you are, the more protected you are from such pressures.


That really sucks. I think if you don't quit now then you will at some point in the future. Poor communication from above is not something that can work long term. Not only that, it's going to be hard to get out of the demotivation funk that this has created.

Anyway, don't let it get to you. I'd actually be a bit angry if this happened to me. Someone who is just out of college in their first job needs a leader to guide them and some basic mentorship - not this kind of shit.


He is a bad boss. He is trying some weird power game. How do you proceed?

- You can challenge him back with logical facts - You can agree with him and include him in the process make it as team failure - You could treat his opinions as not important - You could quit and look for a more emotional supporting place - You could ignore it and let it eat you up - You could ignore it and realize some form of this non-sense exists everywhere and learning how to deal with it is your next step


Reading between the lines, it sounds like you're spending a disproportionate amount of effort on low-importance tasks. Don't forget that you're an employee for a business. The business sells solutions to customers and your job is to create those solutions (at least, assuming the company hasn't become huge and bloated).

Whether or not you're working diligently isn't really of huge importance if you're working on the wrong things.


Sounds like you don't have a good manager, if this wasn't being communicated to you and she had her boss deliver this feedback to you alone. You should talk with your manager about it and if you don't feel the relationship improves soon, my advice is to switch teams (at the same company) or companies entirely. If you have a bad relationship with your manager, it's going to be unfun to work there, and life's too short.


I would consider looking for a new job on the side and start interviewing. Your boss's boss showed you disrespect and personally I would have a hard time trusting that person if I were in your shoes. Don't start any drama at work on anything... just keep working doing what is expected but don't go above and beyond killing yourself, and start practicing for interviews and start applying at other places if you can.


I don't think you should quit, but oddly enough, this other HN post about quitting seems really appropriate. Check out the first flow chart here: https://jmsbrdy.com/blog/leaving-spring/ Mirroring what some others have said, if it was me, I'd talk to the manager and work things out from there.


> I'm working my first job out of college

I could have stopped reading there. My first job hop after college brought a 150% pay increase. Don't leave too soon, but you probably don't want to stay at your first company for too long either. Especially if it's a source of stress and unfair treatment.

It's not so much about the company as it is about getting a second perspective, and probably a pay increase, early in your career.


Well put. This is advice I wish I'd gotten!


Get a new job.

I had a similar thing with my first job, (though it wasn't fun), just an undocumented, unintuitive system, plus pretty introverted team, so not very good at helping. I was unproductive. When I did ask for help it was terse explanations so they could get back to their own work.

Changed jobs to a more extroverted group and got on a lot better.

At the time I had thought it was all my own fault, but looking back on it, it was very poor management.


You are describing an organizational dysfunction. If you got to the point where the boss says how he can't believe it is taking you so long, which is news for you; and suggests that you look at other projects when you are already nearing the finish line, then something is seriously broken with the communication within your org; and it should be your boss's, or your manager's, job to fix that.


In general, and for your own sanity, I'd say be honest with your boss and manager - say you got were bummed by the feedback, that you want to improve and ask what they suggest for next time.

If you still keep getting unwarranted. wrongly timed criticism, I'd say quit. The problem isn't you, and I'd imagine it would be too difficult to establish a good, long term relationship.


Surprise skiplevel feedback is pretty strange. Tells me that the boss is inexperienced, maybe poorly managing stress. Micromanaging the engineering decisions of their own team just reinforces that.

If you have a good relationship with your manager tell them what happened, how it makes you feel, and let them deal with it to make things right.

If there was even the hint of this happening again I'd find a new job.


I only have one side of the story, so I'll take it at face value. It sounds like both your boss and your manager suck at their jobs, and this is not a good place to be long term.

I'm going to assume that as your first job out of college, you don't have a lot of leadership experience.

> First, he basically tells me this project should have been finished a long time ago and he can't believe it's taken this long etc.

This isn't your problem, and your boss is a dunce. It's your managers job to ensure project deadlines and status are communicated, as well as any delays. It's your boss's job to KNOW why one of their projects has been delayed this long. There exists a myriad of effective processes for SDLC to manage project software schedules.

> He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions.

I'll give you the benefit of the doubt, that your boss wasn't merely having you defend your decisions--having to justify decisions is part of being an engineer. Reaching beyond your manager to provide comments on your code is not helpful (as evident in that it took the wind out from your sails). Good software teams will utilize code reviews to provide that feedback. And if your boss had comments about the code, he should have talked to your manager about it.

> I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

I have to wonder why your manager hasn't bothered to share with you what the outcome was. However, if it's something you're curious about, definitely ask.

> I really did work hard, so it's demotivating that it feels like the result of me working hard is unappreciated.

It's not that. There are a lot of bad bosses out there, and this is the effect they have on really talented workers.

> How should I proceed?

Work just hard enough not to get fired, and find a side hustle 2nd job. Or have an honest conversation with your manager about how that meeting felt. If it were me, and one of my talented team-members felt like they got s*t on by the skip, I'd want to know, and I would work to repair that relationship (personally my relationship with my skip-levels is one of the most powerful tools I have as a leader).


In your very long forthcoming career you will find very few moments of clarity. Take it from a veteran of this industry - take it easy , have fun , keep the focus on being productive and objective. You cannot control much more than that and there are always many forces at work which you might not even have an idea about. So relax and don’t take it too personally. Good luck!


There’s some real mistakes on the part of your direct manager here. It sounds like they have not been properly managing expectations between you and their boss. Out of curiosity how many direct reports do they have and how long have they been managing?

I would not be surprised to hear you’re reporting to someone who until recently was a just an IC and is still learning how to manage.


Scenario 1) You did produce substandard shit code that could have been done in a week. In that case, figure out what you did wrong and learn from it. Most fresh college grads produce shit code, it's just a thing. No one holds it against you because you're young and new. In this case, recognize the advice from someone better and more experienced than you, and just do better next time. Don't take it personally as an attack on your abilities and character. I'm sure you're a nice person. I'm also sure as a new college grad, you have a lot to learn still. This is one of those times where you can use an experience to learn.

Scenario 2) You did a fine job but your manager is unable to appreciate that. In this case, you still have more to learn but not on the programming side (well, probably still more to learn there, but not relevant to this situation). This is a lesson on how to deal with bad managers. They are not better than you, they do not own all of your time, and you have the right to leave at any time. As a dev, you will probably be able to find employment again easily. Use this to your advantage and any time the pressure from this bad manager rises, remind them of that fact and be ready to call their bluffs. Polish your resume, and get out of there in 18 months (bad managers don't get better). Leverage your position to a better job at higher pay.

How to tell between Scenario 1 and 2? That's hard to say without more specifics, but either way I think the takeaway is to try to learn what you can from this and don't take it too hard.


The professional habit I developed to manage scenario 2 started out as upward directed leadership and sometimes turned into simply coaching my bosses to be better themselves. There's a part that jumps out to me in the OP, the requirements changed so a lot of his work went to waste. Incredibly common. Equally common is management not realizing that it's something that they should take ownership of.


Yes, coaching your bosses is something that most people completely overlook as an option. After all they are bosses, and you don't question the boss!

But once you spend some time in the industry you've seen enough that you can recognize the mistakes of your superiors, and you feel comfortable enough to point them out. Because what are they going to do, fire you? Better to be fired by a stubborn boss who refuses to learn than to work under one, I'd say.


Don’t take any of it personally. It sounds like you’re doing the best you can. Your manager is probably not great at some aspects of managing re: communication / expectations. You might have to be more proactive about checking in with your manager on a regular basis about these types of things (even though this should be their responsibility — not yours).


> I'm not thinking of quitting over this or anything, but it seriously bums me out. I don't know if I have a future at this company if the boss thinks I'm not a good dev, and I really like it here. A month or so ago they added someone else to my project and I trained him on my code, and he's super smart and capable, and I'm thinking that now they probably feel that they could fire me if they wanted and not lose much.

You need to start applying to other companies immediately. Please take this as a MAJOR warning that they are setting you up to fire you. There are many reasons why they might do this, but you've ALREADY TRAINED YOUR REPLACEMENT. Changes are good that other person is either cheaper or better qualified and they want to free the chair/pay up for them.

I've been in this exact situation and it's better to just hit the job boards as fast and hard as possible. Given 100 years, this manager wouldn't change their opinion of you. You were blindsided and scolded without your direct manager's involvement. If you "stay loyal" you'll either be fired or treated the same way over and over. If you have 6 months of Rust and Computer Vision experience it should be pretty easy to find new work right now. This is the best job market in decades, take advantage!


If you think you're giving your 100% then you need not to think more. Just focus on your work, learn from your mistakes, learn from others mistakes. There are a number of communities related to coding, just join them you'll get a lot of things to learn, even you can raise your questions and get help from peers.

Failures are part of life and its success.


Your boss sucks. Responsibility for a junior RCG’s success/failure in their first year rests mostly on their managers and senior peers. You have to fuck up pretty severely for the blame for any shortfall to shift to your shoulders. Unfortunately this industry is full of clowns we call managers. Yours sounds like an immature noob.


Unless you want to be seriously underpaid into the future and lag in promotions, virtually nobody has a future at their company as a junior developer. You could easily work for 20-40 different companies in your lifetime. Just make sure you are always marketable and what your manager thinks matters a great deal less.


Because this is your first full time professional position, I'm inclined to accept that some of the criticisms are genuine and you have a growth opportunity to learn from them.

BUT

The part that bothers me, as someone who has been in this industry for almost 25 years and leads teams, is that your manager was not in that meeting with you. That I find absolutely unacceptable.

Your manager is not just the person you report to. They are also responsible for your success and they should be your advocate. This type of feedback should be coming from them, not the higher-ups.

The higher-ups should look to your manager to manage, and your manager should look to you to accomplish your duties. The higher-ups should not have enough insight into the day to day minutia of your project to know to point the finger at you. They should get status reports from the project manager and if things aren't going smoothly they will ask why, but a good PM will point the finger at themselves and protect their team. And if there is a problem with an individual team member they will address that one on one in private before escalating.

If that feedback is not addressed then the project manager may escalate to your direct manager/boss who is then responsible to work with you more. Again, one on one in private.

If, after all of that ... things still aren't improving, then it can be escalated to HR and they can take additional action. But unless you are leading a project, you are not accountable for the success of that project as a whole and - I'm going to sound like a broken record here but - any direct feedback pertaining to you individually should come from the project manager or your direct manager.

Under no circumstances should you have been in a meeting with your boss's boss to discuss your performance without your direct boss being present.

The thing that would be troubling me the most, if I were you, is the question: "Why did this happen? Why are you on your boss's boss' radar at all?"

The implication of that question really bothers me. It implies that your manager(s) might have thrown you under the bus to cover their own ass.

Absolutely evaluate the feedback and see if you can grow from it. But I would have a conversation with your boss and basically call them out for not being there to advocate for you. And ask them how such an inappropriate meeting was allowed to transpire in the first place. You deserve answers.


It depends on the organization. I worked in a department where the hierarchy was supposedly "flat."

My day to day work and task assignments came from the manager of that project, but I routinely had 1:1 meetings with the VP of the entire department which were more of a personal development/mentorship nature. If there was a concern about the project, though, that would normally also include the manager. It was a small enough department, maybe 12-15 developers, that the VP knew everyone pretty well.


> I had no idea that he felt this way before the meeting

Meaning, your manager did not say anything about her boss being disappointed with how long things were taking?

> I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

This and the observation above, assuming it's true (that your manager never said anything about her boss being disappointed), makes me think you might be putting more weight than necessary on what happened in the meeting with your boss. At the very least, you might want to double check.

One way to double check would be to ask some coworkers for feedback on your manager's boss and his communication style. Are the kinds of things he said in the meeting with you signs that he's really disappointed and might ask your manager to take some action, or are they just spur of the moment things that don't imply any longer term consequences?

Another way to double check would be to schedule a 1 on 1 with your manager (if you don't already have regularly scheduled 1 on 1s, otherwise just use the next scheduled one) and say that it looks to you like the project is pretty much done but you want to make sure there aren't any loose ends. Then briefly describe what you've completed, and what still needs to be done, and ask if there is anything else that you need to do to finish the project off. During your description, you should mention the key criticisms that your boss had and describe what you learned from them and how you are hoping to apply what you learned to your next project. Your manager's reactions and feedback during all of this should be informative.

> it feels like an inauspicious start

Actually, for a first project in your first job out of college, you should expect to make mistakes. We all do at that stage of our careers. If at the end of the day the project is done and meets requirements (and I'm assuming that's the case here, since you say the deadline was moved and is still in the future and you say it's pretty much done), overall it's a success. The real question here is how your manager and her boss deal with the fact that you, in your first project in your first job out of college, made mistakes but still ended up delivering a successful project. Good managers and bosses recognize that newbies will make mistakes, and will be looking for signs that you learned from those mistakes so you won't make the same ones on your next project.


Wanted to write a lengthly response to this since I think I have some perspectives that might help, but wife doesn’t like it when I spend the night writing when I should be in bed. :-)

Tell you what though: I’d be happy to do a video chat with you. I might learn something. Drop me a line if you’re interested.


This reminded me of reading The Goal.

The main character is trying to run a dysfunctional factory in a dysfunctional company structure.

His boss comes storming in to fix everything. All he does is upset one guy so much he quits and put the entire factory behind trying to prioritize one job because that customer is making noise.


It seems to me that you have bad managers. Blaming the rookie underscores their ineptitude.

Don't worry too much about it. Prepare yourself to not be like them when you're the boss.

Every project has tons of things to iron out. It is best to discuss them openly, hear everyone, and backtrack when necessary.


I found that book quite useful to understand/frame those relations: https://www.amazon.com/Radical-Candor-Kim-Scott/dp/B01KTIEFE...


Former individual contributor, former middle-manager and former "VP-level boss" here. I've seen all this before, several times over.

Know that this will recur throughout your career, most likely. Your boss is disconnected from the project and the manager, and the boss has no idea what's happening at the individual contributor level. It's always "you shoulda done this, you shoulda done that" It's always in retrospect from a boss like this, never, ever in anticipation. Did the manager or boss say: "Hey dazeandconfuse, we've seen this before, you can look at how the Widgetspinner project solved that issue for guidance." No. They're not there for you. They're there to blame you when their failure to support you manifests itself.

I'd bet that the manager and the boss don't have productive 1-1 sessions on any regular basis (or even very good communication) and thus the boss doesn't know the status of things. The boss ultimately is too lazy to care or really be involved, doesn't listen, or the manager sugarcoats things, or lies outright, or a combination of all these things. No one is accountable on a day-to-day basis. The boss never, ever looks at the project plan with any comprehension - even though they're constantly insisting you document stuff that they'll never read. Especially action items from meetings.

In cases like this, the boss will pretty much always over estimate how quickly things can get done, and under estimate how much work and complexity is involved, or what the real bottlenecks are (and in all likelihood that the boss is a big bottleneck themselves. They are overconfident in the resources they have, and probably don't institute positive processes for a happy, productive workplace. The boss will ignorantly sabotage things by withholding information, failure to be involved, fail to communicate, fail to have clear goals, failure to identify outcomes, failure to see the big picture.

We used to have a phrase about changing requirements, the case of "The Executive Drive By". The boss will make a suggestion for an enhancement: When that enhancement changes the schedule and delays a project then "It was only a suggestion, I didn't set a new requirement", or if the project stays on time without the suggestion then it's "Hey you guys screwed up, where are the blinkenlights I asked for, can't you guys get this right? Who is running this project?!?" Win-win for them, lose-lose for you. Just like they want it to be.

I'd take it as a signal of poor communication up-to and down-from the boss, and in all likelihood the boss isn't really interested in ensuring the manager's success. If the boss was unhappy with progress, the manager should've known long ago, before the deadline slipped, and it should've been communicated by the manager down to everyone with new expectations and goals and a plan that eveyone was on board with -- including the boss. That that didn't happen tells you everything you need to know. There are problems. Probably systemic, and unlikely to change.

It's a sign of typical dysfunction and the natural adversarial relationship between manager and boss. Eventually the boss will seek scapegoats down the line when things don't go well, never accepting any blame themselves. Never.

Eventually won't go well enough that a "reorg" will happen and people will be shuffled around, someone will get fired, and ultimately nothing will change. I've seen it happen over and over again.

Also, know that you don't owe your company jack shit. They are not, and will not be loyal to you, ever. Ever. They will cut you at first necessity. Be prepared to do the same at any time. Boss will blame manager, manager will blame you, people will get fired, unjustly or not. Probably unjustly. Bosses never fire themselves, ever. They will always place blame down the line. Always. Bank on it.

PROTIP You're new in your career: As long as you are employed, powersave a portion of your income into a separate savings area as F-U money -- so you can go 6 months or more that you can live on in between gigs. This gives you ultimate power over the boss: "If you don't like my work or my performance, F-U, I'm out."


>Also, know that you don't owe your company jack shit. They are not, and will not be loyal to you, ever. Ever. They will cut you at first necessity. Be prepared to do the same at any time. Boss will blame manager, manager will blame you, people will get fired, unjustly or not. Probably unjustly. Bosses never fire themselves, ever. They will always place blame down the line. Always. Bank on it.

This is true. Learn it now. It took me far too long in my career because I bought into the work hard and you will be noticed for far too long.

Another hard learned lesson: HR is NOT your friend. If you believe their training you may think 'I have a problem at work, let me get HR to help' WRONG what you will have is TWO problems and an annoyed string of management.


Listen to this OP, I agree with what is stated here. You got caught in the cross-fire of internal politics.


Work to specification while you find a new job. Get the requirements via email or send a confirmation email for anything that you believe might be an "offhand remark".

The market is hot and jobs are currently plentiful.

Realize that a lot of the tech world reads this site so be careful.


Depends on the boss ofc. But i would send an email and ask for updated feedback after the discussion.

You're not responsable for changing requirements, so that's not your fault. Criticism for a junior developer is feedback.

I don't think you should take it to heart too much.


Get another job. Your management wants to Design and write code like the past. If they’re criticizing now it’ll never end and you will eventually be fired. I would get another job and just walk with zero notice. They won’t do you any favors in the future.


It sounds like you are taking flack for your manager's performance. You will take the flack rather than her for reasons. You'll figure it why eventually, I'm sure. If I were you I wouldn't put myself in this situation again.


One angle is that performance reviews are possibly tied to raises. Hence the boss ignoring things outside your control.

It may also be why hour manager was not there. Maybe your manager wanted no part of it.

Of course, the above is a paranoid, and cynical interpretation ..


It happens. Learn and move on.

Also, see if you can chat with the boss to clarify their expectations for you.

In the future, don't linger on a projects, no matter how fun you find it. The main principle should be "get it done." That's industry for you.


I've been blindsided like this before too. I didn't have a single 1-1 with my manager for 6 months, and then some negative feedback at the review meeting.

It hurt at the time but later on I discovered some other people were f*cked over too.


Start looking for a new job ASAP! Don’t get too emotionally attached to the actual work. I know it sucks, but the situation is not going to get better, only worse and based on what you said you’re working in a toxic environment.


It's unlikely the big boss treats anybody differently. Eventually that kind of toxicity eats away at the org. People saying not to worry perhaps haven't worked with people like this. Always be ready to make a move.


Proceed to work on your own startup on nights and weekends. Start with a side project that solves your own problem. Get small number of users and iterate till you get to product market fit. Then raise money...


This is going to sound harsh, but it's not meant to, it's not a criticism, but there are two things that first of all comes to mind: 1. It is absolutely irrelevant how hard you worked on something, "the company" does not care if you ground yourself down to the bone, or if you barely moved a finger. "The company" cares about the project being done on time and with the expected quality. I've had negative feedback on projects where I worked like a horse, because, well, it was hard and I didn't know how to do it.. And I've had positive feedback on projects where I did very little actual work, but knew what to do, and so, well, had a good relax before installing the library that solved all the problems.

2. Striving to please is natural, and dangerous, again, "the company" does not care about your good intentions, they'd rather have a working product of high quality delivered in scorn, than a late project that's not up to standard delivered with the best wishes.

That was the tough parts, but try to think of them as ways to change your own mindset, to protect yourself from a lot of negativity that's largely beyond your control and won't benefit anyone, but only be to your own detriment.

That said, it sounds like a startup to be honest, the boss sounds immature if they're bummed out by SOFTWARE BEING LATE.. And they should definitely have appreciated that if requirements change, it's their problem and responsibility rather than yours (or at least your managers) and probably the polite thing for them to do would be to apologize that they made you do that work that wasn't used, and relay to you that it's totally understandable to be bummed about that, but that it does happen from time to time..

About you taking your managers advice, well, it's hard to say, maybe your manager didn't understand the problem as well as you did (or should have done) and so it might in fact have been your responsibility to push back, but again, here a mature boss would have recognized not to expect push back from a fresh, non-senior hire, and accepted this as part of the learning process.

How to proceed ? If you're up for it, maybe arrange a meeting with your manager and boss, and relay your view of the situation, it was very well formulated, and their reaction and response will quickly reveal if that company is worth working for.. They probably shouldn't have to apologize exactly, but they should clear the air, show understanding and explain to you that it's gonna be okay. Any worse reaction tells me that they're not ready to be boss and manager.


Your boss and manager are just dumb, it is not your fault. You did the work you were told to, its actually all your managers fault. You will find out soon enough the spectrum of talent involved in managing.


Steve Jobs school of management by emotional manipulation. You can read about similar conversations on https://www.folklore.org


Doesn't sound like a terrible situation as a one-off considering you seem fairly happy there. Trust me. Learn and move on.

Communicate your concerns to your direct manager.

If similar things continue to happen, fire them. Simple.


Does your boss like you very, very much? Does their boss like them very, very much? Is your boss powerful within the org?

If all the answers to these are yes, you have nothing to worry about.

I wish it wasn't that way, but it is.


Talk to them. Tell them how you feel. People are usually more receptive than you may think, and managers / bosses who are not, are probably people you don’t want to be working for in the end.


The job market is hot, it won't take very long to find a better one.


I’ll go out on a limb here and just guess that this boss lives to bash the self-confidence of subordinates.

I realise there’s not a lot of evidence in what you said, but:

1) This is your first job, you’re not expected to know better. Your boss has clearly been in this career for a while to be in charge, so already knew this before criticising you.

2) Your boss telling you that you misunderstood a comment made by your manager is nonsense - he wasn’t there so he has no way of knowing. Not a fan of this word because it’s thrown around for everything, but that to me is transparent gaslighting.

3) You’re more-or-less solo, on a project that they clearly care about enough for it to be a problem - as a first job out of college. That’s just bad management, and no-one competent would expect that to work out - and yet from what you’ve said it has. Good job!

tldr; the problem is very likely not you, but watch out for this dude as there’s a lot of red flags here.


I'd ask for specific, clear expectations and rubric from your direct manager. You should never ever ever ever be blind sided by your skip. If you are, the manager is failing you.


juniors gotta junior. just kidding! keep your chin up and take the good advice and don't let the criticism get you down. manager may have made unrealistic deadline commitments and should be mad at himself not you. as for hiring more people to a project, that likely means the manager wants the project to be completed faster OR he doesn't want all his eggs in one basket (you). managers must constantly plan for worst case scenarios (like critical people leaving the company)


You still have a job and the project is done. Consider it a win. Learn from your mistakes, learn from things that did go well, just keep learning and move on (at the same job).


Mistakes are for learning. Admitting mistakes is the first step to solving. Your boss's style may be bad, but you can be sure that you cannot change his bad style.


I'm demotivated and my bosses say I'm too slow or not doing good work. I got a 4.4% effective pay cut.

I'm just sticking it out because I don't really have options.


sounds like you were just promoted to manager

i joke, but the experience you had would usually have been buffered by your manager, whos job it is to communicate with you about requirements and feedback from above

youre work does not define you. be careful letting these comments impact your perception of your self. equally, mine it for ways you could improve (if thats a goal of yours), raw feedback is the best feedback but accepting it is a muscle you have to work on slowly


The Boss's quarrel is with your manager, not with you. A pleasant and professional "I'm working at the direction of my manager" is warranted.


Actively approach them to start a discussion on how to improve. Propose regular 1:1 with them, let each know you talk to the other so no one feels left out.


> How should I proceed?

Send out resumes. Handwriting is on the wall.


Take the experience you gained, and keep changing jobs until you get one where you aren't used as a scapegoat. There are plenty out there!


> I had no idea that he felt this way before the meeting

This alone puts me on your side. Negative feedback shouldn't be a surprise (assuming its fair).


How long have you worked there? You say its your first job, and it makes a difference if you have been there 10 years or less than a year.


Welcome to the software industry! Baptism by fire... Dont sweat it. Lots of jobs out there. Maintain a good portfolio of past work.


Begin to interview on the side. You will be replaced in 3-4 weeks (or earlier).

If someone doesn’t like you, it’s very rare you will get them to change.


Be humble. Try to take his (possibly unfair) criticisms in stride.

Work harder, do better. Be open to correction, take this as a growth opportunity.


That's good short term advice, but long term if you are still not getting recognition you should think about leaving or transferring to another team.


^this


Please pose this question in /r/consulting as well. You'll get additional valuable input. Best of luck friend.


Figure out what you want out of this job and focus on getting that. If you cannot get it at this job then look elsewhere.


Plan to quit. Start looking for new jobs now. The boss has made his mind up about you - when the manager leaves or is transferred you'll be gone next.

I have been in this situation and the reality is there is just nothing you can do to salvage it.

It sounds like you've been there nearing a year and you've delivered a project - perfectly good reasons to be moving on when you've basically been given a warning that they're thinking about canning you.


i'd say getting rid of first impressions is really hard and maybe better off finding a new job in next 6 months


Failure happens in a system, not an individual. Your boss is a attributing systemic failure to a Junior developer.


Get some time with the boss. Share what you accomplished, ask them what they thought of your work.


We can’t convince everyone. Be in a place where you are appreciated. This is life. Just move on.


Keep doing your best, learn everything you can, then decide where to take your career.


I’m pretty sure you’re about to be fired. You should give your notice as soon as possible and immediately look for a new position. Getting fired should normally not come as a surprise to you. If it does you’d have to be completely clueless, or there are things going on outside your control. You seem self conscious so the former seems unlikely.


To put it plainly, sometimes companies know they do not have the resources to meet a deadline and to deliver a feature or product with the shape and quality they have promised.

When that deadline fails to be met, middle managers need someone's head to roll in order to avoid being blamed themselves.

At that moment, middle managers start conspiring against some of their subordinates, and they often build an argument that some engineer is not "performing well enough" or some other similar claim.

The key is that at companies with this kind of culture the burden of proof is placed on the defense. Meaning that if your manager claims you are not meeting their expectations, it's on you to prove you are performing well enough, and at that point you are pretty much fucked, because they can simply say they don't believe you (the entire point of it is to shift blame, no matter how esoterical the thought process is).

Ultimately, you need to think about your own wellbeing and if you are willing to work under some sociopath. You can add all the layers you want to the problem, but it comes down to some people making fake promises and having some coworkers or employees pay for those lies.


Do your best to be successful, and when it’s time, go where you’re appreciated.


Have you talked with your fellow workers about unionization? Fire your boss :)


Start fishing around for a new job. Trust me the headache is not worth it.


Everything you've said so far indicates your immediate manager is the problem. Although her boss seems like a dolt too.

Examples: 1) "The deadline was pushed back..." - Hey it happens, but why did the initially-chosen deadline turn out to be unrealistic? Why did the team not meet the deadline? She should not only be able to answer those questions but be willing to take ultimate responsibility for everything happening with her team and her projects.

2) "busy putting out a fire" - In the short-term, maybe not her fault, but as short-term becomes long-term, "fires" become more and more her own fault.

3) Due to the alleged "fire," she didn't show up to the meeting with you and her boss, which is disrespectful to both. Also possibly inefficient (does a manager really need to be the one to personally put out said "fire?"), but that judgment-call depends on the nature of the "fire," which you haven't revealed. Anyway she left you, an individual contributor who is not managing the project, to take criticism about the management of the project. Bad design decisions, often not a management issue, became one when she insisted on hers. Meanwhile, changing requirements, well those are 100% a management problem from the getgo. And the delays. A management problem. Why are you answering for management decisions and management problems? That kind of feedback is normally delivered to someone who has the global big-picture bird's-eye view etc., i.e. the manager. For that matter, just as a matter of protocol, isn't that kind of feedback normally delivered to a direct report rather than two levels down? You said it yourself, "I had no idea..." That's right and why would you? (Well if it was something you should've known, then there was no way for you to know it except by your boss conveying it, so she failed again. Or, it was always her problem to begin with. Either way, she failed.)

4) According to him, you've been screwing up - how would he know that? From her, who has apparently been throwing you under the bus. Like why would you even have been invited to this three-way meeting that really should've been between her & him? Unless she had already started linking the failings (her failings) to you, such that you were an important or even relevant attendee to the meeting. She screws up, she blames you. That's not what a leader does. Meanwhile I bet he's in love with her and finds her blameless in every way. (I'm joking a little bit, but not entirely. Watch them together sometime if you think I'm onto something, and see what you think.)

The thing is, whether any of these points are her fault or not, she is supposed to step up and take responsibility for them and not throw underlings under the bus. That's why she gets the big bucks. If an underling is answering for these things, then WTF put the underling in the manager's chair.

Anyway, based on my reading between the lines of your comments, which I know are only telling your side of the story, I don't think you're going to stay happy in this job. It's going to get more and more shitty, especially if she gets away with it this time. I think you ought to enumerate to the two-levels-up boss all the reasons why you think that whole thing was unfair. Write all the points down on cards if you have to. Stand your ground. He ought to respect your nerve, or if not, if he sees you as a petty threat then you are working for petty people. Hopefully I've given you some perspective or a way of articulating or thinking about things. It's your very first job so you're not as good at spotting this kind of douchebaguerie (Fr.)(JK) or even knowing that it's not normal. Well, strike that, you definitely can tell it's not normal, as your feelings are trying to tell you, so good on ya for listening to them.


You can leave or you can bare it. But definitely don't carry it.


Reframe what's considered your failures as process failures


i would wonder if the boss just had a meeting with their higher up and got told off, and were frustrated and took it out on you. Not fair at all, but people can be people


Get a new job. Your boss and her boss are bad, not worth it.


Being surprised by this convo probably means your manager did a poor job of communicating (or you did a poor job of listening to what your manager was saying).

You should be having biweekly (or better yet weekly) 1 on 1s with your boss. For the most part, you shouldn't be surprised by things if you have a good rapport with your manager.

I think you'll be fine, but be sure to communicate things with your boss as soon as they come up. Also, don't just come to your boss with problems, but bring solutions as well.

If you have a tech lead on your team try building a rapport with them as well. They'll be busy, but they'll ideally be in a position where many of their goals will be mentoring based. Leverage this to learn about the projects, company, and the culture.


Sounds like you can’t handle criticism.


One of my mentors when I was kinda taking things harsh like it appears you are, said to me “There’s two kinds of experiences in life. Winning experiences and Learning experiences”. So I said to him, “what about when I feel like I’m just not good enough”, to which he said, “Well, that would be a losing experience”.

Take the lessons wherever they come.

And if it were me, I wouldn’t let my head beat me up over this, I’d just ask boss man if I was meeting or exceeding his expectations or coming up short.


Not suprised considering your boss is a woman - I guess she just got emotional or she just doesn't like you.


Leave and find a better place.


Find a new job.


don't admire your colleagues.


> should have been finished a long time ago and he can't believe it's taken this long etc

You are working for someone who works for a psychopath. Time for new job.


Communication, you need to actively communicate what you're doing. I didn't really hear anything about how you communicated yourself throughout the project in your description, only what you said/thought at the end, and the merits and elegance of your code and how hard you worked - that's all nice but you're not being paid for elegance, nor for struggle; you're getting paid to get business needs accomplished on a timeline, maybe you can do that in an elegant way and maybe it'll take a lot of work but that's all largely besides the point.

Work in companies is largely about expectation management. You set an expectation for how long something is gonna take, how much effort something will require; if you're going to overrun that or things get more difficult than you think, then you need to communicate early and often that that's going to be the case. This is a large part of what makes professionals "professional".

If there's a problem that you have a potential solution to, you communicate that you're going to work on that problem—maybe your boss actually thinks it isn't an important problem and will stop you from wasting your time and energy on something that doesn't really matter to the end goal. Maybe they'll let you know that the requirements are changing and actually you should focus on something else, which yes you couldn't have predicted but yes you also could have potentially realized earlier.

That can only happen if both you and your manager/boss are communicating well. So hold up your side of the communication channel, and communicate when you think your manager/boss isn't holding up their side. That can be a sensitive and culture/person-specific challenge, though, but that's the challenge of working on a team.

There is little direct value to the company for you to struggle on something or feel like you learned a lot from doing something, there's value when you produce things that help the company get stronger, and no amount of struggle or effort really factors into that end outcome. Best result is everyone gets the most done with the minimum effort in the shortest time frame, no way that happens without a lot of communication.

There's a lot of nerd-rage voices in this thread (and in HN in general) talking about how your boss is the evil pointy-haired boss and you should set the company ablaze. That may ultimately be true but I'd take that advice with a huge grain of salt, these are random people on the internet with their own eccentricities and bones to pick from their own experiences, who have no idea the nuance of the situation you're in. Don't get indignant, it doesn't help anyone, if it really is bad you can decide that after you've collected more evidence of things you don't like about working there and leave voluntarily, but really doesn't sound that bad just yet and doesn't sound like you think it is either.


> How should I proceed?

Well I can tell you one thing for certain: this won't matter in a year... no matter what. Congratulations on making it into the field of software development with what I assume is a bachelors in computer science. You're basically set for the next ten years at least, guaranteed. There are so many vacancies in this field.

I've had petty bosses like this. Personally or professionally, I'd never talk to a junior developer like this. Or a senior developer for that matter. A senior dev and I would have had so many check ins and conversations before this meeting you had that it would be impossible for such a meeting to happen. Bosses like your boss' boss love to focus on the timeline without any of the details. For this, they are worse than worthless in their occupation. It seems likely your manager's manager failed to address a changing requirement in time, got burned by their superior for it, scared your manager away with their rage, and took it upon themselves to take it out on you. Again, just my intuition but it's rarely wrong. I've been doing this for a long time and I've worked at every type of company imaginable from govt to startup to corporate.

You probably graduated last May/June so you'll be up on your year soon (again, a guess). I'd start looking for other opportunities as you'll almost be guaranteed a 20%+ raise changing jobs and zero negative consequences for doing so. If you choose to stay here, great, but regardless, it will make you feel better to see higher offers from other places where you'll likely meet great people who can mentor you properly, proactively, and with enthusiasm. What your manager is doing is called seagull management, it's a little graphic of a term but look it up ;) It's a contribution to a company that my software engineering professor would call "worse than worthless".

I've had a few jobs with know-nothing bosses. It's a nightmare and leaves you feeling bad about your diligent and hard work. If everything was going well with zero constructive or negative feedback, and all of a sudden, there's a problem and a big problem at that, where the blame is placed on you without any sort of detailed explanation or further indication, it's a sign there's something wrong up the chain that has nothing to do with you. Pathetic, petty managers will always try to blame their subordinates for their own failures.

I would never let one of my junior devs with their first job out of college take the fall for a deadline or give them feedback like this because I possess the seemingly rare quality of empathy in software development and know it would be one of the biggest contributions of negative value to the company to do so. I would instead take responsibility for my failure to handle a deadline as that's what a real lead dev does. And if my junior dev was given too much work I'd help them or do it myself.

You can of course always look at other code in the company to see if something has been done. So can your boss. Given that those two have more experience with this field than you do, both at this company and in general (allegedly at least) it is something they should have proactively taken upon themselves, ideally in cooperation with you long before this meeting. They also have a duty to communicate with and mentor junior devs. You're not a senior lead with years of experience, you're a recent graduate with an invaluable set of skills and understanding of computational science that you developed over a period of years. You need a little bit of mentoring to learn the ins and outs of the business world in the context of your rare and precious talent. That should be done warmly and with great enthusiasm from your mentors. This is often not the case. For me it is far and away the most satisfying part of my job to mentor juniors who want to learn. Unfortunately, you're going to have to work a little to seek out likeminded people, they're not in every company. If any one of the people that ever worked under me blamed a dev for their poor project management skills they'd get quite an earful from me, I assure you. I'd fire a repeat offender who needlessly destroys the morale and enthusiasm of anyone without hesitation.

I felt obligated to reply at length because a lot of the comments in this thread are giving you terrible advice. I dealt with horrible support systems early on in my career and got so much terrible advice from other engineers. Lack of empathy and humanity is a massive problem in our community. You clearly have a desire to do good and are sensitive to feedback and I can't help but feel that your talent and good nature is being wasted here. Never forget you are the talent. Without yourself and the other developers producing software your manager would not have a thing to manage. I think you needed to hear that today. Repeat after me: I am the talent. You need me, I don't need you.

Please stay positive. As the Brits say, keep calm and carry on. It's all you can do here. Do that and keep your passion and you're indestructible. It's a hard thing to realize that so many people have no idea what they're doing but this ordeal you've been through will be helpful education in that respect!


If it were me that got talked to like that I'd be furious.

It's totally unprofessional to tell someone they expected the project to be done earlier and criticize your code when it's in a completed state.

Especially if that someone DOESN'T EVEN WORK DIRECTLY WITH YOU #wtf.

You're a junior dev... It's the company's responsibility to provide the adequate processes and mentoring to enable you to grow, and to provide real-time feedback (pair programming / code reviews / presentations / whiteboarding etc).

Also, it's totally unprofessional not to have all the people present in the meeting that are responsible for the delivery of the project. If the manager wasn't there it should have been rescheduled.

In my weathered state as a developer, I'd probably have the balls to write all these points down, and to ask for a meeting with the boss. If they reacted with further gas lighting I'd immediately take my resignation out of my back pocket and hand it to them.

There are a few old consulting tricks to doing this effectively:

Phrase the points as follows:

* Start your point with what you observed or something that is non-subjective

* Avoid saying "you" in a sentence (this is to avoid confrontation and getting someone on the defensive).

* Also, use "we" to make it seem like "we're all in this together as a team" - even if it's just you you're talking about.

* Start how the action made you _feel_. People cannot disagree with your feelings.

* Hear the other person out

* State what you think would be the appropriate approach for next time.

e.g. "In the meeting the other day, a point was made that the project wasn't completed in the time it was expected.

When this point was made, to be honest, it made me feel resentful, as I always put a great deal of care into my work. It also made me feel like I wasn't valued as a team member. I also felt dismissed and not heard out when I explained why things had been done the way that had been.

# wait for reaction

I was thinking about how to improve this situation in the future. First of all, if we find ourselves in this situation again could we make sure that everyone is in the meeting that needs to be? Secondly, I appreciate receiving feedback, however I feel that to do it at the end of a project is much too late. If that's important to you, could we do this more regularly? ... "

This way, if the boss ever tries to hit you up again at the end of a project, you can bring up the conversation that you had in the past. Apply the same methodology to your discussion and you'll end up on top and make them look like the ass they are.


Reading between the lines here...

> he basically tells me this project should have been finished a long time ago

Your boss' boss will always say this. The problem is the person in between. That person has been too afraid to tell their boss why things are running late, or can't. Basically, your boss has to stick up for you to their boss and take the heat and pass it down.

> He looks at the code and criticizes design decisions, some of which were made largely on my manager's explicit suggestions. (When I bring this up, he says I probably just misinterpreted an offhand comment of hers as a hard requirement.)

Ooof. This person may be covering for your boss for some reason (human or otherwise). This sounds like a bad dynamic. For example, he might be cutting her slack for some reason.

> Part of the reason it had taken so long is because I put a substantial amount of work into a part of the project that's no longer necessary due to changing requirements

ALWAYS push back on these. It is your job to (at least try hard to) stand firm on the original plan and if they want to make changes midstream, you must demand more time in exchange (as much as you think is necessary, and then add 50%). It is already hard enough as a developer to plan timely releases WITHOUT the ground shifting underneath you. It is your responsibility to make that clear. And you should be communicating on expectations regularly... in consulting that's called "managing expectations" and it's a good life skill generally.

> He did also make some criticisms that I thought were fair

It's always fine to acknowledge these.

> I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

Worry about the things you can control; there's no point to worrying about things you can't.

> I really did work hard, so it's demotivating that it feels like the result of me working hard is unappreciated. I'm not thinking of quitting over this or anything, but it seriously bums me out.

I'm still thinking that the problem is your immediate boss. Also, you should absolutely voice this concern to her.

> and I'm thinking that now they probably feel that they could fire me if they wanted and not lose much.

Two things. Don't screw over that guy just because you're afraid of that. And also, if it came to that, it's a fairly hot hiring market. Don't be afraid. Of all the times I've been let go (and there've been quite a few, partly because I had undiagnosed sleep apnea for YEARS), I always ended up in a better place.

> it feels like an inauspicious start.

It's true that your first few months at a company are judged harsher than after, because you haven't proven yourself yet. Just do a course correct and check in with boss on requirements more frequently if they are subject to change, and always push back on changes and press for more time, because you'll need it... midstream changes aren't magically easy to do. Don't burn time on making fancy abstract mechanisms, just focus on the simplest code that does the job, and always cover it with tests (make sure to incorporate that into your total dev time...)

If they still end up firing you anyway, it's OK, you did your best. Like I said, worry about the things you can control... if your boss and boss' boss have a weird dynamic which affects the perception of you, that's unfortunately not something you have control over

Good luck!


Two common themes stand out throughout your post:

1) Dysfunctional communication

2) Rumination.

Starting with the dysfunctional communication: It seems there are a lot of communications and expectations that aren't making their way to you. It's reasonable for your manager to buffer some communications from above rather than dumping a firehose of everything on to you, but this sounds like you're missing out on important information relevant to your job.

However, you now have some clarity into these communication gaps. Use that to your advantage. Next time there's a question around a deadline being pushed back, ask specifically why it was pushed back and what your skip-level manager thinks about it. Did they push it back because you were originally behind progress? Or did they push it back because it wasn't needed as quickly any more? Don't speculate, ask.

There's another place where you need to ask for clarity, largely because your manager isn't great at it: Performance management:

> After our meeting, my manager and my boss had a meeting with just the two of them to discuss the status of our project. I have no clue what happened in that meeting and I haven't heard anything about it from either of them since.

Don't hesitate to ask your manager for clarification about expectations. You can ask for a quick chat to recap the project. Explain how you were confused about why the project was considered late if the deadline was pushed back and ask for clarification. Ask how you should proceed in the future. Ask what's expected of you (or employees in the company in general) for positive performance reviews. Again, don't speculate. Ask.

The second problem in your post is heavy rumination. It's natural to feel disappointed in this outcome, but you cannot let it eat you up. The more you let this control your thoughts, the more it's going to negatively influence your work, which could lead to more disappointment in an unhelpful spiral. You must avoid this at all costs.

Some examples from your post of what I'm referring to:

> I'm happy, but I can't stop thinking about that meeting. I really did work hard, so it's demotivating that it feels like the result of me working hard is unappreciated.

> I'm not thinking of quitting over this or anything, but it seriously bums me out.

> I don't know if I have a future at this company

> I'm thinking that now they probably feel that they could fire me if they wanted and not lose much.

> I wanted to make them happy to have hired me, and now I feel like they probably aren't.

It's very natural to feel disappointment, uncertainty, and concern. However, how you react to these feelings will dictate your path in the future. If you let this demoralize you or, worse, start bitterly resenting everything about the company, it's not going to end well.

Acknowledge that this is a mere stumbling block, but it doesn't define your job or even your career. It's a learning experience, but it's not the end of the road. If you take it in stride and use what you've learned to iterate on communication and delivery with your next task, things will go much better. This may feel poignant to you, but I guarantee everyone else is going to completely forget about it by this time 6 months from now.


You have a horrible manager that should have either been in that meeting or rescheduled it while they were "putting out fires" (big red flag)

This is your first job out of college, I assume they know that.

How you should proceed is to just shrug your shoulders and say, "ok boomer"


There are thousands of workplace to go. Weird this is not the main answer


I am late to the party, but I also wanted to suggest learning to develop techniques for dealing with “this kind of attack.”

This may not be the last time you have this energy directed your way.

Your options are:

1. Make excuses or argue or “explain”

Looks really weak and doesn’t garner respect. Especially from asshole managers. Arguing will inflame them, they will take it as disrespect.

If they are in a mood to send a message, then explaining won’t get you anywhere. They want to yell at you to feel powerful. Explaining won’t help.

2. Take the beating

Just listen and don’t say anything. Neutral strategy, you don’t win or lose anything. But you also don’t prevent situation in the future.

If this is a one time thing, maybe it never happens again and you are better avoiding any escalation.

You turn into a doormat eventually, you are giving them a “free move.”

3. Restate their complaint before they complain (take their weapons away)

This is an extreme pro maneuver. If you have a truly aggressive boss, and I have had a few, you can anticipate their attacks in advance and state them up front.

This kind of managers attacks are often predictable.

This technique leaves your attacker with absolutely nothing to say. I use this on my own Manager to diffuse them.

This is a very powerful method, because you have to be willing to understand the situation from their view in advance.

Open the meeting with “so I know you are angry about how slowly this project has been going and probably think I suck at coding is that right? … “

This technique comes from the book “never split the difference.” You try to trigger them to agree with you up front. Once you do that; they are out of ammunition.

Lean into the punches takes the power away from them. But this requires extreme skill.

4. Blame on others by taking responsibility for their actions

This is a technique from the book “Stealing The Corner Office.”

You make your manager look weak by taking responsibility for misinterpreting them.

“I think I must be responsible because I misinterpreted Manager X when he said Y. I will work with X to clarify my understanding.”

This is kind of a passive aggressive strategy which indirectly blames your manager and makes it sound like he is actually the problem.

Anyways, I recommend reading both the books I mentioned earlier.

With aggressive managers I prefer to lean into the punches and take their attacks away.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: