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.

I am a Senior Full-Stack Web Developer and Software Architect based in London. This website consists of my portfolio, tips and best practicies for building web applications. I also write reviews + photos of food and hotels in London.

React + Redux Administrative Panel SPA

A sleek and comprehensive single page application built using the latest React and Redux technologies. This application had to include comprehensive control capabilities including user management, data manipulation, search, a detailed analytics visualisation section, image editing with drag and drop.There was a lot to do, but with just a few tweaks the app is lightening fast to startup and initialize. One of my personal favourite things about Redux, and the flux pattern in general, is the predictability. As such, this project was one of with the fewest detected defects. Since what is on the screen is guaranteed to be generated by the data in state, any glitches or unexpected behaviour could be traced instantly using the Redux Time Machine. Read more...

Responsive Isomorphic Website with React, GraphQL, CSS Modules

Had the privilege of creating the public facing website for the company I work for, Blink. Since it's another greenfield site and React was strongly adopted by the company, it made a lot of sense to also construct the website using React.The content had to be editable by the marketing team, but since the parts of the website don't fit in a classic page type system that is popular on Wordpress, I integrated a third part content management platform, Contentful. Since the website would be Isomorphic, I had a Node Express server at my disposal, so I immediately got to work adding a GraphQL API that would be responsible for serving up the various strings and images stored in the CMS for the specific elements of these bespoke built pages. Read more...

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

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

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

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

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

    GitHub vs BitBucket

    When it comes to hosting our source-code, many platforms can cover the basic of hosting a central GIT repository for us.

    GitHub charges per repository, while BitBucket charges by contributor.

    Use BitBucket if:

    • You only work individually or in a small team (5 people or less).
    • You wish to have private repositories.
    • You wish to work with a large number of repositories.

    Use GitHub if:

    • You project is open source.
    • You only have a small number of private repositories.
    • Many people will work on a repository (5 people or above).

    As for the rest of the differentiation features, they're both pretty similar, with the one exception that GitHub is universally recognised and there are many tools, such as CI services, that can plug straight into GitHub by using your account; although BitBucket is gaining notability in this regard.

    I do wonder about the long term viability of BitBucket offering private repositories, as surely the cost of doing so will increase over time - with storage costs in particular. Then again, the same applies for GitHub and its generous hosting of public repos.

    At the end of the day you get what you pay for, there are a handful of good reliable paid for services that can offer the best of both worlds - such as Codebase HQ which has git and project hosting for a small monthly fee, they charge by tiers of storage space used, users and number of projects - but each project can have unlimited repositories!

    An idea is only as good as its execution.

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

    You are on page 1 of 4