Author’s note: Drafted in 2022, lightly edited and finished on Sep 1, 2025 for clarity. Substance unchanged. I tried to not glamorize my undergraduate experience but I could be hallucinating.
“Hardware invention enabled the information revolution. The internet and all the fancy applications are nothing but some byproduct of the advancement in computer chips and fiber optic cables”, 18-year-old me thought wishfully, concluding that the next natural sequence in the major global transformation must be done with another dramatic hardware innovation. After giving this grandiose topic a little more thought, I decided that we are limited by the way we are interacting with computers. Look, it’s just screens and keyboards! There has been no fundamental change since the early days of computer history. Sure, you can have a fancy OLED 120 Hz touch screen in your pocket, but at the end of the day, you still have to thumb-type with the same keyboard! It seemed crazy to me that with all the amazing technological advancement we had, our efficiency in communicating via the computer wasn’t much higher than someone with a typewriter 150 years ago. “We need better ways to interact with the computer.”, I reminded myself while walking to school’s cafeteria during my first week in college. Then, I saw this TED talk.
SixthSense Tinkering Christmas
It immediately clicked with me.
The hope to not just use the screens but augment all the physical objects around us to retrieve information and the promise to use natural gestures instead of mice and keyboards to interact are everything I had hoped for.
So immediately after finishing all the finals in my first quarter, I bought a small projector, a webcam, a mirror and some colored paper to complete the setup.
When friends went on trips to enjoy the winter break, I stayed at the dorm to tinker with colored paper the future of computing.
I had the projector and webcam plugged in, the colored paper worn on my finger, ready to go. But I don’t know how to program. I had some exposure with Python programming before but never heard about C#, the language with which SixSense was developed. So I taught myself C# and got familiar with the command line to get the program compiled. After a few days of head scratching with all kinds of red error messages, in a quiet evening, the program compiled. I got so excited and put on my colored finger cap. Viola! Little squares were showing up around my fingers. It was able to recognize my finger movement! I am touching the future!
However, my excitement quickly faded away by the underwhelming performance of the webcam and the buggy software. It would often crash. And when it worked, the latency between my finger movement and when the software registered the movement was simply too long. Frankly, I didn’t understand enough of the code to improve it at the time. However, I was determined to improve it. I wanted to make it more portable, easier and faster to use. I wanted to know more about hardware and software so that I can take SixthSense to the next level.
So when returning to school, I talked to my counselor at the Undergraduate/Undeclared advising office. After some discussion, I found my dream major, Computer Science and Engineering (CSE), a joint program offered by the Computer Science and the Electrical Engineering and Computer Science Departments at UC Irvine.
Life as a CSE Student
Apart from the basic Math courses, I enrolled in both CS and Engineering courses. I found myself listening to lectures on electrical network analysis and discrete-time signals in the engineering halls and learning algorithms and machine learning in CS buildings. Despite my best efforts trying to focus on the engineering classes, I couldn’t help but find the way that the knowledge was taught boring. “Astonishing facts are presented without astonishment.” I started to have a similar feeling about engineering as James Somers had for biology 1.
One of the most common patterns in the homework problems is to use the same exact technique taught in class to solve 50 variations of the same problems. Nobody cared about derivation. In lectures, equations and laws were presented without surprise. Memorization was the key to success in exams 2. I felt powerless and stuck. I couldn’t see through this endless practice of problem solving. I even had weird dreams about solving circuits. Not surprisingly, I failed two engineering courses that year. The basic SystemVerilog class felt so tedious that I quickly lost interest and just tried to brute force it.
Hands-on Projects
Things were much better outside the classrooms, I made friends with both the hardies and softies 3, discussing homework problems, side-projects and career expectations.
One of the EECS professors was kind enough to offer a RC car kit to his students to program it. I decided to give it a try. Maybe the toy car wasn’t exciting or maybe I was pre-occupied with other course work during that summer, I didn’t even open the box.
Another popular project among the hardies is called micromouse, where one designs and programs a small moving robot to solve random maze as fast as possible. Veritasium made a cool video about it4.
Oh and there was a group of students in Rocket club but they just seem too cool and intimidating so I didn’t bother joining.
When Eta Kappa Nu (HKN) 5 reached out to recruit, I joined in a heartbeat, hoping to find something special in their secret office. Unfortunately, the secret office was a bit depressing, with an old soldering iron and a few white boards.
On the softies side, I had much better luck. Writing web applications blew my mind. I can just write some code, click a few buttons and boom all my friends and family across the globe can just see it! This feels like magic. It is the immediate feedback, the scalability, the impact it has to real people in the real world that fascinated me. Suddenly, I had the power to change the world into a better place. Seriously. One of the most painful experiences I had was trying to view and register classes thanks to the ancient registration system. So, I took it upon myself to build a modern calendar like UI to help with it. No API? No problem! I just brute-forced with different URL queries until it worked. In the end, I built a small product, shared it with my girlfriend and secured my class schedule.
At the same time, I was determined to start my research career. Luckily, Professor Wayne Hayes offered amazing opportunities to driven undergrads. I solved one of the challenges so got in touch with a scientist from JPL, NASA. Cedric H. David is a super nice scientist to work with. One of the first tasks we had was to make sure that his hydrology software SHBAAM can run on all kinds of weird computers around the world. Cedric was pretty hands-off so we had the freedom to explore different solutions. Since the core is python and we just need to glue together a few python programs, we first tried bash on UNIX and batch on windows. But keeping python environment up-to-date across platform was not easy. That’s how I learnt about Docker. I added Docker support to the SHBAAM and impressed Cedric on how well it worked. Soon, Docker became my favorite tool and I just couldn’t stop showing it off to the clueless physics students who are often struggling installing weird software that some professor wrote a decade ago.
I wanted something more scientific, more like research. During my junior year, I took one modern physics class and met Professor Daniel Whiteson. Daniel is probably the best professor I ever met with tons of interesting research ideas, good at computers, inspiring and caring for his students. Towards the end of that quarter, most of the students were able to install and run ROOT thanks to my sales pitch on using Docker. Maybe Daniel was impressed by my software skills, before long, I found myself joining his weekly research meetings with his PhD students. I worked on using CNN and later Transformers to identify electron. We worked on the problem end-to-end. From data collection pipeline with hadron collider simulation to training the neural network to classify electron “images”. Perhaps I was among the first to successfully install the CUDA drivers and train the NN, Daniel was kind enough to send me to CERN.
I have a lot to say about my physics adventure and research journey. Maybe a new blog post? For now, let’s focus on EE v.s. CS.
Realization
As I started to get more hands-on project experience, a striking difference between engineering and CS began to emerge. It is as if there is a high wall between the real innovation in EE and in school. I was not intrigued by engineering simply because I couldn’t see through the high wall. I couldn’t imagine how a toy CPU implemented in SystemVerilog being any useful. I couldn’t imagine the RC toy car kit teach me anything about building a real car. Hardware tinkerers only have gadgets and sensors from decades ago. But on the other hand, software people get to work with cutting edge tech with real world impact by default. It is not even fair.
Maybe I Am Just a Software Guy
Day by day, my passion for engineering has dwindled. Luckily, the software side seemed a lot more intuitive to me. I can freely experiment and iterate on my ideas. Zero cost + 100% reliability. I can just revert to the previous state if something doesn’t work. Meanwhile, I also found my passion in physics. I am way more interested in how Maxwell’s equations are derived than using Kirchhoff’s circuit laws 1000 times 6. So one day, I walked into the CS advisor’s office and asked them to have my major changed to CS + Physics.
Dipping My Toe
During my senior year, as part of the physics degree requirement, I enrolled in an applied physics+engineering lab. The professor works on electronics at CERN. Ironically, this was the first time I did some soldering work. The final project was open ended. I got ambitious and wanted to use some fancy sensors. I acquired the gyro/accelerometer, bluetooth transmitter, force sensor from Adafruit and dusted off an Arduino board and Raspberry Pi that I bought years ago. I plugged everything in, wrote a few lines of Arduino C++ and made a wireless stand-up reminder/journal you can stick on your chair. This was the most fun I had tinkering with electronics. I was able to pick and choose to solve a problem that I have. Also, I was about to graduate so no more academic stress.
Conclusion
To be fair, I still believe that the way we interact with computers desperately needs to be improved. Maybe it’s through AR/VR. Or Maybe it’s through the brain-computer interface.
In retrospect, I could have tried harder to find and join more exciting engineering projects on campus. I could have tried harder to be an electrical engineer. But I am glad that I didn’t.
Cover image generated with DALLĀ·E 2. Here is the prompt.
-
To be fair, this is just anecdotal. It is totally possible that in another school with another professor, engineering courses can be fun and exciting. ↩︎
-
“Engineers on the brink of extinction threaten entire tech ecosystems” from TheRegister by Rupert Goodwins (link). ↩︎
-
The international honor society of the Institute of Electrical and Electronics Engineers. ↩︎
-
My passion for physics seems a bit off-topic for this post but it seems like a good topic for another post. ↩︎