Redgate makes software tools, mainly for SQL Server database administrators. It is also by far the best team environment I have worked in, with a strong emphasis on being reasonable which encourages honest feedback within the company.
I've worked in teams of 2-12 people on many Redgate products and services over the years, with my role as a developer growing to include setting the technical direction of the team. I write C# every day but also PowerShell, T-SQL and occasionally C++.
I am also leading the company toward automated releases, so our teams can release products more frequently and with fewer errors during the process. I led a team of 10 developers to write the original implementation, which has now grown and been adopted by most product teams within the company.
Redgate's flagship product is the basis of half the business: the ability to safely change the schema of a database is used not just by the desktop tool, but by SQL Source Control and dozens of our other products. Reliablilty is extremely important because an error risks destroying a customer's mission-critical data.
Unfortunately, Compare is very difficult to test because it works by creating a script that is run by another piece of software, Microsoft SQL Server. Unit tests can verify that the script matches our understanding of what should be done, but you can't be sure the script will succeed without actually running it. This led to massive integration test suites that ran overnight on dozens of machines, with hundreds of random failures per night.
We came up with a solution we called Record/Replay, which allowed us to reuse the values returned from a series of database queries to mock out the state of the database, so that these scripts didn't have to be run every time. We reduced the test run time to 20 minutes, breating new life into the company's staple product.
I have since ended up maintaining some of the server-side error reporting infrastructure.
Why is my program using so much memory? This tool will help you find out. The UX angle is really interesting here, because .NET memory management is one of those very complex things you usually don't have to worry about. Collecting the data is only half the problem: you also have to explain what is preventing an unneeded object from being "garbage collected".
Another issue is the large number of crashes people experience when profiling. Many of these are Out of Memory errors, which is to be expected since most of our users are diagnosing such problems in their code! But we wanted to know more, so we added unmanaged error reporting to the C++ profiler cores, which allowed us to fix many of the crashes.
For Professor Stephen Hawking, I spent 5 years as the in-house engineer, supporting his unique and demanding lifestyle by updating and maintaining the wheelchair and speech system, and planning most of his international travel.
The design consists of a ThinkPad X61 Tablet in an
aluminium shell, a directional speaker array hidden
in the headrest, and a number of power and USB devices
mounted on the back of the wheelchair.
The Intel machines had generally included an "umbilical" cable, a thick custom-built cable running from the screen to a box on the back of the wheelchair. This cable tended to develop loose connections, and it was very difficult to repair. I therefore decided to use standard parts wherever possible, so that if (for example) a USB cable failed, it could be replaced with another ordinary USB cable. The laptop itself can be swapped out in a few seconds, in contrast to the Intel machines, which had a large number of wires soldered directly to the motherboard.
Intel provided an SSD, which improves performance and makes the unit a great deal more shock resistant. This is very important, as the computer takes the full force every time his 142kg chair is driven into a doorframe!
Stephen originally operated his computer using a hand
switch, but as his disease progressed, the muscles
furthest from his brain became extremely difficult to
control. His movements became slower, and the amount
of involuntary movement began to exceed his voluntary
movement. In 2005 he moved to an infrared-based sensor
made by Words Plus,
which increased his talking speed greatly but had a
number of downsides. The sensor itself was extremely
bulky and heavy, and the weight tended to pull
Stephen's glasses down his face. It also needed
recalibrating whenever the ambient light level changed.
I redesigned the device shortly after I started working for him. My design is far smaller and lighter, and can compensate for ambient light. The sensor itself is actually very homemade: the LED and photodiode are superglued to a paperclip, which is soldered to Stephen's glasses.
I initially tried working with a Cambridge company, which usually produces the synthesisers for computer games, to recreate this distinctive voice in software. I recorded over 7,000 sentences using the hardware voice synthesiser, and they trained a statistical model using that data. The result is very close to the original, but not up to Stephen's exacting standards!
I then started working to reverse-engineer the original circuit, in order to emulate it in software and produce results that would be bit-for-bit identical to what is currently sent to the DAC. I built an Arduino-based board to run code on a DSP chip, so that the vague and often contradictory parts of the datasheet could be clarified.
The project was ultimately succesful thanks to some colleagues who continued the work after I left, but the working system was presented to Stephen only a couple of months before he sadly passed away.
It is remarkably difficult to find a wheelchair that meets
Stephen's needs.
Standard powerchairs are comfortable and have all the adjustment Stephen needs, but they are heavy (his current one weighs 142kg) and extremely difficult to dismantle. This is problematic for air travel because Stephen needs to take his wheelchair all the way to the gate of the plane; airport wheelchairs simply don't have sufficient neck and back support.
There are lighter chairs which can be dismantled easily, but these have no adjustment features. This means that Stephen must always be in a low enough position that he can enter a car without hitting the ceiling, and that height is unhelpful for a lot of other activities.
The only other alternative is a heavily customised chair, which fulfils these criteria but is less reliable, because a complex one-off machine can't go through as much testing as a standard product.
I studied Engineering at Girton College, Cambridge for 4 years.
The first two years (part IA: II.1; part IB: II.1) covered a wide area including structures, materials and thermofluid mechanics, and the other half of the course (part IIA: II.2; part IIB: Hons.) concentrated on speech and signal processing, semiconductors and hardware/software design. My final year also included a research project (Computational Auditory Scene Analysis: II.1) which consisted of using statistical techniques to improve the performance of a speech recognition system in noisy conditions.
| A levels (June 2001) | AS Levels | STEP Exams | ||||||||||||||||
|
|
| ||||||||||||||||
For more detailed information, please see http://www.blackburns.org.uk/cv or drop me a line.