University of Chicago Masters Program in Computer Science alumni push boundaries and innovate across many facets of industry. Whether it’s developing seamless UX interfaces, engineering software at fortune 500 companies, working in big data or keeping networks secure; our esteemed alumni use their applied skills education from MPCS to problem-solve, create, and elevate the computer science field. Learn from their stories and discover how a CS background can prepare you for cutting edge careers and leadership roles.
Ken Park, class of ‘14, is the CEO of Knowru Limited, a company that makes managing APIs much easier. Here, he discusses how the MPCS helped him to solve problems at his company, how he was inspired by MPCS professors to forge his own career path, and the importance of asking why.
What does a great day at work look like for you?
After a workout, I come to the office at 9AM and reply to emails. Junior developers come in and we have technical discussions on suitable architecture patterns for clients.
I have a quick lunch with a business development colleague to discuss recent meetings with potential clients and brainstorm ways we can do better. I have a couple of coffee chats with advisors and potential partners, where we discuss the market landscape and our position in the market. We also brainstorm areas our technology can be relevant.
Around 5PM, I email project managers key requirements that our current development projects should not miss, further develop sales materials for potential clients, and improve the slide deck that I will use to explain our current situations to our investors. At 6PM, I head to the airport for meetings in a foreign country that begin the next morning.
What do you enjoy most about your profession?
The sense of contribution. My company’s goal is to provide useful and human-oriented machine learning platforms and solutions to clients, and I feel utmost happiness when clients love and appreciate our products. Also, I frequently get to work with junior developers and data scientists, and when I see them grow, I feel that same sense of happiness as well.
Which programming language/technical skills do you use most often at work?
I used to work with various programming languages like Python, R, Java and SQL to develop machine learning models and tools, but as I spend more time communicating our values to investors, clients and partners, PowerPoint has become an important tool as well.
Describe a problem at work that your MPCS knowledge helped you solve.
We were developing a solution to help clients find fraudulent transactions at large scale. The data set was so large that in our initial development stage, we frequently had the notorious Out Of Memory errors.
The knowledge I had gained from MPCS allowed me and my team to explore two options: The first was to use a multitude of servers simultaneously (BigData) and the second was to develop an advanced algorithm with some degree of approximation to process transactions real-time.
In the end, we used a combination of both approaches (using BigData to gain insights on what kind of approximations we could make, and advanced algorithms to create a mechanism that can identify fraudulent transactions instantly), which would not have been possible without the knowledge from MPCS.
Did you come to MPCS with a computer science background? What motivated you to apply and enroll?
I had a bit of experience in computer science. I liked to make my own computer games using Visual Basic 6.0 when I was little and went to the Engineering School at Northwestern University. However, though I took a couple of computer science classes and programmed regularly for my Applied Math major, I felt that I fundamentally lacked knowledge about what was going on inside a computer when I gave it an instruction.
Furthermore, as a data scientist in a FinTech company, I often had to optimize existing SQL queries or develop new algorithms. These tasks made me realize that I had only cared about whether what I wrote worked or not... but never cared about how efficiently it worked. This realization motivated me to apply to MPCS because the program suited me perfectly in my pursuit of understanding the foundations and theories behind algorithms and programming.
Would you recommend MPCS to others? If so, why?
I’d absolutely recommend MPCS to others. Anyone having completed MPCS will code far better not just in a sense of “Now I know how to use this new library,” but rather in a context of “This programming approach will be the most efficient because it most effectively processes data in memory and has the least network communication cost.”
What is your favorite memory from your time as an MPCS student?
During my MPCS years, I was living in downtown Chicago. After class, I’d commute back home via the CTA. Some of my classmates took the same route, and during these times, we talked. Most of us were working and studying at the same time: We shared what we did for a living, how computer science was being applied to our jobs, why we chose the classes we did, and then what we were going to do for weekend.
I am still fond of the connections, sharing, and learning I had during these commute periods with my classmates.
What was your favorite MPCS course? Why?
I have two favorite MPCS courses.
The first is the Algorithm class. Though probably the most challenging, the Algorithm class allowed me to realize the inherent trade-off between speed and storage in constructing algorithms, and substantially strengthened my algorithmic thinking.
The second is Introduction to Computer Systems. The Introduction to Computer Systems class was a very intriguing one. It started with simple logical operators and then ended with writing our own programming language. I still remember the two nights I could not sleep before the last homework deadline, which was to write my own compiler (it was hard). Though extremely difficult, the course enabled me to understand how my code will manipulate a computer’s memory, which has been a great asset throughout my career.
How has your MPCS education helped you achieve your professional goals?
I already talked about the knowledge aspect of MPCS so I’d like to talk about aspirations the professors inspired within me. With their real-life stories, they gave lots of hints about what was ahead of me in my career.
Many professors had experiences in managing IT teams or consulting IT projects in large enterprises. They knew not only the technical difficulties involved in these tasks but also the human issues that can rise between clients or even among internal team members. Some even established their own companies to tackle problems that none dared to approach. Their stories motivated me so much that I am now following their paths.
What is a piece of advice you’d give someone considering applying to MPCS?
If you want to become a developer, absolutely apply to MPCS – it will help you program faster and better.
If you want to be more knowledgeable in the computer science field (to do your non-development work better or have more career options in the future), you should also definitely apply to MPCS as well. It enables you to conceptually understand technical subjects, which will help you in various scenarios such as having conversations with developers, managing IT development projects, making investment decisions to tech companies, selling software products etc.
Furthermore, the diversity of peers you will get to study with is enormous: there will be traders, lawyers, consultants, accountants, artists and so many professionals from numerous backgrounds. Taking classes with them, you get to know their different motivations. You realize the impact that information technology is having on everyone’s life. With the knowledge and professional network in the field, you will get to live a career full of creation, impact, and imagination.
Do you have any career advice for someone who's pursuing a job in your current field?
Ask why. I studied engineering and computer science through my educational career and regard creating and distributing something useful to the world as my life goal.
Typically, a problem needs to exist before creating a solution and I found asking why is a very effective way of finding the root cause of a problem. For example, when working as a data scientist, I found that deploying my machine learning models required too much time and development resources. There were various issues involved but basically it was because the languages used for model building were different from those for application development. Then, I wrote the solution myself and started my own business.
In short, let us be sensitive to inconveniences around us, ask why to find the underlying problem, create solutions, and contribute to humanity. Lastly and most importantly, let us have fun in this meaningful journey.