I am a freelance Python develop, mentor and technical author, based in Amersfoort, the Netherlands. I'm available for contract work on both short and long-term basis.
Below is just a summary of work and education milestones, for a complete look at what I've been up to since the 1990s, check my timeline.
Oct 2016-Present Python Developer, Data Scientist & Tutor Freelance/contractor Short and long-term contract projects primarily focused on building Python GUIs with PyQt, robotics and the scientific Python stack (matplotlib and pandas) for data analysis, machine learning and visualization.
Jan 2017-Dec 2019 Hotjar Ltd. Python Developer, Senior Software Engineer & Team Lead
Oct 2014-Oct 2016 Postdoctoral Researcher (Bioinformatics) University of Utrecht, Utrecht, Netherlands Proteomic data analysis. Using the scientific Python stack, matplotlib and pandas to perform routine analyses and develop automatable workflows.
2011-2016 PhD. School of Immunity & Infection, University of Birmingham, Birmingham, United Kingdom Metabolic profiles of differentiated human macrophages and their influence in chronic inflammatory disease (Wellcome Trust Combined Training Programme)
2010-2011 MRes. Biomedical Research School of Immunity & Infection, University of Birmingham, Birmingham, United Kingdom The Immune System in Health & Disease (Wellcome Trust Combined Training Programme). Consisting of two short research projects: “Tracking viral entry into target cells by virological and immunological methods” and “Do differentiated macrophages display distinct metabolic phenotypes reflecting their different functions?”
2007-2010 BMedSc. (Hons) Medical Science (Cellular and Molecular Pathology) (1st) University of Birmingham, Birmingham, United Kingdom Dissertation topic: "What is the impact of vaccination on the development of adaptive immunity to Non-typhoidal Salmonella?"
2001-2002 Certificate of HE - Psychology, Artificial Intelligence & Linguistics University of Edinburgh, Edinburgh, United Kingdom
Services
- Product prototyping and development.
- Product feasibility consulting and platform advice.
- Rapid Minimum Viable Product development — Django, Flask, PyQt.
- Desktop GUI application development — PyQt, wxWidgets.
- Robotics and electronics, 3D printing
- Custom data analysis and visualisation — numpy, scipy, matplotlib, d3.js.
- Machine learning, predictive models and insights — scikit-learn, scikit-image.
- Automated workflow/pipeline construction for reproducible analyses.
- Web application development — Flask, Django, JQuery, AngularJS.
Software
- biocyc - a Python package interface to the biocyc.org service, providing a caching API with support for user-friendly representations of data in Jupyter notebooks.
- PaDuA - a Python package supporting scriptable and interactive (via Jupyter notebooks) processing and analysis of proteomic data. Visualizations via matplotlib and statistical modelling via scikit-learn.
- Pathomx - a workflow-based GUI application for the analysis of complex datasets. Built using PyQt, numpy+scipy, with IPython (Jupyter) kernel, matplotlib visualisation and scikit-learn data analysis.
- pyqtconfig - a configuration manager for PyQt applications, providing a simple Pythonic way to access, save and reload values of Qt widgets (as a Python dict). Supports automatic syncing of multiple linked widgets.
- Wooey - automatically create Web UIs (WUI) from Python scripts. Django-based with celery job scheduling. Automatic generation of Django forms from argparse, click and docopt command lines. (See also: clinto for command line parsing).
Academic Publications
Pathomx: an interactive workflow-based tool for the analysis of metabolomic data. Martin A. Fitzpatrick, Catherine M. McGrath, Stephen P. Young. BMC Bioinformatics pmid:25490956 doi:10.1186/s12859-014-0396-9 (October 2014)
Metabolic profiling predicts response to anti-TNFα therapy in patients with rheumatoid arthritis. Sabrina R Kapoor, Andrew Filer, Martin A Fitzpatrick, Benjamin A Fisher, Peter C Taylor, Christopher D Buckley, Iain B McInnes, Karim Raza, Stephen P Young Arthritis & Rheumatism pmid:23460124 doi:10.1002/art.37921 (March 2013)
Metabolomics – a novel window into inflammatory disease. Martin A. Fitzpatrick, Stephen P. Young Swiss medical weekly pmid:23348753 doi:10.4414/smw.2013.13743 (January 2013)
Metabolomics in the Analysis of Inflammatory Diseases Sabrina Kapoor, Martin Fitzpatrick, Elizabeth Clay, Rachel Bayley, Graham R. Wallace, Stephen P. Young InTech ISBN:978-953-51-0046-1 (February 2012)
A complete list of publications, abstracts and theses are available here.
Experience
- Web Site development (Django, Flask, Pelican) and front-end UI (HTML, CSS, Vue, JQuery, Angular).
- APIs RESTful API design and development (Django rest framework, Flask)
- Databases Relational database design and management (Postgres, MySQL) including ORM methods (Django, SQLAlchemy) and search platforms (Lucene/Solr)
- Data Data processing and handling (pandas, numpy, scipy)
- Visualisation Plotting figures and interactive dashboards (matplotlib, d3.js)
- Statistics Standard parametric and non-parametric statistical tests (numpy, scipy)
- Machine Learning linear models (PCA, PLS), decision trees and clustering algorithms (scikit-learn, scipy, Eigenvector PLS Toolkit)
- GUI Graphical interface development (PyQt, PySide, wxWidgets)
- Collaboration Experience working with international groups, both locally and remotely to successfully complete projects. Frequently collaborate with other programmers on open-source projects via Github.
- Revision Control Git (preferred), SVN
- Coding Style Adherence to PEP8 (pylint, pyflakes, PyCharm)
- CI & Testing Experience using Jenkins CI on open-source projects
- Documentation Pandoc (and readthedocs.org), asciidoc, markdown