If I could do this with video games, imagine how I could apply this knowledge in other areas — the potentials are limitless.”
Osasumwen Eboh, Master of Engineering in Computer Science (CS) ’17 and a software engineer at Aurora, opens up about his education, career aspirations, and the idol that inspired him to pursue a career in computer science.
Eboh’s interest in CS has been constant since childhood. His journey to become a software engineer began at Rutgers University, where he studied Electrical and Computer Engineering. From hacking video games for fun to working as a software engineer for AT&T and Uber, Eboh has been living the life of his dreams at his current organization, Aurora.
What sparked your interest in CS?
Like many kids around nine or 10, I was heavily into video games — and at the time, I was into a game called Pokémon Ruby. One of the objectives was to catch all the Pokémon, and I didn’t really want to invest all of that time. So I’d started to learn how to hack the game.
After that, I continued with other games like RuneScape and MapleStory — and realized I enjoyed the process of reverse-engineering the games more than actually playing them. So, that became one of my core interests. Eventually, it became chiseled in my head that, if I could do this with video games, I could apply this knowledge in other areas.
During my high school days, Facebook was just starting to come up. I really got enamored with Mark Zuckerberg’s story of dropping out of college and starting this entire multi-billion dollar business out of a little dorm-room side project. So, all those different childhood influences and the idea of being able to pursue whatever you want enticed me to go for CS and programming.
How did you eventually end up pursuing your CS master’s degree at Cornell Tech?
I wanted to go back to school to try something else, but I didn’t want a repeat of undergrad where I just take courses and write assignments. I wanted something challenging, something that I could bring back into my career. So, I thought going to Cornell Tech would be a great experience, offering academic challenges mixed with an entrepreneurial scene.
How has Cornell Tech helped you achieve your career goals?
It helped me really understand the software development cycle. At AT&T Labs, there was an atmosphere of, “here, do this and just code away” — you didn’t have to think about the business or user aspects. But at Cornell Tech, I worked with all the different sides of a project, whether it be the design or the business aspects, how to get customers, or the actual coding. Everything is put together, and in that way, you’re really challenged at Cornell Tech.
So, nowadays, when I go into various meetings, I’m more aware of these different things. I’m not just worried about the requirements for me to code or how these records are being formed. That extra layer is now in my head and operates on its own as I work and communicate with other people on the team.
Whatever you choose to work in is going to be valuable, as long as you get an education and experience and become an expert in your domain. That’s all that really matters. Because, whether you’re black, white, male, or female, no one can take your knowledge away from you.”
After chatting a bit about Eboh’s experience at Cornell Tech, we also got the opportunity to discuss his current field of work, and to know more about his day-to-day duties at Aurora — an automotive company that focuses on autonomous driving technology.
Can you briefly describe your day-to-day responsibilities at Aurora?
As a self-driving vehicle company we manage the trucks’ autonomy, i.e., the autonomous software running on the vehicles and the auxiliary services that live in the cloud to help support the same. Currently, I’m on the vehicle Input/Output (I/O) team. We handle all the aspects of messages that are sent and received by the vehicle.
My core responsibilities are focused on the logging side. We have certain tools where you can write logs or messages from the vehicle onto a disk, and tools on the other end of the pipeline where you can read all of the vehicle logs for post-processing. All of these tools are written in C++, and we focus on making sure things are as efficient and error-free as possible. Hence, there’s a lot of optimization work that’s being done.
What seems to be a major challenge in the US for applying autonomous driving on a mass level?
I would say one of the biggest hurdles is the unpredictability of driving. It’s easy for a human to adapt to whatever situation they’re in. But for computers, it’s more complex. There are so many different situations where something wrong could happen, so you always want to cover all these different use cases. That’s the biggest challenge we’re trying to figure out.
What impact do you feel your work has had so far?
I would say my work is definitely helping to make it easier for other developers to quickly iterate and fix any issues that they have. With the logs, you have all the information you need to know for what’s happening on the vehicle and to figure out what has to be done or resolved. This is documented every time there’s a different issue or error case that happens. Without the logs, we wouldn’t have the information required to make these kinds of quick decisions. My work is helping to improve that pipeline of information so that we have it when we really need it and can understand what needs to be done for the future.
Are you also working on any fun projects these days?
I’ve been looking into quantum computing. There’s a course on brilliant.org that I’ve been taking to understand quantum computers and the different algorithms involved with them. I think conventional computing has had a very long runway, but quantum computing is definitely up next. The possibilities with it are endless. We just have to figure out how to make a stable quantum computer that everyone can have. Then we can understand how to apply quantum computing in various areas like security, messaging, and complex calculations.
What are the three pieces of advice you’d give to prospective students seeking a career in CS?
- Always be curious and learning.
- Don’t be afraid to fail and share whatever you’re working on.
- Technical knowledge is only half of software engineering. If you want to excel, you have to know how to communicate.