Stewart M. Smith
This page contains an informal copy of my C.V.
It is presented as a single web page for easy reading and printing on your own system.
If you would like a formal copy of my CV then you can
download
it.
You can receive a copy of my CV whenever it is updated and also get details
of my availability by sending a blank email to:
cvsms-subscribe@yahoogroups.co.uk.
Please do not forward my CV to your clients without my permission.
The formal version of my CV is dated: 8th. May 2008.
Curriculum Vitae
I am a professional software engineer.
I can design, code, test and document software for a number of platforms.
I have worked in a variety of application areas.
However, my specialist skills lie in the development of software for datacomms, telecoms and networks.
I have produced systems for several environments, particularly Unix, real-time and embedded systems.
I develop software in C, C++, Java, and the common Unix scripting languages.
I have a great deal of experience of developing software for communications and networking.
This includes Internet, OSI and bespoke protocols.
I am familiar with most of the OSI 7-Layer model.
I have worked on many developments on all stages of the development life-cycle, from analysis through design, programming and testing to installation.
I have worked on one man projects and projects with 50 to 100 people.
I have performed many roles, usually design or programming but also team leadership, support and testing.
I have a good academic record and considerable experience in the computer industry.
I work hard and can provide excellent references from all of my previous clients.
Availability
I will be available for full-time contract work from 1st May 2008.
I am not available for part-time contract work.
Skills
Skills - Languages
I have been programming in 'C' in a Unix environment since 1984.
These day's, I find that I'm using 'C', Java and the
scripting languages in almost equal measures.
I can also write in C++ and SQL.
|
C
|
23 years.
|
Unix.
MOS.
eCOS.
Communications.
System Management.
Secure Systems.
Embedded Systems.
Datafeed.
Protocols.
Messaging.
Emulation.
|
|
C++
|
5 years.
|
Unix.
eCOS.
Protocols.
Datafeeds.
Messaging.
Data Analysis.
Embedded Systems.
|
|
Java
|
9 years
|
Real-time Message Gateways.
Messaging.
SMS Text Messaging.
Test Tools.
Sockets,
Threads,
J2EE.
JMS.
JNI.
JSP.
Java Servlets.
JDBC.
JavaMail.
Jakarta Commons Net.
log4j.
NIO.
Concurrency.
|
|
Unix (sh, ksh, bash, csh, sed, awk, grep, expect etc)
|
23 years
|
Communications.
Network Management.
Mediation.
Secure Systems.
Emulation.
CGI.
Messaging.
|
|
SQL
|
4.5 years (occasional)
|
Mediation.
|
|
HTML/CSS
|
Occasional
|
Commercial web-sites (see
http://www.ccx.com).
Embedded system home page.
|
|
XML
|
1 year
|
UPnP.
Embedded Systems Management.
SMS Text Messaging.
|
|
Other
|
3 months to 3 years
|
Intel 80x86 Assembler.
IC 1500 Assembler.
ICL 7500 Assembler.
Data 100 Assembler.
|
Skills - Operating Systems
I have been developing Unix software for over 20 years.
On occasions, I have worked on VMS and embedded systems.
|
Unix (Solaris, SCO, Linux, SVR4, DRS/NX, Version 7,...)
|
21 years
|
Networks.
Network Management.
Mediation.
Secure Systems.
Embedded Systems.
Emulation.
Messaging.
|
|
CDOS. CCP/M.
|
3 years
|
Communications.
Emulation.
Datafeeds.
Security.
|
|
MOS
|
1 year
|
Embedded Systems.
Routers.
VPN.
Integration Testing.
|
|
eCos
|
9 months
|
Embedded Systems.
SNMP. UPnP.
Traffic Management.
System Management.
Power Line Networks.
Porting.
|
|
VMS
|
9 months
|
Traffic Management.
Real-time.
|
Skills - Computers
As most of my work nowadays is with Unix, the hardware that I use is not too important.
For those of you who are interested, here is the list of systems I have worked on.
I have programmed most of the systems listed.
|
Unix
|
Sun Servers.
Sun Workstations.
Linux PCs.
Compaq Alpha.
ICL Superserver.
ICL Teamserver.
ICL DRS6000.
ICL DRS300.
ICL PERQ.
ICL Clan.
DEC VAX11/780.
Unisys U6000.
|
|
CDOS & CCP/M
|
ICL DRS300.
ICL Quattro.
|
|
Embedded
|
Siemens Gemini.
Satelcom MegaPAC.
ICL OSLU.
LANergy Appian.
Ungermann-Bass NIU.
Cabletron SSR600.
|
|
Miscellaneous
|
ICL 1500.
ICL 7500.
ICL 7900.
DATA 100.
PCs.
Compaq Alpha (VMS).
|
Skills - Protocols
Most of my 25 years+ experience has been in the development and support of
communications and networking products.
These include Internet, OSI, telecomm, messaging and system management protocols
and terminal emulators.
|
Internet Protocols:
|
HTTP.
TCP.
UDP.
|
Design.
Programming.
Support.
User code.
|
|
Internet Protocols:
|
ARP.
BOOTP.
DHCP.
DVMRP.
ICMP.
IP.
IPCP.
MOSPF.
PPP.
RADIUS.
RTSP.
SNMP.
|
Integration.
Validation.
Coding.
Bug fixing.
|
|
XML Protocols:
|
UPnP.
XML (inc. DOM).
GENA.
SOAP.
SSDP.
|
Porting.
Integration.
User code.
|
|
Messaging:
|
ACP127.
BSG.
CargoFACT.
CargoIMP.
FIX.
MQ.
|
Design.
PCoding.
Bug Fixing.
|
|
OSI:
|
Transport.
FTAM.
ASN.1.
|
Design.
Coding.
Support.
User code.
Bug Fixing.
Configuration.
|
|
ITU-T:
|
X.25.
LAP.
LAP-B.
|
Enhancement.
Design.
Programming.
Support.
Validation.
Configuration.
User code.
|
|
ITU-T:
|
X.400
|
User code (X/Open API, Nexor).
|
|
Telecoms:
|
BTNR 192.
BTNR 194.
Ericsson MTP.
Nortel CLS.
|
Design.
Support.
|
|
ICL:
|
ICLC-01.
ICLC-03.
ICL ADI.
ICL Model 85.
|
Design.
Programming.
Support.
User code.
|
|
Miscellaneous:
|
Hayes modems.
SPAG Y.13.
Reuters Monitor.
Telocator Alphanumeric Protocol (TAP).
NASDAQ.
Videotex.
|
Design.
Programming.
Support.
|
|
Miscellaneous:
|
|
Design, programming and support of protocols for access control, connection management and systems management.
|
Skills - Jobs
The title "Software Engineer" suits me best.
I get involved in most aspects of systems development from initial design through to installation and ongoing support.
Career History
Alcatel-Lucent
May 2007 - May 2008
I have designed an RTSP Gateway for Alcatel-Lucent"s Open Video Server
(OVS).
The gateway implements the Realtime Streaming Protocol (RTSP) for controlling
Video-on-Demand (VOD) playbacks on IPTV networks.
The gateway supports over 25000 simulataneous sessions and over 50000
simultaneous connections.
I achieved this high connectivity using the Java NIO and concurrency classes.
I developed a prototype video cache to demonstrate how such a product might operate using MySQL, Squid, Apache and Jetty.
Skills
Java,
NIO,
Concurrency,
RTSP,
Linux,
log4j,
Eclipse,
ClearCase,
ethereal,
MySQL,
Squid,
Apache,
SOA.
(April 2006 - April 2007)
I designed and developed a Car Park Monitoring System.
This reports the occupancy, fill rate etc to a central system.
I also designed and developed a Variable Message Sign (VMS).
These systems use a MIB specified by the UTMC project.
The software runs on an embedded PowerPC.
I've also written test software in Java using JavaComm.
Skills
PowerPC,
C++,
Digital IO,
Eclipse,
SNMP
Net-SNMP,
UTMC,
ethereal,
Java,
JavaComm.
(December 2003 - April 2006)
I developed a message router for the air cargo industry.
This routes CargoIMP and CargoFACT messages between freight forwarder systems,
the UK CCS and other systems.
Messages are transferred using a variety of standard and bespoke protocols.
I designed and wrote the message routing software in C and the interfaces to
JavaMail, FTP, Websphere MQ and CCS-UK in multi-threaded Java.
These programs are supported by scripts written in ksh, awk, sed, expect etc.
I developed the
CCX web-site.
This uses Apache, JRUN (J2EE) and MySQL on Solaris 9.
Skills
Solaris 9,
SCO,
GNU Toolset,
C,
Sockets,
Java,
Apache,
JRUN,
J2EE,
JDBC
JMS,
JNI,
Websphere MQ,
JSP,
Java Servlets,
NetNeans,
JavaMail,
Jakarta Commons Net,
MySQL,
SQL,
FTP,
HTML,
HTTP,
TAP,
SMTP,
XML,
cron,
CVS,
expect,
awk,
ksh,
sed,
grep,
make,
CargoIMP,
CargoFACT.
EDI.
(July 2002 - April 2003)
I worked on the Urban Traffic Management and Control (UTMC) project.
I ported the Net-SNMP implementation of SNMP to OpenVMS.
I wrote software to contol traffic signals using SNMP.
I wrote a BOOTP server for VMS and developed a prototype DSL network.
Skills
OpenVMS,
C,
Java,
Sockets,
ASN.1,
Net-SNMP,
UTMC,
Yourdon,
DHCP,
DNS,
UDP,
ethereal.
(October 2001 - February 2002)
I ported the Intel implementation of UPnP (Universal Plug and Play) to eCos (embedded configurable OS).xi
I also wrote the interface between UPnP and the application which is a PowerLine networking device.
Skills
Linux,
Threads,
Sockets,
UPnP,
XML,
HTMP,
HTTP,
GENA,
SOAP,
SSDP,
DOM,
MIBs,
GNO Toolset,
make,
eCos,
UML.
OM
August 2000 - May 2001
At OM, I worked on the design and implementation of a FIX (Financial Information Exchange Protocol) for the Jiway exchange.
This included the production of FIX interface specifications, coding, development of test tools, production of test specifications and support during acceptance testing.
Skills
Solaris,
Threads,
FIX,
NASDAQ,
Sockets,
C++,
Java,
make,
sed,
awk,
CVS,
ksh,
gprof,
Purify,
Corba,
Click.
September 1999 - August 2000
I developed software for testing Virtual Private Network (VPN) software and used this software for integration testing of the AAA subsystem.
I also fixed bugs in a number of protocol implementations.
Skills
Dec Unix (OSF1),
C,
MOS,
csh,
ksh,
GNU Toolset,
ClearCase,
ARP,
AAA,
DVMRP,
IP,
ICMP,
IPCP,
IPinIP,
L2TP,
PPP,
VPNs,
PowerPC,
Routers,
SmartSwitch,
SSR500,
SSR 600,
Embedded Systems,
Programming,
Integration Testing.

Defence Messaging Team
March 1998 - August 1999
In March 1998 I joined the ICL Messaging Development Team.
At the time it was a failing project.
I helped complete the development of the TARE Access Unit (TAU).
This converts messages between X.400 and military protocols.
I developed scripts for Statement Coverage Analysis.
I also wrote CGI and Visual Basic scripts for presenting system statistics as HTML and Excel spreadsheets.
Skills
Solaris,
C++,
GNU Toolset,
X.400,
X/Open API,
sed,
awk,
tcov,
gprof,
bash,
Programming,
Validation,
Statement Coverage Analysis,
CGI,
HTML,
VBA,
Oracle.

Chots Project
November 1995 - March 1998
In November 1995 I joined the Chots project at ICL in Basingstoke.
I specified enhancements to the subsystem that manages graphical workstations over an OSLAN network.
I then worked on the design and coding.
I went on to design a system that configured the networking software of all systems on the network.
The configurations were controlled from central servers.
I went on to do some of the coding which was almost complete when the project was cancelled due to requirement changes.
Skills
ICL DRS6000,
ICL SuperServer,
ICL TeamServer,
Unix ES+,
C,
sh,
XTI,
OSLAN,
OSI,
RFS,
make

Telecoms - SIMS Projects
September 1992 - September 1995
ICL planned to develop mediation system based on newer technology designed by another group.
I joined the SIMS team in September 1992 and developed three subsystems around the ICL FTAM product.
In January 1993, I was appointed Design Authority to help sort out SIMS design problems.
I was in this position for the first two deliveries.
By April 1994 I was responsible for most of the networking subsystems in mediation systems.
This included: software for communicating with System X, AXE10, TXE4E and UXD5B exchanges using bespoke protocols over X.25, software for managing the transfer of files using FTP and FTAM, software for managing MegaPACs, DRS network configurations and MegaPAC configurations.
Towards the end of this contract most of this work was enhancing the system.
Skills
Unix SVR4,
C,
Informix,
SQL,
ESQL,
make,
sed,
awk,
ksh,
MegaPAC,
MegaWatch,
OSLAN,
XTI,
FTAM,
DRS6000,
X.25,
ISO Transport,
Design,
Programming,
Installation,
Validation,
Support.

Telecoms - DDC Project
April 1991 - September 1992
I joined the DDC project in April 1991.
The DDC is a mediation system, it collects billing and other data from System X, AXE10 and TXE4E exchanges.
It then passes the collected data to other systems for processing.
My first job was to integrate the ICL FTAM product into the existing DDC.
Most of the design work had been done.
I had to complete the design and implement it.
I designed the enhancements for DDC Phase 6.
This moved some of the networking functions from System 25s to Satelcom MegaPACs.
I coded and tested the MegaPAC Management programs.
When the development had been completed, I went on to lead one of the installation teams.
Skills
Unix SVR4,
C,
Informix,
SQL,
ESQL,
make,
sed,
awk,
ksh,
MegaPAC,
MegaWatch,
OSLAN,
XTI,
FTAM,
DRS6000,
ISO Transport,
OSI,
Design,
Programming,
Installation, Validation,
Support.
Unisys Europe-Africa Division
August 1990 - April 1991
Most of my time at Unisys was spent preparing proposals for various customers throughout Europe.
Typically these would involve some form of computer network.
My job was to prepare the technical content of the proposal after determining the customer's requirement.
I worked on a project for Unisys marketing to determine the requirement for a Software Distribution package.
My proposals were accepted and I started up the project as project manager.
Skills
Unix,
C,
MS-DOS,
U6000,
X.25,
LAP,
LAP-B,
Software Distribution,
XTI,
X.25,
BS5750,
Project Management,
Design,
Support,
Validation,
Market Reseqrch,
Quallity Audit.
Carnell Computer Technology
December 1986 - February 1990
At Carnell I was involved in a number of projects.
Typically, these included either communications or security software.
In many cases, I was involved from requirements through to installation and support.
My first task was to design some Unisys and IBM terminal emulators for DRS300, CDOS systems.
In November 1987 I started the design of an access control system for a major defence system.
This allows access to a DRS300 system only after the user has been authenticated by a central mainframe.
I went on to lead the development through to delivery.
I designed and developed a terminal emulation environment for Unix systems, UniView.
The first version supported Videotex and ANSI terminal emulations on DRS300 and DRS400.
I also worked on some enhancements such as a UniView API and connections to different network types.
Other projects included the development of a terminal emulator for connecting to System 25s, the screen handler for a Reuters Monitor.
I also wrote a down-loader for a Hand-held terminal and other security products.
Skills
DRS300,
ICL Quattro,
DRS400,
CDOS,
C/CPM,
Unix,
MS-DOS,
C,
make,
80x86 Assembler,
Hayes,
Modems,
Reuters Monitor,
Videotex,
System 25,
ADI,
Security,
Design,
Protocol Design,
Integration,
Support,
Validation,
Documentation.

International Network Services
December 1985 - December 1986
I was responsible for the network management software at ICL INS.
INS provided the network for Tradanet and the National Bingo Game.
Some of the network management software was bought in, which I supported, enhanced and modified to suit our requirement.
I also designed and implemented the connection management protocols and software.
Skills
VAX,
C,
Unix 5.3 Kernel,
Sockets,
make,
sed,
awk,
grep,
Network Management,
Design,
Protocol Design,
Programming,
Support.

Technical Directorate
June 1984 - December 1985
I was introduced to Unix and C when I joined the Esprit ROSE project.
A consortium of European computer companies implemented OSI protocols in Unix Systems.
On joining, I helped complete the development of the transport service.
I designed the ROSE implementation of FTAM.
I went on to lead the development team and program some of the FTAM and Presentation modules.
Skills
Unix Kernel,
C,
make,
OSI Transport,
FTAM,
ASN.1,
PERQ,
CLAN,
Design,
Programming,
Project Leadership.

Osnet
December 1982 - June 1984
I joined the Osnet support team at the end of '82.
Osnet was a new product at the time.
It provided access to ethernet LANs to systems using other protocols.
I did most things that could be considered 'support'.
This includes fixing bugs, product testing and network design.
I also ran two field test sites and supported what was believed to be the largest LAN in Europe at Queen's University, Belfast.
Skills
Ungermann-Bass NIU,
OSLAN,
Osnet,
Pascal,
ICLC-03,
Network Design,
Support,
Validation.

Dataskil
March 1979 - December 1982
I joined a team developing software for the ICL 1500.
This transferred BACS magnetic tape files from the 1500 to a VME mainframe.
Later, I modified this code to receive the files and write them to tape.
This replaced the mainframe software.
In 1980, I was seconded to ICL South Africa to work on the software for a network of ICL 1500 systems for a large retail chain.
These systems connected to a VME mainframe using the ICLC-03 protocol.
I developed the file transfer and the print spooling software.
When the development had finished, I stayed on to support the customer during rollout.
I wrote a few other systems on the 1500 and also modified a terminal emulator on an ICL 7500.
Skills
1500 Assembler,
7500 Assembler,
BACS,
BSC2780,
BSC3780,
ICLC-01,
ICLC-03,
Design,
Programming,
Support.
Data 100
August 1978 - March 1979
I worked for Data 100 for a short time after leaving university.
I was a trainee programmer working in assembler.
Skills
Data 100 Assembler,
Programming,
Qualifications
University of East Anglia
- B.Sc with First Class Honours in Maths and Computing.
The Open University
British Computer Society
Engineering Council
European Federation of National Engineering Associations (FEANI)
Institute of Electrical and Electronics Engineers (IEEE)
Sun Microsystems
- Sun Certified Programmer for Java 2 1.4 Platform (SCJP).
Courses
Since 2000, I've been working towards a Postgraduate Diploma from
The Open University.
In addition, I've managed to pick up certificates in Java and testing.
My recent cources are shown below.
The Open University
SIM Group