Brighton Freelance Developer
I am a full-stack freelance developer specialising in using C# and SQL Server to power content-at-scale websites, typically based on large amounts of regularly-updating geospatial and GIS data. I also have a strong background in using PHP and MySQL to quickly develop sites with a minimal total cost of ownership, most often using the Laravel and Slim frameworks.
See below for some examples of the projects I've worked on, and the technologies used to power them:
C# and SQL Server Projects
C# is a great high-performance language for larger projects, especially if they involve SQL Server. Now that Microsoft's .NET Core project has started to reach maturity, it's possible to run dotnet projects on Linux servers, removing the need for Windows servers entirely. In fact, most of my side projects - including FairInternetReport and CrimeRate - are both hosted on dedicated servers running CentOS.
SQL Server often goes hand-in-hand with C#, and is an amazing piece of software that rewards basic database knowledge to a quite incredible degree. While licencing costs are higher than open-source options such as MySQL or PostgreSQL, it's my opinion that if you need top-notch performance, the costs quickly pay for themselves, especially if your project involves GIS and geospatial analysis.
An internet service provider comparison site for people in the United States, BroadbandNow takes billions of rows of data from the FCC's form 477, combines it with data from in-house data collectors regularly visiting every ISP's website, and produces unique insights used by millions of users every year to make informed decisions about their broadband connection.
For nearly five years, I was the sole outside developer on the team, responsible for creating new website features, heavy database optimisation, producing new data points from novel data sources, creating interactive maps and producing geospatial analysis, technical SEO analysis and implementation, managing and adding to dashboards for the data collectors, implementing an automated test environment and continuous integration (CI) pipeline with Azure DevOps - and plenty more!
The site is a great example of a successful content at scale strategy. While there are nearly 35,000 individual city pages on the site, I managed to gyude Google towards the most heavily-populated cities, while keeping small cities indexed and in the search results for smaller city residents. This is in addition to ranking for providers' brand-name terms, something I'm very proud of.
A C# Dotnet Core project also making good use of SQL Server's geospatial features, CrimeRate is one of my hobby sites that uses UK open police data to map crime trends and calculate crime-related statistics at the city and town level.
I created some interesting visualisations using Mapbox and Mapbox GL (via custom tiles made with Tippecanoe), taking crime incidence rates for each crime report in the UK, and creating interactive 3D maps that give an idea of where a given area's problem areas are found.
Taking content at scale to the next level, FairInternetReport uses the same software stack, also hosted on CentOS Linux, to analyse internet speed test data from Measurement Lab, and provide an independent and unbiased view of broadband availability across the UK, France, Germany, Italy, and Spain.
The sheer volume of speed test data presents a considerable challenge, and over 800,000,000 rows of data are processed every night to keep the site up-to-date. Here's a brief look at some live report data as of 16 May:
|City||Median Download Speed||# Tests Over Previous 12 Months|
PHP and MySQL Projects
PHP and MySQL are the two technologies that many of us old-timer developers got started with in the late nineties. While notoriously slow back in the day, PHP has evolved to become a fast and a capable language that helps to keep cost of ownership low. When paired with MySQL - or its successor, MariaDB - your projects can compete with the larger players with a minimal operational budget.
A startup project with huge potential, and an initial requirement for low cost of ownership while experimenting with product-market fit. The core use case is an online archive for high-net-worth families, accessed via iPhone app, with each photo individually curated and tagged for life events by AMI staff in a custom-built dashboard.
The photos are hosted using Amazon S3 and IAM security roles, and I built the dashboard using Vuetify. The app and the dashboard talk to an internal API I wrote using the Slim framework, hosted in AWS and talking to MariaDB RDS instances.