Hi, thanks for visiting!

My name's Sam Kelleher, and I am a Senior Full-Stack Web Developer / Software Architect based in London. This website mostly contains a sample of work from my portfolio, tips, and best practicies for building web applications, and reviews + photos of food and hotels in London.

Portfolio Posts - Page 2

Fashion Retailer iOS App + Backend

Fashion Retailer iOS App + Backend

Stared this project from using the same code base developed for ASOS China in Spring 2016 for a London based agency on behalf of their client Oasis Stores, a ladies fashion wear, which also had physical stores in the UK. This project was designed to utilise existing development for a fast turn around, but had new functionality such as in-store stock, reserve online, and collect in store. This Cordova powered runs iOS devices.This project was more of an exercise in re-usability of a codebase than developing new tech. While there were some new features, this is essentially a rebranding of an existing app, and repurposing while retaining existing features. The backend for this was a NodeJS HAPI API which worked as an interim layer between the customers iPhone and the stores backend, which in this case, was Demandware. Read more...

Backbone + Marionette GitHub Repository List - Sample Application

Backbone + Marionette GitHub Repository List - Sample Application

Sometimes the best way to learn something is to study each component separately, this gives us a true in depth skill on how something specific works. However, putting these components together to make a full featured application is another ball game entirely. I've always maintained that Software Engineering isn't difficult, but it can be complicated - as a typical application will consume numerous different technologies from development stages, to deployment, to runtime. It's putting all these modules together that is the hard part. Read more...

Dictionary Based Password Generator - Cross-Platform Chrome App

Dictionary Based Password Generator - Cross-Platform Chrome App

I've built a pure JavaScript Chrome App that generates random dictionary based passwords that are strong and memorable; which you copy to your clipboard to use. Thanks to the Chrome environment, it's multi-platform and can run anywhere Chrome can (Windows, OSX, Linux, Mobile) and appears as a Native application. Read more...

ASOS中国 - Hybrid iOS and Android eCommerce App

ASOS中国 - Hybrid iOS and Android eCommerce App

Stared this project from scratch in Spring 2015 for a London based agency on behalf of their client ASOS China. Following a similar design to the UK iOS app, this Cordova powered runs on both Android and iOS devices, in both orientations, on both mobile and tablet.Making pure JavaScript single page applications is one thing, with it's own set of complexities and challenges; but doing the equivalent for a JavaScript app that will function only in a mobile environment brings with it an entire new set of challenges. These are specifically related to the user interface. The app still has to retain the gesture recognition and actions found in native applications, and perform will full buttery smooth animations expected from real applications. Read more...

Dynamic iOS Passbook with notifications

Dynamic iOS Passbook with notifications

Using a C# API to generate Passbook passes for the Passbook app on iPhones using iOS. The system can then track each users subscription, and send updates in realtime to each device via the Apple Push Notification Service (APNS). Read more...

CMS Gallery + GIF Support

CMS Gallery + GIF Support

A photo gallery within the admin console of a CMS I created called Leaf. The gallery components takes uploaded images, and creates all the required dimensions for the website. It supports creating WebP versions of all images, as well as the usual PNG, JPEG, types. PDFs are also converted to JPEGs. If a GIF is uploaded, the animation is preserved and rendered. The GIF is also undergoes some lossless compression to make the animation load faster. Read more...

Backbone + WebSocket Single Page Application for Car Dealerships

Backbone + WebSocket Single Page Application for Car Dealerships

A online and packagable application built using Backbone.js + Marionette.js, running on a WebSocket enabled C#/SQL backend. Being a Single Page Application (SPA), the application runs very natively, with fast performance between screen loads, and can handle transient network errors as users dip in and out of WiFi coverage. Read more...

Responsive, Realtime, Customisable, Interactive Dashboard

Responsive, Realtime, Customisable, Interactive Dashboard

This is a dashboard for a health and safety monitoring product I built. It has numerous unique features, and complex backends since the dashboard must effortlessly crunch potentially large datasets and summarize them in simple tabular graphs or numbers. Read more...

Realtime two-way Android based Safety Monitor tablet.

Realtime two-way Android based Safety Monitor tablet.

An Android powered tablet client application that uses Google Cloud Messaging (GCM) to establish a two way realtime connection (using XMPP via the Android OS) to receive and relay events for essential safety monitoring. Due to the volume of data driven, and the number of simultaneous connections; it was essential this Android app would scale and be able to deliver and function 100% of the time, never with a chance of user data loss. The data could be processed in a powerful C# .NET backend. The server-side XMPP connection to GCM was also a C# .NET Worker Role, running in Microsoft Azure. Read more...

Multilingual Job Board with geospatial search capabilities.

Multilingual Job Board with geospatial search capabilities.

This job board aimed at supply chain roles in Europe is able to automatically display the language relevant to the current user, as well as offer sophisticated geospatial search tools. Jobs and Candidates are then auto-matched for each job based on currency/salary (the jobs can show their currency in any known currency available), skills, and location. Location is based on specified travel distance from the desired location, which could be specific towns or continents, to sorting the relevant jobs is priority. Read more...