photograph of sam

sam whitehall

software developer in Oxford

Sam is a computer scientist and software developer living in Oxford. He currently works 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.

While most teenagers spent their time playing with fireworks, Sam wasted his learning web design, as well as making many regrettable Flash animations and games, co-hosting an embarrassingly fawning Apple podcast (thankfully with no traces remaining on the internet) and trying to learn stop-motion (but lacking the patience).

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).

O.U.L.I.P.O

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

Play | GitHub

ipython-bell

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.

Slides

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.

YouTube

samwhitehall.com

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.

GitHub

Passionate computer scientist and problem-solver with a keen interest in web development, data engineering and visualisation. Actively looking for new opportunities from January 2018, ideally near Oxford, but willing to work remotely, commute or relocate for the right role.

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.

Skills

  • 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.

Education

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