Curriculum Vitae
Nicholas H.Tollervey BMus MA MSc FRSA
Contact Details | Github | LinkedInI am a principal engineer working in the PyScript team at Anaconda.
Computing, music, philosophy, teaching and writing. Just like this bio: concise, honest and full of useful information.
Summary
I am an award winning software engineer, classically trained musician, philosophy graduate, teacher and writer.
I'm a polyglot full stack software engineer with particular expertise in Python. With almost 20 years of professional software development experience I bring a user focused, pragmatic and creative perspective to projects. I relish the opportunity to address challenging technical situations with simple, effective and easy-to-maintain software. As a senior or lead software engineer I encourage personal responsibility, collaboration, mutual support, clear leadership and helpful mentorship between members of a development team.
My commercial development experience has been gained in a diverse range of industries. Highlights include, two start-ups (Fluidinfo & Xmonic), education (Adafruit, micro:bit, and Raspberry Pi), media (The Guardian and The Freedom of the Press Foundation), retail (Marks & Spencer), investment banking (Barclays Capital), and public sector / government based projects (Ministry of Justice, NHS Digital, NHS England, The Council of Europe & Royal College of Paediatrics and Child Health). I proposed, coordinated and contributed to the Python Software Foundation's contributions to the BBC micro:bit project ~ a small computing device delivered to a million of the UK's 11-12 year old school children.
I am active in the free software community having created or actively contributed to several projects (see my Github page). I am especially active in the Python community as an emeritus Fellow of the Python Software Foundation (and I spent several years contributing as a member of the PSF's Grants Working Group), I was the originator of the London Python Code Dojo, and founded and led the team responsible for the education track at the annual PyConUK conference. I regularly speak and keynote at conferences and other tech-related events (including PyConUK, PyCon, Europython (keynote), PyCon India (keynote), PyCon Slovakia (keynote), PyCon Poland (keynote), OpenTech, EMF Camp, Techhub, PyData London) and various other "open source" related meet-ups. Some of my presentations can be found online and slides for my presentations can be found here. I also helped organise various early iterations of NHSHackdays and programming-in-education efforts (Computing at School, Python-related teacher outreach and the education track for PyConUK). Sometimes I have fun with mobile based augmented reality and "AI" generated art. :-)
I am a published writer having authored four titles for O'Reilly and Associates: Programming with MicroPython, Python in Education and co-authored Learning jQuery Deferreds (with Terry Jones) and Getting Started with Fluidinfo (with Nicholas J.Radcliffe). I have contributed both technical and general interest articles to the Guardian's Developer Blog, authored articles for Hello World (a magazine for technology educators) and I wrote articles for the UK version of Computer Shopper Magazine as a student to help finance my MSc. I occasionally write blog posts on this site and sometimes write as a guest blogger elsewhere (such as for O'Reilly Radar).
I was elected a Fellow of the Royal Society of Arts (RSA) in 2012 and, as such, have used this as an opportunity to promote programming education.
Finally, I am still actively involved in music making; regularly performing in amateur orchestral concerts and brass bands as well as occasionally appearing as a concerto soloist (I used to play the tuba professionally and I also play the piano and organ to an advanced level). Sometimes I am persuaded to compose and arrange music for specific occasions or with friends.
The document found here describes what you can expect from me, and what I hope from you, should we find ourselves collaborating with each other.
Employment History
I'm part of a small but expanding team developing PyScript, a platform for bringing Python, compiled via WASM, to the browser and other related contexts.
Most of my work is currently experimental in nature, reflecting the early stage at which PyScript finds itself. However, I expect to become heavily involved in bringing our initial research work to a stable production-ready state for others to build applications in Python with browser based technology. I also spend a significant amount of time working with non-technical colleagues developing educational and community-facing aspects of the project.
Beyond my Anaconda role, I'm still heavily involved in my open-source, education and community related activities (as a volunteer organiser and code contributor). Much of this volunteering concerns the Mu code editor and CodeGrades learning system.
Technologies used:
- Python (advanced)
- MicroPython (advanced)
- JavaScript (advanced)
- Browser based web APIs
- Web Assembly based tools and technologies
- Common cloud based technologies and providers
- Backend tech: FastAPI, Django, various database solutions (relational and no-SQL)
I worked on several things:
- A freelance senior software engineer and trainer/mentor with clients such as The Ministry of Justice, NHS Digital, The Freedom of the Press Foundation, Moo, Adafruit, Marks &Spencer, WeGotPop, Rasberry Pi, MicroPython, NHS England, Leeds Data Mill, Stochastic Solutions and FryIT.
- Working on my pet-projects du jour - the Mu code editor, TextSmith, CodeGrades and the Big Friendly Datastore.
- Various community related efforts relating to health and eduction.
- Planning various other fun and interesting things with several buddies that may-or-may-not see the light of day (watch this space).
Technologies used:
- Extensive Python to an advanced level. Django / Flask, Django REST Framework / FastAPI, asyncio frameworks (Quart, Starlette, databases), Jupyter (bespoke kernel development), Django ORM / SQLAlchemy, desktop GUI (PyQt5, tkinter), cross platform packaging, MicroPython on embedded devices, ETL pipelines, automated testing (unittest, PyTest etc), CI, and many other Pythonic things.
- Extensive frontend work with HTML / CSS (and related frameworks).
- Lots of ad-hoc JavaScript when required, including node, Electron, jQuery and other common frameworks in the ecosystem.
- Lots of different ops infrastructure. Many aspects of AWS, some Azure, GitHub actions for automation, Docker, Kubernetes/helm, Auth0, Elastic, Postgres / SQLite, MongoDB, PyPI for package distribution, ReadTheDocs with Sphinx, Heroku / PythonAnywhere for PAAS, and many other similar services.
- Regular use of Linux, OSX and Windows, along with some specialist operating systems: Tails and OpenBSD.
I was part of a small agile team maintaining the Guardian's online dating site, Soulmates (the most profitable part of the Guardian).
In addition to maintaining the Django based front-end I worked with a MongoDB database and on client side HTML, CSS and Javascript including first steps for making the site responsive. I had some exposure to the Scala based API layer as well as involvement in various dev-ops related tasks and accomplishments.
I was involved in sprint planning, cross team retrospectives and various other aspects of agile methodology. Furthermore, I was pro-active in pair programming with colleagues, gave presentations on TDD to the wider digital development team and took part in various hackathons.
I even had time to write several articles for the Guardian Developer blog.
Technologies used:
I was the third person to join Fluidinfo - a start-up backed by Betaworks, Esther Dyson and Tim O'Reilly.
Fluidinfo is an openly writeable, shared data store based on objects, tags and values exposed via a RESTful API. It allows anyone to store, organize, query and share data about anything. For this reason, some people call it a social data platform while others have described it as, "a database with the heart of a wiki".
I was involved in most aspects of the business:- front and back-end development, creation of client libraries for Python, Javascript, .NET and Android, presenting to developers, liaising with and supporting users, writing documentation, writing a book, answering queries from the press and acting as a technical contact for potential clients.
Technologies used:
Royal College of Paediatrics and Child Health - ASSET
I was lead developer on a Django based web-application for internal use within the RCPCH for gathering assessments and reporting on the progress of trainee paediatricians in the UK. I was involved in all aspects of the project including client-facing requirements capture, writing technical reports, architecture design, coding, testing, deployment and client support. The client reported that this was the first IT project they have been involved in where the product was delivered on time, under-budget and better than specified.
Technologies used:
- Python (Django)
- PostgreSQL / SQLite
- Web: HTML, CSS, Javascript, jQuery & Ajax
- PDF reporting (ReportLab)
I worked as a software engineer within the Development Tools team with responsibility for designing and delivering bespoke software solutions (both web and desktop based):
- ASP.NET / C# / SQL Server 2005 based website for administering a self-service knowledge base to support help-desk colleagues.
- Sharepoint web-parts that expose a product support knowledge base and automate the generation of support tickets within a Jira based issue tracker via SOAP based API.
- C# based library / framework for working with Perforce SCM product.
- Winforms / .NET based desktop client tools to enhance the Perforce SCM client GUI (implementation of shelving / un-shelving, "smart" integration / merging, various performance improvements).
Other responsibilities included helping to administer and support the various services and applications that the team provided to "clients" within the bank:
- Sharepoint based knowledge base
- Jira issue tracking system
- Confluence Enterprise Wiki
- Perforce SCM
- MediaWiki based team wiki
Technologies used:
- C# / ASP.NET / ADO.NET (2.0-3.5)
- SQL Server 2000 / 2005
- Sharepoint Server 2007
- Perforce (source control)
- Winforms, Click-once & InstallShield
- XHTML / Javascript / CSS
- Web Services / SOAP
- nUnit
- Visual Studio 2003 / 2005
I was lead developer / architect on two contracts:
- Council of Europe - Both the public and internal facing aspects of a bespoke web-based recruitment application for the Council of Europe. I was involved in all aspects of the project including client-facing requirements capture, writing technical reports, architecture design, coding, testing, writing documentation and deployment. I also developed an Object-Relational database abstraction layer and various generic "helper" classes for internationalisation and the production of PDF documents for this project.
- Rockpools - A web-based financials package for Rockpools to be integrated into their own legacy bespoke CMS (written in a mixture of C# and VB.NET). I was involved in all aspects of the project including client-facing requirements capture, architecture design, coding, testing, documentation and deployment.
Both projects used the following technologies:
- C# (ASP.NET / ADO.NET)
- SQL Server
- Javascript
- HTML & CSS
In addition, I provided consultation to Bis-Web on the agile development methodology, coding standards and best practices, improvements in source control (using Subversion), testing with nUnit, Lucene search technology and the hiring / testing of potential new software developers (I wrote their practical tests and took part in and advised upon several job interviews). I also mentored some of their new and junior developers.
I was part of a small start-up team that developed a web based business tool (RM3) for strategic account managers in large multi-national businesses. In addition to web-application development I was responsible for an expert system and natural language conversational agent.
Technologies used:
- C# (ASP.NET / ADO.NET)
- SQL Server
- Winforms
- Javascript, HTML & CSS
- nUnit
I wrote several articles and reviews on music hardware and software, Linux and IT in education whilst studying for my MSc in Computing.
Head of Music / Freelance Music Teacher
UK State Education, Berkshire, UKI was a head of an inner-city Secondary (High School) music department and then a freelance music teacher. I organised / took part in:
- classroom teaching for students aged 11-18
- concerts and drama productions
- various adult education theory and piano courses
- instrumental lessons from kindergarten to university level
- conducting, composing and arranging
Freelance Musician
Self Employed, London, UKPerformed on / took part in:
- national and local radio and television
- most of U.K.'s major concert halls and venues
- various C.D.s as a session musician and tours of U.K., Europe and Asia
- Capital Brass Quintet (founding member)
- composing and arranging
Although I no longer work professionally I still play at a high level (I was the soloist in a performance of Vaughan-Williams's Tuba concerto in June 2008).
Education & Affiliations
References available upon request.