I co-founded Olivewood Technology back in May 2007, when I decided to make the jump to freelancing. I had been developing an EDI web app for a small distribution company, and my co-founder and I decided that we should from a company to market and develop this app.
Seven years on, the app, known as “Supply Portal” is alive and well and is now a mission-critical app for the original company, and installed for another distributor, but it still needs some work to make it suitable as something “off the shelf” that people would buy without requiring modifications to fit their workflow.
In the meantime my co-founder became an expert in LED lighting, and identified a gap in the market – an LED light specifically designed for Cold Storage Areas. Vast amounts of energy are consumed extracting heat from cold storage warehouses, only for the lighting to pump heat back in. Switching to LED lights is an obvious move – apart from the reduced energy needed to run them, they also run cooler than legacy lighting systems.However, high power LED’s still produce significant amounts of heat, and this usually ends up as warm air at the top of the warehouse, resulting in a reduced area of useable storage space higher up in the warehouse and higher energy bills needed to remove that heat from the warehouse..
Chil-LED was designed to extract the heat from the LED chip and transfer it outside of the Cold Store, using a patented system of thermal heat pipes fed through a conduit to heatsinks in the void above the warehouse ceiling.
So this is the main focus for Olivewood moving forward, we still build software, but we are now a technology company, we have developed the Chil-LED light and how now gone to market – exciting times!
If you ask any of my family or friends what it is that I do for a living, you will most likely get, at worst, a blank look, or, at best, maybe “web designer?”, “computer programmer?”, or maybe just “something to do with computers?”. It doesn’t help that my linked in profile has me claiming to be doing at least three different jobs at a time, and that I seemed to be involved with a number of different companies. I think possibly even those that work with me aren’t entirely sure what it is that I do most of the time! I thought i’d clarify what i’m up to at the moment, and how things have evolved over the last few years.
I am a freelance web developer
Primarily I make my living as a freelance web developer. This means that I spend most of my time building websites. By “building” a website I mean taking it from an idea to a finished website – planning, designing, templating, coding and uploading to a web server so that it is live on the internet. As well as web “sites”, I build web “applications”. These are computer programs that people interact with through a web browser. A web browser is the computer program that you use to look at websites e.g. internet explorer (the blue E), firefox (the fox wrapped around the world) or maybe safari (the compass). As well as looking at websites on the internet, you may be using a web browser to use web applications in your workplace.
But am I a designer?
I occasionally design websites, but it isn’t my specialism. If budget allows I prefer to hire a really good designer to come up with the design concepts. I know lots of good designers. I take their design concepts and run with it to put all the technical stuff in place to take it from an idea to an actual website. When I work for a design agency, I am hired always for my technical skills, never for my design skills – let’s face facts, I think there’s a reason for that! Most of the work on my “portfolio” wasn’t designed by me – I usually just did the technical bits.
Do I do any computer programming that isn’t related to web sites or web applications?
Increasingly more. I seem to be doing more and more data crunching these days, involving writing scripts that move files around on servers and extracting data from different places and putting things in databases. I would call that programming. Most of this type of programming is actually using skills I learned while building web sites and web applications, but some of the things i’ve built aren’t web sites or web applications at all.
So am I actually freelance, or do I work for a company?
By freelance, I mean that I work for myself, but companies and organisations employ me on a freelance basis. Therefore sometimes I may appear to be working for several companies at once. Sometimes I work directly for my own clients, other times transparently as an additional resource for a design or digital media agency. Either way, I invoice for the work I do on either a fixed price or a “time and materials” basis, and this is how I make a living.
In May 2010 I sat on the watershed balcony with fellow freelancers Dan Fairs and Dan Hilton and talked about teaming up to be able to take on and pitch for projects bigger than we could handle as individual freelancers. We came up with the name Foundry, and shortly after collaborated on a successful project together. We all still work as freelancers, but hope to spend more time working together under the Foundry banner in 2011 and beyond. The challenge is moving the focus from looking after our own interests and incomes to working together, and to do that we need a big project that would keep us all too busy to take on other freelance work.
Will I fix your computer?
No I flippin’ wont! Have you tried switching it off and on again?
Last week I helped aardman digital set up the Wallace and Gromit site to cope with a huge traffic spike resulting from the 20th anniversary site relaunch and “google doodle” logo displayed on the google site across 12 countries. Working with the in-house team, I wrote a script to scrape the live site and create a static copy. The initial scrape was done using wget, and then a command line php script was used to run through the site doing some searching and replacing and renaming of various things. With thousands of pages of forum and user uploads the script took a while to run! The static site was then transferred to rack space cloud hosting which could be scaled on demand as the traffic spiked. Traffic to the main url was then diverted to the static copy of the site, based on the idea that most people would rather browse than interact. Anyone who wanted to log into the forum was then transferred to the live site.
This week we launched the new dshed.net – an “online showcase of creative work, commissions, talks, artist journals, festival diaries, research and archive projects” by the Watershed in Bristol. The site is Drupal 6 based, was designed by Tijuana Design, and built by myself and Oliver Humpage from the Watershed.
I was really chuffed to be asked to help the aardman online team out with the build of the new aardman.com site. I took the supplied photoshop designs and created HTML/CSS templates that were then handed over to be integrated into the CMS. I’m currently doing a lot of freelance work for digital agencies and I haven’t been able to talk about the websites i’ve been working on, so it’s great to be able to shout about this one!
One of the projects I have worked on recently is the Holistic Community website – a directory site for Therapists, Training Courses and Treatment rooms. This was an interesting project, as I was originally approached to make a few amends, but the previous developer refused to hand over the php code running the site, therefore the only option was to rebuild it, based on the existing site and a database export. I have to confess that I went about this project the wrong way – the database structure was far from ideal, and also I subcontracted the initial build to an apprentice who was learning php, who then left halfway through the project! As a result I had to rewrite all of the code.
In retrospect this would have been an ideal project to build on a framework or CMS, but this would have been too steep a learning curve for the apprentice. By trying to initially replicate the old site (including numerous multi-page forms), and using the existing database structure (resulting in lots of convulted multiple table joins), and using a novice php developer, and taking it on at a time when I was too busy with other projects, the project dragged on a bit and I probably did more than double the amount of work that I needed to – not ideal on a fixed-price project! However, the bright side is that it is a nice example of a rebuild/ reskin, and I am full of ideas about how I could undertake similar projects in the future in a much more efficient way.
The site has actually been refactored from a static HTML site, most of the pages are still static, but make use cake’s routing, page templates, layouts and elements. The news section is dynamic, and was very simple to put together, but i’m only half way there – currently I haven’t got any proper admin forms – that will have to be phase two! The learning curve so far has been very small – i’m looking forward to taking it a bit further.
Recently I decided to standardise on php/zend framework for future ground-up development (where I have a choice/ influence). As some of you may have gathered, i’m a bit of a “jack of all trades” when it comes to web dev and I have a legacy of projects using different technologies. One of these is a sprawling classic ASP/ mysql app for a distribution company which is a (very successfully) working prototype of something I want to rebuild in a more generic, modular and industrial way, as a flagship product for Olivewood to develop and sell.
To be honest the classic asp works fine for most purposes, but is becoming increasingly obsolete, along with availability of developers, and I have been trying to move on from it for years. The obvious choice for migrating a classic ASP app would usually be ASP.NET, but frankly the idea of spending the rest of my working life tied into windows-only development, and the fighting with software licences and scarce availability (it seems, at least in this town) of contractors makes me want to give up try a different career altogether. So I decided on php a while back (mainly because I wanted something open source, with an abundance of developers – I think if you throw a coin randomly in the watershed in bristol, chances are you would hit a freelance php developer).
So with php decided on, I then spent time evaluating a few frameworks. They all look good – this was a difficult decision – but I decided on Zend because Olivewood will be primarily concerned with eCommerce and eProcurement, and with magento being built on zend, and the “big industry” partnerships, it seemed the right fit. It also seemed to be useful and provide structure without being overly prescriptive. Also by writing this here i’m hoping to commit myself to at least something!
So, I also wanted something that would work cross platform, even though the obvious choice is to run open source web apps on linux/ apache, it was important to me that it would also play nicely with IIS, as many businesses have already invested in windows servers and already run other apps on IIS and wouldn’t be happy supporting anything else. This gets an indignant response from many “purist” developers/ sysadmins, but i’m basing this on real-life situations, and I hate the idea of a potential client ruling out open source software because it won’t run on their IIS server.
The other factor here was that I wanted something that would coexist with my classic ASP app until such a time that I have rewritten everything I need to make it a pure zend framework/php app. The classic asp scripts will handshake with the php code by dumping session data to the database and passing credentials via a cookie, so the session data can be shared between the two. This is vital to the plan, as it is a long term project – and much of the investment in migrating this will be my own time and money.
Installing Apache on the same server and setting up some kind of proxying would be another option, but not on the live server that this app runs on. I also needed to prove that it would work on just IIS before betting my future business plans on it, even if the first thing I would do is suggest that it is run on Apache.
I wasted a monumental amount of time getting this working, although it turned out to be fairly trivial once I had cracked it. The red herring is that there are two versions of isapi rewrite – version 2 and version 3. All the zend related documentation I found (hardly any) seems to be for version 2 (although this wasn’t mentioned!), which I just couldn’t get to work at all for my setup, but eventually I gathered that version 3 has been almost completely rewritten to work with apache mod_rewrite rules. So now I have a classic asp app, with a single folder (caled “zend”) containing my front controller from where all the php will be served the application folder (with all the models, views, and controllers) is outside the site root.
This has actually been quietly live for a while now, but wanted to monitor how it coped with the fairly heavy load exerted by the AJAX based mapping tool, which bought our dev server to it’s knees during original user testing, before being moved to a server with a bit more RAM.
I’ve just started renting some studio space in the infamous Tobacco factory in Bristol. This will be where most of the day to day running of Olivewood will take place, though I will still be working from the Ubley office from time to time. I actually worked in a studio in the tobacco factory at the beginning of the decade, when a certain large digital agency were based here. This is a much more relaxed vibe though, as i’m renting space from (and sharing tea making duties with) the lovely Fanatic Design.