Database

I have been using relational databases since 1989 and am an expert in well written and efficient SQL. I started off using Ingres (predecessor to Postgres) and moved on to using Oracle and Sybase, I feel equally comfortable using either. I have also used Mysql and SQL Server.

In most work situations I become the database expert because of my proficiency in SQL. I can design databases using normalisation and can advise on suitable indexes and primary keys. I have frequently been involved in speeding up programs which are running too slowly and this inevitably means rewriting the SQL to be more set based rather than row based. Below are some examples of situations in work where I have used my expertise to solve serious issues.

At Assertahome.com (now propertyfinder.com) they had a job which ran daily, emailing and texting people properties which had come onto the database since they were last emailed. This job took around 4 hours to run, and one day ran out of memory. It didn't run subsequently for about 3 weeks as the job was pulling back more and more records (since last run!) and they had 3 people look at fixing it and they all failed despite throwing more memory and indexes at the problem. The centre of the job was an Oracle stored procedure which did all the work and when I looked at it I realised it was very badly written. I rewrote it and the job ran in 3 minutes, the only complaint being from people who suddenly got their text messages at 7:00am instead of 10:00am.

When I joined Goldman Sachs Market Risk Dept in 2003 the first thing they got me to look at was a perl script which ran every Wednesday and hammered the database for fourteen hours, often having to be killed before it finished. It was just producing reports, so I rewrote the script changing the way it accessed the database ( taking all the data up front). I understood the program, rewrote it, found out out to deploy it, and released it all inside the first week and the first time it ran it ran in 4 minutes.

I could go on like this for hours, at Three Mobile communications I created bulk inserts for the newly launched Three phone service because they couldn't load the new customers quickly enough. At Price Waterhouse I became the speed expert and was put in charge of a team rewriting SQL to make jobs run quick enough to be useful.

Since 2006 I have been designing, maintaining and implementing databases at over 10 projects - see my freelancing section for details