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.

Go ahead and explore my site, search for something specific if you fancy. Reach out to me by any of these various means below.

Dictionary Based Password Generator - Cross-Platform Chrome App

I've been using a this tiny utility in JavaScript for years now. It combined a adjective, a noun, and a number in a sequence to create unique, and sometimes hilarious, word combinations that were very useful for passwords. The words it came up with were very easy to remember, and very easy to type on a mobile.

Install Now to Chrome via the Chrome WebStore

Since then I've decided to open it up, I've applied some Material Design goodness from Google and packaged the app together into a tiny Chrome App. These apps run like native desktop apps via the Chrome browser, and is distributed on the Chrome WebStore. Because it's just HTML and JavaScript - it enjoys cross platform capabilities with Windows, Mac OSX, and Linux.

The built-in dictionary has 4,950,765,090 possible combinations, and it'll give you six new choices each time you open the app, or hit the refresh button. Then simply click the password you like the most, and it's automatically copied into your clipboard. From there you can paste it wherever you like.

This app generates passwords with enough length and combinations to make anyone guessing your passwords unlikely, even if they had the same dictionary of words. Why not just use the generator that came built into your password manager? Password managers generate passwords that 'look' difficult as they use random letters, numbers, and symbols - they are difficult for humans since they are very hard to type and remember. To a computer, they're not much different from words - so arguably - there isn't much to gain from the trade-off.

This utility was built in pure JavaScript, without using any Frameworks. Grunt is used for release packaging, which performs tasks like optimising the AMD modules included, transpiling the SCSS etc. The output of which is compressed and uploaded to the Chrome WebStore.