Taro Logo
Profile picture

Junior Engineer Career Development Videos, Forum, and Q&A

How A Junior Engineer Can Grow Their Career

Almost every software engineer starts their full-time career journey here. The content here breaks down how you can start your career off with a splash and grow past this level as quickly as possible.

Switching teams after joining for 6 months

Entry-Level Software Engineer at Flatiron Health profile pic
Entry-Level Software Engineer at Flatiron Health

Hey all, I'm a new grad Data Scientist and I've been working for my current employer for about 6 months now. It's a mid-sized company so I didn't get the chance to pick the team when I first joined. I realized not that long into the job that I don't want to stay on this team for the long term, and today I just heard the news about another team actively hiring for Data Scientists. But I'm not sure if I should pursue this opportunity for a few reasons:

  1. I've only been at this company for 6 months and haven't gone through a formal perf cycle yet. This means that I would be evaluated on a "case-by-case basis" and would need approval from the HRBP and my manager.
  2. They are hiring for one level above my current role, although someone on that team told me it's flexible.
  3. My current team is understaffed and is currently hiring as well, so there is a risk of my manager not approving this transfer. This also means I won't have enough time to prepare for the interview.
  4. This is not currently listed on the internal job board (although supposedly this position was only released externally today so the internal job board might have been updated yet)

Here are a few reasons why I want to transfer to the new team:

  1. Due to the scope of the work on my current team, I feel that I'm not learning as much as I'd like to. It's not very technical and relies heavily on specific business contexts. I'm more interested in improving my technical ability in writing code and building products over learning business contexts, at least for now.
  2. A lot of my current work involves writing ad-hoc SQL queries to support other functions. I don't find a lot of value in this kind of work and want to invest my time in building stuff from which I can learn new skills.
  3. I interned on the team I want to transfer to and really enjoyed it. I keep good relationships with many of the team members and am familiar with their work. Also, I genuinely think the work they are doing on that team is very interesting.
  4. I don't see a clear way of progression on my current team. My current team was only established two months before I joined due to a reorg. Every IC on my team is brand new and my manager is brand new to being a manager as well. There are no senior engineers to learn from and I can't see what senior engineer scope looks like on our team.
  5. Our team supports the sales team in client communications, which means we have very unpredictable workloads and deadlines. Sometimes I have to work very long hours and take on-call requests which can be very stressful.

I really want to switch to a new environment but I feel like my chances aren't great. It would be great if folks could share their thoughts on:

  1. Should I reach out to the prospective team's manager to express my interest in this role right now?
  2. Since manager approval is required before starting the interview process, it's possible that I would have to stay on my current team with my manager knowing I want to transfer out. I think it is a situation I want to avoid but also don't want to miss the opportunity because of this.
  3. In general, what would be a good approach to this? And is there any specific advice?

Thanks in advance!

Show more
1 Comment

Dealing with conflict with your TL

Entry-Level Software Engineer [E3] at Meta profile pic
Entry-Level Software Engineer [E3] at Meta

I have been having a hard time dealing with my tech lead. He’s e5 and leading our project. I’m aiming for promo end of this half and I feel like he’s really using that as a weapon against me.

For the project I am on, he gave me some deliverables. For one of the deliverable d1, I pushed back as there was no clarity. He basically said you have to do it or someone else will. I pulled in my manager and eventually the manager said it’s his project, his decision.

Fast forward, after spending a good week or 2 on this , we were asked to stop the project due to the alignment issues I had highlighted earlier.

The whole deliverable d1 was de prioritized and I was asked to work on something else (d2). It’s close to the end of the half now and the Teach lead is asking me to do more work to show that d1 made any progress and it was landed.

Despite working super hard on this, I have not clear deliverables. I think this is a directional problem. A lot of this was out disambiguating stuff. He’s also said stuff like you don’t seem to be working much on this.

I feel quite frustrated that despite working a lot the TL doesn’t seem to acknowledge any of the work or doubts cleared.

  • How do I deal with this when I keep doing things and he keeps moving the finish line slightly ahead?
  • I’m also tired of his snide comments such as this really isn’t e4 scope but I can say it is for you.
Show more

Bouncing Back After Termination. What can I do to move forward?

Entry-Level Software Engineer at Unemployed profile pic
Entry-Level Software Engineer at Unemployed

Hello, I just wanted to get some advice last month I was terminated from my job after being placed on PIP/probation. When I first joined the company I had successfully completed training in React but was put on the team that didn’t use it. When the first review cycle came one of my teammates described my learning as flat and my technical skills as inadequate. There was even a time when I was ignored and tasks were passed over and one where I couldn’t come up with a plan. The junior who they assigned it afterward had the same issue couldn’t find and also didn’t need to come up with a plan but was allowed to work on it. Also, I was given noncoding tasks for a time or generic unit test tickets for functions that didn’t need it.

Eventually, I and the other junior got a task that was basic and miscommunication led to a delay and they complained about us both because of how it took. Then the assignment that sealed my fate was I had to implement a microservice and node API with a unit test in 2 weeks. There was a reference code but we couldn’t ask for help from senior developers. When my manager saw my progress he PIP'ed me and then when saw the demo he was underwhelmed and said I couldn't justify the code had a poor understanding of restful API concepts and my test didn’t meet functional requirements he wrote up the paper to basically have me fired.

Show more
1 Like

How to maximize learning and continue to up-skill when you are overloaded with work?

Student with entry-level software engineering experience at Other profile pic
Student with entry-level software engineering experience at Other

To give some context, I am a Masters student in the US, with 5 years of experience as a software engineer. I try my best to learn as much as I can about Software development, Machine Learning, System Designs and everything developers are interested in.

I read blogs, books, research papers, and news feeds from LinkedIn, Twitter and I am part of multiple discord channels of up and coming AI startups and open source communities. I am also part of GDG study groups who connect on slack that focuses on Google Cloud solutions and discussions on Taro as well. So, I basically have a lot of data sources and I am overloaded with information.

As much as I want to focus on one domain (ML in my case), I don’t want to miss out on what is happening in the industry. I am trying really hard to reduce distractions: I have setup a second brain account with Notion, which has helped me organize the informative links I receive from my data sources but I am always doing a catch up because there is only so much I can learn and remember.

I am working on a bot which can classify discord messages as random conversations or important links or conversations and push them to my notion database. I want to expand this to other data sources eventually so I can ignore comments and random conversations lying around a certain topic which are irrelevant.

I also have a lot of hobby project ideas that I have noted down like PRD documents, some very small which can be built in few week and some which will take months to build with a good architecture.

You can ask why I am trying to learn everything. My simple reason is little bit of FOMO and a fear of not knowing enough. But also, as a CS student, I am also preparing for interviews and I want to be able to explain how a certain technology works and be able to build and design using those technologies.

I have faced this information overload while I was a software engineer and continue to feel it as a student. If you have read till here and you are able to relate to this, I would like to know how you would suggest one should go about staying organized and maximizing the information gain.

Show more

Design skills for software engineer at different levels

Entry-Level Software Engineer [L3] at Google profile pic
Entry-Level Software Engineer [L3] at Google

Hi my software engineer friends,

Want to ask what is the requirement for design skills at different levels.

I am a software engineer, and for each project I always write a design doc, most time I am listing different options for some implementation. But that is mostly about different ways of data flows, the pros and cons of each data flow. It is not related to design patterns, nor architectures, but it seems enough to move on with my project and team is generally OK with design doc like this way. To make a good design, I feel right now it is more about context, about familiar I am with team's tech stack and all the data flows, and make good judgement about how to implement something.

I also have that in mind "do not try to apply design patterns for the sake of applying it, use it organically".

So a few questions I have

  1. Is it normal that in software engineer's daily job, the design is just about how to implementation something? Or I need to try to apply any design pattern or architecture? Is the general design concept same as object oriented design? Want to see am I under design stuff or I am overthinking about this
  2. How to you learn the design skills, especially to the space of web application?
  3. Any books recommended for designing web apps?
  4. What is your opinion about design skills at different levels?
  5. Do you think design is the core skill of a software engineer?
Show more

Should I continue being a mentee with my assigned team mentor?

Entry-Level Software Engineer [L3] at Google profile pic
Entry-Level Software Engineer [L3] at Google

My manager had assigned a mentor for me on my team to help onboard me. My assigned mentor asked me about what timing works best for me and I told them I gave them full discretion around timing and cadence since my calendar was basically completely open compared to theirs. By the time we had our first 1:1, it was a 15 minute time-slot right before our daily standup. We would have these mentoring sessions ~2x a week for a few weeks before these mentoring sessions just fizzled out and stopped completely.

Now my manager is urging me to continue these mentoring sessions with the same assigned mentor citing that the reason they fizzled out was because my mentor "was not sure whether I wanted to continue the sessions and was waiting for me to set up more sessions if I was interested" even though I had expressed enjoyment of the sessions we have had thus far.

Should I be proactive here in reengaging my assigned team mentor and scheduling mentoring meetings with them? I wouldn't mind having a little more time than 15 minutes per session and in a different timeslot than right before standup, but I respect that it is tricky considering the mentor is remote and in a timezone 2 hours behind the rest of the team. I also wouldn't really know what to proactively ask them for during these sessions beyond typical work questions as part of working with them on the same team. How proactive should I be here?

Show more
1 Comment

Help needed: New grad job going at a slow pace with nothing to do - Next steps?

Junior Engineer at JPMorgan Chase profile pic
Junior Engineer at JPMorgan Chase

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:

  1. Self-assigning myself work

    1. This won’t work because a) I don’t think that’s allowed and b) I’m not yet onboarded enough to be independently productive
  2. Asking to pair program

    1. I’ve mentioned this to two engineers, to no avail

    2. 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:

  1. Stay until the tech market improves

    1. 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).

    2. It seems like the only two things I’m getting out of this right now are a) income and b) resume continuity.

  2. Switch jobs

    1. 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.

    2. 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.

  3. Switch teams

    1. Internal mobility isn’t an actionable option because the program managers want us to spend at least 12 months in our first role.

    2. Also, to switch, you’d need to both find another team via internal networking and have your current manager sign off on the transfer.

  4. Quit

    1. 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.

    2. 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.

    3. I’ve tried to use my downtime to read books (like Designing Data-Intensive Applications), but this doesn’t remotely replace doing actual work.

    4. 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.

Show more