Hey all, I’m a new grad who has been working at JPMorgan Chase for ~3 months, and I would really like some perspective on my experience so far. This essay question will be long, but the overall theme is that my growth feels stagnant and I’ve unfortunately grown to dread coming into work. I’d really appreciate any new perspectives or advice.
For reference, my current career goal is to grow to senior engineer at a startup/Big Tech company as quickly as possible (because a) I like working towards long-term goals and b) software engineering is lots of fun).
A quick timeline:
I joined JPMC in early August on a React + Spring Boot team
The first 4 weeks were solely dedicated to training and getting access to stuff
Thus, I’ve been with my team in full capacity for ~8 weeks now
A core problem is no one is really interested in how I’m spending my time or enabling me to be productive, even with me trying to upwardly manage. For instance:
On my first day, I had to actively ask my manager and TL for my first task, but they had no immediate plan for me or the other new joiner(s)
During my first couple weeks, I (nicely) bugged my TL for work so I can get my hands wet and start learning the codebase, to no avail
Recently, I had a full week of no tasks assigned to me, and no one minded (I had stopped bothering asking for work)
I’ve considered the following:
Self-assigning myself work
Asking to pair program
I’ve mentioned this to two engineers, to no avail
Everyone seems to be focused on getting their own JIRAs completed, and pair programming will inevitably slow them down
Also, because my TL is so busy, it’s hard to get immediate, synchronous help whenever I get blocked, which leads to me having much downtime. In fairness, I understand people are busy and can’t drop their work on a whim, and I should have taken the initiative to get help from other team members too (to not overwhelm my TL).
In any case, the handful of tasks I have been given have tended to be very menial in nature - the type you could better offload to ChatGPT. For instance, adding 1-line changes to business logic or writing unit tests for existing code (that I only partially understand). Most of the work hasn’t helped me develop a mental model of how the system works or learn the business domain.
Here are a few other traits about my team that I’d like to mention, to provide more context in debugging my situation:
My TL and manager spend most of the day pairing up to deal with production issues
My manager doesn’t have 1-on-1s with anyone (even new grads)
Everyone else on the team is busy, as if I’m the only engineer without much to do
The engineering culture often seems middling at best - unit tests are often written without asserts (solely to reach 80% coverage) and code often has buggy execution paths
The whole experience is unfortunately becoming really frustrating to me. For comparison, I worked on a React/TS + Firebase side project over the summer (it couldn’t have been more than 80-100 hours of work, tops) and I learned so much stuff really quickly - not merely in terms of code velocity, but other higher-level concepts like the tradeoffs of SQL vs NoSQL, data modeling, reading documentation, how to keep a codebase organized, etc. and I also gained much more confidence in my technical abilities. The experience I gained of building something has given me more context to understand how software engineering works. Also, it was tons of fun (like grinding in an RPG, but productive).
On the other hand, I’ve spent almost three months at my first real job and I’ve objectively learned very little. As a result, I’m finding it hard to be motivated to take extra initiative and apply myself when it seems like the environment I’m in has turned out to be so stagnant and slow-moving.
Beyond this, the other major problem is I don’t feel like I’m providing value to anyone (including myself) when I go into work. My only incentive has (unfortunately) become running down the clock so I can leave, which, coupled with the boredom from a lack of work and a 2+ hour round-trip commute, is incredibly draining. It’s really silly - my primary goal right now is to get good at software engineering, yet I’m currently doing the opposite!
I have considered starting a dialogue with my manager and bringing up (some) of these concerns, but there are a few problems. Mainly, I doubt my manager would provide the best insight:
He directly equates hours worked with productivity and suggests ambitious JPMC engineers should probably work 10-11+ hours early in career
He suggested using my downtime to do some kind of arbitrary training (unclear what he is referring to), instead of finding real work to learn from
He doesn’t seem to understand that the work I’ve been assigned is not very meaningful
He spends all his time coding and very little time managing
My manager (as part of JPMC for decades) seems to be in the siloed-off JPMC bubble where engineers join and stay for decades - so growth discussions would be centered around being the best JPMC employee, not the best software engineer in general
I don’t mean to criticize - my manager is actually a cool, friendly dude.
Plus, not everything is bad about my experience. There are several green flags:
Most of the other engineers seem to like their work
There appears to be some camaraderie in the team culture
My manager seems flexible and understanding regarding people’s schedules
My TL/manager have given very positive feedback on the code quality of my (few) contributions so far
During my placement conversation, it sounded like there’s tons of work/scope available
Nonetheless, it still feels like I’m in a no-win state where my options are:
Stay until the tech market improves
It feels really bad to intend on spending a minimum 1-1.5+ years working at a job where I’m learning very little and accomplishing almost nothing. It seems like it would hurt my career growth (and continue to be a really taxing, sucky experience).
It seems like the only two things I’m getting out of this right now are a) income and b) resume continuity.
Switch jobs
It feels almost as bad to want to look for a new job after ~3 months, given JPMC’s tech side is so large and reasonably well-known.
Also, job searching as a junior in this current market would be very RNG-heavy, and I don’t want to have a short stint on my resume if I can avoid it.
Switch teams
Internal mobility isn’t an actionable option because the program managers want us to spend at least 12 months in our first role.
Also, to switch, you’d need to both find another team via internal networking and have your current manager sign off on the transfer.
Quit
The large amount of downtime means I have to spend significant parts of the day running down the clock by simply sitting in my chair and doing literally nothing - which turns out to be far more mentally grueling than one might expect.
The WLB on my in-person days is poor because I have a 2.5 hour round-trip commute, so I have little energy to do anything useful in my free time.
I’ve tried to use my downtime to read books (like Designing Data-Intensive Applications), but this doesn’t remotely replace doing actual work.
I have no expenses so I could quit, though that isn’t the best option. I only mention it because staying at my job comes at the cost of continually enduring this.
What does the Taro community think of my situation? I’d appreciate any and all suggestions on how to fix this.
First thing's first: Your team sucks. And it sucks a lot. You need to leave.
However, there's some nuance around when and how to do that. I actually went through something very similar at PayPal (I spent most of my time there playing foosball and spinning my wheels), so I have very real-life experience here. You are 100% right that doing nothing for hours on end is surprisingly hard - The novelty of being paid tens of thousands of $$$ to do it wears off fast.
Anyways, here are my thoughts:
This was the main cure to my boredom at PayPal, and I had so much fun doing it! It will be harder on your in-person days (maybe you can just scope out new side project features on those days, prepping for the coding back home), but on remote days, it should be pretty easy. You mentioned that you had a side project where you had a ton of fun, so you're already familiar with the side project vibe (and dopamine hits).
Here's our playlist around side projects: [Taro Top 10] Building Impressive Side Projects
It's true that only having a 3-month stint looks bad, but it's not like you'll get an offer tomorrow (especially in this economy). At best, it will take you 2-3 months to get the offer, and even after that, you can push the start date out like 1 month, giving you at least 6 months at JPMC.
I think you should spend 15-30 minutes per day on average just applying to jobs and see what happens. Here's our job search playlist: [Taro Top 10] Finding A Tech Job
This is not likely to work, but you might as well try. Instead of asking your EM/TL for tasks to work on (this is a high-cognitive load question, so of course they will be lazy and give you nothing), just find the tasks yourself and ask for permission. This is advice I give to a ton of junior/mid-level engineers looking for scope; there is almost always a backlog (especially at a huge company like JPMC) of tasks that the more senior engineers are ignoring/procrastinating. It's usually in the realm of tech debt, covering stuff like:
Find those tasks, go to the engineer who owns it, and say that you will do it unless they explicitly say no. It's a win-win as their backlog gets cleared (they get credit for "leading" you), and you actually get to write some clean code and have some impact.
It's probably a bit too advanced, but I recommend this playlist too: [Taro Top 10] How To Create Scope As An Engineer
I'm leaning toward #1 since:
A few other things to consider:
Regarding passively searching: how do I decide which types of companies to apply for, given tech is scarcely hiring? For instance, would applying to other banks be worthwhile, given that JPMC is probably the “best” one? It seems like my problem is more team-specific than it is company-specific, but I also wouldn’t want to risk moving to an O&G or consulting company.
Don't decide, just apply to everything. The market sucks, so it's not like candidates have the ability to choose anyways, especially those earlier in career. Big Tech, scale-ups, startups, mid-sized companies - Doesn't matter, apply to them all and see where you can find traction.
- Also, I’m curious - what’s the idea behind stretching out my tenure at JPMC (in the case I accepted another offer)? If I spent 2-3 years at the second job, wouldn’t that “undo” the damage of a short stint?
The undoing part is mostly correct. However, most of the stretching out won't be a choice on your end. Going from applying -> recruiter call -> technical phone screen -> onsite -> offer extended -> negotiation -> start will naturally take a long time, especially in a bad market.
Also, having a break in between jobs is nice. I regret not having bigger breaks in between roles.
- Over the coming months, do you have any actionable suggestions for building a network and getting references (bonus: any suggestions on leveraging Taro to build said network)? IME, career fairs and references have proven far more effective than cold applying (especially since last year).
Of course career fairs and referrals will be better than cold applying (especially the former as it should be in-person): Succeeding in tech is all about the relationships you have. I'm glad that you recognized this early (I personally took way too long). Here are my recommendations:
- What do you consider the biggest failures and red flags from my team, based on my recount? I’d be curious to know, so I can better vet teams in the future.
Check this out: [Masterclass] How To Choose A Good Company And Team As A Software Engineer
There are many linked resources in the description of that masterclass - Go through those too. Those resources will link other resources, so you can even keep going. Traverse that graph of resources until you feel at least semi-confident you can identify a sucky team.
I have been exactly in your situation when I worked at a Fintech firm back in India. Some of the similarities we had:
I worked at this company for around a year and half and nothing good came out of it.
If your manager is doing coding most of the time, trust me that’s a very bad sign. A manager is supposed to spend most of their time doing managerial work and help you connect with teammates and ensuring that you get the right help to complete your tasks within that sprint, which includes ensuring that you are assigned tasks as well.
If you are new to the team and especially a new grad, a weekly 1:1 or atleast biweekly 1:1 with your manager and TL is crucial. If that’s not happening, not a good sign again.
If I were in your shoes again, I would start doing the below steps:
Good luck to you and hope you find what you are looking for!
Thank you for the detailed response! And thanks to Rahul for his input as well. I’m glad you agree my experience is objectively not great.
I have a few more followup questions:
Regarding passively searching: how do I decide which types of companies to apply for, given tech is scarcely hiring? For instance, would applying to other banks be worthwhile, given that JPMC is probably the “best” one? It seems like my problem is more team-specific than it is company-specific, but I also wouldn’t want to risk moving to an O&G or consulting company.
Also, I’m curious - what’s the idea behind stretching out my tenure at JPMC (in the case I accepted another offer)? If I spent 2-3 years at the second job, wouldn’t that “undo” the damage of a short stint?
Over the coming months, do you have any actionable suggestions for building a network and getting references (bonus: any suggestions on leveraging Taro to build said network)? IME, career fairs and references have proven far more effective than cold applying (especially since last year).
What do you consider the biggest failures and red flags from my team, based on my recount? I’d be curious to know, so I can better vet teams in the future.