A substantial amount of my free time at the start of the year was spent freelancing on a health and fitness recommendation system which ended up getting canned. The general idea was for health and fitness gurus, personal trainers etc. to create profiles which could be searched by a variety of different filters; once you found a match you could reach out and arrange a session. The primary difficult with the business plan was how you drive repeat use, once I find a personal trainer I would contact them directly to arrange another session. Without implementing a full scheduling system and payment options which was well beyond the scope of the project I can't see it working and this is why the founder called it a day. Unfortunately for me the project was about 90% complete and would have been a really good portfolio piece. The experience wasn't a complete loss I defiantly learned a lot along the way. It was great to work with a clean slate and try out some things I had no experience with previously such as spatial search in Entity Framework. I've also got a few neat reusable solutions to common boilerplate in MVC applications that will possibly make it into a future post.
I started the year with the intention of learning Clojue but actually ended up settling on F#; which I'm really enjoying. Being able to use the .NET framework has been a massive help. The thing I've found with F# is it's very easy to write procedural OO style code which makes familiarising with the syntax easy and allows you to move towards writing idiomatic functional code at your own pace. If you're interested in learning F# I'd recommend looking at this Microsoft course on edX. The content covered is quite basic but it's a gentle introduction to the concepts of the language. Once you've got that down, head over to the awesome F# for fun and profit and have a look at the following series Why use F# and Thinking functional. The following talk on Railway Oriented Programming also helped a lot.
Professionally, my team at See moved toward standardising our front end methodology. Previously we were using jQuery with various plugins, having experience with Knockout.js and knowing what a godsend client side templating can be I knew it was defiantly worth pushing for. We ended up settling on Angular.js which although it isn't prefect.... has improved things substantially. I wonder if Angular would still be popular if it didn't have Google's logo on it; I'll leave my criticisms for another time as it could be a post in itself. SASS (SCSS) with Bootstrap and BEM has been our adopted CSS strategy. BEM although verbose is great as it forces styles to be modular and prevents unintended side effects that are all too common in CSS; if you haven't looked into it I suggest you do.
On the back end we finally moved from Postgres 9.0 to 9.4, CTEs with INSERT, UPDATE and DELETE have really changed the way I write SQL making it more modular and easy to test. Our server side structure has remained fairly static over the course of the year, not to say nothings been done, a lot has! I suppose it’s just a consequence of the codebase being fairly mature with established conventions. C# 6.0 delivered some welcome features but nothing that merits a shift in architecture. With ASP.NET 5 just out I would expect a bit more movement here in the coming year.
2015 was the year I really started getting more involved in London's own tech scene regularly attending meetups which I wish I had started sooner. It's easy to stay confined in the bubble of your company. Seeing what other people in the wider world are using and working is a great way to inspire you to try new things; at least it has been for me. Thanks to the following groups for organising the talks London .NET User Group, F#unctional Londoners Meetup Group and London Software Craftsmanship Community. Also Thanks to Skills Matter for creating such a great space and hosting so many talks.
In 2016 I'm going to continue focusing on F# and functional programming in general. I've also enrolled in a MongoDB course with a view to migrating the fabled Sentimentor. I'm yet to decide on Suave with ReactJS or WebSharper regardless it will be refreshing to try out a different web stack.
Hope you had a good 2015 and wishing you the best in 2016!