Thomas Hurst

Teesside, United Kingdom
tom@hur.st
+44 7800 597 111
https://hur.st
https://github.com/Freaky
@Freaky@hachyderm.io

Enthusiastic Ruby and Rust programmer, with experience in bespoke backend services and search engine development, and an interest in performance and efficiency.

Primary Skills

Work History

Stitch Sollihull — Consultant Web Developer
Co-wrote full e-commerce site using Ruby, Padrino and PostgreSQL.

Features worked on included a blog, photo gallery, event scheduling and booking system, product database, shopping basket with coupons system, PayPal integration, support ticket system, and search using PostreSQL trigram indexes.

RFCPool — Co-founder
Worked with three developers to build a Bitcoin mining pool, with a custom Ruby front-end based on the Padrino web framework and a PostgreSQL-based backend database.
Virtual Programming Ltd — Consultant Backend Developer
Designed and created bespoke Ruby-based backend service for robust concurrent file uploads to Microsoft Azure cloud storage platform, including text-based TCP server API with Ruby and PHP client libraries.
Newzbin Ltd — Co-founder
On-call sysadmin for 60+ FreeBSD, Linux and Solaris servers across 2 locations, including Apache, PHP, Exim, BIND, and a 3+ billion-row replicated MySQL cluster.

Created web-based Ruby payments system serving over 80,000 paying customers using DBI and cgi.rb.

Designed and implemented Ruby microservices for backend functions such as boolean search query parsing and transformation, persistent streaming search, text similarity search, and text-to-image services.

Helped design, write and maintain C backend services for trigram-based search acceleration, suffix-array index based search with multithreaded filtering, rolling bloom filters, and append-only replicated key/value database.

Co-wrote PHP frontends, with particular focus on interaction with backend services and maintaining HTML/CSS standards compliance.

Developed open internet specification (NZB) that revolutionised the Usenet binaries industry and is still in wide use today.

Personal Projects

Links and writeups can be found on my website and Github profile.

FreshBSD
Search engine for BSD commit logs, used by many developers.

JRuby front and back end using the Roda web framework, Sequel ORM with PostgreSQL, Elasticsearch, and Redis caching. Substantial use of Concurrent Ruby and careful use of batched queries for page generation and indexing to minimise latency.

perlpv
High-performance Pipe Viewer alternative written in Perl. Earmarked for inclusion in popular Syncoid ZFS backup system.
mac_portacl
Robust shell script for FreeBSD's mac_portacl(4) security module. Earmarked for inclusion in base system.
IMSErious
Web service written in async Rust that drives my email system.
ioztat
Complex CLI Python application providing per-ZFS-dataset IO statistics while closely following ZFS conventions.
monotime
Ruby monotonic time gem offering a convenient, accurate interface for measuring durations. Includes extensive test suite, cross platform CI, and full API documentation.
Tikibar
Unreleased Ruby progress bar gem with support for multi-line output driven from multiple threads, and template based colourised rendering.
reattempt
Ruby gem for jittered exponential backoff for accessing backend services, using Enumerable to provide a convenient interface.
Compactor
Rust GUI application for Windows compression, using custom unsafe FFI interfaces, statistical compressibility checks, concurrent-safe append-only set membership database, and web-based front-end.
LineReader
High performance buffered Rust line reader, roughly twice as fast as stdlib line reading functions. Repeated later in popular bstr crate with tens of millions of downloads.
123-spellcheck
Rust-based form spellchecker using web-scraping and email parsing libraries.
TitleFetcher
Ruby gem for fetching <title> metadata from websites using streaming HTML parser to minimise resource use.

Formal Education

University of Teesside — BSc Computer Science
Abandoned due to low overall course quality.
Bede College — Computing A-level, Grade A

Personal Interests

In addition to being a computer nerd who writes software and self-hosts Internet services for fun, I also enjoy reading science fiction, cooking, playing weird PC games, and being mauled by my chihuahua.