Dr Ashley Mills, Full CV

Summary

I am interested in solving problems that have environmental or societal importance, but as a professional I will work hard on any problem given to me. I have over 10 years of programming experience, and a wide understanding of computer science and electronic engineering. I am an expert in quickly prototyping full-stack solutions to complex problems. I am always open to offers of contract work, with a preference for work-package based assignments. Please get in touch if you feel I may be of service to you.

Work Experience

Director, Technology for Good CIC, Aug 2016 - Present

Technology For Good was founded in August 2016 to work on problems of social importance. It is a community interest company with an ethical mandate. We are currently at the early stages of forming relations and seeking funding for various project ideas.

We are available for consulting for clients with positive projects.

Research Associate, University of Kent, July 2016 - Present

In this role I have developed the technical capability for a team of volunteers to monitor pollution around Canterbury. We are currently in the early stages of the research project.

Sessional Lecturer / Makerspace Technician, University of Kent, School of Computing, Dec 2015 – Dec 2016

"The Shed" is a makerspace at the School of Computing, University of Kent. The Shed provides a free space for students to make and build things. The Shed also engages with industry in providing solutions for technical projects that have significant computing, IoT, or hardware elements. In this part-time role I:

Director, Noisy Atom Ltd, Sept 2014 - Aug 2016

I was a technical director of a small company that focused on building software, hardware, and mechanical solutions to internet oriented problems. Some specific projects:

Data Scientist, Holiday Extras Ltd, Jan 2015 - Apr 2015

In this 3 month contract I analysed Holdiay Extra's PPC (Pay Per Click advertising) data and assisted with the data integration team in managing the company's data. Notable contributions:

  1. I designed and implemented a system for viewing Google adwords performance in-realtime or on demand. This was a web interface created using the Shiny framework in R on a virtual machine I setup and maintained. I engaged directly with the head of the PPC team in this regard and received excellent feedback.
  2. I evaluated "fuzzy" parts ofthe existing PPC strategy with regard to actual cost savings and thus provided quantitative feedback for existing speculative assumptions.
  3. I maintained Holiday Extra's adwords scraping software and ensured it met the constraints of the new google API for two API releases.
IoT and M2M Specialist, Vodafone Group R&D, March 2012 - Sept 2014

The majority of Vodafone R&D employees have roles which continuously change to match the companies strategic objectives, whilst being heavily centered around mobile technology.

During this period I was engaged in a wide variety of projects with a strong IoT/M2M focus. Some notable examples are listed below:

  1. Designed and prototyped an automotive dongle and backend data storage system as an in-house solution for Vodafone Xone's drivexone product (prior to the aquisition of Cobra automotive). The dongle tracked incar events and stored these as integrated Trip objects in the cloud. The hardware was prototyped to PCB stage and at the point of closure was working end-to-end. I managed a budget of approximately £300k to deliver this project and managed one software contractor to help with prototyping.
  2. Managed the testing of various automotive dongles for the purpose of evaluation in Dusseldorf, Germany. This involved designing a test schedule for driving various hire cars and testing the capability of the automotive dongles to record salient events.
  3. Collaborated with ARM's mbed group (http://mbed.org/) in Cambridge UK, to produce software which would allow their rapid-prototyping solution to interact with Vodafone's commodity and M2M dongles. This included promotion through hackerthons and public engagement. I managed a budget of approx £50k. The resultant software was used by a large continental mining company in their development of a machine interface, and resulted in sales of dongles to them.
  4. Attended Mobile World Congress (MWC 2013) as an M2M representative for Vodafone and attended the Vodafone installation in the connected city. You can see me talking about a connected door prototype I designed and implemented here.

In addition to these particular activities I was heavily involved as a consultant on many internal M2M activities, and was regularly called out as an R&D M2M representative to large clients of Vodafone such as BP and Centrica.

Energy Specialist, Vodafone Group R&D, March 2011 - March 2012

During this period of my employment in Vodafone R&D I was tasked to look at ways in which Vodafone could fulfill it's commitment to reduce carbon emissions. The following tasks are illustrative:

  1. Designed and implemented a prototype remote controlled thermostat as a means of reducing customer energy footprints. The prototype was developed to PCB level and included an Android application for user control. As well as being responsible for the design, I programmed the software on the hardware and Android components. Managed a budget of approx £15k
  2. Was a technical consultant for Vodafone's smart metering bid and assisted analysis of coverage and other radio aspects.
  3. Supervised the installation of a prototype hydrogen powered base-station in Alacati, Turkey.
Radio Team Researcher, Vodafone Group R&D, March 2007 - March 2011

I joined vodafone as a researcher as part of undertaking an Engineering Doctorate.

The EngD (Doctor of Engineering) is an EPSRC and Industry funded professional Doctoral degree. My host university was The University of Bath and my host company was Vodafone Group Services Ltd. I was based in the R&D department at the Vodafone HQ in Newbury under the supervision of David Lister.

My EngD was assessed by Dr Simon Armour from Bristol University, Dr Peter Cosimini from Vodafone, and Dr Julian Padget from The University of Bath.

My work was focused on the problem of interference mitigation in LTE and other OFDMA networks. I discovered novel solutions to the problem and published this work in peer reviewed journals and conferences. A patent which captures some of the novel phenomena has been granted.

The work enhanced my analytical and scientific skills to a large extent, since a doctoral degree requires the production of novel material against the backdrop of the existing state of the art. Novel enhancements must be demonstrated true with appropriate statistical rigor and hence my capacity in this regard has been demonstrated.

The work enhanced my ability to write highly technical documents, as well as the preparation of executive summaries and presentations.

My knowledge of telecommunications systems was vastly broadened by this work (having come from a computer science background). My deepest telecommunications knowledge lies in understanding the MAC layer of LTE.

A doctoral degree displays an ability to learn, master, and improve upon an existing domain. I have demonstrated these traits by completing it. I worked with international groups and other bodies, and have experience with delivering presentations to mixed groups of people.

The work lead ultimately to my appointment in a permanent role as an "Energy Specialist". This role is unrelated to my doctoral degree but illustrates the confidence my employers have in me to rapidly learn and master new domains of knowledge and improve upon them.

Guest Researcher, National Institute of Informatics, Tokyo, Japan, July 2008 - Oct 2008

Conducted research into the study of frequency selective scheduling in WiMAX under differing velocities. This resulted in an IEEE publication.

Guest Researcher, Graz University of Technology, Austria, Oct 2005 - Aug 2006

Undertook research in computational neuroscience pertaining to the measurment of time in the mammalian brain. Specifically the role of the cerebellum in mediating temporally delayed conditioned responses.

Nuffield Science Foundation Summer Placement, University of Birmingham, Computer Science dept, July 2003 - Oct 2003

Research was performed into the induction of temporal symbolic structures in networks of spiking neurons.

The work resulted in two publications, one of which was in the Journal "Neural Computation".

Tutorials Author, University of Birmingham, Computer Science dept, July 2002 - October 2002

Wrote 19 tutorials and a software system for automatically maintaining the website they were hosted on. Some of the tutorials e.g ANTLR, LOG4J, DocBook have received worldwide recognition.

Education

The University of Bath, School of Computer Science

The University of Birmingham, School of Computer Science

Skills & Expertise

Programming

I have over 15 years experience programming in a wide variety of languages spanning from very low level programming of embedded devices, through system level and operating system tools, going upto Android applications, and all the way upto visuals oriented programming of frontends for data and web applications.

I can pickup new languages and obtain advanced understanding of them very quickly.

The languages I am most familiar with are listed below with some of the projects I have completed in each of them described:

c

I have been programming c for over 10 years and am deeply familiar with the memory model and advanced debugging. I developed a youtube tutorials series for teaching c, where you can confirm some of my knowledge.

The following tasks for which I have used c are illustrative:

  1. Implementation of many computer science algorithms.
  2. Modelling of feed-forward, recurrent, and spiking neuron networks.
  3. UDP and TCP networking test tools.
  4. Drivers for embedded hardware peripherals.
  5. A compiling evolutionary computing program for evolving images.
  6. A library for representing and performing mathematical operations upon polynomials.

c++

My main experience with c++ comes from three principal areas:

  1. Implementing intra-site scheduling algorithms LTE basestations in a system level simulator.
  2. Implementing software for an ODB dongle interfaced tracking module for vehicles.
  3. Implementing drivers and software for the mbed platform, including a library for the IoT protocoal CoAP called cantcoap.

Objective c

I have used objective c to program the MIT handyboard for a robotics module at university.

Java / Android

My undegraduate CS degree was taught principally using Java so I spent three years on and off using Java for increasingly difficult tasks. For example:

  1. A collaborative music Android app for driving an speaker, itself driven by a cellular modem connected to an embedded controller. This was presented at Droidcon NL in 2012.
  2. A CMS for managing a set of tutorials I wrote, the internal details of which is descripted here
  3. A visual interpreter for the esoteric programming language Befunge

Matlab

In addition to using Matlab for producing all of the figures for my BSc and MSc theses and academic publications, I have used Matlab for:

  1. Static modeling of interference generation for LTE
  2. Modeling of rabbit cerebellum
  3. Statistical and mathematical analysis of large data sets

R

In addition to using R for the same sorts of tasks as used for Matlab, I have used R specifically for analysis of large data sets. This involved interfacing with IBM DB2 instances, as well as open-source databases.

In a commercial environment, I have used the the R web framework shiny to create a dynamic analysis tool for Holiday Extras PPC data.

javascript and nodejs

I have used javascript on its own for simple scientific demos for educational purposes; for example a model of diffusion limited aggregation.

In addition, I have used javascript in nodejs side for several web apps, such as:

  1. A backend for storing images from an mbed driven camera connected to a cellular modem, coupled with a frontend for viewing and playing back the images as movie sequences.
  2. A backend for receiving SMS messages via a USB connected cellular modem, and translating these into animation events to all websocket connected frontend clients, for a marketing promotion.

sh / bash / zsh

Wherever possible I feel compelled to automate that which can be automated. I have used shell scripts to automate administrative tasks as well as using it for things that it probably shouldn't used for, such as:

  1. An SMTP client
  2. A cellular modem driver
  3. A LoraWan driver

As such I have become very good at using shell scripting for just about everything it can be used for.

python

My experience with python is limited primarily to devops scripting tasks, but I have used the python web framework Django to create a frontend for managing a connected-car product I designed at Vodafone.

go

I have recently started using go for the backend and frontend of a pollution monitoring project. The backend part provides an API to store pollution data, and the frontend provides a REST API to access it as well as a default HTML rendering interface.

php

I have used php to:

  1. Create a plugin for a private client for Zencart which creates PDFs address labels.
  2. I maintained a ad-scraping tool that someone else wrote.

Erlang

I taught Erlang to second year CS students at The University of Kent. I open-sourced a a json parser I wrote in it.

x86 Assembly / ARM Assembly / AVR Assembly

I have written various sorting algorithms in x86 assembly as well as some BIOS interfacing boot code. I have used ARM and AVR assembly where I needed finer control over the hardware than c could provide in embedded contexts.

Haskell

I was taught haskell as part of my CS degree. The course was quite in-depth and I used it not only to implement various algorithms, but spent time to mathematically reason with it, being able to inductively prove various properties of the programs created.

Basic

Everybody knows basic don't they? I programmed basic on a ZX Spectrum when I was a child. I used visual basic to create a network monitoring tool for my school during A-Levels.

Mathematical / Computer Modeling / Algorithms

I have been responsible for modeling physical systems for the purpose of research at several points throughout my career. Examples are given below:

  1. Neuron models / Brain circuitry
  2. Classical feed-forward neural networks and BP algorithm
  3. Recurrent neural networks with classic rate based units
  4. Recurrent spiking neural networks
  5. Echo state networks
  6. Fractal prediction machines
  7. Vector quantization
  8. Kalman filtering
  9. Mobile WiMAX 802.16e interfere model and MAC layer scheduling algorithms
  10. 3GPP LTE interference model and MAC layer scheduling algorithms

Computer Administration

I have an excellent working knowledge of FreeBSD and Linux administration, bourne primarily out of personal interest. I have used this knowledge both professionally and personally:

  1. For over 10 years I have maintained my own personal websites and a mailserver for my family on a Linode VPS. The mailserver uses postfix MTA, dovecot for IMAP and auth, spamassassin for spam control, roundcube for webmail, and DKIM and SPF to enhance sender authenticity.
  2. When I worked for Vodafone I helped specify and was the principal maintainer of the R&D compute cluster.
  3. When an undergraduate, I created my own distributed computing software to distribute decision tree construction for an optical cancer detection problem over all the machines in the department.
  4. I have maintained forums and mailing lists charitably for community purposes.

Electrical Engineering

I am self-taught in electrical engineering but have obtained proficiency enough to design several hardware prototypes:

  1. Prototyped a connected car product for Vodafone Xone using the mbed platform and managed its PCB manufacture via an external contractor.
  2. Prototyped a connected thermostat for Vodafone R&D using an AVR processor, and managed its PCB manufacture via an external contractor.
  3. Designed and produced a PCB for controlling 240V relays.
  4. Designed and built an a ZVS switching induction heater with a custom coil for curing graphene foam. I produced a popular science video for it on youtube.
  5. Built the "clocktower", "connected bus", and "reactive safety helmet" for a model IoT connected city.
  6. Authored a youtube series on http://kicad-pcb.org/ an open-source tool for designing PCB's that has had ~70k views.

Technical Authoring

I am proficient in using LaTeX, docbook, HTML, Microsoft Word, Libreoffice, inkscape and other tools to create technical and academic documents. I have seven published publications in peer-reviewed conference proceedings and journals.

I have written approximately 30 tutorials in various subjects, 20 of which were written in just 3 months as a paid task.

Public Speaking / Public Engagement / Teaching

I am a confident public speaker with a diversity of experience including:

  1. Presenting at several conferences at which my work has been accepted.
  2. Teaching CS students and highschool students face-to-face.
  3. Representing Vodafone at Mobile World congress where I was interviewed for ARM's youtube channel, as well as ABC news.
  4. Represented
  5. Organising and running a hackathon at Over the Air a hackathon aimed at cellular technologies.
  6. Organising and running a stand at droidcon NL, as well as speaking.
  7. Organising and running a stand at droidcon London.
  8. Spoken to public groups about pollution and health in Canterbury.
  9. Ran a youtube channel, with over 100 videos, 200k vies, and 1.2k subscribers.

Cellular Networks

I worked for Vodafone for six years, four of which I undertood as a doctoral student. During this period I was involved in many aspects of cellular network technology and have a deep knowledge of them.

My doctoral thesis was about mitigating the effects of interference in LTE (4G). I produced a patent in this domain, and two patents in other areas of cellular networks.

I have experience attending standards meetings, as well as contributing to standards documents.

Volunteering

National Autistic Society - Befriending

The National Autistic Society provides a befriending service to people with autism who find it difficult to socialise.

I was a befriender for 3 years for two different people: one man in his early 20s, and a teenager. In each case we met for one evening at least every two weeks and performed various activites that were considered mutually enjoyable.

It was very rewarding to be able to offer two different lonely people the opportunity of companionship.

National Autistic Society - Autistic Pub Group

Following from the befriending, I was asked to help create an autistic pub group for West Berkshire. In contrast to the befriending which was all about one-to-one friendship with children and adults with Autistic Spectrum disorders, this was aimed exclusively at adults.

I helped setup the group and was the principal organiser for a period of one year. The group ran once per month and met at The Swan in Thatcham. It had around 5 regular attendees, with a maximum of about 10 people attending at any given time. Periodically we also attended special events such as bowling.

Reserve management activities for Warwickshire Wildlife Trust

Whilst looking for a doctorate to undertake, I took part in volunteering at the local wildlife trust in a scheme called "Nature Force".

Every thursday we would meet at Brandon Wood nature reserve and travel out to one of the trusts nature reserves and perform management tasks such as coppicing, dead hedge creation, or scrub clearing.

Mentoring of secondary-school students

Whilst at Vodafone I took part in a week long program to mentor secondary school students and guide them through a park planning task.

Secondary School Outreach

As part of a national outreach program, I visited Trinity School in Newbury and delivered three classes on Mobile phone technology as guest session for physics.

Languages

My command on the English language is excellent. I possess a large vocabulary and have experience writing long documents.

I can get by in every-day situations in German. I could survive in a German speaking country even if nobody there spoke English.

Publications

Evolutionary Computation:

Cellular networks:

Computational Neuroscience:

Patents

References

"Dr Ashley's technical knowledge and obvious passion for technology make him a joy to work with. His can do attitude and extensive creative and technical capabilities are without peer."

— Paul Edwards, worked directly with Dr. Ashley at Vodafone

"Having worked with Ashley for the past year I have found him to be the most inventive and bright individual I have had the pleasure to collaborate with. Ashley has tirelessly moved from technology to technology to deliver consistently as part of his work within R&D. Nothing as yet has phased him no matter the disparate nature of the technology. I found him to be inclusive in nature, works as well within a team as he does on a solo project. I can not praise him enough. Any potential employer would be lucky to have him fighting for their team."

— Nicholas Herriot, worked directly with Dr. Ashley at Vodafone