email@example.comN.B. This CV is currently undergoing a major refresh, much of the information below is out of date
Software Engineer with over 15 years experience developing applications with a keen focus on
standards, accessibility, interoperability, security and re-use as well as Open Source.
Developed many applications using C#, VB.Net, ASP.Net, SQL, XML/XSL and
Have the ability to work individually on my own initiative as and when required while
simultaneously working as a member of a team of between 3 and 8 developers.
Introduced new technologies and techniques such as XML, Control Inheritance, Control
Libraries, Dynamic Code, Generic Types, and Click Once Deployment.
Extensively used Source Control systems (Git, Source Safe and Source Forge/SVN)
Developed many dynamic systems for both presentation and execution.
Created central library for code re-use.
Developed algorithm to resolve long standing problem
Worked on both greenfield and existing applications adhering to team coding standards.
Extensive hardware experience having built and maintained PCs/Servers for many years.
Software Solutions Developer
Other Relevant Experience
Began Open Source experience with “SuSE Linux 7.0” in 2000. Gained experience in a number of
different distros, including several Alpha versions.
A-Level in Computing (B), Physics (B), Maths (C)
GCSE Level in 91⁄2 subjects including IT, Maths, Physics, Chemistry, Biology, English(2), Music
Of Professional Development Experience:
I have been writing applications for as long as I can remember, My first programs in QuickBasic.
I moved on to VisualBasic (5.0) around 2000 but continued to use QuickBasic for a good few years
Under Linux for home use I used C/C++ for a few years which helped me to maintain one of the
core applications for Altwood LTD. (now Acxiom).
I started to teach myself C# in 2002 and in 2003 I moved into using VB.Net at work.
More recently I've used nodeJS for some smaller projects
Everything I write is now done using C# either using (at work) Visual Studio or (at
home) VSCode with a Makefile for build.
I started using SQL (MS SQL Server) in 2003 and am now adept at creating complex queries,
sometimes including CTEs and SQL which writes SQL (although I try to avoid this where
I have used many source control systems during my employment including git, MS SourceSafe, CVS
12 Years Of Open Source Experience:
My first experience of Open Source Software was at school with FT Linux in about 1999.
I was hooked pretty quickly and soon installed SuSE Linux 7.0
Since then I have tried many distros including Knoppix, Redhat, Fedora, Gentoo, Kubuntu and
Ubuntu, Mandrake, alpha/beta versions of Open SUSE and countless more.
Projects Worked On:
Professionally I have worked on many projects, ranging in size from small utility applications to
massive projects with ongoing development.
TODO: Update this!
At VigeoEiris I have worked on a complete re-write of the companies primary internal application.
This development involved some complex logic with countless 'IF's 'BUT's and 'who knows?'
It also includes a dynamic data entry system which has the configuration defined in itself.
As part of this project I created a number of Abstract base controls designed to take away the pain
of some common tasks. An example includes a document tabbing system similar to the ones found
in Web Browsers and Visual Studio.
I have written a Visual Studio Add-In to assist in common tasks (such as turning a For-Each loop
into a For-I-Loop and creating public properties to wrap private members). This add-in sped up my
I wrote, from scratch, web based bug tracking software to replace the Excel Spreadsheet previously
used (which was struggling with 3 developers and a tester constantly updating it).
The biggest project to-date is a complete re-write of the companies' flagship client application.
This is a windows forms based application which requires significant volumes of data updates, the
web service for which is one of the many parts I have written.
During my time at EIRIS I have created numerous flow charts and database diagrams to clarify
processes and complex data structures. I have also written detailed documentation to assist the team
in understanding the interface and workings of various (often complex) components. More recently
this has taken the form of a Wiki to which all members of the team contribute.
At EIRIS I have also developed:
A Holiday Booking System:
A web based Asset Tracking System (incorporated into the bug tracker)
A centralised permissions admin system (all the projects use a common permissions model
which I created).
TODO: Tidy this up!
The biggest was the hugely dynamic web application which would be used by internal staff and
external clients alike in many countries throughout the world.
As part of a team of 8 developers situated in Central London this project involved developing a
skinnable, client facing, Website (including AJAX components) as well as a complex Web
Service, multiple Windows Services, Windows Forms based support applications, 2 Metabases,
and Gigabytes of flat file data, and I was privileged to be able to work on ALL aspects of this
As part of this project I also developed a solution to a long standing problem by generating indexes
based on some complex maths. This solution turned out to be many times faster (at run time) than
any previous solution.
I solely developed, as part of this project, a powerful dynamic data output engine which would
quickly and effectively output data, from any given source, based on supplied data bitmaps and
indexes. This engine was core to the function of the entire project. It would also, if required,
reformat data on-the-fly before writing to the output file, which could be in one of many formats,well as generate reports, layouts and documentation to accompany the file.
During my time at the same company I also developed, from scratch, another highly dynamic
application for use by several external clients which contained a dynamic admin system, which
Some other projects worked on during my time at Acxiom:
A web based dynamic survey data collection site. This application had dynamic render.
A Re-usable Code Library which ended up as part of just about every project big and small
made within the team. It was my responsibility to make sure people used it whenever
An extensible tools application where new tools could be quickly and easily added by
anyone in the team to assist in the creation/manipulation of data and/or code. The main
purpose of this application was to reduce the myriad of support applications that the team
had down to just one application; Which is far easier to manage and reduces duplication of
TODO: Update this!
I recently picked up a 3rd party Open Source Software, xwax, which is a Digital Vinyl System
(control an mp3 by using a special timecoded vinyl as if the mp3 is on the vinyl itself).
This software utilises SDL – a technology which is new to me and within a few hours I had made
tweaks to the user interface – adding more columns of information to the user display and tweaking
the search function to work with these extra columns.
Recently I have also developed an online radio station stream switching application.
This all in one solution contains an embedded http server which I have written from scratch as well
as both a GUI and a comprehensive CLI for use on headless systems.
It also includes both a shoutcast server and client.
The source for these, and some of the other projects mentioned below can be found in my SVN
repository accessible from my website (http://dev.djl-djl.com) licensed as GPL.
Other personal projects I have worked on include:
• An audio file tag scanner – This is a drop in replacement for the one which ships with xwax
(which was inadequate for my needs).
• A Multi-platform executable generator – which can create a single binary that will work on
both Windows and Linux without requiring the user to manually run external software.
• A vinyl recording application with ID3 tagging features and automatic track separation
(work in progress).
• An Image sideshow application with a complex rating system and XML config store.
• An audio identification system (work in progress)
All my projects utilise Makefiles for build.
I am a strong advocate of adhering to standards (e.g. W3C, WCAG), creating accessible
applications (particularly important for websites) and applications which function across many
platforms (also particularly important for websites).
I appreciate that employers/clients are often more concerned by fast development than adherencestandards. However I believe it is possible to stick to these principles without significantly
adversely affecting development time.
I am keen to develop good, clean, code which is easy for another developer to follow. I add
comments where necessary but avoid cluttering the code with them. Doc Comments are a great way
to document the usage of a re-usable code library and I think it is important to keep these up-to-
I am also a strong advocate of code re-use, Creating (at both of my employments, and in my private
work) a re-usable library which contains a great number of functions not specific to any one
application; which all team members contribute to.
I believe my experience in maintaining the hardware of the computer gives me a better
understanding of the interoperation between the various components of the PC thus enabling me to
write more efficient code more quickly.
My ability to think outside the box often means I can come up with a simpler solution to an
otherwise complex problem. Conversely it can sometimes result in a complex solution which will
run many times faster than straightforward methods.