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 5 months ago
43 Views
2 Comments

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 5 months ago
40 Views
1 Comment

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 3 months ago
36 Views
2 Comments

How to best approach manager regarding return offer after summer internship?

Software Engineer Intern at Taro Community profile pic
Software Engineer Intern at Taro Community

I completed an internship at a bank last summer. During the internship's end, I received positive feedback from my manager and had expressed a clear interest towards returning.

The recruiter informed us that headcount will not be finalized until January. She said we can contact her after then regarding return offers. In the past year, all the interns received return offers after the new year.

My question is: in January, how should I best approach the recruiter and my internship manager regarding return offers?

I am thinking of writing something along the following lines to my manager, but I am not sure if this is appropriate:

Dear [Internship Manager's Name],

I hope you are doing well! Thank you so much for the opportunity to intern with [Company X] last summer. It was a truly rewarding experience, and I learned so much during my time there.

I genuinely enjoyed working with the team and contributing to [internship project]. Given how much I valued my time at [Company X], I am very interested in exploring the possibility of returning for a full-time role.

Could you let me know the best way to discuss the possibility of returning to [Company X]? I’d be happy to provide any additional information you might need.

Big thanks for reading through all of this - I know it is a very long post and I really appreciate your time!

Show more
Posted 9 days ago
31 Views
6 Comments

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 “sweating the details”, 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 3 hours ago
7 Views
1 Comment