Its over, its finally over.
Nah, I loved my time at CMU. For those who are reading this despite not knowing who I am, I just graduated roughly 2 weeks ago with my masters of science in electrical and computer engineering. This post is going to be a small reflection of my time at CMU and how I felt about it. This post is probably gonna have the vibe of recommendations or reviews, but I mostly want to do this so I have my thoughts on why I liked what I liked all in one place. Warning: This post is really long and doesn’t have any photos, mostly because it is descriptions of courses, clubs and other things and why I liked or disliked them, read at your own risk of boredom.
One of the things I loved about CMU was that I learned so much every single year I was there, that when I looked back at the start of the year, it felt like I knew nothing in comparison to where I stood then. Another thing is that I don’t know that I regret any course I took while I was there. There were the hard courses, there were the sometimes boring courses, and there were the less than perfectly taught courses, but all of them still imbued me with knowledge that I wouldn’t otherwise have had and that I am glad to have now. A quick look back on not only the courses I enjoyed the most, but also the courses that shaped who I became as I went through college in order of when I took them:
- 18-100: Introduction to Electrical and Computer Engineering
- Where can I even begin? When I exited high school, I knew I wanted to get a career in something related to electronics, and I knew that would likely be a computer engineer, an electrical engineer, or maybe a robotics engineer. What I didn’t know is what that even meant as far as jobs went and how many different aspects of these fields there were. After applying to Carnegie Mellon as an Electrical and Computer Engineering major, this was the required first year course to make sure that not only did you like the material of this field of engineering, but that you could withstand the rigor you were about to go through. I didn’t just like this course, I loved it. It was everything that highschool me wanted to know about electronics but either couldn’t grasp from self-teaching or wasn’t taught in schools. Was it a breath course with somewhat shallow depth? Yes. Was it extremely hard keeping me up a good number of nights? Yes. Was I completely and utterly convinced by this course that I wanted to be an ECE major. Yes.
- 18-240: Structure and Design of Digital Systems
- This was the first of three life-altering courses for me in the sense that it fundamentally changed what I would do for the rest of my time at CMU and probably the rest of my career. I’ve already had a bit of a rant about why I love this course over in my blog post about the project DEDICATED TO THIS COURSE (just look under the “But Why” header). I had no idea FPGAs were a thing before I took this course and to me, FPGAs are one of the things I love about ECE. The ease and flexibility you have when designing digital circuits using and FPGA are amazing. Taking a bit from the rant, I thought this course was taught amazingly well, it didn’t hold your hand a lot which caused me to actively problem solve and develop my own solutions. Dr. Bill Nace was an amazing teacher, but I’m really glad I had the opportunity to learn under Dr. Don Thomas as well, the man who literally wrote the book on System Verilog (the language used in the course). This will remain one of my all time favorite courses.
- 18-213: Introduction to Computer Systems
- This class really got me interested in computer engineering and what I would later find out is called embedded systems engineering. I loved the level at which this class operated, which is to say very low level code, low enough that you should know how the underlying computer architecture looks and operates in order to write better code. As a person who at this time realized I didn’t want to do hardcore circuits, but didn’t want to do hardcore software development either, this magical level of abstraction was perfect. It taught me a lot and gave me a very solid foundation for 18-348.
- 18-348: Embedded Systems Engineering
- This was the second of three life changing courses for me. It was taught by Philip Koopman, a world renowned expert in embedded system engineering. This course was where I learned that one of the three things I wanted to possibly do as a career was embedded systems engineering. The course was extremely well taught, very well executed, and it is probably a set of lecture notes that I will keep on my bookshelf forever. Stuff I learned in this course I kept seeing everywhere even as I got to high level masters courses.
- 15-410: Operating System Design and Implementation
- This course killed me, I’m dead, I guess this is what they call ghost writing. Actually though, this was the hardest semester I had at CMU and it was directly because of this course. It was the first semester I had to choose which assignments from classes to do at all because of time constraints as opposed to which ones to spend more time on than others. You can see a noticeable drop in my GPA by almost half a point this semester in the college summary. Yet for all of that, I wouldn’t trade the experience I had in this course for anything, and I would do it again in heartbeat. If it wasn’t clear, in this course you and a partner write a unix-like kernel that implements memory management, process scheduling and control, a complete threading library, and basic locking and synchronization primitives … in a semester … from scratch. It was my first huge project (over 8000 lines written by the two of us), and it honestly doubled if not tripled if not quadrupled my debugging skills, code readability, willingness to document code, and ability to plan out large scale designs. Like I said, I would take it again in a heartbeat.
- 18-487: Introduction to Computer and Network Security
- This was the third life changing course in my time at CMU. I had always heard about computer security and 18-213 even delved a bit into stuff like buffer overflows, and smashing the stack. This class gave a full rundown of everything from stack smashing to web attacks to mobile security to cryptography to various encryption methods and weaknesses. This class demystified a lot about computer security for me and opened me up to the field. I really enjoyed the material, so much so that it convinced me to take most of the other computer security courses that CMU offers and now I have a full time job in security. Also the professor that taught it at the time, David Brumley, is a really cool professor and leader of the CMU competitive computer security team.
- 18-739L: Special Topics: Cyber Security
- If you read the part directly above this, you’d know that David Brumley is a cool guy that runs CMU’s competitive computer security team. He decided one semester to teach a special topics class that was basically how to write, compete in, and get better at computer security “capture the flag” competitions. I think this was the most fun I’ve had in a class where I still learned a lot. The biweekly assignments were stuff like to go out and do 10 CTF problems, or to write your own CTF problem the rest of the class would solve. I’m really glad the offering of this class lined up with when I became interested in security as I would have hate to have missed this.
There were many other courses that taught me things that were really cool, or that I enjoyed being in, but weren’t fully enjoyable as a course or didn’t define my time at CMU well enough to make the list. An astute reader will notice that despite just graduating with my masters degree, all of these classes were from my undergraduate time at CMU. While the masters classes were still interesting and still instilled more knowledge into me than I knew possible, none of them were as polished or as amazing as the undergrad courses listed above, and certainly none of them changed my life in any meaningful way. Turns out once you know the subject area you like, taking a bunch of classes in that area can be predictable and even a bit boring towards the end.
I could have gotten a great education at a bunch of schools, and I’m sure I would have been happy with any of the schools I had the opportunity of going to, but what I feel I would have missed out on if I went somewhere else are the amazing clubs that made my time at CMU unforgettable. At one point or another I’ve been in a lot of clubs over the years, these are the ones that had the most impact on me. I’m gonna steal a bit from my hobbies page (some word for word) because I’ve already poured out my feelings on some of these there, so if you’ve already read that, this may sound repetitive.
- The CMU KGB
- Geeky, nerdy, silly social organization, who take having fun very seriously. They are responsible for most of my friends, social circles, and good times during the first 3 years of my time at CMU. They also run the most rad game around: CtFwS. Though I took a step back while in my masters degree to focus on other clubs and activities, I wouldn’t trade away a single moment of the time I spent with the KGB.
- When I got to college some of the upperclassmen I had become friends with were one person short for this event they called a “puzzlehunt”. I had never heard of it before, but it had puzzle in the name, and was being run by the CMU KGB, so I figured how bad could it be? I had such a great time that day that when they mentioned at the end that they needed staff members to write puzzles, I ended up joining. We run CMU’s largest student run puzzlehunt once a semester. Originally, we were part of the CMU KGB, but I helped bring the organization out into a separate campus recognized organization for better recruitment and funding. Check out our website here.
- AB Tech
- As I went through college I knew that AB Tech (Activities Board Technical Subcommittee) was a thing, but I didn’t know exactly what they did. Jump to my senior year of college, I decide to switch up my club involvement to experience more of CMU, and my friends convince me to join AB Tech. Over the year and a half I was in AB Tech they became like a family to me. I learned everything under the sun, from over-under coiling, to FoH’ing, to LD’ing, to ME’ing it was a fantastic wealth of knowledge and fun at every step. At this point I’ve been FoH for over 15 events including both of CMU’s fall and spring concerts, event manager for over 10 events, and Master Electrician for CMU’s largest fashion show. While I likely won’t get a chance to do as much of this work as I move on to my real job, this was easily one of my favorite experiences/clubs at CMU. I continually remember how blessed I am to work with boards and equipment that not even some professionals have had the chance to use. To my knowledge, almost no other colleges have a non-drama related, student run, event production service of this scale.
- Radio Club
- Amateur radio is something that I’ve gotten into recently relative to some of my other hobbies. Carnegie Mellon has a radio club: W3VC - Carnegie Tech Radio club, though I had never heard of it before my junior year of college. My housemate at the time was a member and explained to me just how easy it was to get a license. After putting it off for a while I finally took and passed both the technician and general exam in one sitting. I was routinely assigned the callsign KC1ENC, and about a month later I changed it to the vanity callsign of K3JDL (my initials). I now help out the community by participating in various volunteer activities such as the “Pretty good race” and namely running the safety net for CMU Sweepstakes.
I also was in a bunch of other clubs at one point or another to varying degrees including Spring Carnival Committee, Scotch and Soda, Computer Club, Robotics Club, PPP (CMU’s competitive student computer security team), and Board Game Club. I have never wished for the time turner from Harry Potter more than when thinking about all the things I missed out on with respect to those other clubs. All of the clubs I just listed I left not because I didn’t like the people or the club, but because as a CMU student you only get so much free time, and I had to choose who to spend that time with. Overall, I’m really glad I had the experiences I did, and I hope the friendships I made in these clubs will last a lifetime.
My Time as a Masters Student
This is the thing that this post is really about. If I just wanted to slip in all the other stuff, I might call it a post about graduating and backdate it by a year. I thought long and hard about whether I should just take the undergraduate degree and run or spend more time and money getting my masters. Now, unfortunately, based on the way the program works, I had to put this time in and decide at the end of my junior year. I don’t know if other people had their lives planned out that much such that it was a predetermined conclusion on whether or not to go for a masters, but my life wasn’t that clear. In the end, I ended up justifying it using numbers about how much more attractive masters students were to companies and how much more on average they made, but another reason I held was that I had finally stepped into my swing here at CMU and I wasn’t ready to leave that.
Sure enough, the time I spent officially as a masters student was great. The classes were each about stuff that pushed above and beyond what I had ever expected to do as a student here, twice I was made as part of a class to go out and create stuff that was actually worth writing a paper on (and one of them actually made me write that paper). But as I said above, most of all, I had gotten into a groove with the clubs I was in. I knew how everything worked and I was finally comfortable in a lot of social circles. If there was a job just being a masters student I would have taken it, unfortunately all good things must come to an end.
Receiving the Actual Masters Degree
The other real reason for this post. This month I graduated again, and it seemed …. boring. I won’t say I wasn’t happy, every single photo of me I can find from the graduation ceremony I’m smiling in and that was real. It feels great to be up there and be recognized for all that you have put in and accomplished. Everything about doing it a second time though just felt a lot more routine, the happiness was still there, but the mystic specialness about the event was gone. I’ll probably chalk it up to only having to take 4 classes between getting the two degrees because I took many of my “graduate classes” during my “senior year” and so while I had all of the necessary credits for a masters degree that were wholly distinct from the credits used for my undergrad degree, it still didn’t feel like I was celebrating an accomplishment of work, it felt like I was celebrating the finish line.
Either way, I’m done now, and that bit I mentioned about all good things coming to an end? Its not totally true. I’ve managed to get a job in Pittsburgh and it turns out I get to continue to hang around all the great friends I have here and continue to be a small part in the clubs on campus as that old person that swings by every once and a while. As for this post? I didn’t get out as many of my feelings about CMU, my master’s degree, and graduation as I wanted to, but this post was a good start. Maybe I’ll write more about it in the future.