Mitchell Allison

About I’m Mitchell Allison, a fourth-year Master’s student in Computing from Imperial College London. I have a strong academic background combined with a passion for problem-solving and learning new technologies. Particular interests of mine include Mac and iOS development, and compiler technology.
Proficient Skilled
Objective-C & Cocoa C++ Java
C HTML, CSS & JavaScript Python
Git & source control concepts SQL Ruby
Education MEng Computing, Imperial College London, 2011-2015

Expected classification: First-class

  • Relevant courses:
  • Software Engineering Design
  • Databases & Advanced Databases
  • Compilers
  • Operating Systems
  • Concurrency
  • Machine Learning
Experience Software Engineering Intern, Apple Inc. April 2014 - September 2014

Design and development of an internal tool to support the company’s build system. My skills extended from front-end web development using HTML, CSS, JavaScript and Backbone.js to server-side development using Ruby, Objective-C and Perl.

ITDP Intern, Apple Inc. July 2013 - September 2013

Design and development of an internal proof of concept iOS application.

Projects Warning Lights Xcode Plug-in - Objective-C

Design and development of an Xcode plug-in that flashes your Philips Hue light bulbs different colours depending on the result of your build. The project was a novel opportunity to explore reverse-engineering an application, using techniques from class dumping to method swizzling.

MAlice Compiler - C++

A university group project involving the development of a compiler for a fictional, imperative programming language named ‘MAlice’. Tasks varied from high-level skills like creating a grammatical specification of a language to low-level code generation and loop optimisation.

Pintos OS Extensions - C

A university group project involving the extension of a simple OS named ‘Pintos’. Tasks included extending the system with threads, the ability to run user programs and virtual memory. The project placed emphasis on concurrency (implementing OS-level semaphores), debugging large systems and memory management.