He originally applied to Rice University as a Physics major, but the Computer Science alumnus (B.A. ’94) said his introductory Physics class didn’t go as well as COMP 210 so he switched.
Although functional programming may not be something he uses every day, he has incorporated it in several jobs and is currently using it for a side project he is developing for his team at Grant Street Group. Through several career changes, his enthusiasm for Rice’s CS program has remained strong.
“Keith Cooper was a great inspiration to me,” he said. “He is great at explaining things and making concepts relevant through his stories. He taught the compilers course and I asked a lot of questions in class. Then I would go to him after class to talk about the points I found interesting. That class allowed me to develop a relationship with Keith and he served as a reference for me for several jobs and grad school.
“Keith kept stressing data flow analysis and compile time analysis of run time flow values. Even though I don’t develop compilers at work, the fact that I know how they work means I write better code.”
Kopnicky said all his Rice CS instructors taught from the ground up. “How computers work, their architecture, compilers, and operating systems – every course built out my understanding of computers and I still feel very confident about everything that’s going on inside one. Even if I am not actively working in some of the areas we studied, the CS professors and courses ignited my passion for the field of computer science.”
Five years after graduating from Rice, Kopnicky tried his hand at teaching computer science courses for Houston Community College. He said he had become disillusioned with the software industry and had always wanted to try teaching full-time.
“It felt great to take students through that learning journey. For most of the classes, I created my own tests and resources and I really enjoyed developing that material. When one of my students graduated, it felt like a Mr. Holland’s Opus moment for me.”
His two year role as a CS instructor rekindled Kopnicky’s interest in the field and prompted him to pursue a Ph.D. In Portland, he realized he was more interested in working on software than research and headed back to the industry after completing his master’s degree.
“My first job after grad school was working on Perl at a tiny company. It didn’t pay that well, but I had to work there a few years before I got to try something else. If you’ve worked in the tech industry for long, you know opportunities often depend on where the industry is when you are looking.
“An online board posted a job ad that said they were looking for Haskell programmers and I thought, ‘Oh wow, I love that functional programming language.’ Turns out they weren’t working in Haskell, they just wanted people who loved it. It was the first job where I felt I was really working with computers, I spent five very fun years working there. I was working with quite a few really smart people and that experience opened my eyes to the kind of organization where I could thrive.”
As his employer’s market plateaued, Kopnicky saw a wave of departures among his co-workers. He considered working remotely with two of his colleagues. He traveled to Pittsburgh to interview at headquarters of the Grant Street Group, but turned down their offer of working for them from Portland.
“At the time, I was leery of working remotely,” he said. “I wasn’t sure I would be able to focus, so I joined a local startup and started working in Ruby, Haskell, and other areas I found interesting. But the startup wasn’t very stable and within two years I was looking again. Grant Street offered me a job again and I accepted. I found I could actually focus better because I wasn’t distracted by the people around me. I am a big fan of remote work now.”
At Grant Street Group, Kopnicky is once again surrounded – albeit remotely – by smart people with deep expertise in technology and finance. The company provides cloud-based software solutions that support local government processes such as collecting property taxes, managing bond and tax deed auctions, and streamlining electronic payments for motor vehicle registrations.
For the past five years, Kopnicky has been developing software for their tax collection and billing service and has discovered a satisfying combination of remote work, a stable employer, and interesting assignments. His varied career path has shaped his advice for current and prospective CS students. He said, “You are probably really excited about building out programs with elegant techniques, but your actual job will be quite different.
“Depending on your employer, you’ll probably never write a compiler at work but you will spend a lot of time clarifying requirements. You may be dealing with quirky infrastructure, and you might even work on projects that get canceled.
“Don’t hesitate to apply for remote jobs, but recognize the pros and cons of that kind of environment. On one hand, it is tricky to find job postings that are only remote. On the other, I can work for any company in the world without having to move.”