Programmer Path IV
Go back to Part 3.
The fourth entry in this series recounts my third year at Simon Fraser University (SFU). I was back in-person at SFU for the Fall and Spring semesters, then did a summer internship at AWS (Amazon EventBridge).
Fall 2021
I was excited to come back for in-person education but because lectures were offered in a hybrid format, campus didn't feel as lively as the pre-pandemic times. I also snagged an Amazon internship offer for the summer.
Academics
- CMPT 470 (web development, backend focus)
- GEOG 261 (encountering the city)
- CMPT 371 (networking)
- CMPT 308 (computability and complexity)
Although I swore to avoid sub-optimal professors, I had to bite the bullet for the networking course. Assignments had bugs in them: the night before an assignment was due, I found a bug in a stop-and-wait protocol we had to implement. Funny enough, building a network chat application for my operating systems class dove deeper into sockets than this class. Quizzes had questions from the OS class that was also taught by the same professor.
I was glad to be exploring the city again after the pandemic and I appreciated the critical perspectives introduced in class. However, I realized that it would not be worthy to spend as much time on urban planning during this stage of my life.
Internship applications
With eight months of co-op experience and as a third-year student, I knew I could aim higher than the opportunities offered by the co-op office. Unfortunately, in about 60 applications, I only got 2 OAs and only Amazon started an interview loop. Thankfully I got an offer: the full timeline of my internship process (from application to start date) has its own post here.
Spring 2022
I wanted to take a small break this semester. I chose to take only two courses but do well in them, then use the remaining time to explore things on my own.
Academics
- CMPT 473 (testing and security)
- CMPT 307 (data structures and algorithms/DSA)
I found both courses meaningful and useful. I enjoyed the assignments in the testing course because we built the projects and assessed their test suites - I reached the point where I was comfortable setting up non-trivial workspaces. I was also glad that the rigor of the DSA course made up for the lackluster 200-level data structures course I previously took.
Non-academics
Outside of class, I tinkered with some technical things:
- Set up my personal website
- Worked through the exercises from The C Programming Language
- Learned more about web security by completing some interactive labs
- Played with AWS resources to prepare for my summer internship.
I also started following the Getting Things Done methodology, moving from sticky notes to the todo.txt format. GTD helped me organize thoughts and focus more but its key impact was making me more aware of my time management. With better time management, I found I was able to finish some personal projects that I previously deferred.
More internship applications
I tried applying to more internships for Fall 2022 and beyond. The reasoning was:
- With an offer for the summer already, I had less pressure to take an offer just to be working.
- I could be more picky and chose to apply to American Big N positions.
Unfortunately, I didn't progress beyond online assessments.
SDE Intern @ AWS
I had a pleasant time working as a SDE Intern for Amazon EventBridge.
My team's hybrid work model only required us to be in the office once a week. For me, a 70-minute commute was not something I wanted to do daily. I also enjoyed the flexibility to work around the city such as on campus if I had an event there after work hours.
The developer tooling was not perfect but a vast improvement from my previous co-op. Granted, since I had more experience, I could use any decent tools better. It still took time to understand the internal tooling but I ramped up much faster than I expected.
My team's product was built on native AWS using publicly available services like Elastic Container Service (ECS), Lambda, and DynamoDB. I'm glad the pre-internship preparation I did paid off and I'm also glad that my experience will be applicable both within Amazon and at other organizations. The serverless stack also minimized operational toil although as an intern, I was not responsible for any on-call.
Finally, I felt my team insists on the highest standards without sacrficing employee well-being. For example, my code reviews required multiple revisions, some of which were pretty nitpicky but overall the result was better code. Design reviews were also civil and even L4s (junior engineers) contributed designs to create new features and improve existing systems. There were "wellness days" for the whole team and my teammates often covered each others' on-calls with prior notice given. I never observed any hostile behaviour on my team and am lucky that things turned out so well.
At my current state, I know I am a strong junior engineer. Whether I return to AWS or go elsewhere, I have the knowledge and experience to thrive. My path to be a programmer isn't over though - there is always room to grow.
Part 5 isn't ready yet but when it is, it will cover my final year at SFU and my next steps after university.
Back to blog posts