ConorM_140625_0046_HIRESBW

Internship at LShift

Introduction Today it’s my last day of a 5 month internship as a Software Engineer at LShift. This has been a truly valuable experience for me. I am a third year student of Mathematics and Computer Science at Imperial College London and working here has taught me skills I would have not gained by just…

ConorM_140625_9793_HIRESBW

Lunchtime hack: My cycling routes

Like most Android users (because I think it’s the default) Google tracks my location. Thankfully, they provide a way for me to view and edit the data collected (Thus satisfying some major rules of personal data collection – well done!). But the interface on location history is clunky as a visualisation, so let’s spend lunch…

By Rept0n1x (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0-2.5-2.0-1.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Optimizing Salsa20 in BouncyCastle

A while ago I started dabbling in cryptography a bit, and inevitably, I ended up toying with performance of the related algorithms and code. In this post I’d like to share my approach to optimizing BouncyCastle’s implementation of Salsa20. A few observations regarding Salsa20 (and presumably other modern ciphers) in the context of performance: Salsa20…

Automating pre-deployment sanity checks with Grunt

Grunt is a great tool for building, running and deploying ‘Single Page Apps’. I have a single grunt command to build and deploy to S3 for production, but recently I added some extra functionality to make deployment safer and even easier: Abort if you are not on master branch Abort if there are any uncommitted…