Why I chose product management over software development

I'm about to finish my degree and have been fortunate enough to receive two graduate job offers. One was an associate product manager position at Google, and the other was software engineering at Bloomberg. Both companies and jobs excited me, which left me with a difficult choice. In this post …

Continue reading »

Easy Python speed wins with functools.lru_cache

Recently, I was reading an interesting article on some under-used Python features. In the article, the author mentioned that from Python version 3.2, the standard library came with a built in decorator functools.lru_cache which I found exciting as it has the potential to speed up a lot of …

Continue reading »

Better parameter validation in Flask with marshmallow

Recently I've had two Flask projects with endpoints that take lots of parameters. While working on the first project, I noticed that I was writing a lot of code for validation in each method, and it ended up looking ugly and probably full of bugs. When I started the second …

Continue reading »

How to configure DNS for custom domains on GitHub Pages

Recently-ish GitHub announced that HTTPS would now work on custom domains with GitHub Pages. This was a great bit of news, because the web is slowly moving towards a HTTPS-only state of being and it's nice not to be left behind.

Unfortunately for me, for this new feature to work …

Continue reading »

5 Mistakes companies make recruiting software interns

August to November is internship application season for computer science undergraduates and over the past few months I've been applying to a good number of internships myself. Through these applications I've learnt a few things about what makes for a good recruitment process and what doesn't and I hope to …

Continue reading »

How we ran Welcome Week events

At the University of Edinburgh we call the week before lectures begin each year Welcome Week. It's designed as a time for new students to meet each other and get settled into university and often a new city. Most societies will run events to try and attract new students to …

Continue reading »

Diagnosing performance issues in a Flask app

I was recently part of the team that ran CreatED, the UK’s first hardware hackathon of its kind. Organising it was stressful at times and incredibly rewarding at others, especially when it came to the event actually happening. During the run up to the event, we learned a lot …

Continue reading »

Useful links relating to abracadabra

Here is a collection of links relating to abracadabra that may be useful for anyone looking to do something similar.

Github Repositories



Academic Papers

Audio Thumbnailing of Popular Music Using Chroma-Based Representations

The above paper was more about feature detection for search and retrieval as opposed to robust …

Continue reading »

How to read WAVE files in Python

Any project that uses audio will usually start out using WAVE files for its on-disk presence, and as with many things in Python, there's a standard library module for that. Now don't get me wrong in the rest of this article - wave does the job. The thing is that it …

Continue reading »

The importance of letting go of ideas

On May 29 2015, I made my first entry into a fancy notebook I had bought. This was going to be it, I was never again going to struggle in vain to remember that killer idea I had earlier. Everything was getting written down from here on out.

Continue reading »