In June 2020, I graduated from Queen’s University with a degree in Computer Engineering. I wrote this in hopes that some current or future student will learn something from my experience.
Selecting Computer Engineering
Growing up, I was lucky to attend a couple of tech camps at Stanford University. One on video game map design in Unreal Engine, and another on C++. I was definitely too young to appreciate either of these technologies, but even playing with such powerful tools inspired me. From then on, I knew technology would be my path.
In highschool, I took one Java course. I really liked building simple programs, and simple pong-like games. I was also exposed to a bit of Arduino programming - attempting to build an autonomous quadcopter in my ‘maker’ class. Like my exposure to Unreal Engine & C++ when I was younger, that hill was far too steep to climb with my level of experience. What excited me about tech was its difficulty. Building software became addicting to me. I wanted to learn how to build these things, and how to build them well.
Apart from my meager programming experience, I liked using Photoshop, playing video games, and computers in general. So, by the time I graduated from highschool, I knew I wanted to study technology. I couldn’t imagine another four years of vague subject matter. I needed something concrete and specific to focus on, something I liked to do.
I started applying to my dream schools mostly in California, a few top schools in other states and UBC and Queen’s in Canada. Being a dual citizen (US / Canadian) meant University would be much cheaper for me at Canadian schools. I applied to UBC and all other schools except Queen’s for computer science, and applied for computer engineering at Queen’s, without even knowing what computer engineering was - it just sounded more interesting than computer science.
After months of waiting, hoping for good news, I found out that all of the schools I had applied to (Stanford, Harvard, Berkeley, UCLA, UCSD, UCSB) had turned down my applications - except for University of Washington and Queen’s. Of course, I was disappointed that I wasn’t going to be a Stanford start-up billionaire, but ultimately one goes where one gets admitted.
I chose to attend Queen’s University in Kingston, Ontario Canada. Largely because of my family connections there. My grandfather was a Canadian engineering graduate, and his work inspired me. So I decided to study engineering 3000 miles away on the East Coast. It sounded challenging, and I felt up to the challenge.
Queen’s Engineering
First Year
After making my way through FROSH week and the grease pole, I settled into the overwhelming nature of starting school in a new place.
“As part of Queen’s Engineering Frosh Week, the incoming first-year engineering students must, with the help of the upper-year engineering students, climb to the top of a grease pole and remove a tam which is nailed to the pole’s top. The Queen’s Grease Pole is a metal football goalpost stolen by Queen’s engineering students in 1955 from University of Toronto’s Varsity Stadium. Currently, the pole is covered in lanolin and placed in the centre of a pit of muddy water referred to as the “Grease Pit”, but from the first climbing of the pole in 1956 to 1988 the pole was covered in axle grease.” - more info
When I started studying engineering, I felt that I had made a mistake. I was enrolled in Geology and Chemistry classes, exactly what I had hoped to avoid. I wanted to learn to build software and to build it well. Building software was nowhere in sight.
The first year flew by. I stumbled my way through Chemistry, Linear Algebra, and advanced Calculus - passing all my courses, but still lacking information on software development. That summer, I flew back to California and worked as a morning shift (6am-2pm) Juice Barista in a local grocery store. One of the cooler jobs I’ve had.
Second Year
Come August, I flew back to Kingston for my second year before classes began. I had signed up to be a ‘FREC’ - one of the engineering orientation week leaders.
“Engineering frosh group leader. Involves painting themselves purple (completely purple) with gentian and slamming a four hundred dollar jacket on the ground while screaming, “you’re never going to be a year frosh, you’re never going to climb the pole, you’re never going to pass 112” - Urban Dictionary
I died my skin purple, sprayed my hair with red, yellow, and blue paint until it was rock hard, molded around 3 rubber chickens forming a mohawk, draped chains around my engineering jacket, and proceeded to welcome the incoming first years. At the time, it seemed very normal, but looking back — whaaaaat? The Jury is still out on what using that much medical grade gentian die does when stained to your body.
That year, I was living in a housing co-op, working as a breakfast chef, making eggs to order and pancakes. Most of the other students in the co-op were foreign exchange students. The morning cooking shift was one of my highlights at Queen’s. I would put on this playlist every morning and make breakfast for cute girls from France, Germany, and the UK - what wasn’t to like?
That year, I started DJing and purchased some basic DJing equipment, a board, and studio monitors. In the co-op, there was an exchange student band called the Glasgow Kisses. Their drummer, Gavin, wanted me to DJ after their house party sets, so I started DJing at parties and events. I’ve curated tons of setlists and playlists on my spotify, and I’ve made some of my own beats and mixes on my soundcloud. DJing in my second and third years was another highlight.
That year, my courses were heavily focused on electrical engineering. Electric circuits, electromagnetics, and electronics. Trying to learn how transistors work and how electricity travels through transmission lines was, for me, a failed experiment. Luckily, that year I also took a course on information structures and object oriented programming - my first glimpse into the world of computing. Learning how to create binary trees, heaps, hash functions, linked lists, and more was exciting to me. That year of electricity was enough to convince me that electrical engineering wasn’t for me - too much imaginary math and way to many equations.
The summer after my second year, I tried to find a software internship. I had no relevant experience on my resume - except my mostly electrical engineering weighted coursework - which I found out was not enough. So I went home to Northern California and decided to spend the summer learning what I had hoped my coursework would teach me. I learnt how to make websites using HTML and CSS, I read Eloquent JavaScript and practiced building small JS apps. I built my first websites that summer: Queen’s Space Conference Website, Quack and Wabbit Puppet Theatre Website, and the first iteration of my personal website.
Third Year
After the summer, I went back to Queen’s for my third year. I felt like flexing some of my new web development muscles so I got involved in some of Queen’s conferences. I joined the QHacks (Queen’s Hackathon) team and helped create their website. I joined the Queen’s Technology Media Association club and built that year’s winning project, and my first big web application project QShare - a university ridesharing connector. I joined Golden Words campus newspaper as a webmaster and re-designed the Golden Words website. I also worked as the tech coordinator the Queen’s Space conference.
This was too much to do. It seemed like a full-time job, and I was taking 6 courses each semester along side these commitments. I was overwhelmed, but set on building up an impressive resume and landing a summer internship.
That fall, Microsoft recruiters came to campus and called me in for an interview. Most of the interview was focused on my recent projects, and the recruiter recommended me for the Microsoft Garage in Vancouver. I wrote another post about that interview process if you’re interested : )
After landing an internship with the Microsoft Garage, I tried to focus again on my coursework. My grades took a hard hit. I was barely going to class, focused instead of my web projects.
I managed to pass all of my exams, except computer networks, which, as it turned out, required that you attend class to pass.
That year, I enjoyed studying algorithms, operating systems, databases, and machine vision, but the other eight courses bored me and again, made me regret choosing computer engineering. Microprocessors, digital systems, and probability were no fun, not one little bit, big ole nope.
After bushwhacking my way through April’s final exams, I flew to Vancouver to start my first software internship. It was amazing. I’d recommend the Microsoft Garage to any software students. You select a project to work on, and have four months to build and user-test the product. I worked on a Holographic cancer cell visualizer on Microsoft HoloLens.
After the summer, I felt more confident about my experience and more excited about technology than ever. I had hoped to take a year off school, to look for more internships, but I didn’t find a fall internship in time. Microsoft had also offered me another internship for the following summer at their headquarters in Redmond, so I returned to Queen’s to finish my studies.
Fourth Year & the Hackathons
In my fourth year at Queen’s, I focused on hackathons.
One of my first hackathons was Hack Harvard. Two electrical engineering friends, a commerce friend, and I (walk into a bar..) drove down to Boston. We decided to build a networked multiplayer version of the classic snake video game using Unity. After several hours of reading Unity docs online, it became fairly clear that our group was not capable of building a networked multiplayer version of the classic snake video game using Unity. We ended up with a version of snake with 2 snakes, we called it snake 2.
My next hackathon was Hack Princeton with my friend Akin. After driving for 8 hours in a snow storm, we arrived in Princeton at 1am. We were so tired that we fell asleep several hours later on chairs that we had pushed together. For the next 24 hours, we furiously coded, building a minimum viable product (MVP) halfway through the second day, and a full working product (textnet) by the second night. The next morning, Akin and I got up in front of a crowd of students from all across America, and presented our project. We ended up winning Second place overall, Best Design, Audience Choice, Best use of StdLib, and over $800 in prizes, each. Each time they called us up to accept a prize, we couldn’t believe it. It was an honor and very cool experience.
Textnet later became our engineering capstone project.
Akin and I teamed up again (with two other computer engineering students Garrett, and Chris) for QHacks. At QHacks we built MusiCrowd, a collaborative Spotify queue for parties. MusiCrowd won the grand prize at QHacks.
These hackathons were much more memorable than my coursework.
When the summer came, I drove north from my family’s home in California towards the Microsoft campus in Redmond, WA. I interned for three months on the Azure Internet of Things Time Series Insights team - quite a mouthful. I learned how to use the D3.js visualization library, all about SCSS, React, Redux, and best web practices. During the summer, I built an interactive scatterplot visualization and integrated the plot into my team’s data explorer dashboard.
I’m returning to Azure IOT TSI to start full-time work as a Software Engineer in July 2020.
Fifth Year
I returned to Queen’s in fall of 2019 to complete my last semester of classes. The highlight of this last semester was a game engine development course - CISC 486, which was fascinating. We learned about game engine physics, networking, state machines, and AI. It was my favorite course at Queen’s.
Favorite Classes
I took 50 courses while studying at Queen’s. Of those, these courses were my favorite.
- ELEC 278 - Fundamentals of Information Structures
- ELEC 299 - Mechatronics Project
- CMPE 332 - Databases
- ELEC 377 - Operating Systems
- ELEC 474 - Machine Vision
- CMPE 454 - Computer Graphics
- CISC 486 - Game Engine Development
What I took away from Undergraduate Computer Engineering
- Classes aren’t enough. Find a technology that you’re interested in and learn it on your own.
- Work on your own projects, personal projects are more important than classes.
- Go to hackathons. Go to hackathons. Go to hackathons.
- Most of what you learn in Uni will not be used outside of Uni; the earlier you realize that the better.
- Take it slow. There is no rush to finish school.
- Do as many internships as you can.