Profile picture

Software Engineering Intern Career Development Videos, Forum, and Q&A

How A Software Engineering Intern Can Grow Their Career

An internship is a period of work experience offered by an organization for a limited period of time. In software, a software engineer intern tends to have stronger importance with more competitive pay and real projects to work on.

How to make up for mistakes?

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

A few days ago, I almost broke production.

Our company doesn’t have any formal CI/CD protocols. When we ‘push to production’ that would mean testing code on our local computers, then going onto our single production machine, clone our changes, test on the production machine, then merge to main. The dev team was incredibly small, but this process started failing when more people worked on the codebase.

My manger strongly prefers merging one large feature all at once as opposed to merging changes bit by bit. Even though I pushed for the ‘one diff, one thesis’ approach, he pushed back on it. He would rather clone my entire feature all at once over making small changes.

A week and a half ago, I finished my main feature. My code successfully worked on the production machine, but my manager kept pushing back on actually landing the code to production. I kept pushing for my manager to push my code but he kept extending the due date. Now that I’m close to my internship, he is asking me to push code.

The issue is that and another dev were trying to push their features to production. The other developer went first since his feature was smaller, then it was my turn. When it came to merging my code, I made errors in resolving merge conflicts, which resulted in errors. I tried ‘undoing’ the commits by reverting changes (when I should’ve done a reset), which caused the commit history to become longer and more complex, making the situation worse. After rolling back commits, somehow even the old code wasn’t working.

My team and I are working to resolve the issue, but I was really upset throughout the whole process.  I’m frustrated at my own incompetence with version control, but I’m also frustrated with my manager for not listening to my suggestions, as I think this would’ve been prevented if I had integrated my code earlier and in smaller chunks.

My team knows that it was a version control issue (as opposed to a code issue), especially since I showed them on two different occasions that my code works.

How should I handle this situation? I definitely feel like I should apologize but how can I make up?

Show more
Posted 8 months ago
50 Views
2 Comments

What questions to ask recent new grads

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

My company is a mid-sized unicorn and they’ll be hosting an in-person gathering with some recent new grad SWEs (they have only worked at the company for 6 months) to talk with incoming NG SWEs such as myself. I’m wondering what questions I should prepare? I’ve thought of the following:

  • Logistics (living situation, commute, etc.) - it’s boring but I think it’s fair to ask since most new grads will be relocating for the first time
  • What would you have done differently in your first 6 months here?
  • What’s the most important thing you think everyone should know?
  • What does feedback with your manager look like? How is your relationship with your manager?
  • What are some things you think we should do beforehand to best prepare us for the job?
  • I know that the company has a very customer-centric engineering culture. Do you recommend us to spend more time prioritizing talking to customers or spending time doing engineering work?
  • (Company prides itself on fast career growth but also doesn’t have leveling) How has your ownership grown over the time you’ve worked here? Have you had the chance to demonstrate leadership? What metrics do you use to measure career growth?

Is there anything else that I’m missing? The company promotes SWEs directly to tech leads/managers and doesn’t have leveling. Ideally I’d like to ask questions to get a better understanding of how to get to these positions fast. What types of questions would give me an understanding of how to "play the game"?

Show more
Posted a month ago
50 Views
1 Comment

Getting over integration/end-to-end testing ‘fatigue’

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

Every time I complete a project (regardless of setting), integration (or end-to-end) testing is the task I least look forward to. In my mind, I’ve probably spent weeks building and individually testing each component, sometimes testing 2 or 3 components simultaneously. By the end of the project, I feel tired and just want to work on something new, so I rush to the finish line and call it a day the moment I get all my components working together.

I’ve seen the course on creating a test plan. I tried implementing this, but as mentioned above, by the time I’ve gotten to this stage, I’m so fed up with the project where I just write a couple of basic tests and tell my boss I’m done.

As much as I have an icky feeling shipping something I don’t know is fully working, I also feel so tired and just want to move on to the next thing.

One solution I tried was using automated tests (sort of like TDD to a certain extent) - I’d set up some expected behaviors at the start of the project and run these integration tests at the very end. It’s great if it works - making it automated significantly reduces friction of running the tests, and you get to ‘eat the frog’ by coming up with a more comprehensive set of tests at the start.

The bad part is it only works if you can get automated testing to work. Most times integration testing gets tricky to automate, especially if you can’t mock out stuff like networking code and databases. Automated tests also take time to maintain. As a result I tend to forgo automated testing.

A naive approach is to apply my strategy but instead of doing automated testing, just do it manually. The issue is that it feels painful having to verify correctness manually. And it’s especially discouraging if you manually verify your code to be wrong.

So what are some solutions that can help me get over that last mile? Any suggestions for some low friction ways to set up tests without using automated testing?

Show more
Posted 9 months ago
48 Views
1 Comment

How do you prevent logarithmic productivity?

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

Every time I work on a project, the amount of progress increases logarithmically. This means I start off really strong and I end off really weak. I’ve noticed this for a majority of projects that I work on.

I think a big reason why this happens is because when my project is able to get 50-60% of cases (ie it works but don’t touch it), internally my brain feels like it’s done and I don’t want to work on it anymore. When I start off a project I get huge boosts in dopamine when I finish a part and get it to work. Over time there are fewer and fewer things to do and I don’t get as big a dopamine hit when I gradually finish up remaining features. This gets really ****bad when I try to think of edge cases, because it’s not entirely clear what needs to be done, and I don’t even know what edge cases exist.

This has affected the quality of my work and I would like some strategies of keeping high output even towards the later stages of a project which involves less excited parts of work.

I think this somewhat relates to Alex’s video on “”, but I feel that the hard part is that I don’t even know where to begin. I don’t know where edge cases may. On a component level it’s not too bad, but when you’re doing integration testing and when the space of possible inputs is extremely high, it feels like you’re put in the middle of the ocean.

As an example, recently I was tasked with writing a bot to draw an ordered set of lines, curves and arcs on a canvas. The input a vector representation of the drawing and the output is an mp4 recording.

First 3 days went pretty well. In fact, I pretty much built the entire system and integrated everything. The annoying part comes to solving edge cases from integration testing. For the next 7 days I spent days kind of just sitting around, testing my system, and getting bored. I was waiting for my partner to finish his part of the system.

What strategies are there to make my output more consistent? I tried doing a test plan but they tend to be really shallow because I don’t know how the system looks like/what edge cases look like until I’ve actually built the product.

Show more
Posted 4 months ago
41 Views
2 Comments

When to trust conventional wisdom when making career decisions?

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

tldr: I have an offer from Meta and a niche growth-stage (series D+) startup. My gutfeel is telling me to go to the startup even though it’s all against conventional wisdom to go to big tech, and I don’t know if I’m making a mistake.

I got into a growth-stage startup that’s relevant to my background and aspirations to be a founder.

  • Engineers talk to customers, work with sales and scope projects with PMs. These tasks are important skills for me. Meta is more siloed until E5, and even then it’s still not quite end-to-end.
  • I talked to over 10+ engineers (including 2 friends) and all of them love working there despite the long hours. I’ve heard both the pros and cons and I know what I’m getting myself into.
  • I aggregated all of the new grads’ starter projects and compared them with my friends at FAANG. My big tech friends say that the new grads at the startup are doing FAANG mid-level work as their first project.
  • The team I’ll be matched to aligns very well with my strengths and interests. Whereas I won’t know team matching with Meta until later.
  • Business is doing well. VC friends said there’s a strong growth trajectory in a hot space. Cap table is all the top VC firms and angels.
  • It’s a stable company and few performance-based layoffs, in contrast my friends at Meta are all stressed about PSC.
  • If I don’t take a risk now then when will I?

However, it seems like every forum and well-regarded figure (Interviewing IO, Ryan Peterman, Dan Lu, even Taro, etc.) in the SWE space advises the opposite: join big tech over a startup for career growth and brand. Brand is especially important and is what’s holding me back. I don’t have any name brand companies on my resume. My friends with big tech have a 20-30% callback rate whereas mine is 5-7%. I might learn way more at the startup, but won’t be able to transfer these acquired skills if I can’t find a job in the future to transfer them to. Throwing away Meta feels like keeping myself trapped.

This makes me question whether I’m being overly optimistic (even delusional) of the startup. I feel like I did reasonable due diligence and, reasoning from first principles, it seems like this is the better opportunity for me.

  1. I’m wondering if someone was in my position and regretted not going to big tech?
  2. Is there any more due diligence/questions I can do to reach a more definitive decision?
  3. Is Meta’s brand name worth more than career alignment or goals?
Show more
Posted a month ago
40 Views
3 Comments

How do flat corporate structures affect leveling at big tech?

Software Engineering Intern at Taro Community profile pic
Software Engineering Intern at Taro Community

I know a few companies that have pretty flat corporate structures. A pretty common example of this are quant firms - they usually only make a distinction between regular and senior SWE, with no higher levels. But this also happens at tech. For example, my friend at Palantir said that the hierarchy is pretty flat, so there’s no level distinguishing between them.

I’m currently interviewing with a rocket ship startup and they seem like a great place for career growth, but everyone’s title is SWE. Most of their engineers are ex-FAANG, so talent is top notch. Having talked to multiple engineers there, they all agree that by their first 1-2 years, they’ve taken full ownership of a vertical in their respective teams and some even leading cross-team collaborations. Would this be considered top-end E4/E5 level scope?

My worry with these flat hierarchies is that you’re able to demonstrate scope but you don’t have the title to match up to what you show. And while title is just a string, I worry that recruiters will use your ambiguous level against you? For example, if you’re an engineer with 2 yoe demonstrating E5 level behaviors without the title, how would recruiters level you?

And a more general discussion: how do recruiters figure out how to place you in the correct interview loop? Is there a way to ask the recruiter to move up or down a level?

Show more
Posted 7 months ago
38 Views
2 Comments