Jacob
Jay
Jacob Jay

Peripatetic British full-stack developer, designer and entrepreneur.
Specialising in web applications and usability.

13 API projects

Website for PowerMeals

Replace a highly customised WordPress/WooCommerce system for a meal delivery service with a high-performance adaptable platform.

Innovations

  • Involved reimplementing an algorithm originally created in Excel with recursive iteration upon all the possible meals by the number of desired meals which whilst logical was costly, and not being particularly capable with such techniques I reduced it to simply iterating all meals (typically around 50, before excluding those not matching diet) for a max n times, not adding similar or identical meals until subsequent iterations to ensure variety, so decreasing variety with each iteration after diet protein distributions are fulfilled (easy in the case of carnivore, harder in the case of flexitarian). This generally completes in a few iterations, and in rare cases where diet is restricted it doesn't require too many more. When necessary it will flag an account as having an overly restrictive diet that could not be automatically allocated an adequate variety of meals.
  • Introduced the ability to no longer require an 'active' account to place an order, and therefore also changed copywriting and terminology to be more explanatory e.g. retired 'subscription' in favour of 'recurring deliveries' that could then be switched off. When off, orders are only created and allocated on-demand when the customer returns, not as part of the batch processing.
  • Deprecated the (unsustainable and gamed) use of a payment grace for the first order on signup if payment wasn't settled.
  • Introduced the 'flexitarian' diet with a data structure for proteins on each diet permitting percentages to be set for each being used in automated allocations. (Would also permit each customer to set their own, but not implemented.)
  • Simplified ingredient and exclusion handling, utilising inheritence, categories and inverted diet flags (e.g. not-vegan, not-vege) on each ingredient.
  • Improved meal cards with subtitles, and label/sticker overlays.
  • Replaced the basic printing of postal service labels as only permitted in WooCommerce, with a bespoke system including generation of the Odoo stock picking barcode printed on the same delivery label, greatly simplifying the pick+pack process. (This was phased, early releases instead used sorted printed picking lists and labels, to which a short weekly internal consignment identifier was added, i.e. every consignment could be uniquely identified within a given week even if delayed, and the number generally being 3–4 digits making it easier to match by eye, versus previously attempting with an entire recipient name.)
  • Bundled SKUs, e.g. buy a group of items at a discount, with all products items ised individually.
  • Implemented receipts instead of 'invoices'.
  • Simplified customer and order references, where customers are given a short alpha-numeric code, and orders simply use their date, e.g. 241201-AB (PNR).
  • Improved formatting of localised values e.g. Swiss prices, and dates.
  • Far easier customer lookup in the backoffice, with default selected search allowing instant typing or paste of name/tel/email.
  • Use of the Moonstalk stack with the Openresty and Tarantool application servers.
  • The entire platform went from multiple second waits in the Wordpress backoffice to simply see orders, to sub 10ms render times across all pages including complex backoffice queries.
  • Lightweight json payloads in each language comprising the weekly menu and ingredients for the client-side application.
  • Many pre-cached data (e.g. products per menu) generated in the webserver avoiding the need to query the database, or generated as a cache on a schedule in the database and loaded by the web server.
  • When the scheduled batch processing fails (regrettably not infrequent due to Odoo issues) it can simply be re-run manually.
  • Statistics on most daily operations to ensure smooth running, with a daily recap and individual signups requiring review posted to the Slack channel.
  • Emphemeral datasets in records discarded when no longer required, by segmenting the orders into current and archive, where current orders contain production details that are not relevent to keep after production. (Whilst not needed at the time, it significantly improves performance should the dataset grow.)

Features

  • Fully translated and localised for Switzerland in English, German and French.
  • Weekly menus comprising changing meal and extras SKUs.
  • Client-side basket checkout for selecting, filtering and pricing.
  • Menu and product data also utilised in dedicated non-customer menu pages, with a basic CMS for managing categories.
  • Dedicated 'trial' package checkout having set delivery charges.
  • Customer dietary preferences include filtering.
  • Coupons (discount value) with a variety of use scenarios, plus vouchers (cash-credit value), and gifts (rewards) to be claimed upon passing thresholds.
  • Flexible holiday rescheduling for closure days (albeit not implemented fully abstractly).
  • Utilising fairly standard scheduled early morning batch processing for credit card payments, initially using Stripe, then replaced with a Swiss payment gateway, and other methods; also downloads postal service waybills for labels, amongst other functions.
  • One grace order when automated payment settlement fails. (Improved customer retention.)
  • Integrated HubSpot for CRM, with many recurring API updates syncing customer state changes, such as activating or deactivating recurring orders, which is then used for automated emails.
  • Implemented sending orders to the hosted Odoo service for ERP and production, including carrying out order confirmation; further integrations planned.
  • Migrated data from multiple millions of Wordpress SQL rows, many duplicated or deprecated, and actually only representating less than 10,000 records after migration (Demonstrating the impracticalty and high overheads of WordPress/WooCommerce as a platform.)
  • Included training the frontend dev (JS/PHP) in basic framework, Lua and Tarantool usage.
  • Included the initial design, subsequently handed over to a frontend dev, and new designer, but loosing the nuanced/cleaner typesetting I had applied; usability advice is ongoing.

Links

2023 — Development, Web, E-commerceSummary ↙︎
Details, 14 images

B2B Rental Marketplace for HSS

Bring an existing business department and its processes online and up-to-date using a marketplace mediating with third-party suppliers.

Innovations

  • Multiple pricing and comission models to support both owned assets and third-party assets
  • Per-class (category, product or variant) cascading inherited attributes, with ancestor and descendant overrides providing a variety of ways to control how suppliers add new items and values
  • Mediated messaging, with client-supplier messaging relayed through an operator
  • Supplier auctioning with deferred (countdown) booking assignments in cases of unknown availability
  • Collection options using geolocation
  • Flexible delivery class calculations assignable per-category and postcode
  • Geographical search ranking availability of items with delivery constraints
  • Ability for an operator to easily swap their CMS view to that of a supplier (delegate authentication) when handling operations by telephone

Features

  • Categorised product (and variant) listings with search
  • Bespoke CMS handling categories, products and their variants with dynamic attributes
  • Booking functionality (not calendared)
  • CMS and API for suppliers
  • Mobile app with push notifications and messaging for suppliers and customers
  • Multi-device and multi-role authentication and notification settings
2014 — Architecture, Web, E-commerceSummary ↙︎
Details, 10 images

Moonstalk for The Moon Mill

Open-source web development framework and hosting stack using Lua.

Features

  • Automated filesystem to URL mapping for sites and applications, with no configuration necessary before use (including web server)
  • Includes a bespoke low-latency NoSQL database which shares the web application environment and functions, whilst also supporting a task queue with seperate processes
  • Internationalisation and localisation including handling for plurals and GeoIP
  • Best-practice handling of script-loading, CDN assets, canonical tags, addressing, salted passwords, microcaching, deployment (via dCVS), etc.
  • Many supplementary applications providing functionality ranging from calendaring to geospatial search

Links

2010 — Conception, Server, APISummary ↙︎
Details, 2 images

ProfileConnect Gateway API for Verse

Abstract API methods from across multiple third-party prodivders into a normalised set of methods for use by clients with either intermediary gateways or end service providers.
Function
API Photo

Innovations

  • Unlike the MediaSock specification which concerns itself with only endpoints (client and server), this specification attempts to deal predominantly with intermediaries (gateways), yet also still offers endpoint functionality. Thus its methods might be used alongside existing API methods fufilling specific functions (whether provider-specific, or generic such as MediaSock), or in a completely-abstract manner on their own to fufil the same functions. However in such an abstract manner the method naming does not reveal the functionality offered by a provider, as compared to non-abstract APIs, instead it must be discovered using introspection, or hard-coded relying upon established behaviours or assumptions.

Links

2008 — Conception, Server, APISummary ↙︎
Details, 0 images

API Gateway for Pixelpipe

An API gateway server accepting media uploads from clients using a wide variety of supported APIs, and re-broadcast them to well over 50 different service providers.

Innovations

  • Deferred batching to accept multiple uploads over a configurable timeframe, and then re-broadcast them together as an album or single blog post after no more items had arrived (instead of individually upon arrival).
  • Utilisation of special 'routing' tags, allowing uploaded media to be dispatched to specific accounts or groups of accounts simply using a tag, thus avoiding the need for specific client routing UI, and instead using a client's native tagging UI.

Features

  • Prioritised image processing queue with service provider connection constraints
  • Service provider error aggregation and reporting to quicly idenitfy and prioritise API issue resolution with destination service providers
  • Support for multitudinous client upload APIs including metaweblog and Flickr, which with DNS spoofing enabled official clients to be used with the server
  • Bespoke upload applications and Plug-ins including iPhone, Aperture, Windows Live Gallery and integration with Nokia share
  • Support for hosting uploads directly on the service, including views for user streams, albums and individual photos
2008 — Management, Server, PhotoSummary ↙︎
Details, 7 images

PictureSync Website for Verse

Seperate site with service-provider/affiliate specific branding and downloads via referrer or argument.
Function
API

Innovations

  • Ability to serve a ready-to-use service-provider specific download, hiding the other supported providers from the user.
2007 — Design, Web, APISummary ↙︎
Details, 1 images

PictureSync Windows Application for Verse

Modernise the architecture and UI of PictureSync for a new Windows application.
Function
Photo API

Innovations

  • Optimised service addition and sign-in UI, including transparent post web authentication token retrieval (e.g. OAuth) using a simple 'becomes frontmost' check
  • First application to upload both image data and annotations
  • First application to interface between both multiple applications and multiple web services
  • Comprehensive abstractions for web service behaviours with modular service plugin architecture including per-plugin version checking
  • Co-branded builds with default sign-in prompts for service providers using an automated build system, and with provider-specific statistics (via a private website login)
  • Only application to be able to upload images and then later sync the annotations (e.g. via Flick API)
  • Only application to employ database-free metadata via file system extended attributes (i.e. for service upload IDs)
  • Transparent licence activation after purchase on website

Features

  • Integral image and metadata manipulation functions
  • Support for multiple disparate web-service APIs for uploads with an aggregate progress UI
  • Interfaces with the file system and external applications to collect data, including support for standards-based emebedded IPTC/XMP and XMP sidecar files for annotations

Links

2006 — Conception, Desktop, PhotoSummary ↙︎
Details, 3 images

MediaSock Client Framework for Verse

Abstraction framework for media-sharing web-services, utilising loadable modules, and a flexible properties architecture.
Function
Photo Framework API

Innovations

  • First library to enable use of common code and functionality with disparate service providers.
  • Simultaneous classed data and string handling (suitable for AJAX-type web server deployment scenarios as well as desktop).

Features

  • Standardised functionality: list/make albums, list/download/upload media.
  • Initially available with modules for Webshots, Flickr, and Yahoo! Photos.
  • Session saving (service dependant).

Links

2006 — Conception, Server, PhotoSummary ↙︎
Details, 0 images

MediaSleeve API for Verse

Define a specification by which online content providers such as radio streams, may provide metadata (e.g. album covers, song details) to client applications.
Function
API

Links

2005 — Conception, Server, APISummary ↙︎
Details, 0 images

MediaSock Protocol for Verse

Lightweight service discovery protocol and web-service API to facilitate handling a user's media assets.
Function
API Photo

Innovations

  • clients can utilise service discovery not only check with a low cost (i.e. via HTTP HEAD) if a provider supports the protcol, but also what methods and characteristics are supported by that provider (interoperability between clients and servers is notably not guaranteed by the protocol)
  • designed from the outset for easy implementation by service providers; could be implemented simply atop existing page forms, using existing cookies for authentication and utilising other common API methods instead of requiring new implementations

Features

  • choice of implementation models for service providers
  • fixed-string XML and values allow parsing of responses without requiring a heavyweight XML parser

Links

2005 — Conception, Server, APISummary ↙︎
Details, 0 images

Folio Concept for Verse

Product concept, branding and website for professionally-oriented photo portfolio service.

Innovations

  • SaaS with SSL on MivaScript
  • Flexible CSS boxes with custom edge and corner frames
  • Research on hosting latencies for optimal single-location US deployment across metro areas

Features

2005 — Design, Web, PhotoSummary ↙︎
Details, 1 images

Website for Verse

Mac software publisher
Function
API

Innovations

  • Combined version tracking and licence verification protocol (between webserver and desktop application), with an entirely web-based activation procedure (transparent licence key) [see the blog]

Features

  • Purchasing integration with PayPal
  • Software licence generation and activation
  • Software version tracking and usage reporting
2004 — Design, Web, APISummary ↙︎
Details, 1 images

PictureSync Mac Application for Verse

Batch upload annotated images to web services
Function
Photo API

Innovations

  • Optimised service addition and sign-in UI, including transparent post web authentication token retrieval (e.g. OAuth) using a simple 'becomes frontmost' check
  • First application to upload both image data and annotations
  • First application to interface between both multiple applications and multiple web services
  • Comprehensive abstractions for web service behaviours with modular service plugin architecture including per-plugin version checking
  • Co-branded builds with default sign-in prompts for service providers using an automated build system, and with provider-specific statistics (via a private website login)
  • Only application to be able to upload images and then later sync the annotations (e.g. via Flick API)
  • Only application to employ database-free metadata via file system extended attributes (i.e. for service upload IDs)
  • Transparent licence activation after purchase on website

Features

  • Integral image and metadata manipulation functions
  • Support for multiple disparate web-service APIs for uploads with an aggregate progress UI
  • Interfaces with the file system and external applications to collect data, including support for standards-based emebedded IPTC/XMP and XMP sidecar files for annotations
  • Fullscreen view

Links

2004 — Conception, Desktop, PhotoSummary ↙︎
Details, 19 images