A systems architect specialising in Unix and Linux based solutions with
a broad range of in-depth experience in areas including database design,
network architecture, client-server and web-based systems. Strong design
and implementation skills. Able to provide full end-to-end system design,
implementation and release.
April 2015 to date, "Senior Architect"
Eigen provides services to the Oil and Gas industry. They were a client
of Tyrian's for three and a half years and in April 2014 I was persuaded to
become a (part time) permanent employee.
I am the principle architect of our software platform and am in charge
of the development team. This is still very much a hands-on roll despite
the increased management component.
Tyrian Technical Consulting
August 2008 to date, "Technical Consultant"
I formed Tyrian Technical Consulting as a vehicle for providing design,
development and integration consultancy focussing primarily on Open Source
The technlogies involved depend on clients' requirements but have included
PostgreSQL, virtualization and Open Source migration, Asterisk VoIP PBX
deployment and integration work and bespoke development in various
February 2010 to August 2011, "Senior Project Engineer"
I accepted a permanent but part-time position as Senior Project Engineer
at Sirius, who had become a regular client of Tyrian. Sirius provides systems
integration, deployment and support and managed services based around Open
Source infrastructure. As a result, we are continually exposed to a wide
range of new technologies as the governed by the requirements of the
clients we support.
This was still very much a and hands-on role and has included custom
development projects for clients in PHP and perl, web-based solutions built in
Joomla, Drupal and custom frameworks and infrastructure work including
clustered server architecture and deployment and Linux/Windows integration
projects. Key technologies have included OpenLDAP, Samba, exim and Cyrus,
Asterisk (SIP/VoIP PBX), virtualization in VMWare, kvm and Xen, and iSCSI and
In addition I acted as an escalation point and mentor for the support and
managed services team as it made the move from 9-5pm to 24x7 coverage.
KBC Financial Products
January 2008 to August 2008, "Director"
January 2006 to January 2008, "Associate Director"
August 2005 to January 2006
My role was nominally systems developer or systems administrator. In
practice my time was divided between development and engineering work,
mentoring, and acting as a last-stop escalation point for Systems problems.
- Perl to Python Migration
- A decision had been taken to move our core development work from perl
to python. I spear-headed this work and implemented most of our core python
infrastructure, including tools ranging from basic cross-site, cross-platform
utility and data libraries to larger things like an OO interface to Active
Directory version control tools and so on.
- Development and Deployment Infrastructure
- I took responsibility for the maintenance and further development
of this infrastructure, implementing a build, packaging and release
process where previously things were manual and introducing regression
- Larger Development Projects
- Password escrow system, automated authorisation work flow, modular user
configuration (Unix, windows and database accounts, third party apps)
framework, and a secure external document distribution system.
- Last-Stop Escalation
- Usually this results in teaching junior staff members new things or
writing new tools to deal with new situations, but often it's good
old-fashioned problem solving ranging from issues developers are having
with stability, performance or network and Unix specifics to figuring
out what a critical but broken Windows app is trying to do and why it's
- Recruiting and Mentoring
- I have also been heavily involved in interviewing and expanding the team
and have a proven track record at identifying exceptional candidates, both at
junior and senior levels.
Goldman Sachs, FICC Strategies
December 2004 - May 2005, "Vice President"
December 2003 - 2004, "Senior Analyst"
January 2002 - December 2002, "Analyst"
I was hired as the first London member of the Install and Infrastructure
team in the Fixed Incomes, Currencies and Commodities division of the
bank. My role was, loosely, to help develop and run the large multi-platform,
multi-continent development, deployment and scheduling systems which underpin
the rapid development cycle of the front office trading and risk management
- Configuration API/Database
- An object database system built on top of Sybase to replace the
Infrastructure team's Berkeley DB based system. The database is used
to store, amongst other things, configuration information about several
thousand hosts, software packages built and distributed to them, the
build system itself and the distributed scheduling system. The API
provided for database fail-over, permissioning and a high level object
oriented interface to the data. A large part of the project involved
porting hundreds of thousands of lines of legacy code.
- CVS to Sybase bridge
- Database and supporting code to store the transactions of FICC
division's CVS revision control system in a relational database and
support rapid queries of CVS history and extended information used
by the proprietary build system.
- Package Distribution Verification
- The Install team distribute many gigabytes of software, much of it
changing fortnightly and some more ad-hoc, to several thousand machines
in different continents running different operating systems. This system was
required to independently verify the integrity of the files and produce
reports flagging problem cases.
- Dependency Visualisation Tools
- The Strategies department run a distributed dependency based job
scheduling system which runs hundreds of thousands of jobs on thousands
of machines. This tool provided a quick way to visualise the often complex
interdependencies between jobs, annotated with their current status.
Shortly after the first version was completed it became clear that several
other systems in use could benefit from a similar tool and so the engine
was extended to support plugins for various other things, including the
risk calculation, software distribution and database replication
A large part of this role was ongoing support and development of
legacy systems, rapid response troubleshooting of critical issues and
managing development policy.
Copernicus Global Billing Systems
September 2000 - September 2001, "Senior Systems Architect"
June 2000 - September 2000, "Consultant Systems Architect"
Copernicus was an ASP which produced a managed billing service
for telecommunication companies. The vision was to provide a system
with which telcos could feed in CDR (call record) data, specify billing
tariffs and rules and have Copernicus handle the billing, account management
and provision of web-based customer account details.
I was hired initially on a contract basis but eventually accepted
a full time position.
- "Unity" - Multi-lingual Rebrandable Application Framework
- Designed and implemented the core framework on which we built our
user interface to the billing system. As we were an ASP it was necessary
that it be developed in such a way as to make a single installation of
the system present multiple diverse look-and-feels to mirror the brands
and languages we were dealing with. This was necessary to make the
ensure low maintenance of the system once we had scaled to several
customers and languages.
Various applications on top of the above framework.
- Network and System Architecture
- Re-evaluation and design of the company's network and server
requirements (firewall, VPN, load balancing web server, mail and file
- Development Environment
- Specified, installed and managed the internal development environment
which incorporated tools such as version control, installation
management, bug tracking and change notification and archiving.
- Web Farm
- Load-balancing, fail-safe web farm for the user interface to the billing
system for customers, call centre and administration staff
In addition there were miscellaneous external libraries and tools
which required abstraction and integration with our systems, and
ongoing system and network administration requirements while we
didn't have a dedicate resources for the roles.
June 1999 - June 2000, Systems Analyst
Virtual Internet were one of the big name ISPs during the dot-com
frenzy, and one of the few to have the solid foundations to survive
the bursting of the bubble.
I accepted a permanent position at Virtual Internet having had a long
relationship providing system administration and bespoke software for
the company on a freelance basis during my time at University.
- VI Systems Database
- Implemented the systems database to provide the management and
automated provisioning functions for all web hosting, email and
domain name services. This was implemented based on a design I had
produced in September 1998 on a freelance basis.
- Network Upgrade
- Designed the international autonomous network structure and managed
the transition from a single leased line to a structure which had
redundant lines to our core back bone, an international VPN with
firewalls and multiple data centres.
- Web Site Stats
- One the most popular facilities with VI's clients was a web
site statistics page which allowed them to analyse the traffic
on their web site. The initial implementation had been a manual,
ad-hoc set up turned on for individual sites but to scale it to
the thousands of sites VI was now hosting it needed a substantial
redesign. The opportunity was also taken to provide more on-demand
analysis tools in addition to the static reports generated by
the original system.
- Technical Feasibility Studies
- VI was a very dynamic company with hundreds of ideas for new services
and products. I was involved as a technical consultant on these
ideas to determine their feasibility and likely implementation
costs and requirements.
Apart from the projects above my time was spent managing and mentoring
the team which ran the Unix and network systems, usually at a very
hands on level.
September 1998 - June 1999, Development Engineer
- Web Application Framework
- A generic Perl Web-based application system providing very a easy
and versatile frame work for state-preserving web applications
(e.g. shopping carts, wizards, control panels). The system cleanly
separated wording and look and feel from application logic
allowing superficial changes to be implemented without the
need for a developer to be assigned to the task. It incorporated
a server-parsed HTML derivative with the facility for adding
interactive, state-preserving tags in simple Perl code.
- Which? Online Shop
- Designed and implemented an online shopping cart and order system for
- Customer Services Registration
- Wrote the web-based front end used by customer care staff to register
new customers over the phone for NTL's PC and TV Internet services.
Designed a data-driven program flow extension allowing new "packages"
to be created and described in the database without alteration of
the registration system logic, reducing reliance on scarce
- Various smaller projects and ongoing tasks
- Wrote generic Perl objects for interfacing with NTL's Windows NT
based postcode, credit card and subscriber authentication and creation
- Carried out a feasibility study and implemented a secure,
automatic CGI script upload facility for clients of a web hosting
- Consolidated and organised the team internal development environment,
installing and managing various internal systems and
servers ranging from the CVS version control system to
internal DNS, web servers, and mailing list software, file
servers for Microsoft and Unix clients. Helped
to establish procedures and practices to bring more structure
to project implementation and management.
- Tested and reported on the performance of NCI Set Top Box browser
software used in TV Internet, detailing the areas of non-compliance
with their technical specification.
- Took over and maintained CGI based registration systems used by Which?
Online and NTL and those used by NTL subscribers to configure and change
their email and user account details.
- Helped coordinate the deployment of the PC/TV Internet Web Site.
1995 - 1998, Freelance Consultant/Programmer/Systems Administrator
My work previous to September 1998 consisted of a multitude of Internet
based freelance contracts ranging from a few hours' work to month long
I have experience in most areas of Unix, Linux and networking, from
a perspective of administration, design and programming, (Java, perl,
C/C++/Objective C) and so forth. If you require a particular skill, ask
and I can tell you what relevant experience I have.
Design and Programming
- Languages including Python, Perl, Java, C, C++
- Experience developing for numerous styles of interface (Web, GUI
toolkit, command line, libraries, network, client/server etc)
- Clustered, load-balanced and high-availability network services
- Security sensitive development.
- Design of local and wide area networking solutions.
- Good working knowledge of routing, bridging, switches (both plain
and so called "content-smart switches"), VLANs, load balancing,
clustering, quality of service (bandwidth allocation), tunnelling,
VPNs, IPSec etc
- Experience of designing and implementing networks based on kit
including hardware such as Cisco and Arrowpoint and software
based solutions on Linux and Unix.
- Linux distributions including Debian, Ubuntu and RedHat
- Unix variants including SunOS and Solaris, NetBSD, FreeBSD, OpenBSD.
- Various hardware platforms (Macintosh, x86, SPARC , 680x0, i386)
- Working knowledge of Microsoft clients and servers.
- Network services such as mail (POP, IMAP, SMTP), DNS, web servers
(apache, roxen, netscape), file servers (Unix NFS, Windows, Macintosh),
databases (Oracle, Sybase, PostgreSQL, MySQL etc)
- Knowledge of most Unix scripting languages including perl, awk, sed,
bash, zsh, csh, tcsh etc
- Security policies and secure services
Database Design and Architecture
- Solid understanding of relational database theory and its
applications in the design, implementation and practice of database
- Experience with RDBMSes ranging from Oracle and Sybase to MySQL
- Understanding of implications normal forms and other elements of
- I have designed databases for provisioning systems, contact
management, statistics logging etc.
Miscellaneous Hardware Development
While I wouldn't claim professional status as a hardware developer,
I've spent a reasonable amount of time investigating various microcontroller
related technologies which means I have some familiarity with lower level
- Arduino work: R&D work at Tyrian building radio controlled remote
sensors (essentially a continuation of ideas I explored at KBC)
and a custom 1-wire bus master to replace the ubiquitous (but
expensive and inflexible) DS9097U.
- Audio and MIDI: music is a major interest for me and I have
spent a reasonable amount of time digging into and working with
MIDI and audio hardware and software, inluding prototyping my own
control surfaces and "utility boxes".
- Raspberry Pi experience seems almost a given these days. I have about ten
of them installed running various tasks from central heating monitoring
and automation to a lightweight (literally) MIDI synth.
Education and Qualifications
Higher Education (University of Warwick)
GCE A Levels (Corsham School)
- Physics (A)
- Maths (B)
- Chemistry (B)
Available on request.
||bjb (a) deus net