Picture of Adrian Lock

C# Developer

Software architect and team leader

I am a highly technical, senior software developer based in the south of England. I have 16 years’ experience writing innovative applications on Windows operating systems. For the last 10 years this has been predominately in C# and C++.

My speciality is in looking to solve challenges that other developers deem to be impossible. My low-level knowledge of the Windows operating system allows me to stretch the limits of the technology and achieve results that bring unique selling points to the software that competitors struggle to match.

Curriculum Vitae:
CV as Word document
CV as PDF document

This copy of my CV has some personal information removed. Please contact me if you would like the full version.

Career
Development Team Leader
March 2004 to
Present
Original Software Logo

As well as leading the entire development team, I was solely responsible for the architecture and the majority of the development on the core product. TestDrive is an entirely script-less automated testing solution that enables non-programmers to harness the advantages of automated testing.

TestDrive allows automated testing to be performed across many different technologies including native C++ and Visual Basic applications, managed .NET applications, Delphi, SAP, Lotus Notes, Flex, IBM 5250 emulator sessions as well as websites in both Internet Explorer and Firefox.

This type of development requires large amounts of R&D and a comprehensive low-level understanding of how applications run on the Windows operating system. Almost single handedly, I have produced a solution that has allowed Original Software to become a competitor to companies like Microsoft, HP, IBM and Micro Focus and be recognized in the Gartner Magic Quadrant.

Co-founder and Developer
August 2010 to
Present
Sliding Mind Logo

Whilst at Original Software, I identified a new and untapped market that could make use of the R&D I had performed. Working with the intellectual property owner, we developed an entirely new product for the support and help-desk markets under a new brand.

TrackPath continuously tracks all user activity on any PC running a modern Microsoft operating system so that a full user friendly audit trail is instantly available in the event of operating system or application problems. This makes TrackPath the perfect solution for large user communities supported by a central help desk. The help desk operators are no longer reliant on the ability of a user to recall the steps that led to their problem as the user can send a fully documented audit trail with two mouse clicks.

Senior Analyst Developer
October 1999 to
March 2004
Tessella Logo

I joined Tessella after completing my physics degree and worked my way up the hierarchy. I worked on a variety of projects that required software written to specific standards such as ISO9001 and FDA 21 CFR Part 11 for use in medical and scientific industries.

Undergraduate
October 1995 to
July 1999
University of Reading Software Logo

During my bachelor of science degree at the University of Reading, I wrote a piece of software to replace some old experimental hardware for studying the Fourier Series. The software allowed students to see the effects of varying the parameters with real-time graphs.

Skills
Software Architecture
8 years as the principal developer in a 30 person company
Software Architecture Diagram

A good architecture is possibly the most important feature a large piece of software can have. My experience in the industry has taught me that there is no approach that suits all problems and failing to producing an architecture that is appropriate to each scenario is where many fail.

With the correct architecture in place, new developers can get up-to-speed quickly and become productive in a shorter time scale. Maintenance is also significantly easier if you are not fighting an architecture that is creaking at the seams.

Team Leadership
8 years of leadership in teams of up to 6 developers
Leadership Diagram

I have led a small but very experienced and technically capable development team for over 8 years. The team has varied in size between 4 and 6 developers and we pride ourselves on the size and quality of the collection of software products we produce and maintain. As a team, we compete with software solutions from other providers that have hundreds of developers working on the competing software.

The team I lead is pushed very hard to often produce results they do not think they are capable of. A combination of building the right team, empowering each individual to develop as an individual and acknowledging their desire to progress their career makes a very effective and efficient development team.

Development
16 years developing Windows software
Development Diagram

I have 16 years’ experience writing innovative applications on Windows operating systems. For the last 10 years this has been predominately in C# with WinForms and C++.

My speciality is in looking to solve challenges that other developers deem to be impossible. My low-level knowledge of the Windows operating system allows me to stretch the limits of the technology and achieve results that bring unique selling points to the software that competitors struggle to match.

I enjoy making slick and responsive user interfaces that users find easy to use. A well designed user interface can transform complicated software from what could easily become shelf-ware into software people actually want to use.

Databases
SQL Server
Oracle
IBM DB2
Databases Diagram

Much of the desktop software I’ve written requires a connection to a database for data storage. Although this is like the majority of corporate software, my skills exceed those of most developers when it comes to interrogating the inner workings of the databases. Part of a complete automated testing tools is the ability for that tool to capture all changes the application under test makes to the database. The ability to analyse inside these databases and extract this type of information requires a very deep and low level understanding of how each database platform works.

SQL Server
Extensive experience of third party libraries that enable software to interrogate the internals of SQL Server.

Oracle
In depth knowledge of the LogMiner within Oracle and how to automatically parse and extract relevant information.

IBM DB2
Experience working with System I developers to coordinate how to obtain and understand low-level system information and present it in a Windows desktop application.

Sample Code
AviWriter

AviWriter has been written to solve the problem of the .NET framework not containing a managed method for creating videos. It delegates on the Windows API to create an AVI with precise frame-by-frame control of the content.

After instantiating an instance of the AviWriter class, a Canvas object is exposed that can be drawn on using standard managed C# techniques.

The following code provides a simple example of how to use AviWriter to plot the path of a bouncing ball.

Sample AviWriter Code

Below is the video output from the above code.

Video Creator - Demo Application

A demo application showing several full examples of how to use the AviWriter class is available. The compiled program requires the Microsoft .NET v4 framework to be installed and the source code requires Microsoft Visual Studio 2013 or later to open.

Curriculum Vitae
Experience
Development Team Leader

Original Software - March 2004 to present

Co-founder and Developer

Sliding Mind - August 2010 to present

Senior Analyst Developer

Tessella - October 1999 to March 2004

Education
BSc: Physics - 2:1

University of Reading - October 1995 to July 1999

A Levels: Computing - A; Maths - B; Physics - B

Alton College - September 1993 to July 1995

GCSEs: 10 grade C or above

Perins Community School - September 1988 to July 1993

Curriculum Vitae:
CV as Word document
CV as PDF document

This copy of my CV has some personal information removed. Please contact me if you would like the full version.