Who are you?
My name is Edwin Onuonga. I was born in Nairobi, Kenya and shortly moved to Dubai, United Arab Emirates where I lived for most of my childhood and teenage years.
I now currently live in Edinburgh, Scotland, but here are some other countries I've visited.
I know, not much... But there are some tiny islands I've been to which you can't really see here, like Seychelles, Mauritius and Singapore. Also the Kenyan passport is super weak — you can't blame me!
What do you do?
I am currently studying a degree in Computer Science at The School of Informatics, University of Edinburgh.
The full details and academic content of the degree can be found here, but here are a few of my favourite subject areas that are covered in the degree path that I chose:
- Machine learning and pattern recognition
- Formal and natural language processing
- Relational database systems
- Algorithms and data structures
- Software engineering, testing and design patterns
What are your interests?
Academic and computing-related
Ruby
My favourite programming language definitely has to be Ruby.
Ruby has a rich infrastructure of gems (Ruby's term for libraries), specifically when it comes to web frameworks. The simplicity and clarity of the language makes for more readable applications and DSLs. As the Ruby website puts it:
Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
Currently my only projects in Ruby have been CLIs, APIs, web applications and frameworks, core class extensions and other small utility gems.
I tend to use Sinatra for my web projects and therefore have limited proficiency in Rails.
Other languages
- Python: Unsurprisingly — it's very rare to find a computer science student these days that doesn't know a bit of Python. This language is very ideal for getting things done quickly, providing a rich selection of libraries for many tasks. My main uses for Python have ranged from machine learning with Tensorflow, Numpy etc. to natural language processing with NLTK, and even creating the software for an assistive chess-playing robot.
- R: I am quite new to this language, but I have used it for quick prototyping of machine learning and statistical models — and it has served perfectly for these tasks, feeling a lot more intuitive than Python in some cases. In the event that I have to use deep learning frameworks, then I'd probably opt for Python's Tensorflow, otherwise R seems great for most ML tasks.
- Crystal: I have experimented with this relatively new Ruby-inspired programming language as it seems to provide a lot of additional/improved features giving it great overall potential - despite appearing like a Ruby clone at first glance.
Non-academic
Bouldering
When I'm not in front of a computer you'll often find me on a wall. A good friend introduced me to the sport of bouldering and it quickly became my favourite sport.
Since my girlfriend introduced me to roped climbing and belaying, I've also slowly been improving my top-rope abilities.



I am yet to attempt lead climbing (and probably won't until I'm more confident with top-roping), but a goal of mine is to get to the point where I can lead climb outdoors.