What a computer science degree looks like in 2020

Blogging

Lots of people who are learning to code ask the question "Should I get a CS degree or do a bootcamp?", or "Is a degree necessary?". I have just finished my degree (not graduated yet), and while I can't give all the answers to these questions, I can share my …

Continue reading »

Build a snake game on the BBC micro:bit

A detailed tutorial (simulator included)

Tutorials

By the end of this tutorial, you'll have built your very own game and learned not only about game development, but Python and the BBC micro:bit too. What's more, you don't even need to own a micro:bit to follow along!

Continue reading »

Disappearing documentation (a Kubernetes war story)

Blogging

I like a good war story, and I like them even more when I get to tell them. While writing my dissertation, I ran into a case of disappearing documentation. Here's what happened.

As part of my undergraduate dissertation, I was working with Kubernetes, and more specifically, the controllers within …

Continue reading »

Why I chose product management over software development

Blogging

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

Tutorials

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

Tutorials

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

Tutorials

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

Blogging

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

Blogging

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

Blogging

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

Link collections

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

Github Repositories

abracadabra

dejavu

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

Tutorials

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

Blogging

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 »