Nigel Horne, M. Phil., B. Sc., B. A. (Open), B. A. (Shef), PgDipCCI, LDBBA
Silver Spring, MD 20910
Green Card Holder
Post Graduate Diplomas
2000: Open University
Postgraduate diploma in Computing in Commerce and Industry
University of Leeds
M. Phil. Free Composition
University of Sheffield
B. A. Band Studies
B. A. Physics/Music
Westfield College, London
B. Sc. Computer Science
City & Guilds
Radio Amateurs’ Examination
2007: University of Salford
Licentiate Diploma in Brass Band Adjudication
Primary developer of ClamAV
Sole implementer of accounting and PR packages
Author of several device drivers for different architectures
Porter of UNIX to different hardware
Main programming abilities: C, Linux, UNIX, TCP/IP, Perl, shell programming
QA analyst writing test strategies and procedures for white and black box testing
Significant experience with start-up and operations of successful business in North America, Europe, and South East Asia
Review my code at www.github.com/nigelhorne
In the top 5 Perl/CPAN testers (http://stats.cpantesters.org/testers.html)
01/19 – Present Covalent Solutions (Program Manager)
On site at NIH managing the relationship with Amazon/AWS, their reseller and the AWS for the STRIDES project putting NIH intra- and extra-mural in the cloud. Worked with researchers, investigators and other contacts at institutes, universities and other NIH grant awardees to ease their move into the Cloud by meeting to discuss their needs, managing expectations on both sides and working with AWS and the institute to find ways to improve biomedical research by breaking down silos and making use of the latest computing techniques. Set goals, introduced short- and long-term reporting, and set the long-term strategy for this key objective for the advancement of medical research. Worked with the “on-boarding” manager for new projects, the training manager to set objectives and requirements, the GCP business manager to ensure best practice and the technical team to ensure that the needs of the scientific community were met.
Awarded NIH CIT Operational Excellence award in 2019.
Attended the AWS Technical Essentials course.
10/12 – 01/19 ISMavens (Senior Systems Administrator)
On site for NCBI (part of NIH). Team leader for the computing cluster responsible for allocating people resources to maintain nearly 1,600 machines primarily running CentOS Linux. Technical lead for the move toward cloud computing using OpenStack and for liaison with internal customers. Planned system upgrades and software installation with some hands-on work at both applications and systems levels which included software and scripting (in Bash and Perl), systems packaging, troubleshooting and software deployment.
10/10 – 12/11 Mailermailer (Programmer)
Designed, wrote, maintained and tested web CGI programs written primarily in OO Perl and Perl/XS on FreeBSD to communicate with a PostgresSQL database using an in-house abstraction layer. Uploaded modules to CPAN. Co-authored the annual e-mail marketing metrics report.
01/10 Localstars (Consultant)
Advised on testing strategy for a company website, including common sources for security vulnerabilities and exploits.
Advised how to avoid emails they sent from being delivered to customers’ spam folders. Reconfigured the Linux and DNS servers and made recommendations to the PHP programmers.
05/09 - 12/09 Pursuing outside interests
Working toward an M. Phil in music composition at the University of Leeds in the UK that was completed in April 2010.
Worked with the Sanesecurity project to create scripts written in Perl to provide samples of spam, phishing and malware for use in the Sanesecurity anti-spam plug-in for ClamAV.
Tested Perl add-in modules on a wide variety of read, virtual and emulated hardware and operating systems. As a result, I am in the top 12 testers for the CPAN Perl testers’ group.
08/07 – 04/09 Sourcefire Inc (Product Manager)
Maintained and tested ClamAV, an open source anti-virus project for UNIX, Linux and Windows that is written mostly in C, that I had been working on in my spare time since 2002 prior to the acquisition of the project by Sourcefire.
Primarily I worked in the areas of file format handling and unpacking (emails, SMTP, PDF, Microsoft Office, TNEF etc.) throughout the entire software development life cycle. Worked on portability and regression testing and development (especially from Linux to Windows and various flavors of UNIX using virtual machines such as VMware and emulated machines such as QEMU, SIMH and GXEMUL).
Wrote a TCP/IP based load-balancing and fault tolerant middleware application between ClamAV and Sendmail to scan and decode MIME messages.
Researched the market place and latest malware techniques to design algorithms that enhance the product. Encoded these algorithms, primarily on Linux using C.
Worked with the Open Source community to raise awareness of ClamAV and to understand the Open Source community’s needs and expectations of the company. Chaired and programmed on-line speeches and seminars.
Liaised with the internal IT organization to ensure that the business needs of the product, such as the website, were understood and met.
Designed and tested web pages.
09/04 - 08/07 Various
Ji-tu Ltd (based in the UK): designed and tested web based multimedia application focusing on TV and audio portal delivery, e-commerce, on-line and digital media and publishing, and distribution over the Internet. The Windows client was written in C++ using Visual Studio and an object oriented design methodology. The web back-ends used Perl and MySQL and other open-source technology to host forums and video-based chat rooms and booking systems.
ClamAV Foundation (based in Poland)/Amaketos (based in US):): member of the not-for-profit governing body of the ClamAV project, an open-sourced anti-malware and anti-virus project.
10/06 – 12/06 Ocean Blue Software (Consultant)
Ported a set top box application written in C to Linux. Implemented a hard disk driver and debugged the recording software.
05/06 – 10/06 Unnamed customers(freelance)
Provided support for the ClamAV and SpamAssassin and Apache suites for a web hosting service, working as a systems administrator and systems programmer to optimize the email throughput on the server.
Wrote a program (written in Perl with an HTML front-end) to allow a music publisher to upload CSV files from Microsoft Excel and to translate these into HTML files suitable for an E-commerce site that I installed (www.prima-arts.co.uk).
02/06 - 05/06 Peek Traffic (Consultant)
Worked as a Linux programmer adding existing functionality to a fault tolerant system written in C, and ported the software to a 64-bit environment. Implemented a protocol over TCP/IP, and used the Ethereal packet analyzer to monitor the traffic over the network watching real-time events to ensure the protocol was correctly implemented and honored. Reviewed the software design, test specifications and MMI of the Windows based client. Suggested techniques for integration testing that are more rigorous. Advised enhancements for usability and how to approach UI design.
Maintained the watchdog driver of a data-gathering device running embedded Linux.
Designed and implemented proof of concept code driving hardware that converted Serial to Ethernet and vice-versa. The code was written in C under Linux.
06/05 - 12/05 Devoteam (Consultant)
On site for client at France Telecom. Researched the possibility of modifying Linux (kernel, device driver and a user level daemon) implement the proposed SyncServ protocol for 802.11b. Debugged the user and kernel level software, implemented fixes and discussed the fixes with the authors. Tested and documented the results with and without the kernel patch. Maintained the Wi-Fi device driver and modified the software to intercept and honor IPv6 router advertisement packets by intercepting the packets and writing a simple decoder.
Took over the development of existing middleware of a new project for the integration of 3G, GPRS, Bluetooth and other roaming technologies. Rectified problems with the software design and implementation, optimized the current code, and fixed incorrect assumptions with the Wi-Fi bandwidth algorithms. Made changes to the system to make better use of the multi-threading capabilities of Linux.
Wrote front and back ends in Perl, to send XML to the QoS server.
Wrote a multi-threaded server application in C++ on Linux to read and parse XML data read from a TCP/IP socket and, using embedded SQL, save the data on a PostgreSQL database.
Designed and implemented an automated test suite to drive the database client and to verify the results. The suite, written in C and Perl on Linux, parsed a command file containing information on how to drive the client, what data to expect, and how to handle exceptions.
02/04 - 09/04 Tadpole Technology (Consultant)
Integrated Wi-Fi into the Linux kernel advised on test strategies and modified the ACPI code for a laptop running the Java Desktop System. Wrote the installation programs (Shell Scripts, Perl and C) and device drivers (C) for the hardware not supported by the generic Linux distributions, especially laptop related ones such as multimedia keys, battery, ACPI and hibernate mode.
04/03 - 01/04 Global Security One (Global Development Manager)
Product manager for an Internet security device and a Windows based network security manager and analysis program, managing and reviewing the work of, the teams that were working in all parts of the SDLC. The technologies covered areas such as VPN, anti-virus, bandwidth management, embedded Linux with a Windows GUI and content filtering for anti-virus and other unwanted data.
Set up an offshore company that was an amalgamation of the companies outsourced to by GSEC1. Oversaw the office and company creation in India.
Ran departments working on various technologies including embedded Linux, Windows GUI, C, C++, QT, kernel modifications, test case analysis, design, UI design and system daemons, driving the various procedures needed to meet the needs of customers and quality control across the various teams.
Kept abreast of the latest security issues with a focus on a technical understanding, assessed the company’s need to address them, and worked with the chairman to ensure that a roadmap for the future of the product was put in place.
Setting the goals for the project managers and team leaders and ensuring that requirements were met without compromising quality, by advising on testing, documentation and procedures; market leadership, technical features and how best to implement them; or usability, by organizing user trials and overseeing the user documentation.
Introducing a company software development strategy based around industry best practice and the V model and put in place a team to verify that the model was being adhered to.
Setting objectives and appraisals: responsible for employee discipline for all projects.
Introducing programming standards and a code review process, including analysis of the impact of incorporating changes to the system.
Delivery and specification of the products, devices for Internet security (web and e-mail content filtering and anti-virus) based around embedded Linux configured by a Windows GUI, and a Windows based network security package.
Setting the quality process of hardware, software and third level support with the use of formal methods. Created a development lifecycle and worked with the project managers and team leads to monitor adherence and risk assess when issues arose.
Setting and scheduling the test strategy, procedures, goals and identifying tools. Set the metrics with the QA manager that these had been met. This covered white and black box testing including stress and vulnerability tests. Championed the use of automated testing using scripts where possible.
Identifying likely security risks to the firmware and recommending internal and external solutions.
Providing the leadership and co-ordination for the technical resources of the company.
Setting the timetables and resource requirements for the company.
Designing the GUI.
Advising the programmers on how best to make use of Linux in an embedded environment and performed ad hoc code reviews to mentor and advise the programmers.
Setting the defect tracking process using Bugzilla and CVS.
Chairing various project and management meetings.
Drawing up the job specification, and heading the appointment of, the QA manager.
Managed resources and teams in various locations worldwide including offshore development (India) that totaled around 20 staff. Established the strategy for the future, reviewed risks and created the company’s development procedures and processes. Drew up job specifications, appraised CVs, conducted interviews, and advised the Managing Director. Repositioned the technical teams to be customer rather than technology focused especially in the approach of MMI design and user documentation by introducing a scheme of user trials of prototypes. Oversaw the results of these trials and reviewed the strategy for dealing with problems that were raised and the procedure for verifying the results.
Mentored, organized training and provided technical guidance for the project managers, team leaders and junior staff and helped with their career development.
04/02 - 07/02 TfL (Consultant)
Managed the user acceptance of various products including document and code reviews, problem tracking and writing installation and integration black box test documents. Located problems with software deliverables and managed solutions with suppliers and customers. Mentored the Integration Manager with an emphasis on quality control. Liaised with the configuration manager and data centre to determine their requirements and ensure they were met.
Wrote test programs in C and Perl on Solaris UNIX.
01/02 - 04/02 Tadpole Technology (Consultant)
Wrote a device driver for Solaris 2.8 to support the Adaptec range of SCSI cards for PCI and CardBus using the CardBus bridge driver. I developed for Tadpole last year. Used the BSD and Linux kernels and drivers as references allowing for the differences between Intel and Sparc, the SCSI transport layers, DMA and memory allocation between the operating systems.
Ported, debugged and tested the Adaptec firmware assembler to Solaris and built and tested the embedded BIOS code that uses it. Used a SCSI protocol analyzer to verify the data along the bus.
Provided pre-sales advice to the sales team. Wrote performance-testing scripts to measure the throughput of the driver against comparable alternatives.
7/01 - 9/01 CrossLee (Consultant)
IT Manager, providing support of the Visual DBase client software and database and some hands on work including system administrative tasks on the Linux server (shell and Perl scripts) and maintaining a bespoke Borland C++/SQL system on their Windows 98 clients.
Wrote a proposal for the IT strategy of the company, and suitable job specifications for the positions.
1/01 - 07/01 Tadpole Technology (Consultant)
Worked as a senior systems programmer designing and modifying the kernel to support a hot-pluggable device driver in C for Solaris version 2.8 to support Cardbus devices, and providing changes to the existing memory mapping software as needed. The device driver was based around the existing PCI, PCMCIA and other drivers that are standard with Solaris, comparing with the relevant Linux drivers and kernel where necessary to verify the hardware was being correctly driven. Tested with combinations of graphics, Ethernet, SCSI, USB and PCI cards in various configurations.
10/00 – 12/00 ERA Technology (Consultant)
On site at Vizzavi (Vodafone). Established the software development process, coding standards and code control procedures for the Integration team.
Designed the procedure for handling faults on the web server and designed the web sites for handling errors in the main web sites. Reviewed the HTML code and Apache configuration files.
Provided systems programming and UNIX expertise which included some hands-on work including a number of C and C++ programs, shell scripts, test scripts and installation programs in Expect/TCL with Perl, for servers and other TCP/IP programs connecting to the Internet and other general-purpose utilities including a front-end to FTP and a multi-threaded web server stress tester.
Provided ad-hoc testing knowledge for the web servers and data feeds such as Reuters. Wrote and ran tests on a WAP simulator.
Integrated the different web servers and systems into a single web site.
Conducted job interviews.
4/00 – 10/00 First Direct Bank (Consultant)
Worked as a senior systems programmer advising on aspects of UNIX and Linux within the development teams for network management, advising on the full lifecycle and promoting design quality and procedural management.
Worked with the data centre and operations staff to discuss their requirements such as problem notification and resolution procedures. Created a MIME decoder and SMTP server for Linux in C and an HTTP server to automate the operations staff procedures.
Wrote a network monitor in TCL/TK that was tested using a combination of Expect and shell scripts.
Managed and mentored a junior programmer.
Wrote a proposal for the software development strategy for the company.
Designed and led the application migration of a legacy Pick system to AIX with an interface written in Java.
Wrote a load balancer that worked by propagating DNS changes around the LAN.
10/99 – 4/00 Marconi Communications (Consultant)
Managed the billing system team for the Multimedia and Voice over IP project, covering all parts of the software development lifecycle. Provided some hands on support where necessary, including the design, implementation and testing of a TCP/IP based DIAMETER server in C++ on Solaris using the RogueWave STL library.
My responsibilities included timetabling, resource allocations, reviews and prioritization.
Reviewed and took ownership of test strategy, evaluated an in-house test tool. Reviewed the statement of requirements and managed the design team using UML.
Conducted job interviews and used MS Project to manage the team’s resources setting targets for timelines and working to ensure they were met.
9/99 Oracle (Consultant)
Implemented a link between a multi-threaded web based client running under Windows NT and a VAX server. The link established a TCP/IP link to the VAX using Winsock. The link was written in C using Visual C/C++.
5/98 – 8/99 ERA Technology (Consultant)
On site at BT. Responsible for QA and integration testing and managing projects from the DA (directory assistance) service, a multi-million project owned by BT. Set the development and test manager’s goals and specified how to validate software from third party suppliers. Sat on various design, handover and control boards. Responsible for Y2K compliance, billing and NCP (number change program) for the project.
Devised testing and customer acceptance strategies for the desktop database enquiry and the billing system, though I needed to have a broad understanding of the entire system and data flows throughout. Mentored the test team leader.
7/96 - 5/98 Nortel (contract to permanent)
Deputy Program Manager and Systems Integration Test Manager for a multi-million dollar, multi-site project developing a middleware solution for international directory enquiries. Managed relations between the developers, testers and the sales team, co-coordinating the teams in various countries to meet the standards I had set down. Deputized as project manager of installation at Nortel in Germany and chaired international status meetings. Drew up job specifications and conducted job interviews.
Wrote test programs in Perl, Expect/TCL, Shell scripts and C to send data based on protocol specifications in ASN.1 and to parse and verify the response.
Reason for leaving: insufficient workload
5/88 - 5/96 Softcare Media Systems Ltd. (Technical Director)
Established and managed the software development, QA and support teams for the company of about 15 people, established strategy and goals and provided the technical leadership for a data retrieval system for PR agencies and accounting system for charities. Established and ran user groups and meetings. Worked with recruitment agencies to identify suitable candidates.
Modified the Raima Data Manager and Panel Plus windowing system source code for portability and resilience.
Reason for leaving: bought out from my board position
1/83 - 5/88 UniSoft Ltd. (Formerly ROOT Computers Ltd), London (divisional director)
Final Position - Divisional Director
Full P&L financial responsibility for the Technical Systems Division of around 30 people in the UK, 200 worldwide. Reporting to the parent company’s chairman, I was responsible for the division’s continued growth and success by managing its sales, marketing and administration.
Consolidated separate companies across the world into the division, set the company and division culture and created a management board to implement the goals and objectives that I set.
The division I managed was the most successful division in the company both commercially and technically. Ran the division with teams working on various technologies including compiler optimizations, kernel modifications, customer support, QA, testing and sales (domestic and international) achieving a constant business growth through an active marketing campaign, keeping abreast of the latest technologies and management of the company’s overseas offices. Appointed, and ran the day-to-day contacts with, a PR agency for the PR and marketing strategy.
Identified and developed new markets both home and abroad. Set the sales targets for the business team and monitored results against them. Set and controlled the budgets and monitored and controlled the costs for the division. Opened markets in Europe and Asia and oversaw the day-to-day relationship with the offices across Europe, North America and Asia. Oversaw contract, SLA and NDA negotiations with suppliers and customers. Conducted job interviews
Intermediate Position – Senior Systems Programmer
Hands on position, leading a team of programmers modifying the UNIX kernel. Modified and wrote new device drivers and MMU code.
Initial Position – Applications Programmer
Programmed in C on UNIX.
6/80 - 1/83 Westfield College Computer Science Dept. (Systems Administrator)
I was responsible for maintaining the Department’s UNIX PDP11. Mostly this involved tuning the system, modifying the kernel, acting as a systems programmer and liaising with the operations team, teaching and research staff.
Reason for leaving: fixed term 3-year contract
Open Source Contributions
I have contributed a number of modules to CPAN ranging from CGI assistance to a cache storage mechanism. I have tested Perl add-in CPAN modules on a wide variety of real, virtual and emulated hardware and operating systems. As a result, I am in the top testers for the CPAN Perl testers’ group.
I am a contributor to various open source projects including the Clam Anti-Virus suite (http://www.clamav.net). I have added an e-mail scanner to it by writing a MIME decoder, an SMTP plug-in for Sendmail, Web Proxy support and decoders for PDF, tar and other formats. I have ported the software to Windows XP using Visual Studio. The software is primarily in C. I have been invited to become a founder of the ClamAV Foundation.
I have contributed to Spamass-milter, a Sendmail plug-in to reduce spam written in C++ (load balancing implementation and bug fixes), gaim (bug fixes) and lynx (portability).
I have various projects published on Sourceforge.com: MOD_SPAMBOT Apache anti-spam plug-in; clamav-redirector, Squid anti-virus plug-in; clamav-powertools, Outlook/Office anti-virus plug-in written in Visual C++; Kritton, an HTTP WWW server; clamav-sniffer, a program to scan network traffic and modify the firewall to prevent attacks.
Worked with the Sanesecurity project to create scripts written in Perl to provide samples of spam, phishing and malware for use in the Sanesecurity anti-spam plug-in for ClamAV.
I have published blacklist-milter and cmilter, Sendmail plug-ins to reduce spam modifying a firewall and blocking based on country of origin.
I am the director of the Rockville (MD) Brass Band and the Washington Metroplitan Gamer Symphony Orchestra. I have conducted and run many musical groups at a variety of levels in a number of countries.
I was the technical reviewer for the O’Reilly book on the Java Desktop System, reviewing the accuracy and completeness of the technical contents and the correctness and consistency of the language used.
I have been an exam invigilator for the University of Leeds.
I hold a Class A amateur radio transmitting license.
I am comfortable living and working away from home – overseas if needed. I enjoy working with people from other cultures, and actively seek opportunities so to do in my musical as well as my business activities. I have a keen interest in learning about other cultures and in spending time and working in many places across the globe, especially in Asia and North America.
Member of the board of directors of the North American Brass Band Association.
Until recently, I was the National Membership Secretary and member of the Executive Council of the National Association of Brass Band Conductors. I sat on committees that organize national conventions, public relations, academic liaison, diplomas and conductors’ competitions, I wrote and co-ordinate press releases and I maintained its mentoring system.
I have negotiated the contract covering the broadcast and recording rights to my music prior to its recording on CD and broadcast on television.
Member of the organizing committee for the 2006 Research Students Conference of the Royal Musical Association.
I am in excellent health and I do not smoke.
Founded a music-publishing house where I established a worldwide sales channel network for myself and other composers and arrangers in the brass and wind band genres. Created a web presence for the music and papers of others and myself including tutorials on various musical matters: www.bandsman.co.uk. Tutored students from across the world in music arranging and composition.