|
Last Updated: April 15, '06
Curriculum Vitae
Personal Details | |
| Name: |
Brian Somers |
|
Address: |
2331 Hyannis Drive |
| North Vancouver |
| BC V7H 2E7 |
| Canada |
| Date of Birth: |
June 26, 1967 |
| Home Tel: |
+1 604 924 1929 |
| Mobile Tel: |
+1 604 764 6346 |
| E-mail: |
brian@Awfulhak.org |
| Availability Date: |
None at present |
| Document Location: |
http://www.Awfulhak.org/brian/cv.html |
Education | |
| 1979 - 1984: |
St. Benildus College, Kilmacud Road, Kilmacud, Dublin 16,
Ireland. |
| 1984 - 1985: |
Kevin Street Technical College, Kevin Street, Dublin 4,
Ireland. |
Qualifications | |
| Leaving Certificate: |
Maths, Applied Maths, English & Art. |
Technical Summary
| Primary Focus: |
Communications software development under Unix using C,
technical consultancy, low-level (device driver) programming. |
| Operating Systems & environments: |
FreeBSD, OpenBSD, NetBSD, Solaris, Linux, AIX, X-Windows |
| Languages: |
C, C++, Bourne & Korn shell script, perl, awk, sed,
HTML/SGML, SQL. |
Work History
Sophos is a company that specialises in anti-virus, anti-spam and
email policy software for businesses. Their flagship product is
Puremessage - an application that runs on many Unix-like operating
systems to provide reliable, proactive protection at the email
gateway.
Sophos, April '05 - present
| Project: |
Puremessage Appliance development |
| Position: |
OS Tech Lead |
| Environment: |
A private subnet of FreeBSD & Linux machines and appliances
providing various network services and using Perforce for source
control. |
| Experience Gained: |
A complete appliance development lifecycle, including choosing
between appliance vendors and Operating Systems, determining
which OS components were required, handling copyright issues,
developing solutions to upgrade issues, working towards a full
implementation of the product requirements, then undergoing the
develop/release/test cycle to bring the product to maturity for
final release. The product (the
ES4000)
went live at the end of March 2006. |
Sun Microsystems are one of the most inovative companies in both
the hardware and software industry, having an international
presence and over 40,000 employees. Their VSP group were introducing
x86 blade servers and required Linux OS support.
Sun Microsystems, July '04 - April '05
| Project: |
Working for the Linux group within Sun |
| Position: |
Software Engineer |
| Environment: |
Mostly working from home (80%-90%) as part of a nomadic team. |
| Experience Gained: |
Some initial work was done with ATCA blade systems and further
modifications and fixes were done to the Linux tg3 driver. Research
was also done into laptop keyboard event handling under Linux,
although the likes of ACME and acerhk were discovered to pretty
much cover the requirements. |
Sun Microsystems, March '04 - June '04
| Project: |
ARP Colouring implementation under Linux |
| Position: |
Software Engineer |
| Environment: |
A private subnet as used with the Scimitar project below. |
| Experience Gained: |
Modifying the ARP protocol to allow the determination of fabric
colours involved a few subtle changes to the ARP
implementation under Linux. It required a full understanding of
the linux neighbourhood cache abstraction and the state machine
associated with resolving IP addresses. |
Sun Microsystems, May '02 - March '04
| Project: |
Linux implementation on the Sun
B100x and
B200x
Blade Servers |
| Position: |
Software Lead |
| Environment: |
For this project, I set up a private LAN with its own DNS, DHCP,
TFTP and NFS services, as uncontrolled network traffic was likely
and should not affect the rest of Suns internal network. |
| Experience Gained: |
Leading a team of Linux engineers through an 18 month software
project. Maintaining a build and release system that handles eight
different versions of Linux and builds drivers against various stock
RedHat and SuSE kernels (handling the module versioning correctly).
Co-ordinating BIOS modifications with BIOS engineers situated in
Taiwan and Korea. Developing drivers for firmware updates, ECC
support, network interface aggregation and failover and gigabit
NIC support. Troubleshooting problems from fiberchannel NIC link
autonegotiation to IP protocol bugs and even Northbridge schematic
errors. Helping with the documentation of the PXE install system
and describing how the network configuration was implemented and
used. |
FreeBSD Services Ltd
FreeBSD Services Limited was a company established and owned by a
group of UK based FreeBSD committers (including myself). It
provided FreeBSD consultancy and support services and focused
on promoting FreeBSD
as the server operating system of choice.
FSL, March '01 - May '02
| Project: |
Support, development and distribution of FreeBSD |
| Position: |
Director, technical programmer & analyst. |
| Environment: |
A loosely coupled network of FreeBSD servers using assorted
WAN technologies and VPN arrangements. |
| Experience Gained: |
Low-level FreeBSD kernel development (implementing a serial
multiport comms driver and writing a reference implementation
for FreeBSD's device cloning capabilities), Internet gateway
installation and maintenance (supporting the usual gateway
services, and including a turnkey solution), WWW and DNS hosting,
wireless setup and administration, VPN encryption development,
FreeBSD DVD creation, production and sales (see The
FreeBSD Services sales page), including the design and
implementation of an online credit card fulfillment system using
Perl and Postgresql under FreeBSD. |
FSL, August '01 - November '01
| Project: |
Organising and publicising
BSDCon Europe |
| Position: |
programmer / committee member. |
| Environment: |
The conference was hosted at the Thistle Hotel in Brighon. It
was digitally filmed and offered a terminal room for use by the
delegates during the conference. The terminal room was connected
to the Internet via a 12 way bundled ISDN connection.
|
| Experience Gained: |
We used laTeX to create the conference proceedings, publishing
the delegate's papers from a variety of source formats from .gif
files to html text. We built the terminal room on the day before
the conference started, providing DNS and CVSup services to the
delegates and connecting to the Internet over a 12 way ISDN bundle
(768k bandwidth). Printed badges, t-shirts and Brighton
Rock were provided. The video recording of the conference
tutorials is being digitised and made available to the attendees.
|
Sun Microsystems are one of the most inovative companies in both
the hardware and software industry, having an international
presence and over 40,000 employees. Their Netra division, based
in Bracknell were introducing support for systems alarms and service
monitoring into the Solaris operating system.
Sun, August '00 - March '01 (Contract)
| Project: |
Systems Alarms and Service Monitoring |
| Position: |
Technical programmer & analyst. |
| Environment: |
Sun Sparcstations with some Sun/i386 machines. Code is written
in C. |
| Experience Gained: |
Device driver, library and application implementation under
Solaris. Thread programming using the Solaris threads library.
The use of a distributed SCCS-based source code system that's
capable of allowing updates through any of the distributed
repositories. |
Deutsche Bank is the biggest international investment bank in the
world and has many offices in the City of London. My experience is
with their back-end trading and interface systems.
Deutsche, November '98 - August '00 (Contract)
| Project: |
Writing discrete systems for interfacing Deutsche's legacy
Cobol systems with bought-in software and external clients. |
| Position: |
Programmer, analyst, release engineer. |
| Environment: |
FreeBSD, Solaris, AIX and PC workstations connected to a network
of Solaris, AIX and NT hosts. Code is written in C with a lot of
shell scripting. |
| Experience Gained: |
The implementation of a fax/telex interface communicating
with Cray System's IMX gateway, the implementation of the Oasys
Global Direct interface communicating with Thomsons S.W.I.F.T.
message exchange, the implementation of another S.W.I.F.T. interface
communicating with Logica's FASTWIRE software, the maintenance and
development of control and monitoring tools for the back-end
dbTrader system and the creation of new software control tools using
CVS, SCCS and RCS. |
Livingston is an international company that buys and sells electronic
equipment, leasing it to the public in the interim. I was working on
behalf of The Sema Group and via Orcasoft Limited. The Sema Group is
a large software consulting and managment company, and Orcasoft is a
group of consultants, dealing with the technical implementation
of the project.
Livingston, January '98 - October '98 (Contract)
| Project: |
SCCS front-ending, release engineering and general Unix
system re-organisation. |
| Position: |
Programmer, analyst, administrator & technician. |
| Environment: |
PC workstations connected to a small network of Solaris
& NT machines. Code is written in C. |
| Experience Gained: |
The design and implementaiton of a complete development
life-cycle including secure software control, automated
validation, build & release proceedures with remote
installation and rollback facilities. In-depth Sun
hardware & software administration. Technical
interviewing for additional Unix & network operations staff. |
Citibank N.A. is a subsidiary of Citicorp, a large international
bank with a presence in 98 countries and territories worldwide.
Citibank N.A., July '97 - December '97 (Contract)
| Project: |
Making Citibanks' Citiaccess system comply with their year
2000 guidelines, and enhancing several standalone Visual C++
applications. |
| Position: |
Programmer. |
| Environment: |
PC workstations connected to a mix of Novell and NT servers
on a Token Ring network. Code is written in C and Visual C++. |
| Experience Gained: |
The creation and integration of a date library, handling all
date functionality for the Citiaccess system. The Citiaccess
codebase consists of over 950 source files, making up over
360,000 lines of code. The creation of a makefile hierarchy
to control the building of the system, allowing the ultimate
creation of the two software installation diskettes. |
Utell International represents over 7500 hotels to approximately
200,000 travel agents through offices in over thirty countries.
The entire operation is handled by a distributed hotel reservation
system developed in-house over a number of years. Utell was
in the process of adapting a new reservations system to replace
their existing systems. The contract was extended twice,
each extension being six months.
Utell International, May '96 - July '97 (Contract)
| Project: |
The installation of an internet gateway, and the ongoing
maintenance and enhancement of Utell's computer systems. |
| Position: |
Analyst programmer. |
| Environment: |
Sequent PTX, IBM AIX & FreeBSD unix hosts, Novell
Servers, Crosscom & Cisco routing hardware and PC
workstations. Code is written in C or C++. |
| Experience Gained: |
| The setup and maintenance of a gateway machine supplying
the following services; DHCP, DNS, HTTP, SMTP, POP, NTP,
NMBD/SMBD, NNTP and various proxy services. |
| Reviewing Utell's functional additional documents that
specify modifications necessary to migrate from the old
computer systems. |
| The design and implementation of several critical
system enhancements necessary prior to the implementation
of Utell's new computer systems. |
|
Utell International, January '96 - May '96 (Contract)
| Project: |
The design and implementation of an MS-DOS device driver
that converts serial traffic to network traffic and vice
versa. |
| Position: |
Analyst programmer. |
| Environment: |
A PC running MS-DOS 6. Code was written in C with
some assembler. |
| Experience Gained: |
UART, Interrupt, Packet Driver and TSR programming abilities. |
CMG is a Computer Consultancy firm dealing mostly with Payroll
systems. In this instance however, CMG were contracted by
British Gas to design, develop and implement a large PC
application to run on a laptop PC. The original contract
termination date was December '93. CMG extended the contract on
several occasions. The project was delivered to British Gas at
the end of '94 after which British Gas re-contracted CMG to
implement a set of major design changes. These changes were
finished and went live at the end of '95.
During my time with CMG, they were re-certified as BS5750
compliant twice after examination of the procedures in place
for the projects with which I was involved.
British Gas, September '93 - December '95 (Contract)
| Project: |
British Gas Area Operations, Module C. |
| Position: |
Consultant / Analyst programmer. |
| Environment: |
| Several environments were necessary. They mainly
consisted of PC workstations running MS-Windows,
Novell servers and unix hosts running AIX. |
| PC workstations connected to a network of Novel and AIX
servers. Code and documentation was stored on a Novell
server under SMS. Code was written in C++ using Zinc
Framework and initially using CodeBase.
The target hardware was eventually re-specified as an i486
with 8Mb of memory (rather than the initial 8086 with no
extended memory). |
|
| Experience Gained: |
| The design and implementation of a relational file access
mechanism, including a fully functional strong-tree class,
requiring less resources than the CodeBase system originally
used. |
| The implementation of a somewhat unusual Human Computer
Interface (of British Gas design) using the Zinc
source code as a foundation. |
| The creation of a generic EDIFACT parser, used to
break down the messages sent from the Unix host. |
| Debugging and correcting the mobile communications software
that was originally sub-contracted to a third party. |
| Assisting on the technical side of interviewing for
additional contract staff. |
| I created a virtual communication mechanism that
allowed the PC application to communicate with either
a radio, a test harness, a radio emulator or directly
to the Unix host that allocated the service jobs (via
an NFS solution installed by myself). |
| The re-write of the low-level memory allocation
routines used by the Symantec compiler (malloc et al). |
|
Utell International - September '93 - September '98
(Part-time Contracts)
| Project: |
Various part time roles |
| Position: |
Consultant/Analyst/Programmer (part-time). |
| Environment: |
A Sequent Symmetry Unix host. Code was written in
C & C++. |
| Experience Gained: |
| Implementing a table driven data translation program,
interfacing Utell to an associate hotel chain.
The program went live in June '94. |
| Porting Utell's systems to Dynix/PTX. A six week project
plan was presented and completed. The project was dependent
on the successful port of a C++ compiler and debugger. The
GNU C++ compiler and debugger were found to be the only
available tools that were up to the job. I successfully
ported these and Utell's database and windowing infrastructure
prior to distributing the application work to Utell's full
time employees. The system went live on schedule in early
February '94. I did a subsequent port to SCO OpenServer
in September '98 - this took only a few man days. |
| Utell's TP systems were modified to allow the
communications subsystem to be taken offline without
disturbing the front-end transaction processors. This
involved multi-threading the system while maintaining
data integrity and correct message sequencing.
The code went live in November '93. |
|
Utell International, January '88 - September '93 (Full Time)
| Project: |
The design, implementation and extension of a generic
and extendable hotel reservation systems infrastructure. |
| Position: |
Senior Programmer |
| Environment: |
PC workstations connected to a LAN of Sequent hosts.
Dumb terminals linked to either a Unix host or a terminal
server. Code was written in C++. |
| Experience Gained: |
The design and implementation of a distributed WAN TP
database system, an X25 multiplexing mechanism, several
list classes and a balanced tree class with full deletion
capabilities. Porting many freeware and shareware
programs, reviewing third party systems, designing and
implementing system test procedures and source code
control mechanisms. |
Interests
Science Fiction, Rugby, Chess, Martial Arts, Internet, OS
development.
I am a member of the FreeBSD
development team since December '96, with full commit privileges. I
deal mostly with PPP and networking technologies. I run CVSup servers
for FreeBSD, OpenBSD and NetBSD from a co-located machine in
Brighton.
I have designed and implemented full PPP MP (Multi-link Protocol) and
IPv6 capabilities in the user-ppp program under both FreeBSD and
OpenBSD. I have also implemented synchronous PPP, PPP over Ethernet,
PPP over UDP and PPP over a data stream created by executing an
arbitrary program. I'm currently working on adding
netgraph support to ppp under FreeBSD. I have also designed and
implemented large portions of the digi and
dgm drivers under FreeBSD, and have been involved in
many other areas.
I maintain a web site for the Bucks County Chess Association at
http://www.buckschess.uk.eu.org/. The web site is generated from
a series of perl scripts and modules with a small C pgn file parser,
and includes several years worth of chess results and games.
Referees
References from Utell International
and BLiX Limited are available.
Further references can be supplied on request.
|