Nicole Hamilton
Lecturer (Retired)
Computer Science and Engineering
University of Michigan
Cell 425-765-9574
nicole@nicolehamilton.com
Lecturer (Retired)
Computer Science and Engineering
University of Michigan
Cell 425-765-9574
nicole@nicolehamilton.com
This is a frozen archive of my faculty website at https://web.eecs.umich.edu/~nham/ when I left.
Oops, I'm retired again. I returned to teach my search engine class W25 and W26 but became a casualty in September 2026 of declining enrollment and budget cuts when my appointment was up. The problem is real and not personal, with enrollment in some core courses off by over 40% from their 2024 peaks.
I love teaching and being around so many smart students and colleagues here at the University of Michigan. It's satisfying, exciting, purposeful. So, it's disappointing for it to come to an end. But I'm grateful for my time here. It was a blast and I'm hopeful that my students may have better outcomes because our paths crossed. (And, yes, I still want you to go to grad school and I'm still good for an LOR.)
And don't cry for me, Argentina. I'm still not actually retired. Last year, I hired one of my W25 students after he graduated to help update my Hamilton C shell for UTF-8 and then go on from there to a port to Linux. I’ve ignored updating it for far too long while distracted by teaching. It's driven me crazy that my C shell didn't work well with the filenames iTunes created and even more so, to have to use the completely inferior tcsh (never mind the even worse bash!) on Linux in the classes I was teaching. We're pretty close to finishing the UTF-8 work and it's pretty cool seeing high res color emojis and foreign language characters on the command line and in filenames. It's gonna be awesome.
I'm most proud of my search engine class, taught variously as EECS 398, 440 and 498, where students worked in teams of six, each building a complete cloud-based distributed internet search engine from scratch in C++, many of them indexing hundreds of millions of pages, returning results in under a second. The only prerequisite was EECS 281 and C++, deliberately chosen to open it to undergraduates early in their careers. I covered everything else needed to build the engine in lectures and autograded assignments. My objective was to recreate the startup experience I had (or at least, the good parts) on the startup team for the Bing engine. It was exciting and satisfying for a team when it all came together and their engine worked. Students reported that interviewers were invariably impressed. I got great evaluations and they got jobs. Doesn't get better than that.
I also taught EECS 280 C++ and Object-Oriented Programming many times, typically with around 1000 to 1100 students spread across 5 sections with 3 or 4 instructors and around 60 very gifted student staff. Summer 2020, I taught EECS 482 Introduction to Operating Systems, a topic I've always enjoyed. Winter 2021, I taught EECS 485 Web Systems for the first time. (Sorry, hated it.)
I also served as our ABET coordinator, on our program and lecturer search committees, and as an undergraduate advisor back when we still followed ABET and still used faculty for undergraduate advising.
I have a BS and MS EE from Stanford (1973) and an MBA valedictorian from Boston University (1987). I am a life senior member of the IEEE and a registered professional engineer in Texas and Massachusetts. In 2014, I was inducted as an eminent engineer by the Stanford chapter of Tau Beta Pi.
I have 11 issued patents and my publications have received around 4800 citations. A paper on search engine ranking I co-authored at Microsoft won a 10-year test-of-time award at the 2015 International Conference on Machine Learning.
I have spent my career as a designer, most of that as an entrepreneur. Every design project I can think of that I have ever worked on has always started as a blank sheet of paper. This is what I think I can teach.
I started my career in gate-level chip design at IBM in the 1970s building a reliable serial communications chip, a display processor and various other hardware devices. But most of my work has been in software.
I'm the author of Hamilton C shell, now a little over 250K lines of C. In December 1988, my C shell became the first multithreaded third-party application to ship on a PC. It remains the only multithreaded Unix shell in existence on any OS.
I was also the 9th member of the team at Microsoft that created the Bing search engine. I personally wrote the query language (the compiler) and ranker for our first release, which went live in January 2005. My code, roughly 30K lines of C++ out of a little over 300K in the backend, decided what our users were looking for, searched our index and then ordered the results. This was both the best and the worst job I have ever had.
I fell into teaching by accident in 2013. I thought I was retired and volunteering to act as a free advisor to seniors in electrical engineering on their Capstone projects at the University of Washington Bothell. I was surprised to find it paid and even more so, that they would pay me. Without a PhD, it was never on my radar that I would someday be teaching at a university. For the next four years, I taught digital design and Verilog, entrepreneurship, circuits and transistors and advised perhaps a dozen Capstone teams. I love teaching and feel honored and delighted every day that I get to do this. I love working with my students. It makes me feel young.
The move to Michigan also began quite by accident when I went offline at Wikipedia to discuss an article on flip-flops that another editor and I had been working on. Most people use pseudonyms on Wikipedia but when we went offline and introduced ourselves, it was Mark Brehob, who insisted I should come to Michigan. I wasn't looking forward to moving but decided that my advice to students applied to me: If you care about your career, you need to go where the opportunity is. University of Michigan has the #7 undergraduate computer engineering program in the country, so after a visit and teaching demo and when it finally came down to an offer, it was clearly an offer I couldn't refuse. I mothballed my house in Redmond, rented a townhouse here without ever seeing it, shipped only what I needed and drove here with my cat in the back seat of my aging BMW.
It was a delight being here. My students were smart and interesting and I really liked my colleagues.
I'm an Amateur Extra, callsign KD1UJ, though I confess I haven't been on the air in years. I've been an avid bicyclist all my life. I'm liberal and I care deeply about civil rights, especially for LGBT.