FA16 - Check
Another semester down. This was probably one of the hardest semesters I've had in awhile just due to the frequency (and magnitude) of the academic ups and downs. Amusingly Let's start on a high note though, so we (I?) can at least be proud of everything that got done.
The Good
Finished two grad classes
In undergrad, I thought it was ridiculous that graduate students could only take two classes at once. You get four semesters to finish only six classes - most people average five classes a semester in undergrad. Then I took my first grad class and got the hint. Most undergrad classes assume you don't have the pre-requisite knowledge and will happily spend a week or two making sure you're on the same page. Graduate classes assume the same thing, but just link to a few papers or references you can use as a reference. Regardless, I got through both of them. Mini-reviews:
ECE598NS - Machine Learning in Silicon. Below
ECE598HH - Wireless Communications and Systems. Solid contender for “most dark horse class”. Came in expecting a boring mathematical overview of comms systems, something I needed but lacked. I did get that, plus a whole lot of fascinating wireless systems applications taught by an awesome guy: Haitham Hassanieh. His lab at MIT had done some crazy work on sparsity and wireless localization, and he was very happy to keep talking about it. While I'm not sure how much “use” their research has (in the most neutral manner ever), it's super fun and is the kind of thing you “WOW” at. I worked with two other guys in my group (Charlie and Amr) to make MoViRad. I got to learn Android (ish) and lots of wireless communication material, big fan.
TA'd a class I wasn't good at
Without sounding too obnoxious, TA-ing Senior Design was pretty easy for me. A lot of the projects I could probably make in a single weekend if I wanted, just because I'm good at making things. I think I have a pretty good eye for system-level design, so the class was pretty easy for me to help out with. It did take a lot of time however, so my professor wanted me to TA one of his classes this semester. In general, working for my adviser means he'll do all the hard work so you can focus on research, it's a win-win for everyone.
Instead, I got randomly “promoted” to each 482: Digital IC Design. It was mostly due to lack of capable bodies, but I didn't really have a say. I had taken the class, found it incredibly boring, and got by with a B+. To say I had little interest in teaching would be an understatement. I found the material that I did understand to be dry and boring, and the other half incomprehensible. But this semester, I sat down and made myself figure it all out. It was quite rare that a week would go by and I couldn't answer a question in office hours or Piazza. Maybe I don't deserve an “attaboy” for doing my job, but I'm giving myself one. More on this below.
Helped create a class
Due to my aforementioned skill with labs and system design, I got asked by one of the professors to help “resurrect” ECE437: Sensors and Instrumentation. It was a lab class that was slightly popular, but both the material and the tools had fallen out of date, so they put it out to pasture. They had solid ideas on the new lecture material, but wanted help making the labs more modern still. The old interface was built in LabVIEW, so to say it was held together with wires would just be a bad pun.
I got to cut out the junk, and rebuild it from scratch using an FPGA and Python. We used sleek new Opal Kelly boards with good APIs, and re-wrote every lab to be as open-source friendly as possible. Out with the MATLAB, the LabVIEW, the ugly locked down drivers and in with the Python, the open cores, and the reusable APIs. I helped write 7 of the 11 labs, covering protocols like UART, I2C, VISA/SCPI as well as how to parse through datasheets and interact with a wide variety of hardware. I won't be teaching it in the spring, but I'm definitely going to lurk around and help out if they need me.
Wrote a paper
I taped out!!!! OK that one belongs to last semester but whatever, it happened over the summer so I'll claim it now. What I didn't realize was how exhausting testing + bring-up would be mentally and physically. Took a week to just get my serial bus configured correctly, then from there it only got harder. But this is about the good parts, so I'll stick to that (here). Week after week of trying, I got results out of my chip. Watching things work the first time was mind-blowing. It was a simple chip, sure, but I made every last nanometer in there. I got my results, they weren't great, but they were results. I submitted a paper to IEEE-CICC and I'm eagerly awaiting the results, although I'll probably have to wait until January. I am kind of torn on whether or not I want to get accepted - on one hand, I just want to be done, but on the other hand, having a publication is a Big Deal
. Still going to hope for the latter.
Biked nearly every day
It probably doesn't mean much to my overall health, but biking to and from campus every day must have at least a slightly positive effect. Spending 20-30 (awful) minutes on my bike should help me live a couple years longer, given one doctor's conservative estimate (“““doctor”"").
The Bad
The other grad class
ECE598NS - Machine Learning in Silicon. Really not a great class. Experimental first offering, I think I fell for the hype with the name. Class didn't teach me much about machine learning or silicon. There's some useful stuff I'll try to type up better for my own sake, namely quantization noise and fixed-point filters, but for the most part, nothing too interesting. When it comes to machine learning, I picked up more from Coursera than this class honestly. Last third of the class devolved into case studies of boring but successful accelerators from VLSIC/ISSCC. Basically stopped going because I felt like it was a waste of time. Unfortunate, but these things happen. I completely understand that it's difficult to start a brand new class (this material likely not covered anywhere else), but this was just not my style. My final project for this class was MinVAD - lots of learned Python, some neat results, but overall nothing too crazy.
TA'd a class I hated
W O W was 482 terrible. Not from a workload standpoint, I can handle almost anything when it comes to that. It was very poorly organized, with lots of boring and frankly out of date topics. I'm obviously biased, having only seen like two engineering companies, and small teams inside of them at that, but I just never got it. Why did we teach so many things that are automated away by EDA tools? There's obviously value in knowing the automater
works, but we went way into depth with that and breezed through the important stuff (again, just IMHO).
The exams were terrible, and felt like an exercise in parsing English moreso than engineering. Grading these was the worst, because there were three categories of people:
- [Mostly] Got it. Probably 10% of the class.
- Understood the base idea, but made an English mistake. 70% of the class.
- Did not get it/didn't care. Probably 20% of the class.
Due to the poor exam style/grading rubric, the latter two categories would get lumped together in terms of grades. This discouraged the people who were trying and encouraged the people who didn't care, a lame situation overall. This was the first class that made me regret TA-ing. I earned very little satisfaction or joy from this gig, and usually just emphasized with the miserable students who had no idea what they were doing wrong. Hope this doesn't happen again.
Chip was kinda eh
This one was probably the biggest ugh. Yeah my chip worked, but barely. I made an inductor and it had really poor performance overall. If I had more time, I would have put it in a filter and probably got way better results, but I didn't, so there's that. I think the most important thing was that I told my adviser honestly how much a let-down this was. I'm used to working hard on lots of Big Things and not having them work (see: my undergrad), but this one was different. In the past, I was always working on them with my friends. Sure there was some Fear Of Missing Out on The Real College Experience, but I still had lots of fun, and that's what mattered.
Making this chip involved working in CSL alone, day after day, working with shitty software and freaking out. I blew off a lot of people in the name of “making this work”. I got so stressed out I was practically vomitting while drumming in between simulations. And for what? A chip that's a neat idea, but overall not really practical or usable. A chip that my adviser wasn't sure why I even made, and probably would've vetoed it if he had the chance. Oh well, just hoping IEEE-CICC feels differently heh.
The Ugly
Well, now what. I'm still in school. Still unemployed. No idea what I want to do. I feel like my complaints are the most #millenial
thing ever. I'd like a job:
- in a good location
- with good money
- I get to lead or work when I want
- This means high level vs in the weeds, not “take the day off when I want”
- small company, maybe 200 max?
- doing new/modern things
- doesn't require a PhD with 20yrs experience
Anything else sir? Haven't found one yet. I turned down a few jobs, which is even more obnoxious. At least I know I can get a gig, albeit a boring one, if I want to. For now I'm signing up for the qualifying exam in the spring, which lets me stick around if I need to (want to?)
TL;DR
still here. still doing everything and nothing, quickly.
Going to try summarizing things regularly. Committing to blogging regularly has been a big lie I feel bad about, so at least once a semester summaries should be a low bar to meet.