Development work
I am a freelance software developer, with more than 20 years professional experience. This page is for people who may be interested in hiring/employing me.
Current status (updated March 2024): I’m available to take on clients. I have some ongoing large projects, but may be able to fit smaller projects in, for clients who don't need a full time developer.
Background
I have experience in programming and web development going back to around 1998 — in fact, even further, if you count the BASIC and 6502 assembly programming I did for fun as a teenager. Over this time, I've gained experience with a large range of technologies and skills, covering the full development life-cycle. This has included languages such as C, C++, C#, Perl, PHP, Javascript, Elm and VBA/Excel, while today I mostly use Python. I've been heavily involved in business analysis and requirements gathering, as well as end-to-end design and implementation of software projects.
In terms of education, I have a first class honours degree (BA) and masters (MSc) in Natural Sciences from Cambridge University, which is particularly helpful for projects of a mathematical or scientific nature. Regarding software development, I’m self taught, having learnt a huge amount from participation in Open Source projects.
Skills
My current skill set is focused on:
Full stack development
“Full stack” means I can develop software end to end, designing and implementing all layers of the software, from “backend” work such as databases to the frontend user interface. This also often involves gaining a deep understanding of my customers’ priorities, and working out what they really need where they may be unsure.
Over the past 2 decades that has mainly been web development, but I’ve also implemented cross-platform desktop software.
Web development
I can design and build database-driven websites from the infrastructure level right up to user interface, and have experience doing this in a wide range of businesses and sectors. Having the breadth of knowledge needed to understand the entire stack is one of my key strengths. This full-stack approach leads me to prefer solutions that are often vastly simpler and more maintainable than is common today.
Server-side, I prefer to use Python and I'm an expert with the Django web development framework, having been a part of the core Django team since before version 1.0 - username spookylukey.
I'm also proficient with client-side programming (HTML/CSS/Javascript), including realising web designs (e.g. working from mockups) and implementing fully responsive designs.
Team leader
I've successfully led remote teams of freelance developers, ensuring quality and code practices that have enabled online businesses to grow because of the solid technology being built.
Recruiting
As part of leading teams, I've also been involved in recruiting and interviewing more members for the teams. If you are interested in hiring Django developers, but cannot afford my rates (I charge a fair bit due to my level of experience), I may be able to help you out by conducting online recruiting and interviewing of candidates. I simply charge my normal hourly rate for this work, rather than taking a cut as agencies normally do.
Project rescue!
You may be in a position where you have an existing Django project that needs work — or needs converting to another system. Having seen a number of projects in different states, I may be able to look at a project and advise you the best way to take it forward given your requirements and budget.
Recent work
For a client in the construction and engineering industry, I delivered CAD/CAM automation software as the sole developer, creating a critical software component of a new manufacturing process. I used Python to create desktop software (for Windows, but mostly cross platform), using Qt and VTK for the user interface.
For a customer in a Fintec startup I helped with full stack web development of some components.
As lead backend developer for Market Access Transformation, a medical research company which has now been acquired by Genesis Research, I developed their Django backend to support quickly growing business needs.
Development standards
I take pride in the quality of my work, and so I have a page documenting my development standards.
Web site portfolio
Examples of web sites I've created (or been heavily involved in) that are public:
-
For a number of years I was the lead developer on this e-commerce site, and did a lot of work on it, including implementing the current responsive design, as well as a lot of backend work.
-
A web site I've created and run (unpaid) for a Christian charity that I'm involved in. As well as the public section (which includes an online booking system), there is a lot behind the scenes for camp leaders to manage their team of officers (source code).
-
This is a social Bible memorisation website that I made and run using Django. This is an unpaid side project, with several hundred active users, and a focus on being fully accessible and fast on mobile devices (source code).
Project portfolio
In addition to public web sites, there are a number of software projects I've been involved in, either on a paid or volunteer basis, that are examples of my work. They are all Open Source and available for free:
Django (Python) - "Core developer" since 2006 (but it's now an emeritus title).
Django Views - The Right Way - an in-depth guide (almost a book really…) about writing Django view functions.
django-htmx-patterns – a popular documentation site for patterns showing how to use Django with htmx
fluent-compiler (Python) - author and maintainer
django-ftl (Python, Django) - author and maintainer
elm-fluent (Python, Elm) - author and maintainer
fluent.runtime (Python) - original main author
django-functest (Django, Python) - main author and maintainer.
django-paypal (Django, Python) - maintainer.
playerdo (Python) - main author.
parsy (Python) - I helped to resurrect this great parsing library by adding documentation, and now maintain it.
django-mailer (Django, Python) - one of the main maintainers.
py-moneyed (Python) - one of the main maintainers.
Django CMS 'Semantic editor' plugin. Not active.
django-easyfilters (Django, Python) - main author, not active
django-anonymizer (Django, Python) - main author, not active.
signupto (Python) - main author, not active.
Sylpheed-Claws (C, GTK+) - team member, not active.
CodeExporter (VBA) - main author, not active.
VBA Modules (VBA) - main author, not active
Kio-Sword (C++, KDE) - main author, not active
In addition, my contributions to other Open Source projects can be found mainly on GitHub.