My software engineering internship experience at Asana
October 18th, 2019
When I think back to my undergraduate days at the National University of Singapore (NUS), one of the most valuable experiences I had was my software engineering internship at Asana during the fall of 2018. Since then, I’ve graduated from NUS and started as a full-time software engineer here in Asana’s San Francisco headquarters.
When I first heard about Asana, the culture stood out to me immediately. I remember being impressed by the company values and engineering values. On top of all that, the mission felt especially important: To help humanity thrive by enabling all teams to work together effortlessly.
Like many students, I was initially skeptical (as one should be!) that Asana’s culture might be too good to be true. But after I got here, the reality matched up to—if not surpassed—my expectations. Asana felt like a great place for me to grow as a whole person (not just as an engineer) and dedicate my energy toward a positive and ambitious mission. This is the biggest reason why I decided to start my career here, so I’m excited to share more about my internship experience at Asana!
Delivering on our product roadmap
Unlike other internship experiences where interns might work on low-risk, isolated projects, interns at Asana are treated like full-time employees. I delivered on our product roadmap with the rest of my team, and I also got the chance to showcase my team’s work at Show & Tell, a monthly All Hands meeting where representatives from different teams explain what they’re working on and why it matters.
The main feature that I worked on was Forms, which launched in early 2019. Forms allows users to create a streamlined way for people to request work or submit information to their team. Each form submission gets converted into a task within a designated project in Asana. By standardizing this process, teams can get the details they need up front and follow up on those items more effectively.
It was deeply satisfying to see how I contributed to the launch. I built out most of the foundation for the in-app form editor, which involved:
- Writing queries to load data from our backend into our frontend.
- Abstracting different parts of our app logic into the appropriate React components.
- Implementing mutations to write data to our servers.
- Writing tests for all of the above.
Building a team-based mindset
I frequently collaborated with other Engineers, Product Managers, and Designers from around the company, and I even helped onboard some of my full-time teammates onto parts of the codebase where they needed more clarity.
Throughout my internship, I was often encouraged to think about my work as it related to the team’s goals, rather than my own individual output. Writing code can sometimes feel like a solo endeavor, but at Asana I learned that effective engineers are able to cost and prioritize different pieces of work, and do them in a way that can be built upon by other engineers with minimal friction.
Shipping features during offsprints
Offsprints are special times throughout the year where we set aside a few days in our sprint schedule to work on projects that are not directly related to our team’s goals. I see offsprints as one of the ways that Asana has put mindfulness into practice. They provide space to pause and reflect, and dedicate time toward other priorities that might not fit into our regular schedules. This could mean shipping a small polish feature, improving our developer tooling, or more generally, spending time on our own Areas of Responsibility.
During my offsprints, I shipped a toast (a type of non-intrusive notification that pops out from the corner of your screen, like a piece of toast!) that prompts users to refresh their Asana web app. This toast helps us to deliver new features to our users and deprecate old app releases more quickly. I also started an initiative to add a new Prettier rule that enforces trailing commas in our TypeScript code, making code diffs cleaner and easier to review.
Experiencing growth and mentorship
Whether you’re an intern or full-timer, all new engineers get paired with an onboarding mentor on your team, who is responsible for helping you transition into your new role at Asana. For interns, this person is also your intern mentor. Aside from giving you feedback, they also focus on supporting your career development and making sure that you are successful during your internship.
I had a great working relationship with my intern mentor, in part because I felt that he genuinely cared about my growth. When walking me through tasks that I was unfamiliar with, he would teach me how to unblock myself instead of telling me the answer right away. He also encouraged me to learn more about the context of the work than was strictly required, and I appreciate how he was always willing to spend time explaining underlying engineering decisions in the areas I was curious about.
During our weekly one-on-one meetings (1:1s), he would ask me questions like “Are you learning well?” and “Do you feel challenged by the work that you’re doing?” These questions set a foundation for us to have frequent high-bandwidth conversations about where I was excelling in, as well as potential opportunities where I could grow as an engineer. Effective 1:1 meetings speak to how much we value providing great mentorship for everyone at Asana.
Experiencing life at Asana
Being a part of Asana’s award-winning culture was probably the biggest takeaway from my internship. Kindness, encouragement, and curiosity were common themes in the everyday interactions between people, and I could tell that the company put a lot of care and attention into building an open and inclusive workplace.
Where some companies might find tension between moving fast and making sure everyone is fulfilled and growing, Asana sees that as a false tradeoff. Asana believes that investing in a culture where people are thriving and empowered to do their best work is exactly what drives our business success. The way we commit to this is by treating culture as a product—continuously iterating on it based on feedback and making choices by design instead of by circumstance.
Why I chose to start my career at Asana
As my internship ended and the time came to weigh my career options, I knew that growth and learning opportunities were high up on my list of priorities. I felt confident that I would be able to gain responsibility quickly at Asana given our culture of empowerment and trust, whether that involves owning various parts of the tech stack, and/or taking on any leadership roles.
Working at Asana has given me really high expectations when it came to choosing a company, and has inspired me to hold myself to that high bar as a co-creator of Asana’s culture. I’m glad that this is a place where I feel happy and motivated, because of the people around me and the work that I’m doing.
We’re obsessed about helping teams of all shapes and sizes become more productive, but enabling all teams to work together effortlessly is only one part of our mission. All human progress comes down to groups of people aligning their energy in a common direction, and Asana can accelerate that progress by helping them accomplish their goals more quickly, whether they’re working on improving healthcare or sustaining our environment.
How can Asana empower everyone to work together and solve the world’s most pressing problems, to “help humanity thrive”? This is a question I care about a lot, and I’m incredibly excited to add my energy toward this ambitious vision.
We’re only just scratching the surface, so we’re always on the lookout for talented people to help us achieve our mission. If what I’ve described about Asana resonates with you, I’d love for you to join us so we can grow and do meaningful work together!