7

UPDATE: I refocused this question to honor the answers that those contributors like Flater put a lot of of effort into. However, I tried not to materially change too much as that can make reading the answers/comments confusing for others.

A Little Background ...

I was just fired from a contract role @ FAANG as a Jr. Enterprise Engineer. I originally passed all the interview rounds and code challenges. The role was to help fix and update multi-layer complex enterprise-level internal data-driven web applications. But, the onboarding was rocky (for instance, FAANG contact person went on PTO for 2 weeks to India during my second week) after completing all the internal training assigned, and asking for direction, and getting very little (I was told "study the docs" until the manager on PTO returned), I just waded through wiki after wiki, day after day, week after week.

I didn't have enough understanding of the codebase or the expected workflow to even have any questions yet. So, I just started searching the internal wikis and ended up finding that the best way for me to wrap my head around the info was to manually type it verbatim. Something about writing or typing something that makes it much easier to remember.

Three weeks went by and still I heard nothing from FAANG. I finally reached out to my contingent agency manager and he said to wait a few more days for some instruction on what to do.

So, I kept diligently digging through the docs and building up a list of questions where I needed clarification. FAANG released a PHP derivative as open-source and it also requires "SPECIAL" server to run. Yet, I couldn't find very much info on this at all -- even internally. I knew the best way to learn for me is through hands-on coding. I only had 8GB of RAM on my laptop, so I created an Ubuntu VirtualBox VM and then tried to install SPECIAL on it. The install seemed to work but when I put in the sample code from the online docs, it threw errors. I talked to the Sr. Dev who started same time I did and he cited the exact same problem. We never did find a way to run SPECIAL on localhost so we could test code in our own sandbox. After almost a month of trying different things, I finally got the response from somebody in Workchat that, "Yeah, you really can't run SPECIAL on a home server, though you are supposed to be able to. The best way to learn this flavor of PHP is on the FAANG internal codebase"

Ok, great. How do I do that? Neither "echo" nor "print" commands work, so how do I even do "Hello World!" in this unfamiliar system? Then I find out after much trial and error that normal PHP is disabled internally. What? They could have told me that at the beginning in some kind of onboarding document and saved me a lot of time. Not wasted though. I always find a way to take something away from every experience, whether good or bad.

This is all to say, in hindsight, I feel like I was set up to fail. I'm not sure if it was intentional, politics, or what exactly. When things go wrong, my go-to is usually to look within and ask myself "what did I do wrong to cause this result? But, in this case, I don't see where I did anything wrong.

Reasons one Might Be Fired from a Software Engineer Job

In responding, some might be tempted to offer answers like "Maybe you were just a jerk", "Maybe you were annoying", or other such conjectures. Here I address, to preempt wasteful answers or comments, some reasons people get fired and how these don't apply in this situation.

  • DISAGREEABLE PERSONALITY? NOPE: Supervisors and coworkers are quick to state that I am friendly, likeable, on-task, ask plenty of questions, intelligent, and easy to get along with.
  • BAD OR INAPPROPRIATE BEHAVIOR? NOPE: There was never any insubbordination or misconduct or goofing-off. In fact, in roles where I've been successful, my superiors and coworkers agree that I always go above and beyond, including asking for extra work if I finish early, helping out coworkers whenever I can, and sharing knowledge for the benefit of the team.
  • LOSS OF ENTHUSIASM: NOPE: I remain enthusiastic about the prospect of this type of work, but with mentorship or some better ramp-up to set me up for success.

Well, what about the performance then? What exactly is "performance" as far a reason for firing? Near as I can tell, it just means you weren't able to meet some metrics they hoped you would.

Possible Reasons for Performance Issues

So, without dragging this out much longer, here is a brief list of factors I believe may have contributed to me being fired:

  • Poor/Inadequate onboarding by both FAANG and the contingent agency
  • Wrong expectations set. e.g., Me and others struggled for the first month to know what we were supposed to be doing. We believed were supposed to participate in something they called "bootcamp" (a three month hand-holding step-by-step set of exercises and labs designed to help you ramp up quickly and be successful at FAANG) based on all the wikis we were told to read. A month and a half out, I finally learned that essentially FAANG doesn't put contingent workers through bootcamp. If I had been told that at the beginning, it would have saved a lot of time.
  • I did my best to balance not asking too many questions and thereby taking valuable time away from the contact my actual FAANG manager (who seemingly changed 2-3 times) assigned to be responsible for ramping me and the other guy from a different vendor up to speed. The other vendor got fired two weeks before I did for "poor performance" also.
  • I asked a lot of questions, but only after considering them very well and then (following the Rubber Ducky Debugging method), writing a clear and concise description of my blockers. Suspecting that asking "too many questions" let to previous similar firings, I chose to be very measured in my question asking at this new role. I only asked questions when I had thoroughly exhausted all other options available to me.

My Question: Resume?

So, now that you have the background, my question is this: What bullet-point items do I put on my resume to explain what I did in this role? Most of the time I felt like I was swimming upstream, or struggling against quicksand. They fired me before I had time to make any significant contribution. I worked about 3 tickets total and I learned a lot from those expenriences, but I didn't finish any of the those tickets, and I don't want to be dishonest.

If it were just this FAANG role, that would be one thing, but it has happened over and over. I'm a good guy, I get along with everyone, and I have demonstrated problem solving skills. Although, in all honesty, I'm not sure if my troubleshooting repertoir is up-to-par. I don't have enough info to make that determination. I don't have any friends who are coders because I move all over, otherwise I'd be like "Hey man, be honest with me: Where do you think I'm failing to hold onto these jobs?"

Any help is greatly appreciated!

Additional Reading:

16
  • 14
    Before those companies let you go, usually, the managers or HR would have some kinds meetings to give you some kind of warning or the need to improve in certain areas and give you some time to try, didn't they ? If yes, what did they tell you ? - Most companies won't fire or layoff workers without at least telling the workers the reasons. BTW, I am sure you are a smart and skillful programmer because it's not easy to get at job at a FAANG company. Jul 5 at 22:43
  • 8
    What reasons were given by the companies?
    – Kilisi
    Jul 5 at 23:17
  • 10
    This needs to be broken up into several separate questions - what to list on a resume is very different from why you’ve been fired six times and we need different info to help with each of them.
    – mxyzplk
    Jul 6 at 3:45
  • 8
    Notice that you are the least qualified person to provide the information we need to be certain what the right answer to your question is. You may want to ask a close coworker about this too. Jul 6 at 6:43
  • 13
    If that is your real name and image then consider using an alias and an avatar
    – RedSonja
    Jul 6 at 8:51

3 Answers 3

52

I'm going to be really honest right off the bat, this answer is not the gentlest answer that could have been written. But I think you very much need to see yourself through someone else's eyes, specifically someone who's got the/a company's best interests in mind, and this answer was written from that perspective, essentially as if I was your team lead.


I can only make inferences here, but your question ranges from broad high-level concepts (your comments on an onboarding process) all the way down to nitty gritty implementation details (how much RAM you have on your machine).

I'm not saying any particular thing you mention is a lie or even wrong, but you seem unable to compartmentalize an explanation to what is strictly necessary - which can be a first indicator of not communicating effectively.

Since non-technical people tend not to understand the intricacies of technical work, they judge your value based on their perception, which is going to be negatively impacted by not communicating effectively.

So, I just started searching the internal wikis and ended up finding that the best way for me to wrap my head around the info was to manually type it verbatim.

That's not a great look to outsiders, is it? Not saying it doesn't help you, but I would hope no one knew that you were doing this.

I knew the best way to learn for me is through hands-on coding.

If you knew this, why did you spend your time manually copying wiki pages instead of doing this right off the bat?

Contradicting yourself on what works best for you suggests to me that you aren't proactive enough to actually self-learn, yet you apparently didn't ask for guidance either since you clearly freewheeled your own learning process.

You even mentioned that you thought there'd be a bootcamp, but it turned out to not be the case. How did it take you a month and a half to realize that this wasn't the case? I cannot wrap my head around this. I'm not even intending to be mean here but I'm hard-pressed to judge this any different from considering you contextually blind as a bat.

It sounds to me like you were given time to learn the ropes yourself in good faith by the company, and you ended up spending it unproductively and without asking for guidance or direction. That's really not a good look for a developer.

Ok, great. How do I do that? Neither "echo" nor "print" commands work, so how do I even do "Hello World!" in this unfamiliar system?

Two things:

Firstly, why are you bothering with printlines to begin with? Was your goal to learn how to code; rather than learn the company's codebase? Because it sure sounds like it.

Secondly, when dealing with an environment that has obstacles that you're not used to, the first thing you should do it find out how your colleagues are navigating this environment. In other words, do as the Romans do.

After almost a month of trying different things, I finally got the response from somebody in Workchat that, "Yeah, you really can't run HHVM on a home server, ..."

A month

Just let that sink in for a moment.

You spent a month trying something that your coworkers could've told you right off the bat. Not only did you go about this inefficiently, you wasted an entire month's wage of the company's money doing so, and you didn't even bother to ask for basic input on what you were working on.

That is, in my opinion, grounds for letting you go. Not because you broke any particular rules (the company also failed to follow up on you, I can only assume), but because you've shown to be lacking in existing knowledge, instinct to ask for help, and a reasonable sense of time wastage.

Then I find out after much trial and error that PHP is disabled internally. What? They could have told me that at the beginning in some kind of onboarding document and saved me a lot of time.

You are the one who decided to try and use PHP. The company didn't ask you to develop software in PHP.

I don't even understand what the point you're trying to make is. Are you saying that the company is at fault for not providing explicit documentation that tells you should shouldn't do X, where X is anything that the company isn't working with?

I also want to make specific note of the inherent arrogance in turning what is a clear error on your part around by claiming "the company could have saved you a lot of time", given how much of their time and salary you wasted.

Not wasted though. I always find a way to take something away from every experience, whether good or bad.

There seems to be a lack of distinction between what constitutes a waste to you and what constitutes a waste to the company, and I suspect that this lies at the root of why you think you're going about this the right way and yet you don't understand why companies are consistently firing you.

This is all to say, in hindsight, I feel like I was set up to fail.

Did the company fail to follow up with you on time and stop you wasting an entire month on a fruitless endeavour? Yeah, they made a mistake here.

However, you still showed a complete lack of contextual awareness, team communication, time management, and general proactive attitude towards having a productive workload. It means that in order for any company to employ you in a way that makes financial sense to them, they have to mollycoddle you every step of the way and can never really trust you to do a job without going off some deep end.

Additionally, even in this question you seem very sure of yourself that what you chose to do was the right approach. If you projected that confidence towards whoever was following up on you, I can understand why they ended up letting you do your thing because you seemed to be doing the right thing, and then ended up regretting the good faith they gave you when after a month (!) they realized that you didn't do anything productive at all.
In this way, I can even absolve the company of its mistakes here because this would mean that the only mistake they made was trusting your description of your own activities.

Speaking of untrustworthy descriptions of yourself:

DISAGREEABLE PERSONALITY? NOPE: Supervisors and coworkers are quick to state that I am friendly, likeable, on-task, ask plenty of questions, intelligent, and easy to get along with.

You don't get to make the call whether you're likeable or not.

Secondly, you are not on-task. It took you over a month to realize that the bootcamp you thought existed did not even exist.

Thirdly, you certainly do not ask plenty of (productive) questions. Your month-long stint of doing something unproductive that doesn't even work in your development environment proves as much.

BAD OR INAPPROPRIATE BEHAVIOR? NOPE: There was never any insubbordination or misconduct or goofing-off.

Goofing off is problematic not because you're having fun, but because you're not being productive for the company. Your month-long stint of doing something unproductive that doesn't even work in your development environment is precisely the same issue as a month's worth of goofing off would have been, it is functionally equivalent.

Furthermore, if you misrepresented how you were getting along, which led to the company letting you continue on the good faith that you knew what you were doing and were being productive, I can very much see how the company will sour on your behavior. While maybe not literally misconduct or insubordination, what you did (misrepresentation) is functionally equivalent; and the level of pedantry required to still make the distinction would then be another detractor of your value as an employee in and of itself.

LOSS OF ENTHUSIASM: NOPE: I remain enthusiastic about the prospect of this type of work, but with mentorship or some better ramp-up to set me up for success.

The only purpose of enthusiasm, from the perspective of the employer, is that enthusiastic people are proactive and driven. You've shown neither quality, thus rendering you functionally equivalent to an unenthusiastic person.

"I am enthusiastic but only if they set me up for success" is an inherent contradiction.

They fired me before I had time to make any significant contribution.

I would say they fired you because you did not make a significant contribution in a timespan where you very much should have.

I don't understand how you don't see that spending a month without delivering anything productive is a massive problem that very clearly endangers someone's employment.

I worked about 3 tickets total and I learned a lot from those expenriences, but I didn't finish any of the those tickets

Why did you pick up the second ticket if the first wasn't done? Why did you pick up the third ticket when the first and second weren't done?

This just sounds like more irresponsible self-management that makes you a liability that needs to be actively managed and monitored at all times.

I was just fired from a contract role

Contractors have a higher bar to clear in terms of ability (both in their job and learning new skills for their job). In my opinion, you significantly failed to clear the bar for even an internal employee, let alone a contractor.

Secondly, being a contractor makes you significantly easier to fire relative to an internal employee (I will concede that this might not be true in some cultures where worker protection is effectively zero), which further helps explain why the company chose to fire you instead of invest time and effort in teaching you what should have been basic common sense skills.

here is a brief list of factors I believe contributed to me being fired

The gall of even trying to frame this as if you didn't make any mistakes in the process is a second, completely independent reason that justifies letting you go. An employee who cannot even own up to their blatant mistakes is a liability more than they are an asset.


Your question seems to spend a whole lot of time focusing on what the company should have done for you, and quickly dismisses anything relating to what you should've been doing for the company.

To borrow a phrase, ask not what the company can do for you (after you've already signed your contract), ask what you can do for the company. You spectacularly failed at that.

It looks to me like your employment was a failure to start on your part. You did not contribute, nor meaningfully progress, nor asked for help in time, nor alerted anyone in any (even remotely) timely fashion that none of the previous things were getting anywhere.

6
  • 15
    Another example of poor communication: Trying to obscure the company by using FAANG, but mentioning that they released HHVM. That's clearly Facebook/Meta. Jul 6 at 9:40
  • 12
    Not to mention, but I will... The best way to learn Hack is on the FB internal codebase
    – Bib
    Jul 6 at 10:24
  • 1
    @knallfrosch OP actually named them explicitly: "the FB internal codebase". Jul 6 at 10:32
  • 2
    That makes it even worse :/ Jul 6 at 11:26
  • 4
    @Flater Thank you for the time and effort you put into this answer. The insight you shared from a team lead perspective was invaluable. I have marked your answer as correct. Jul 7 at 10:53
40

seeking help understanding what EXACTLY keeps happening in these roles and what I can do to find the right somtware [sic] role that fits my current skills and abilities?

It's you, not them.

One company, maybe it's just a bad fit. Two, hmm, unlucky?. Three, I'm getting worried. Six? It's you. If I were to guess it is because relative to other employees you need too much direction and supervision to get results. Companies don't invest in contractors, they squeeze them for results. If you were producing code they could use they would keep you on.

Pointing to all the things wrong at the company is moving outside your circle of control (things you can do something about which is your behavior) into your circle of concern (things you are worried about but can't do anything to influence). We weren't there to observe your work, you were. Analyze what you could do differently to get results, versus what you did.

1
  • How many months did you get paid for, and what did you deliver for that money?
    – gnasher729
    Jul 6 at 8:40
16

seeking help understanding what EXACTLY keeps happening in these roles and what I can do to find the right somtware role that fits my current skills and abilities?

While you have ruled out "disagreeable" personality and you could be right but in my experience (and I have had experience with 2 such people in my career), it is almost always about behavioral issues than performance.

Thing about disagreeable personality is you would never know you are not liked for your behavior. These things are always discussed behind your back while you keep getting the impression that you are the loved one and encourage yourself to continue this behavior. Both the people I worked with during my career at two different times and places, had the same problem. They strongly believed they are the most likeable guys and when I had to unfortunately confront them, they rejected the idea completely and continued their behavior which eventually resulted in them being fired multiple times.

In short, focus on your behaviour first. Not knowing you personally, I could be wrong about it but usually it is the first thing which gets people fired.

2
  • A "disagreeable" personality matters in two cases: If it so bad that they can't keep you, no matter what your other qualities are. Or if you are borderline and a pleasant personality might have saved you. On its own it doesn't make a difference unless it is outrageously bad.
    – gnasher729
    Jul 7 at 10:40
  • Thanks for this valuable insight @PagMax! Jul 7 at 10:51

Not the answer you're looking for? Browse other questions tagged .