by: mathurah

first-year learning guide to getting started in tech

Here’s a guide on how I was able to jump through a variety of roles in tech over the past 2 years: product design, consulting, front-end development, product management, and venture. A lot of people ask me how I was able to jump to different roles and discover something new each co-op term: this is a guide for those starting out their self-discovery process in tech, applying to internships, and kick-starting their learning journey.

This is definitely not an exhaustive guide and maybe might not even be the right guide for everyone! One of the drawbacks of jumping between fields has prevented me from gathering deep knowledge on every role, but my personal goal for all my internships was to be exposed to as many things as possible and get closer to finally landing on what I want to do full-time.

Figure out your why

Before getting into it I think it’s really important to figure out your purpose. If you don’t have an underlying why, it’s easy to feel lost and devastated after all the hard work and rejections, leaving you wondering why you even got into this in the first place. You don’t really need a noble reason to want to be in tech, but you need something that will keep you going!

It’s okay if you don’t have this all figured out yet — sometimes your why could change a lot over time. For me, tech was more of my creative outlet and connection to entrepreneurship. I also found some role models I really looked up to who are currently working in tech, so wanted to take on a similar journey.

Exploration phase

If you have the time it’s nice to take the time to explore what you’re interested in. There are so many smaller sub-fields involved in software development you can explore from mobile, (iOS, Android), web (full-stack, back-end, front-end), infrastructure/production engineering, data science, and more. — Not an exhaustive list — still doing some discoveries myself on what categories exist there.

How can you explore what you’re interested in? At a high level, see if you can talk to people who are currently working in these fields and see what their day jobs are like. You can find them on LinkedIn or ask someone you know to introduce you to them. Find some articles online that can give you an overview of what the field is like, for example:

After you’ve done this — see if there’s anything here that you’re interested in and really want to focus on! I personally find that I work better in sprints, so I would choose one thing and dedicate and focus most of my time on learning about that field through building projects. Maybe take a free online course that has a project component already incorporated into it, or you can also find hackathons and try to work on something in that confined time.

Learning Phase

Learn how to learn

Now the most important part is to figure out the best way you learn and set goals for yourself. Some people learn best through problem-solving and building things, other people learn best through structured courses and youtube videos — there’s no right way, but figuring out what resonates with you the most will make the process much easier.

The first thing to do is to set goals. Where do you want to be in the next 2 weeks, month, and end of the year in your skill development? Think micro and macro goals. Micro may mean learning how to use a JS framework, and macro — getting your first software engineering job. Your micro goals will contribute to achieving your macro goals.

Sophia has put it a lot better than myself — in her self-taught learning journey of tech, she put together a list of OKRs https://github.com/sophi-li/OKRs-self-learning to set goals for her journey. Especially if you’re not studying tech in school, creating your own self-learning plan can help keep things structured.

Celebrate the small wins and document your journey

Something that was so daunting about learning a new field was that skill development takes a long time. And it’s easy to lose motivation. What I found helped was keeping an accountability journal in early 2020 called https://mathu-learns.netlify.app/ to keep track of all the things I was learning — from life lessons to different frameworks.

Although I haven’t been updating it anymore, it was really useful at that time in my life to document my process and “learn in public”. And I’ve been finding other ways to document my learnings, by doing monthly/quarterly blog posts like: https://mathu.substack.com/p/2b-or-not-2b to share what I’ve learned over a longer period of time.

This is also a great post on reflection: https://www.neelnanda.io/blog/39-reflection.

Find a mentor — or your go-to person

When I was first preparing for software engineering interviews, I had a really great core mentor — Nicholas — who was SO supportive in my learning journey. He also had his own personal goal of getting better at teaching and potentially TAing a data structures course. It was a great fit for both of us because we both had the shared goal of learning (or re-learning in his case) software engineering fundamentals. We had learning sessions twice a week for the semester of Fall 2020 where we’d pick a topic (ex. greedy algorithms) and find a problem to solve within the limited time.

And I repeated this process for every new thing I wanted to learn. When I wanted to learn about PM, Jenna was amazing in being there for me from day 1, teaching me how to solve product case study questions and develop my product skills. With VC and design, Mackenzie and Eliana were my go-to people in helping me develop my skills and critically analyze market trends and which start-ups would be promising.

If you find someone who’s in the same place as you or someone who’s interested in teaching, having someone on your side makes the learning process a lot more fun and collaborative!

I only mentioned a few names but there are so many other amazing people who’ve impacted my journey, from my SYDE mentor Twinkle, and many others who, if I’d list, would be even longer than this blog post — all from amazing communities from UW Blueprint, Tech+, UW PM.

The main takeaway is I think that behind every person is a team of people and organizations who have believed in them from day one.


I don’t have a ton of tips for this, but I’ll link some resources other people have made:

After you make sure your resume follows some of these basic guides, try to get some feedback on your resume! Some schools might hold resume critiques as part of school clubs, but if you don’t have that, try to reach out to upper-year students at your school or alumni in your field if they have some time to give you some feedback.

My favourite platforms for making resumes are Figma, Canva, and Google Docs.

One note is that a resume is almost never done! There’s always ways you can iterate and improve on it, but the more you spend time on it, the less benefit you’ll get out — the diminishing law of marginal returns.


Be organized

Once you have your resume ready, it’s ready to start applying!!

I created a notion page for every single internship semester like this:

And within each of those pages, every term I’d have a tracker to keep track of jobs I’ve applied to, their status, deadlines, links, and any additional requirements. As you can see, a good majority of these are just sitting in the “Application Submitted Stage” — 90% of companies end up ghosting and not reaching back. Maybe I’ll have 5 interviews, and usually I’d only end up getting 1–2 offers if I’m lucky. Once you get closer to your graduation date, it starts to get a bit easier getting interviews.

One question I get is: Where do you apply for jobs?

  • There’s usually a GitHub repository made each year https://github.com/pittcsc/Summer2022-Internships(just search up Github [year] internships and something might come up) which has a ton of external roles.
  • https://ladder.to/ has some internship postings
  • Contrary’s Startup Search sends a ton of start-up internship postings sent every week
  • Jobs are also posted on LinkedIn as well, can do a Linkedin job search for a specific role!
  • YC Work at a Startup work for YC companies

Applying the non-traditional way

I knew just sending in my applications out in the void would always be a long shot. I could never really convey all my interests, passions, and impact just on one piece of paper.

Something I did a lot was trying to find non-traditional ways to apply to internships from cold emails to leveraging twitter.

When I applied for an internship at Repl.it, I pitched myself on twitter and put together a fun website resume to share my excitement for the job!

Another tip that also really helps is getting referrals!

The story behind how I got my internships/discovering new fields A lot of people ask how I got my different internships so I thought I would lay out the process for each one, and what may have contributed to getting them! Hope this is helpful for anyone recruiting for roles at the same places :)


For Deloitte, I attended the National Leadership Conference the summer after my senior year of high school, where they provided offers at the end of it.

Getting to go to the conference was a bit of a process — I pretty much ran into the same Deloitte recruiter multiple times at different events — Canada Learning Code workshops, hackathons — over the past year. Every time I saw her I’d share what I was working on, what I was passionate about and tried my best to make a case for the recruiter to let me go. It was the first time ever they let a high school student attend.

If there’s something you really want but still need some time to prove yourself/share your learnings, I find it helpful connecting with the recruiter and sending them email updates occasionally to share your learnings to show your passion + grit!


I applied and was accepted to their Dev Degree program so I assume my name must have already been in their system/they were familiar with my application. I actually applied in 1A as well and had a life story interview, but didn’t end up moving on because I didn’t have that much technical experience with their stack.

When I applied again for Fall 2020, in the break between work and school, I took a React for Designers Course and learned how to use React for the first time. I worked on a few projects: (https://mathu-learns.netlify.com/, https://we-all-learn.netlify.app/) and did some contract development work for a friend’s start-up. I used the website I made to apply to Shopify (since at the time, they required a link to a technical project I made).

An upper-year systems grad worked in the role I really wanted, so I messaged him to learn more about his process and he gave me a lot of advice — he built a really cool pomodoro app! He recommended learning how to build a web-app with some user interaction, so I went ahead and did that! He was also really helpful later on in the process in helping me prepare for it and can’t thank him enough!

Product management at Microsoft

For Microsoft, I applied for a UX designer role and had a final round interview before in 2019, but I didn’t end up getting the offer. I was a huge fan of the mission of the company and was involved in different ways from them being a sponsor for the Canadian Undergraduate Tech Conference and their support for Girls Make Games, an organization I volunteered with before university. I applied to Microsoft in August 2020 for their PM internship role with a referral, and didn’t hear back about an interview until early Jan 2021! The process ended up being really quick because I had a competing offer.

This was my first time interviewing for a PM role. A few resources I found helpful:

  • Cracking the PM interview
  • Decode and Conquer
  • https://thepminterview.com/ — this was a great website to practice interview questions on myself and had a bank of different behavioral and product questions
  • https://www.productmanagementexercises.com/interview-questions this is a great site to study product design and case study questions — can practice the questions and also learn from other people’s approaches
  • Exponent also has a really great product management interview playlist: https://www.youtube.com/playlist?list=PLrtCHHeadkHr8ro-vTg1CAdDuwrVmXS4y
  • I’d also recommend making a copy of the Behaviorual prepartion grid and prepare answers for the different experiences you’ve had in your life so far. What were the challenges you’ve faced, setbacks, and failures?
  • This was the most comprehensive resource: https://igotanoffer.com/blogs/product-manager/microsoft-program-manager-interview that was specific to the Microsoft interview. Jenna was my savior in helping me prepare for this — we had countless sessions to prepare, she pointed me to all these awesome resources, and also recommended other peers to practice with! Also thank you to Kai, Kanika, Vivien, and Angelo for all their help :)

Another great tip is to generally continue to read about and get exposed to product through checking out different newsletters: https://www.lennyrachitsky.com/ and https://productlife.to/


I applied to CommandBar on YC’s Work at a startup website and then had a call with one of the co-founders. I then had an interview with their CEO as well. This was a relatively quick process because I had a competing offer and they really sold me on CommandBar :). I was excited and nervous about joining such an early-stage start-up, but it ended up being a great experience!

Technical Interview Prep

I also prepared for software engineering interviews and found these resources really helpful:https://www.techinterviewhandbook.org/software-engineering-interview-guide/, https://github.com/jwasham/coding-interview-university, and https://github.com/Jeevan-kumar-Raj/Grokking-System-Design for Systems Design Interviews.

These resources can probably point you in a better direction than I can, but the first place to start with is picking a language, learning their data structures, and practicing leetcode/problem-solving questions.

Unfortunately, there are a lot of things out of your control

The sad truth is that there is a lot of privilege and luck when it comes to recruiting. Biased machines automatically parse through resume data. Name discrimination, preferences for target schools, and many other biases as well exist. On top of that, it can also be a chicken and the egg problem of companies looking for people with experience, and people without experience looking for internships to get experience.

It’s hard not to mention this as a factor that comes into play. A friend sent me an interesting blog post about this: https://blog.alinelerner.com/resumes-suck-heres-the-data/.

If you’re new to tech and especially from an underrepresented group, I’d love to help in any way I can — from introductions, resume review, and interview prep — feel free to shoot me an email!


A great way to get involved is by joining different communities adjacent to tech to meet more friends in the space, mentors, and more! Here are some special communities I hold close to my heart:

On campus at Waterloo:

  • Tech+ UW
  • UW Blueprint: Club to build technical skills and work on tech for social good with NPOs
  • UW PM

Thank you so much for reading this long-winded post! Hope this helps anyone exploring — please feel free to share with any newly wanders to tech looking to find communities, ways to shape their learnings, and resources on applying ❤️.

If you’re curious about anything else, please do let me know! I’d love to make a part two or expand on anything here. Reach out at mathurah.ravigulan@gmail.com!

~ Mathurah

Here are links to posts by some other lovely friends in tech who also shared their recruitment journeys:

if this resonates, please consider sharing it with a friend and subscribe to my newsletter below to get updates on when my next post drops 💖

subscribers also get tidbits of life updates from me from every piece!