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!