|
Last Updated: September 30, '11
Curriculum Vitae
Personal Details | |
| Name: |
Brian Somers |
|
Address: |
1771 Ralph St. |
North Vancouver |
BC V7K |
Canada |
| Date of Birth: |
June 26, 1967 |
| Home Tel: |
+1 604 924 1929 |
| 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 & system design, low-level (device driver) programming. |
Operating Systems & environments: |
FreeBSD, OpenBSD, NetBSD, Solaris, Linux, OSX |
Languages: |
C, C++, Objective C, Bourne & Korn shell script, perl, python, awk, sed,
HTML/SGML. |
Work History
OpenDNS is an innovative security company that protects it's customers
at the DNS level.
Development at OpenDNS is done across a VPN from multiple locations
including Vancouver and San Francisco. Collaboration tools such as VNC,
skype and facetime are used to virutally "pair" with other developers
from day to day.
OpenDNS, September '11 - present
Project: |
Protoss development |
Position: |
Software Engineer |
Experience Gained: |
This project focuses on bringing virtual in-house appliances
to our customer, providing per-user security customisations.
It is currently very much in the design phase. |
Sophos is a company that specialises in anti-virus, anti-spam and
email policy software for businesses. Their flagship server product is
Puremessage - an application that runs on many Unix-like operating
systems to provide reliable, proactive protection at the email
gateway.
Development at Sophos was done using OSX, FreeBSD and linux workstations
in a segregated network and using perforce for source management.
The role of Principle Developer 1 was the highest technical role at Sophos
and was held only by myself.
Sophos, January '11 - September '11
Project: |
Sophos Anti-Virus for Mac development |
Position: |
Principle Developer 1 |
Experience Gained: |
Responsibility for the SAV for Mac product moved from the UK to
Vancouver at the end of 2010 requiring ongoing monthly updates of
the Anti-Virus engine and identity files for both PowerPC and Intel
hardware and for all versions of OSX from 10.4. OSX deployment was set
up and managed using DeployStudio. Feature enhancements included
dynamic kernel -> userland scanning handoff, consolidated scan
management and scheduled scanning support.
Additional experience included building a local Darwin kernel to
investigate technoligies in OSX 10.7 (Lion) such as file revision control
which uses Apple's kauth kernel subsystem and initially conflicted with
SAV for OSX. |
Sophos, January '09 - December '10
Project: |
Email Appliance development |
Position: |
Principle Developer 1 |
Experience Gained: |
Ongoing e-mail appliance development included enhancing the product
to support end-user email encryption, new appliance hardware revisions,
cluster job control and a virtual appliance option that can be clustered
with other virtual appliances or with hardware versions, supporting
features such as encrypted filesystems, automated filesystem growth,
dynamic reconfiguration based on detected hardware and software
branching to support controlled release of software to a "low-touch"
customer base.
Appliance "abstractions" were developed to allow the immediate rollout
of build machines and development pairing stations using the same appliance
base but containing additional packages and configuration for their
respective roles. |
Sophos, March '08 - December '08
Project: |
Appliance infrastructure development |
Position: |
Principle Engineer |
Experience Gained: |
Driving the supply of necessary components and infrastructure to
other teams within Sophos to facilitate product developments. This
role involved actively working with other teams to determine their
needs and steering development in a consistent direction where
appropriate. This role also involved the design of build
systems to produce appliance builds, pairing station builds and
builds for the build systems themselves, allowing the clean ongoing
integration of new FreeBSD releases and bugfixes, and providing
easy upgrade and new installation mechanisms. |
Sophos, April '05 - February '08
Project: |
Puremessage Appliance development |
Position: |
OS Tech Lead |
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.
Key appliance features include fully automated updates, hardware and
software monitoring, support tunneling and clustering. |
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, Scouting, Chess, Martial Arts, Internet, OS
development.
I am a member of the FreeBSD
development team since December '96, with full commit privileges. I
originally dealt mostly with PPP, but currently focus on issues affecting
my work.
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 have designed and implemented portions of the
digi and dgm drivers under FreeBSD, have
resolved issues with metadata updates in the soft-updates code, and made
minor changes to the GEOM encryption layer.
Referees
References from Utell International
and BLiX Limited are available.
Further references can be supplied on request.
|