photograph of sam

sam whitehall

software developer in London

Sam is a computer scientist and software developer living in London, working as a full-stack developer at EDITED.

Out of university, he worked as a developer and data engineer at Optimor Labs – a startup saving U.K. consumers and businesses money on mobile phone bills through an advanced data-driven bill analysis and recommendation platform, Billmonitor.

Prior to this, he studied Computer Science (MEng) at the University of Southampton, where he took a keen interest in many aspects of Computer Science, but developed a particular passion for machine learning and data analysis in his final years. Outside of studies, he was also the Online Manager for the Wessex Scene, Southampton University’s student newspaper, and actively involved in a variety of student societies.

When he’s not working, Sam enjoys; live music, learning guitar (very slowly), rock climbing, reading (about pretty much anything), and cooking (ever-more adventurous meals).

He is also actively seeking to offer his skills and time on to social & environmental organisations, pro bono. Please get in touch if this may be of interest.


A web app to generate surreal constrained poetry. The backend is developed in Django, and uses Celery to queue requests to, with an Django REST Framework API. The frontend is developed in Backbone.js.

Play | GitHub


IPython Bell is a simple magic for IPython and Jupyter Notebooks, which notifies you when the current line/cell has finished execution. This is particularly useful for long tasks. It can make sounds or use the OS’s native notification API (cross-platform).

GitHub | PyPI

Semi-Skimmed vim

Talk at The Oxford Mega Super Meetup Meetup, on a pragmatic approach to learning vim, to developers from a variety of technical backgrounds.


Individual Research Project

Masters-level literature review, reviewing statistical early warning signals for predicting tipping points in complex systems comparing predictive efficacy with explicit process-based modelling. Winner of “Best Poster” award.

Report | Poster

Roger the Roomba

Roomba robot programmed to follow a red ball (and play the Super Mario Bros theme). PID control algorithm developed in C++ (OpenCV, Qt, serial output) with Dan Palmer and Charlie Thompson.


Woah, meta? This site is a basic HTML/CSS design (including responsive layout), statically generated using Jekyll with a tiny bit of Javascript for scroll-spy logic.


Passionate computer scientist and problem-solver with a keen interest in web development, data engineering and visualisation. Not currently looking for new opportunities.

Senior Software Developer, EDITED

  • Full-stack developer.

Software Developer, Optimor Labs

  • Key team member in a small start-up team, joining at a pivotal moment to help develop our flagship product, Billmonitor for Business.
  • Developed new data pipeline and quality framework (Python), adapted and maintained tariff description rules (custom Python DSL) and modified statistical engine (C++) to support new market.
  • Developed testing protocol & tooling, and managed a team of remote testers.
  • Performed 4-month research project for a major household brand as well as multiple internal research projects.
  • Took on various “lead developer” responsibilities including developing HR process, on-boarding new technical hires, fostering a technical culture within the company, developing a pragmatic roadmap to drastically improve the maintainability of our legacy codebase.
  • Tech Stack: backend (Python), statistics engine (C++, Boost), business API (Flask), consumer frontend (Rails), business frontend (Angular), scrapers (Selenium), infrastructure (Docker/Ansible/AWS), tooling (GitHub/Jenkins/ELK).

Researcher, Real Time Trains

  • Developed and trained a proof-of-concept hidden Markov model for UK rail service platform prediction using machine learning on a snapshot of data. This involved data cleanup, training and evaluation.

Project Assistant (Intern), University of Southampton

  • Contributed to EU-funded TrendMiner project. Researched application of sparse inverse covariance matrices for machine learning and pattern extraction with high-dimensional natural language data using Python and Matlab.
  • Performed analysis to compare statistical correlations with ontological relationships (from WordNet).
  • Gave major technical presentation to academics, and non-technical lightning presentation to project stakeholders in Sofia.


  • Backend: Python (including Django, Flask, Twisted, Celery, Django REST Framework), testing (nosetests), web scraping (bs4, Selenium).
  • Data Science: Strong fundamentals in probability theory, statistics and core machine-learning algorithms. Python (including pandas, scikit-learn, Jupyter, SpaCy, NLTK, matplotlib).
  • DevOps: Experience with virtualisation (Docker), deployment (Fabric/Ansible), cloud (AWS/DigitalOcean), tooling (Jenkins/Elasticsearch/Kibana), networking.
  • UNIX: Regular user of UNIX command line (bash/zsh), proficiency with standard tools including vim (primary editor) and git. User of MacOS and Ubuntu.
  • Frontend: Experienced with HTML/CSS, including Jekyll, SASS, Bootstrap, Foundation, reactive design. Some experience with frontend frameworks (Backbone/Angular/React).
  • Databases: Experience developing and administering MongoDB, MySQL, PostgreSQL, SQLite.
  • Design: Experience completing web/print design projects for clients with Photoshop/InDesign.
  • Communication: Published articles in student newspaper, public speaking experience, tutored English and presentation skills. Competent speaker of German.


  • MEng Computer Science, University of Southampton. 1st (Hons).