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 practices for building web applications.

Page 2 of Standard posts

P3 Image Color Experimentation

P3 Image Color Experimentation

2016 generation MacBooks and iPhones have a wide-gamut P3 display that show 25% 'more' red and greens compared to standard RGB monitors. So I began to experiment to work out what was needed to be able to use this extra color space when presenting images on web and native apps.Basically what I needed to work out was, when given an image that is using P3 color space, can I make a thumbnail from it without destroying the P3 colors and output a transformed image that is still in P3. Further that, to be able to display the specific P3 optimised images on devices that support it. Read more...

Pure Swift Instagram Queue App for iOS

Pure Swift Instagram Queue App for iOS

Sometimes it's nice to branch of into new technologies to keep perspective and knowledge of relevant stacks. This is my adventure into pure the pure iOS world with a simple Swift iPhone app. The app handles the basics, but should handle them well. Connecting to a HTTPS pinned API, download a data in JSON, cache it locally. Then parse it and use it to display data within the app.In this case, the app is a list of photos I have taken that I have uploaded to my website, but have yet to share on Instagram. I can track which photos are shared as I linked Instagrams post callback into my website, so new posts on Instagram can be matched to photos I've uploaded to my website by way of metadata matching. Read more...

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...

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...

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...

Thirdparties - the biggest bottleneck to IPv6 adoption.

The Internet is changing. The problem is, some parts change faster than others. If you need a stack supporting IPv6 - you might struggle. Popular providers are still lagging in their offerings, which means picking a provider with lower expertise might be needed, or even bringing hosting in house. Here we look at the major bottlenecks with IPv6 adoption. Read more...

The importance of due-dilligence when dealing with clients.

Doing business can be tricky. Whilst you might think you'll never have any problems, it's good to be prepared and know who you are dealing with. These are my practical tips and insight for finding out and investigating the backgrounds of people and companies you do business with. Read more...

10 tips for preparing for meetups and conferences.

Going to any type of conference or mid-week evening tech meetup is a valuable treasure trove of people you might want to work with. This might be new co-workers, creative and intelligent minds to share with, and clients and new employers. Here are my top ten tips (and a bonus tip) to help you get the best out of events like this. Read more...