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 manage many tasks at once?

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

It’s been 5 weeks since I’ve started my internship and it’s been pretty overwhelming trying to juggle many responsibilities. I tried balancing school research, my startup and interview prep along with my internship, but I’ve underestimated how much time my internship has been taking.

I’ll start off with the good news first. I’ve been doing well in my internship and my manager is happy with my progress. I managed to implement a pretty critical part of their system that they’ll need in the future. I’ve also set up infrastructure for them to scale their codebase. I need to integrate my work into prod and implement some basic logging.

The bad news is that my internship has been taking much more out of me than I expected. I find myself spending 9-11 hours working daily and as a result, I haven’t been able to do leetcode, research or my startup. As a result here are the consequences:

  1. Leetcode: I’ve started applying for full-time jobs and I bombed my first OA. Having looked at the questions, I feel that I might as well have not applied at all as I can’t even get through them
  2. Research: My advisor hasn’t said too much about my research progress but my gut feel is that he thinks it’s slow. I’m in conversation with a big tech company about doing research with them in the fall with the potential for a FT return offer, and my advisor has a say in whether I can do the collaboration/internship. So I definitely need to do well in research.
  3. Startup: My cofounders and I have been working hard on sales but feature implementation has been slow. The feature requests are pretty critical in getting paying clients, so one day of waiting may mean a customer can churn.

The worst part is that every time I come back, my body feels so drained and I don’t want to do work any more, but I also kinda have to. I still have another 4 weeks to go for my internship and I’m wondering how to allocate my time.

Show more
56 Views
9 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
36 Views
1 Comment

Helping a new grad maximize job opportunities

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

tldr; friend is working a caretaker job whose employer is a tech lead and is interested in giving her work in 2-3 months. Other option is to take her return offer (RO) from her startup immediately (even though the startup is failing and has ~1 year of runway left). Should she take the caretaker job for 3 months or take the startup job?

I was talking to a friend who’s in a strange situation right now and I’d like some advice. The story is basically

  1. She got an RO from her startup but no other job offers. While she likes her coworkers, she doesn’t like the startup itself as it’s doing poorly. She expects the startup to have 1 year’s worth of runway. The return offer is flexible - if she asks HR that she wants to come back then she can show up the following week to work. There is no deadline for this RO
  2. Besides the RO, she got this job as a caretaker and her employer is a tech lead at a stabler company. She’s already signed the contract for this job. The tech lead said that they’re actively hiring and that they have some data analysis work that needs to be done that matches her skillset well, but the data needs to go through some compliance that lasts for a couple of months.

She has several plans right now:

Plan A:

  • Work the caretaking job + take her return offer as a remote position (need to negotiate for lower pay since startup doesn’t really like remote work), apply to jobs on the side

Plan B (Assume that she can’t negotiate remote work)

  • Work the caretaking job + apply to jobs + do side projects + interview prep aggressively

If her caretaker employer doesn’t have an opening by 3 months, she goes back to her full time job.

At least from my analysis, here’s the worst and best case analysis:

Worst case: She doesn’t find a new job in 3 months, her caretaker employer doesn’t have a job for her - she returns back to her startup

Best case: She finds a new job or her caretaker employer gives her the job - goes to that job instead

So the worst case doesn't seem that bad, whereas the best case can get really good. So would skipping out on 3 months (5 month gap since graduating) of professional experience really hurt her candidacy for future jobs?

Wondering if this is a viable strategy, or if there are better ways to approach this?

Show more
49 Views
4 Comments

What are tips for a college student to succeed in interviews and learning?

Student at Taro Community profile pic
Student at Taro Community

What's up everyone, thanks for taking the time to read this.

Over the next year and a half, I’m aiming to take my skills as both a developer and an interviewee to the next level. I’m currently a senior majoring in computer science and statistics, and I'll be graduating this semester to pursue a one-year master's in CS. My goal is to work at a FAANG or FAANG-adjacent company, gain new skills, and make connections in a major city (a bit cliché, I know).

Background: I’ve spent approximately 1.5 years interning at a Fortune 500 company, working on Cloud/SWE projects, and this summer, I'm a Machine Learning Engineering intern at a mid-sized company.

I'm trying to figure out how to most optimally put in my time for success this interview season. Outside of work and lifting, I try to spend. ~10 hours per week on LeetCode, ~7 hours on system design and ~7 on building projects.

I'm mostly looking for tips someone at my stage may not realize in software. For example, there are really ~15 patterns that once you have the hang of coding interviews become a lot easier than doing 50 array and sliding window questions.

Here are my main challenges:

  1. Securing Interviews: Last summer, I managed to get quite a few interviews but none from FAANG or similar companies. I also applied to data science and engineering roles, which increased my interview count but weren’t exactly what I’m aiming for. I’m keen on MLE, cloud engineering, or backend roles. Although I had referrals to a handful of tech companies, most were not software engineers. What strategies have worked to get interviews for you, or what would prompt you to give an intern an interview?

  2. Understanding Concepts/Designs: What resources (books, lectures, etc) have been invaluable for your interview prep, becoming a better developer, or learning fundamentals?

There's a pretty long post, thanks for any advice you can offer.

Show more
52 Views
3 Comments

What do I focus on this summer?

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

I have 4 main tasks that I have this summer but I don’t know if I’m allocating the right amount of time into them and I’d like some help on figuring out what to prioritise. 

Before we get into them, I want to list my goals this summer to motivate the 4 tasks I came up with (from most to least important).

  1. Get a return offer - pretty self-explanatory. It’ll take a lot of stress off this next job-searching season. I'm working at a small startup and amongst all early-mid stage startups, I’d probably take this one over them (assuming pay is around equal). With that being said, I’d much much rather be in big tech, which leads me to…
  2. Be interview and resume ready for the upcoming season. I think this decomposes into 2 parts
    1. Have very strong resume points about what I did. My project has reasonable scope and I think I can push to expand scope. Not sure if a recruiter cares about impact though. (Especially for new grads), would appreciate any insight on this (e.g, would a recruiter really care if you built a fully distributed KV store that helps the company store terabytes of data/day vs building a simple CRUD app)
    2. Be interview ready. Grinding Leetcode right now and I feel like I have a long way to go. On a good day I can pass a phone screen but I have trouble with on-sites. 
  3. Have research output for grad school - I’m in a grad program right now and I need to do work for the summer. During the Fall I have another research internship lined up with a well-known company (wouldn’t really call it big tech though). Part of this internship is showing my supervisor that I can handle the load of doing research while maintaining internship responsibilities. I also need to finish up my thesis.
  4. Personal project - I run a startup and I have a few big corporations reach out for a trial. Product is mostly built so mostly the work is talking to customers and fixing bugs
Show more
84 Views
6 Comments