- Independent Projects
CV - Chris Elsworth
Bytemark Hosting (2016 - ..)
In current employment as a Senior Software Developer.
BBC R&D (2010 - 2016)
Freelance contract work on various aspects of the BBC R&D Redux service.
Cold Disk Storage Archive
BBC R&D equivalent of Amazon Glacier. This comprised of two parts; the controller and the crates. I was responsible for controller development.
- wrote an admin website in Ruby for configuring and monitoring the system.
- designed, documented, and implemented a JSON API for communications between controller and crates.
- designed a cold disk filesystem and implemented a “libcdsimage” C library for creating, reading and repairing them.
Apple Enterprise App Store
A website to distribute iOS apps internally throughout the BBC and its partners. This was a solo project – I designed and built the site from scratch in Ruby with Padrino.
There is an automated system enabling BBC developers to upload and distribute their apps. They can set email regexp ACLs for each app to restrict distribution, and optionally 2FA against a list of known BBC mobile numbers.
There’s also a JSON API so apps can “call home” for stats tracking, enabling usage data and device/iOS analysis for app owners.
Redux iOS Application
An iPhone/iPad application to search, stream and download broadcast media content from the Redux service, written in Objective-C. I designed and wrote this application from scratch.
It allows users to search, browse results, then either stream them over the network or download to the device for offline playback later. It communicates with Redux using an XML API and displays results in a native Cocoa user interface.
Newzbin (2005 - 2010)
Owner, principal engineer & developer of the Internet’s premier Usenet Index – with around 100,000 subscribers generating well over two million dynamic impressions every day. Leader of a team of three engineers and ten site moderators.
- designed and brought into widespread use the NZB file format (hyperlinks for NNTP clients to download Usenet content directly without headers).
- specified, purchased, built and maintained server and network infrastructure.
- responsible for approximately 30 servers in two geographically distinct datacentres.
- developed bespoke indexing and searching daemons in C.
- implemented FreeBSD deployment framework (PXE installation of new servers).
- PHP development of frontend; MySQL replicated database maintenance; Linux & FreeBSD sysadmin.
BBC Internet Services (2002 - 2005)
Providing Internet Support services to the BBC as part of the Internet Operations team.
Resolving support tickets from BBC staff. Perl development and peer review.
Monitoring and maintaining live BBC Internet infrastructure, including bbc.co.uk website with Apache, mod_perl application servers, Oracle databases, RealMedia, firewalls/gateways and proxies.
Demon Internet (1998-2002)
I started at Demon as frontline tech support; promoted to NOC support (liasing between network engineers) after a year, and subsequently accepted a systems administration position in the Web Services department about a year after that. Web Services was my first exposure to commercial scale server operations; maintaining the infrastructure to run Demon’s website and customer-uploaded homepages using FreeBSD and Solaris.
An internal reshuffle later moved me from the web operations team to a more development focused role as a Software & Systems Engineer – developing systems software and fixing bugs escalated from service engineers, mainly in C with some Perl.
Some recent significant projects I work on in my free time.
Stitch Solihull Website
The Stitch Solihull Website is a CMS and e-commerce platform I developed in Ruby for my partner’s yarn shop business. There is a wiki-like structure of pages rendered from markdown for the main content, a blog using the same system, and a cart & checkout system for purchasing workshop places online.
Nabu is the Ruby app that runs my personal website. It reuses some of the work from the Stitch Solihull code with a style overhaul.
Home Power Monitoring
My Home Power Monitoring is a micro website and hardware project I originally started to monitor the output of my solar panels. Eventually it expanded into logging all my home electricity generation and consumption using clamp meters attached to a WiFi microcontroller.
A non-exhaustive list of technologies I’ve worked with.
- MySQL, PostgreSQL, SQLite
- Cocoa (Apple UI), HTML5, CSS (also Bootstrap & Semantic-UI frameworks)
- Linux (Debian and Ubuntu), FreeBSD, Solaris
As I’ve done quite a lot with Ruby, here’s some of the more specific Ruby technologies I’m familiar with: