Junior Engineer

Junior Engineer

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.

Stay at current company or take a chance with smaller less established firm?

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

I recently had an interview with a small health care and wellness firm: ~500 employees founded in 2008. The potential pay increase would be significant for me (25-30%; 42% factoring in their annual profit sharing bonus - not guaranteed) and its definitely a promotion for me as its a Sr. Engineer role however I’m torn on whether that justifies leaving my current job. 

My current company isn’t that competitive with pay and many times I’m restricted as to what I can or can’t do outside of work to make additional money because of potential conflicts of interests for them. I also am a bit tired of having to disclose every financial transaction and personal financial data to them. It’s very frustrating. I do have stability with my company and I enjoy the variety of experience from projects and tech stacks I get to work with. 

This new firm however, per Glassdoor reviews, seems to indicate that management are strictly top-down decision makers (“my way or the highway”), have a tendency to micromanage with lots of turnover in management as well. Employees, especially a few engineers, have noted how there is a poor work life balance. I’m not confident in their business yet either from what I’ve researched since their product is banned in Australia although they are supposedly in Inc. 500’s list of Fastest-Growing Companies.

Maybe I'm only focusing on the extreme negatives.  Would love if anyone could weigh in with their $0.02.

Show more
47 Views
1 Like
3 Comments
2 days ago

How can I handle a situation where honest mentoring resulted in junior acting rude?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I am a senior engineer and closely guiding a junior engineer on the implementation of a new micro service. I have provided her the high level design for same and staying consistently involved in any low level design discussion, blockers and code reviews.

However, I am involved in multiple tracks and it’s not possible for me to randomly pause everything and answer her queries right away. Therefore, to keep her unblocked, as there are stricter deadlines, I also setup twice a week invite where she can get my help on any discussion or questions, as required.

Still, in an unofficial feedback she told me that she was blocked on my time and I need to give more time to discussions and PRs. I tried to give some helpful return feedback that she should be asking pointed questions to get quicker help, and also she should do some research before right away asking for help. I also told personal examples from my career journey regarding how I navigated situations when I got blocked on a senior’s time.

However, this resulted in her passive aggressive behaviour towards me. One such behaviour example is in code review - when I commented that local environment specific initialisation code shouldn’t be in the main classes, she responded that she doesn’t see any problem and it’s just unnecessary.

How do I handle this situation better?

Show more
449 Views
7 Likes
5 Comments
a month ago

What is a hiring manager's opinion on a candidate who takes some time after being laid off to work on side projects/freelance?

Entry-Level Software Engineer [SDE 1] at Amazon profile pic
Entry-Level Software Engineer [SDE 1] at Amazon

I am an SDE1 that was recently laid off from AWS (~2 YOE total). Lately, I have been reflecting on what I wanted to do/what really excites me. I really enjoy software development and while I do want to get another job one day, I wanted to use this opportunity to scratch my entrepreneurial itch and create apps/websites/side-projects for fun or for many small business owners I know that need someone to create software for their business. I'm not sure how long this "break" will be but I would say ~2 to 3 months time. Part of this is inspired by Alex Chiou's love for side projects.

I understand that finding a job will take some time as well, so the total gap on my resume that will be filled by this freelance work/applying might be ~6 months total. I understand that there are other posts on Taro that talk about the impact of a career break but this won't necessarily be a break per se. On my resume I will put this down as freelance work I completed for clients and will be prepared to show potential employers a portfolio of what I did.

I was wondering if this would negatively reflect on my application when applying for SDE jobs again/will make it harder for me to land a job. Alternatively, I could begin applying and interview prep now and only work on these projects on the side. Thanks.

Show more
362 Views
3 Likes
2 Comments
22 days ago

Stuck as an Entry Level Engineer

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Hello,

As the title says, I’m stuck as an entry level engineer in FAANG for almost 4 years now. I’ve been reflecting on what I’m doing wrong.

My first company I worked for 1 year and didn’t not like it because the lack of mentorship. I joined and my questions never got answered, the tech lead didn’t really care about giving mentorship, just gave me links and bug IDs. I was able to survive for 1 year but I left the company because I felt so lost. My manager mentioned that I was “on track” to getting promoted but I hated the culture.

Then worked for 1.9 years on another company, where I received awards for my projects and contributions. I did receive mentorship here, but I was not able to get promoted. At the end of the timeline my manager mentioned I was moving slower and slower. I was working as a full stack and I believe my error here was not playing my strengths, since every time I had to take another project it would be on a different area, such as server on a language I never used before. I had a few discussions with my tech lead and I felt I lost my team trust because they would give a lot of comments, and just get a lot feedback from other people. This kinda demoralized me and made it hard to keep working so I changed teams. My last team I worked for 8 months before getting laid off. Here I also received recognition for my projects. My first project I missed the deadline because the onboarding had nothing to do with my project. I integrated our tool with an external team, so most of the code base I worked was not even ours (the techlead and team didn’t have much knowledge). Then I was given another project where I was starting to get traction, onboarding and project matched, I had to ramp up again on the new tech stack and my manager was getting frustrated with me, my team was very helpful and I was slowly to become independent. I feel like people trusted me here and code reviews would go smooth this time, at the end I was finally getting positive feedback, but was affected by the layoffs. From reflecting, here is what I did wrong:

  • Not communicating well enough my work with my managers. Status updates I was blocked/learning and that would make me look slow.

  • Not very good mentorship, I feel like at the beginning I needed lots of 1:1 to be able to learn our teams codebase. Sometimes I got very good mentorship but not complete. So I learned well parts of the code base where the tech stack applied.

  • Switching projects too much, went from front end, full stack, server side with several languages. Every time I had to re learn a lot of new of the tech stack.

I did get several recognitions for my contribution with at least helps me think I’m not completely inadequate for the field.

I am looking for a new position, is there anything that could help me perform well as a mid engineer?

Thanks

Show more
357 Views
8 Likes
2 Comments
3 months ago

Should I be wary of what tools I work with to maximize delivering impact?

Entry-Level Software Engineer [SDE 1] at Amazon profile pic
Entry-Level Software Engineer [SDE 1] at Amazon

I've always been the one to dive into problems and solve them without thinking about how difficult they are but recently I've been running into this failure mode where many of the problems I work on involve using old tools that are cumbersome to work with. The result is that it takes much longer to deliver my work compared to those that work on packages with newer tools (I'm talking about native AWS lambda, s3, dynamo, etc) and sometimes I wonder if I'm doing what's best for my career.

Some cumbersome tool examples include

  • One package uses an old technology that doesn't allow us to test our changes in our dev desktop before we can submit a PR
  • Another package doesn't map correctly our dev desktop to the prod environment so it's sometimes difficult to reproduce the issue
  • Some non aws tools do not really provide much information to help the user debug their problems compared to the native aws tools

My company has at least acknowledged the issues with the above first two bullets and has slowly started deprecating those tools. Oftentimes the senior and mid-level engineers work with newer tools and therefore aren't as familiar with the older ones, which is fine. I could just avoid working with these packages altogether and only work on the packages that involve the shiny new aws tools but I'm not sure if that mentality is what's best for my career.

Show more
443 Views
3 Likes
2 Comments
4 months ago

How can I help juniors?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I am mentoring juniors for the last few weeks. In the past, I've been mentoring people with some professional experience but this colleague doesn't have any. Now, after these few weeks I am wondering:

  1. How much time should I spend helping them? Currently, I have to spend 2-3 hours for person per day otherwise they will be blocked for days. Even though I am trying to explain that they can ask other colleagues as well, they are not asking anyone else.
  2. How can I be sure what are they suppose to know and what's not? For me, I have my own understanding of what they should know but I know for others may differ. In my country the juniors must be part of an academy before applying for a job. I know what they learn there, so I know what hthey should know and what not. Now, after these few weeks I realize they have gaps which they shouln't have. On the other hand, the academy is typically more than an year and it makes sense many things to be forgetten with the time.
  3. How can I measure properly their performance since they are just starting? What is a normal performance?
  4. How deep should I go in explanation of his questions? I believe this is where the high quality questions will help them, but I believe they have a lot of gaps to make a quality question and give the proper context.
  5. How can I help them to improve their questions instead of having to explain for hours one topic and then another, etc?
  6. When should I say I give up on him? I really want to try everything before giving up.
  7. How to stay less emotional when explaining the same things for hours to the same person?
  8. How can I help them to understand me better? Sometimes, no matter how am I explaining specific case/topic and no matter what examples, nothing helps.

I think the colleagues are really motivated and this is one of the reasons I want to help them. I want to be sure I did everything I can.

Show more
1.1K Views
18 Likes
13 Comments
4 months ago

Writing unit tests for a new component in React

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Hello,

I am an Entry Level Engineer at a mid sized company. The thing is, my team has a very strict deadline which we have to meet at all costs. For more context, I have been with this team for around a year now. I had done some menial tasks of building small easy features and styling the components in React. I have a task now where I am supposed to write unit tests for a particular component from scratch in jest. ( I think this is a learning opportunity in disguise but concerned if I might not able to finish the task, as I already got a call out in team standup that my area is lagging behind )

The thing is I have not done this kind of task before. I am super overwhelmed with this kind of situation and everyone in the team is expecting me to deliver it asap as we have a strict deadline.

I tried to convey that this is something of a new task I am trying to a senior engineer to understand how they solve these kind of problems, but was mocked in return and was told I should already know (I agree to some extent ).

The approach I am trying right now is to understand the functionality of that part of component, trying to understand the code written for that and start making my own tests cases. I am also looking at the other unit tests written for other components but feeling super overwhelmed as I am clueless what to do. Could someone please advise me how to approach this problem ?

Show more
203 Views
1 Like
4 Comments
4 months ago

Success story after PIP?

Entry-Level Software Engineer at Series E Startup profile pic
Entry-Level Software Engineer at Series E Startup

I transitioned into a backend engineering role 1 year ago after working as a data analyst for 3 years. The jump was definitely big to me, as I had to learn a lot of new concepts (OOP, clean code, architecture, devops etc). The transition was done through internal hiring where they did a live coding interview (2 easy leetcodes), a live system design interview, and motivational interview. I passed all of those and ended up in a high-paced team.

The team was severely understaffed. The manager was managing 3 teams that decreased from 20+ people to <10 people and there was hiring freeze. There was no proper onboarding and all the seniors were too busy with tasks to help me properly. I did my best to read the documentations and set up 1-1s with more senior engineers from other teams that could help me. I finished several projects although carried over some to the next half.

My 1st performance review was "meet expectations". However, before my 2nd performance review, there was a manager change and this manager gave me "partially meet expectations" and then said that I would be put on PIP program. When I asked the manager what the program would be like and how many people completed this successfully, he/she couldn't give a definitive answer and said that HR would be in touch me.

I decided to quit and spend time to learn more fundamental concepts and take up a freelance project. It's been 2 months since then. Right now I feel like I'm learning a lot in these 2 months compared to my 1 year in that company, but I can't help but feeling very anxious with all these layoffs and the incoming tech winter. I don't have any self-confidence within myself that I would get any decent job, especially after getting an incoming a PIP, I'm just worried that when I'm interviewing at my next job, the career gap in my resume and the past potential PIP would deter me from getting any jobs. I'm also at loss on how to avoid potential PIPs in the future. Any advice to help me? Thank you very much.

Edit: For more context, I didn't come from a CS background (I studied Mathematics). My team was not a revenue generator. The company was especially hit really hard during covid and had 2 big layoffs. When I left, there are many products that are being shut down and a couple of senior-level product managers left as well without being replaced due to hiring freeze. During the talk of my PIP, the manager brought up his/her expectations on me that was 1 level (mid-level) above my current level (junior-level).

Show more
707 Views
10 Likes
7 Comments
4 months ago

How do I improve at building systems?

Entry-Level Software Engineer [IC1] at Nvidia profile pic
Entry-Level Software Engineer [IC1] at Nvidia

I work on a product that runs on a variety of architectures, with code split across many GitHub repositories. We have a complicated build process. When making changes, I often struggle to find a way to run those changes efficiently (i.e. outside of the CI process). This is made worse when I need to make changes that also change the build process or need to run debugging tools like GDB.

When I onboarded, I was told that everyone has their own setup by people who've been on the team since its inception. It seems like people newer than myself have figured it out, even with how messy and changing everything is. However, I've been here for over a year and the team tends to work quite independently. Occasionally, folks will be quite helpful for a point or two, but generally everyone's stretched a bit thin and tends to focus on their tickets. My manager has also rebuffed any requests for collaboration or mentorship since I started, saying that I'm expected to be independent to show I'm ready for the next level. He did say I could that I could try to change the team's culture to be more collaborative if I wanted to take initiative, but that's not what's expected of a software engineer, especially if I want to do well and get promoted.

This question may be more about how to correctly get answers answered when you're no longer new, but I also feel that building (CMake, Docker, environment setup, package management, etc.) is slowing me down. Are there good processes for getting more efficient at building components/systems and unblocking yourself faster?

Show more
81 Views
1 Like
3 Comments
7 months ago

How to become a senior engineer at early stage startup by finding problems to fix?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I am a junior engineer at a series A startup. I was interning for the past 8 months and got converted full time, now working as full time junior engineer for the past 3 months. I had been getting "Exceeds Expectation" from my tech lead/manager.

But from the past 3 1:1s from the tech lead. He mentioned that

1. My code is not up to the mark to directly merge without taking a much deeper look into. Basically mentioning that my code is not levelling as a senior engineer. There are no senior engineers in my team, I directly report to tech lead. So I really cannot learn how to write better code as he mentioned. Where can I learn this?

2. I have been just crunching tasks or helping someone without understanding the root cause. He mentioned I lack "Product Thinking". I am really not sure what he means by this. I thought helping others would help me grow in my career. By helping others I mean if there is a small task that is required by some other team, I just go and do it without understanding entirely what they want.

3. The founders keep mentioning that there is a lot of growth potential in our company

I really work hard every day from 8 AM and late 11 till night but the work I do is not helping me to grow and I want to grow and become a senior engineer. There are not even tests in our codebase, and a lot of problems I see in the way we do things which I don't know I can help solve . How can i grow? how can I tell them that I can be that senior engineer to solve the problems? How can I learn to make good decisions as to what needs to be prioritised in terms of which task needs to be done? If I don't know let's say how to write tests, how can I learn that and cultivate that in the team?

Show more
93 Views
0 Likes
1 Comment
7 months ago

Switch jobs or stay to eventually join big tech?

Entry-Level Software Engineer at Startup Company profile pic
Entry-Level Software Engineer at Startup Company

I graduated with a master's in CS 1.5 years ago and since then I have been working at a no-name brand company as a full-stack engineer. I would love to join Spotify but I lack prestigious grades and side projects. The tech stack I work in is somewhat old (Angular 2, .NET, no cloud, in-house solution for CI/CD, etc). The company is nevertheless alright and my colleagues are all very friendly, including my boss and manager.

If I would want to join Spotify, should I double down at my current job and try to get those side projects started, or should I consider another position in-between my current position and Spotify in order to increase my chances to join Spotify? The reason why I’m not a big fan of this idea is that I don’t like to join a company with the intent to leave within 1-2 years. The reason why I'm considering changing company is because I worry that my current growth could potentially be a lot higher than what it currently is.

Will my lack of experience in newer frameworks/tools be a large disadvantage to me when I’m looking for a junior/midlevel role at a tech company where being efficient in languages/tools is a must? Is it better to stay since I can make more of an impact now since I’m familiar with my company’s tech stack compared to having to go through an onboarding process at a new company which may result in decreased impact for that period? I would prefer to join big tech in 1 year as a junior engineer, rather than in 10 years as a mid-level engineer.

Show more
116 Views
3 Likes
2 Comments
7 months ago

How do I turn SWE roles behaviors/descriptions into concrete actions in a startup environment?

Entry-Level Software Engineer at Series B Startup profile pic
Entry-Level Software Engineer at Series B Startup

Question: "For being promoted from SWE I to SWE II, how do I take the behaviors my company has associated with each role (below) and make that more concrete for a growth plan, taking into account the changing & flexible timelines startups have?"

For context, I already have weekly one-on-ones with my manager (who is new at being a manager & is also my mentor), and a growth plan (that I created with him) that roughly outlines (meets most expectations, meets expectations and exceeds expectations for my role). Additionally, keep in mind I work at a startup w/ <30 people so highly specific concrete goals set on a particular date can change in 2-3 weeks as priorities change. Also, my company has defined a series of behaviors as to what each SWE level should be able to accomplish. Here it is.

Software Engineer I (<1 year - 2 years)

  • Technical Skill
    • Broad knowledge of CS concepts
    • Focus on growing as an engineer, learning existing tools, resources, and processes
  • Getting Stuff Done
    • Develops their productivity skills by learning source control, editors, the build system and other tools as well as testing best practices.
    • Capable of taking well-defined sub-tasks and completing these tasks
  • Impact
    • Developing knowledge of a single component of our architecture
  • Communication & Leadership
    • Effective in communicating status to the team
    • Exhibits company’s core values, focuses on understanding and living these values
    • Accepts feedback graciously and learns from everything they do

Software Engineer II (2-6Years+)

  • Technical Skill
    • Writes correct and clean code with guidance; consistently fellows stated best practices
    • Participates in technical design of features with guidance
    • Rarely makes the same mistake twice, begins to focus on attaining expertise in one or more areas(eg. embedded , testing, algorithm, support code, commlink).
    • Learns quickly and makes steady progress without the need for constant significant feedback from more senior engineers.
  • Getting Stuff Done
    • Makes steady progress on tasks; knows when to ask for help in order to get themselves unblocked.
    • Able to own small-to-medium features from technical design through completion.
    • Capable of prioritizing tasks; avoids getting caught up in unimportant details and endless “bikeshedding”.
  • Impact
    • Self-sufficient in at least one large area of the codebase with a high-level understanding of other components
    • Capable of providing on-call support for their area including systems that they are not familiar with.
  • Communication & Leadership
    • Gives timely, helpful feedback to peers and managers
    • Communicates assumptions and gets clarification on tasks up front to minimize the need for rework.
    • Solicits feedback from others and is eager to find ways to improve
    • Understands how their work fits into the larger project and identifies problems with requirements.
Show more
106 Views
3 Likes
1 Comment
8 months ago

What kind of organisations should a person join at different points in their career?

Senior Software Engineer at Grab profile pic
Senior Software Engineer at Grab

Part 1: Before Joining an organisation

  1. How can one identify the best kind of organisation to join at different point in one's career? I understand that the advice to this question may not be a prescription for all, but how can one identify places that would help them to maximize their learning and growth. For several other people, different parameters may be important for them as well such as work-life balance. Personally, I feel that WLB is dependent on a person more than that on the organisation. Thoughts?
  2. Quite often we feel that growth may be fast paced at startups, but there can be startups that do and don't promote the growth of a person. Given that there is no list out there to check, how can one make the best suited decisions for their career, not landing at a place they should not be at? What kind of research can a person do before joining an organisation?

Part 2: After joining an organisation

  1. Given that a person has joined an organisation, what are the kind of signals that they can identify to see whether the organisation is supportive of their career growth and is indeed the right place to be, for them?
  2. On several anonymous portals, there are people from the organisation that will talk poorly about an organisation when things are not going good for them. Managers can quite often paint a really rosy picture about the place. How do you identify the honest signal from the noise all around?
  3. If you find an organisation not good for you after you join there, how quick is it too quick to leave? How much time should you spend there before you can make a judgement about the same?
Show more
165 Views
5 Likes
6 Comments
9 months ago

Exceptional Team Member in team slowing promotion?

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

I have 2.5 years of experience and working as an L3 engineer at Snap. To give you a bit more context about the structure of my team, We have 2 L3s, 2 L4s and 1 L5 in the team.

We just had our half yearly performance review. The review I got from my manager for the half yearly performance reviews was “exceeds expectations”. Clearly, I am a high performer, and in any other case, having 2.5 years of experience, I would be looking at a promotion in the next 6months-1year. However, the other L3 in the team got “redefines expectations” in his performance review.

We have same years of experience. He is a better engineer than me. He manages projects better than me, his output delivery is faster than me, he’s really good at writing technical docs as well as communicating stuff to the important stakeholders. There is no debate as to who is the better software engineer in team.

My question is, how much having him in the team affects the speed of growth from my career ? I am completing 3 years of experience soon and want to get promoted to L4. However I don’t see any situation where I am promoted before him, and I worry that this means delay of my promotion considering he'd be promoted before me and we already have many L4s in the team.

Am I overthinking this? I just want to know if switching companies or teams would be more beneficial for me than waiting in this team. Should I discuss about this with my manager ? While he is very focussed on making sure that the teams does well, I don't get the feeling from him that he cares too much about my professional growth.

Show more
771 Views
23 Likes
2 Comments
5 months ago

Second switch in a short time for promotion?

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

Apologies for the long post.

Before Snap, I was working as an Entry Level Software Engineer in a company that had just IPO'd. The growth opportunity was amazing, and I was learning a lot, but I wanted to work for Big Tech for better compensation.

I worked in that company for 2 years after my graduation. And then I switched to Snap Inc as an L3 engineer. At my previous company, I was up for promotion in a few months, and I probably made the bad (in hindsight) decision to switch at that time instead of waiting for a few months, getting promoted and then trying for L4 at Snap (I don't know if Snap would still have offered L4)

Now I am almost completing 6 months at Snap (so total 2.5 years of experience) and I talked about promo with my manager. And he told me that he isnt putting me up for promotion in the next cycle (in 6 months) as I need more than >1 year experience (around 1.5 years) in the company for promotion. So this means the realistic cycle for which he would consider me would be a year from now (at that point I'd be 3.5 years work experience). Which to me feels way too late. For some context, I am a high performer with "exceeds expectations" feedback from my manager, so the only thing stopping me from getting promoted is my tenure in the company (acc to my manager)

My question is, should I wait for another year or should I start looking outward and considering I am 2.5 years right now (and 3 years by the time I get an offer) I should be able to get L4 in a Big Tech (I think?) I am not super certain about the future of the company as well so I will most probably be switching even after promotion.

All my college friends are L4's and SDE2's so I feel like I am behind in my career.

Show more
96 Views
3 Likes
2 Comments
2 days ago