Please tell us a little about yourself. What do you do when you’re not at work?
I attended Manchester Metropolitan University to study Foundation Art & Design, with the idea to become an illustrator. I’d always enjoyed drawing and painting, but after studying nothing but art for a year I realised that illustration probably wasn’t something I’d ever be able to make a career out of. I am definitely more of an academic kind of person – a scientific thinker. So to get away from that area I went to Huddersfield University, to study multimedia design. The course was flexible, and allowed me to concentrate much more on the technical side things. Changing focus was the best decision I’ve ever made, and I’ve never looked back since. I graduated with a BSc in Multimedia Technology and soon after started work at KMP as an ActionScript developer.
Outside of work, I like to play the guitar and piano, and I’ve been in a few performing bands. I’m also interested in photography and astronomy. On the rare occasion that we have a clear night sky in Manchester, I like to get the telescope out and do some star gazing.
Sum up your area of expertise in three words:
Three words – I can’t say KMP Web developer? I would say Software Engineering and Design. It’s difficult to say in three words but I would say all manner of computer programming and software design.
KMP have recently launched a new site for Brilliant Project which you were heavily involved with. How did you get started?
The Brilliant Project job was broken into two distinctive parts – a content managed e-commerce website and a wardrobe configurator tool. I focused mainly on the configurator tool, which allows customers to design bespoke wardrobes, and would require heavy JavaScript programming with use of HTML5 canvas to achieve the client’s desire to have accurate and realistic rendering of their customized products.
The configurator would allow customers to fit wardrobes into a variety of room shapes and sizes. The custom wardrobes had to be generated using a large number of business rules, defined by Brilliant Project’s product designers. The results had to be precise to the millimeter to ensure everything fits properly. That was really challenging. Some of the logic proved to be very complicated; I seemed to spend an awful lot of time scribbling strange diagrams and consulting CAD drawings.
Rendering the bespoke wardrobes was a particularly tricky part of the build. The client was eager that the rendering looked good, was accurate and clearly reflected the quality of their products. Thanks to low-level 2D rendering capabilities of HTML5 canvas, I was able to draw on my knowledge of CG programming and mathematics, which has always been an area of interest for me, but not something I tend to do in day-to-day web development. The finished rendering code outputted accurate material textures, shadows and hard and soft reflections, with a good overall degree of realism.
I can confidently say that the finished project looks good and works really well. I think the complexity of the project surprised both us and the client, but we were all pleased with how it turned out.
What are you working on right now?
Right now I’m working on the Airportr project. Airportr are a start-up business who provide a luggage collection and delivery service in the London area. A customer can arrange to have their luggage picked up from the Airport and delivered to their hotel or business.
In terms of my involvement with the project, I built the whole online customer-facing booking system, as well as the back-office systems used by Airportr staff. The software I’ve written includes integration with barcode scanners and RFID readers, which are used during the luggage check-in process. I also built an iPad application which is used to take customer signatures and mug shots, which are then printed onto membership cards. The system also integrates with a 3rd party courier API, which automatically schedules luggage for delivery. I think Airportr might be the first time that I’ve used C#, C++, Objective C and JavaScript all in one project!
What contribution to KMP Digitata are you most proud of?
I’ve worked on plenty of successful projects at KMP, and knowing that they’re successful does make the job fulfilling. However, it’s sometimes the smaller, low profile jobs that pose some kind of unique challenge that tend to be the most enjoyable. For instance, I once I had to build a web-based engineering tool for Renold. The tool would be a full C# rewrite of an existing VB6 program, which was written by a German speaking engineer. The codebase was archaic and difficult to comprehend, but I gradually managed to distill the code down to a set of algorithms that could be coded cleanly in C# and verified with unit testing. The finished job worked perfectly, despite the odds, which was very satisfying and I think even surprised the engineers at Renold.
What’s the one tool/software/resource you cannot live without?
In spite of being primarily a back-end developer, I seem to spend a lot of time writing JavaScript these days, and thus I find tools such as jQuery and KnockoutJS to indispensable. Both of these tools solve problems that I never even realized I had, and have introduced new and improved ways of working that I wouldn’t have thought off on my own.
If you could give your fellow peers some advice what would it be?
Like any profession, I think software engineering needs to be treated as a discipline. Developers should always strive to find new tools and approaches, and try to gain a deep understanding of the platforms that they work with. Even if a certain subject might seem academic, having that extra background knowledge will help you solve problems that might seem unsurmountable at first and will help you go the extra mile to produce software that is better than anybody expected.
What does the future have install for e-commerce technology?
I have to admit to being not terribly impressed by the current crop of off-the-shelf e-commerce systems, but I think that’s changing. My hope is to see some high quality offerings come out of the open source community, for CMS systems such as Umbraco.