Unsteady Steps: 2002 - 2005

My time at community college came to a close and it was time to head to the University of Florida in Gainesville to complete my degree. By that point I had completed the math and physics prerequisites for a major in Computer Science and I had started encountering a troubling reality that I was going to continue experiencing for the rest of my undergraduate degree. Math classes were a struggle – I got a C in calculus III. Too many B’s and C’s in math courses were going to make my grades suffer.

That first semester was rough. I experienced terrible homesickness, I felt very disconnected from the football-loving locals, and I outright failed a discrete mathematics course that I should have dropped. I vividly remember leaving the final exam early knowing that I didn’t have an answer for many of the questions. I missed musical connection and musical expression terribly.

I re-took that discrete math class the second semester and passed with a B but then had to drop a linear algebra class that I couldn’t keep up with. However, I was finding that programming came easily to me – I skipped an entire semester’s of Java programming lectures and still got a B in the class.

I had a pivotal experience while taking a hardware course required for my major. In digital logic we learned how digital systems worked at a foundational level and built simple digital devices using logic chips and breadboards. I struggled with my first take-home lab because I waited for the night before to start working on it. However, for the following labs I would start working on them as soon as they were assigned. I found that I excelled at these practical assignments and I got to the point where I could arrive at the lab day with a completed project without having to hang around for hours to complete it with the TA’s help.

The tests were tough. I got a C in the class but I greatly enjoyed the work. Some takeaways from this course that have informed my career are:

  • I discovered that I had the ability to ask clear questions and follow-ups to the class TAs via email. This let me overcome challenges with the lab projects. I discovered the power of clear and unambiguous asynchronous communication this way.
  • In a practice that has probably since been changed, Dr. Schwartz would require that you visit his office once during the course where he would convince you to switch from the computer science major given by the college of liberal arts and sciences to the major of computer and information science and engineering given by the college of engineering (!!!). His rationale was that both majors had the same prerequisites but the CISE major had way more required hardware programming classes that were more rewarding than the upper-level computer science electives. I really enjoyed the digital logic class so I did make the switch of my major! My mom, who at the time struggled to understand computers, appreciated that I was studying engineering now. She recognized the profession and prestige of an “engineer” but had no idea what a computer scientist is ;]
  • Have you ever tried to debug hardware problems? It’s hard!! There is no handy stack trace that you can pop into Google or an LLM-powered chat client and get a bunch of solutions. Dr. Schwartz provided guidelines for how to develop hardware-based designs that I try to apply to all my projects: slow and steady wins the race. He used the turtle vs. the hare analogy and said that many of his students are “hares” that try to assemble a complete circuit and then struggle to fix problems in the larger resulting problem space. Schwartz’ approach was to suggest that you implement a solution one small part at a time and validate each part as soon as it is completed. This feels slower in the moment but can actually help a student arrive at a completed project more quickly and with less stress. This ties in to my tile boss West’s philosophy of keeping your workplace clean and cleaning messes as they happen rather than waiting till the end.

I struggled my way through the rest of my undergraduate major. Not being able to be in bands was tough – I vividly remember being blown away by seeing the band Blood Brothers during touring for Burn, Piano Island, Burn and feeling profoundly sad that it couldn’t be me up on the stage channeling the violent and passionate energy I felt in my body in my early 20s. I continued excelling at hardware and project-based classes and getting very hard-won B’s and C’s in math and theory classes. As my coursework was coming to a close I was starting to feel that same feeling of approaching an abyss that I felt in high school when I was expected to pick a path for my life after graduation. This intensified when I went to a job fair and some guy at a booth not very kindly informed me that my barely over a 3.0 GPA was going to make it hard for me to find a job. He wasn’t wrong. My final semester at the University of Florida was coming to a close and I started applying to jobs. After applying to dozens of jobs, I got a call back from only one place :/

My undergraduate experiences were for the most part quite stressful. Excelling at hardware-based courses that others found to be challenging was validating, however. So was the feedback I got at a part-time job I had at the astronomy department. My work there consisted of building and documenting thick, many-conductor cables for the CanariCam and FLAMINGOS infrared telescope cameras, and documenting electronics chassis layouts. Apparently when the CanariCam was installed there wasn’t a single issue with any of my cables! No mixed-up wiring or bad solder joints :] I attribute this success to Dr. Schwartz’ philosophy of carefully testing each module as you are building it and then also validating the complete design at the end.

I am also grateful to be exposed to Unix command-line usage via operating systems courses. As a result of this early exposure and confidence I was inspired to install Ubuntu 4.10 on my home PC and I enjoyed the challenge of researching fixes for sound and wireless network card issues. For many years I used Linux on my personal computers unless I wanted to work on creative audio projects. I have mentored relatively recent UF computer science graduates and was saddened to learn that they do not seem to get much Unix exposure anymore.

The grind of high school followed by 5.5 years of college education finally came to a close and it was time for me to face my first full-time software job.


Part 2 of My Software Journey

Part 1: Lost at the Beginning: 1997 - 2002
Part 3: Painful Lessons: 2006