|
A professional software developer holding a
masters degree in Computer Science, with experience in Object
Oriented consultancy, analysis, design & programming and having
a significant track record of delivering within projects
timescales including; real-time embedded environments, UNIX,
Microsoft Windows and Relational Databases business applications
covering the full life cycle of software development.
Key Skills & Experience:
|
|
|
|
|
|
|
|
|
|
7+ Years: |
Microsoft Windows – Win98, Win NT4,
Win 2000, MFC, Microsoft COM+, DCOM, ActiveX, ATL, Win32 |
|
3+ Years: |
JAVA, Capability Maturity Model
(Level 3-4), SQL Server, TCP/IP, CVS |
|
1+ Year: |
Standard Template Library (STL),
Visual Basic, PERL, JAVA v2, DSDM, Rational Rose, Magic
Draw, Artisan, C#, DOD2167A |
Industries:
·
Defence
·
Telecommunications
·
Retail
·
Software / Integration Houses
·
Research Associations
Qualifications:
·
Master of Science, Computer Science (University of
Hertfordshire)
·
Corporate Member British Computer Society & the
Object Oriented Special Interest Group
·
Member of the Institute of Electrical Engineers
·
Open university MSc modules M874 (Java Networking)
& M878 (Object Oriented Software Engineering)
·
British nationality/Passport holder
Company: [snip], Suffolk
Duration: November 2003
– September 2004
Position Held:
Senior Analyst Programmer
Key
Responsibilities: To provide expertise in the
analysis, design, implementation and roll out of POS software,
working with both legacy and new components using all
appropriate techniques such as UML. Platforms range from Windows
2K PC, SQL Server through to Linux embedded under kernel 2.4.x.
Technical Expertise: C++, C#, JAVA, real-time,
embedded.
People
Management: Liaison with internal & external
consultants, hardware engineers, production & director level
management.
Key
Contributions: To provide technical expertise on a
wide variety of platforms for mission critical applications as
part of a multi-disciplinary team.
Company: [snip], City of London
Duration:
October 2002 – March 2004
Position Held:
External security consultant
Key
Responsibilities:
To provide security consultancy for the company’s secure
beneficiary payment system. Delivering a report (100 + pages)
with security recommendations on the use of third party PKCS
libraries and other aspects of the environment using
smart-cards. Use of asymmetric keys for a beneficiary payment
system which is now in daily use. Approved by [snip] security to
provide the official oversight when building the product.
Additional documentation added by reverse engineering the source
code to UML notation with the aid of a CASE tool, programming in
C++.
Technical Expertise: Security & Public Key
Infrastructure, Visual C++ application development, PKCS#11
(tokens) library usage.
People
Management: Liaison with external consultants, third
party project management, [snip] security manager.
Key
Contributions: To provide a technical report on the
susceptibilities of the company’s beneficiary payment system,
review of the coding practices & adherence to company standards
in addition, review the application against the design
specification. Also identified as external code reviewer and
sole oversight of the product build phase.
Company: [snip], Milton Keynes, and
[snip]
Duration: August 2002 – Date (part-time contributor)
Position Held: Volunteer contributor to the open source
project; office assistant at the charity’s head office.
Key Responsibilities: Contributing
to the DotGNU Portable.NET open source NET framework CLI (Common
Language Infrastructure) project as a developer. Also using
Visual Studio .NET, C# and XML on a variety of experimental
developments in conjunction with a consortium. Assisting at the
head office of a charity, IT strategy support for a variety of
small organisations.
Technical Expertise: Understanding of the CLI, general
programming language techniques.
People Management: Working with a broad range of people
to assist their aims in bringing self sufficiency to poor
countries, interfacing with novice users, helping with their IT
strategy.
Key Contributions: Generally aiding of bug fixing and
testing of PNET, technical implementation of tasks.
Company: [snip], Welwyn Garden
City
Duration: January 2001 – April 2002
Position Held: Developer with real-time embedded C++
knowledge
Key Responsibilities: Member of the
Office Developments Products World Wide Development group.
Enhancing an embedded OO designed real-time event driven
multi-threaded environment & GUI (ZINC OS) for M68332 target,
programming in C++. Responsibilities included adapting the RT OS
task switching for low level interfaces, adding new features to
the product (a digital Fax/Scanner/Copier/Printer) for product
roll out. The development process (under CMM) included
estimations using the ‘Delphi’ method and then designing with
UML methodology (using ARTISAN as the real-time modelling tool).
Responsibilities included providing utilities for a ‘new/delete’
memory management logging utility and also providing a scheme
for reduction in system emergency events. Additionally,
developing a set of PERL utilities for debug dump analysis.
Other responsibilities involved liaison with Test and
Configuration Management groups to achieve the most effective
software release and also deciding on service maintenance packs
contents. All the above included interfacing with the company’s
multinational development teams (e.g.USA, Japan, Singapore,
P.R.C.).
Technical Expertise: Knowledge of real-time operating
systems, C++ in both an embedded and UNIX environment, UML
modelling, make environment, UNIX shell scripting and tools.
People Management: Working as part
of a team of 85, sharing of information, liaison with product
release, audit, test, systems, software process improvement,
configuration control personnel & line management.
Key Contributions: Adapting
existing legacy code (mainly ‘C’) to an Object Oriented C++
class based design. Given task outline, rejected conventional
approach using ‘sed’, ‘grep’ etc and instead took up PERL for
the first time. Constraints were to work within the existing
framework to regenerate code to wrap procedural based as class
based using PERL scripts. Resulting output consisted of new
class and header files.
Company: [snip],
Cambridge
Duration: September 2000 – January 2001
Position Held: Developer with comms, JAVA & Visual C++
expertise
Key Responsibilities: Specified,
designed and coded a TCP/IP VoIP demonstrator for a Cambridge
consultancy using UML, H323, Visual C++ and proprietary hardware
such as QuickNet PCI cards and other third party software as
required, programming in C++. Some of the technologies used:
MAPI, NetMeeting, TCP/IP, OpenH323, gatekeepers, Multipoint
H.323. Successful completion of a working application allowing
any user to phone other parties without knowledge of their exact
location.
Technical Expertise: Expertise in
MAPI, H323, VoIP, building robust Windows applications, working
to strict deadlines.
People Management: Liaison with
technical director and other teams.
Key Contributions: Took over and
completed writing of the specifications, developed a model under
UML, built the application, integrated diverse hardware and
libraries to achieve a working demonstrator with the planed
timescales.
Company: [snip],
Milton Keynes
Duration: May 2000 – August 2000
Position Held: Developer with DCOM expertise
Key Responsibilities: Converted an
existing stand-alone SMS application into a COM+ based system
for rollout in their Germany operations, programming in C++.
Working on initiative, without design specifications to
integrate with 4 other modules, which were developed and
completed on time.
Technical Expertise: Visual C++, COM/DCOM+ component
development and deployment.
People Management: Liaison with technical director and
other teams.
Key Contributions: Achieved the integration of the new
code with existing modules on time, fixed miscellaneous bugs in
the code base.
Company: [snip], Welwyn Garden
City
Duration: September 1998 – April 2000
Position Held: Developer with real-time embedded C++
expertise
Key Responsibilities: Member of the
Office Developments Products World Wide Development group (85
head count). Enhancing and debugging an embedded OO designed
real time event driven multi-threaded environment & GUI (ZINC
OS) for M68332 target, programming in C++. Adding new features
to the product (a digital Fax/Scanner/Copier/Printer) for
product roll out. The development process (under CMM) included
estimations using the ‘Delphi’ method and then designing with
UML methodology (using ARTISAN as the real-time modelling tool).
Technical Expertise: Real-time
operating system knowledge, C++ and Graphical User Interface
experience required.
People Management: Working as part
of a team of 85, sharing of information, liaison with product
release, audit, test, systems, software process improvement,
configuration control personnel & line management.
Key Contributions: Aided the
enhancement of a multi-function office automation device,
working with a diverse code base originated from several
different countries with minimal documentation.
Company: [snip], Hemel Hempstead
Duration: October 1997 – August 1998
Position Held: Developer with Visual C++ expertise
Key Responsibilities: Analysis and
design of applications for management of public key cryptosystem
(PKS) key sets in UML using Rational Rose C++ tool and scripting
for OOA & round trip engineering. Building applications with
PKCS#11, user interface design on NT4 platform, interfacing to
certificate servers using PKCS#10 under a Visual C++ development
(MFC) environment. Designing with X509, X500, LDAP & RSA
encryption techniques, Smart-Cards (also known as ‘ICC’) and
DCOM/ActiveX remote connectivity of ‘service’ based components,
programming in C++. Familiarity with ASN.1 compilers. Authoring
of analysis and design documentation using Rational Rose to
analyse and develop a model of the requirements specification
and identify inconsistencies.
Technical Expertise: Requirement for
experience with Visual C++, component based design,
secure/robust development techniques.
People Management: liaison with team
members, project management, marketing.
Key Contributions: Design &
implementation of the infrastructure for security policies
including the GUI design and ASN.1 manipulation. Use of the STL.
Analysis of key management techniques with Rational Rose and
it’s extensibility features to generate reports as an input to
an RDB and building of a demonstrator prototype.
Company: [snip], West
London
Duration: July 1997 – October 1997
Position Held: Developer with Object Oriented development
experience.
Key Responsibilities: Analyst
Programmer in Commercial Applications Development for support of
the Management Information Systems department. Using three tier
tools such as DYNASTY, SQL-SERVER 6.5, ACCESS, EXCEL, Visual C++
and VBA to develop management information systems under a (DSDM)
Dynamic Systems Development Method on NT 4 platforms for a
distributed system. SQL Server scripts used to query the AS400
database, VBA used to generate automatic reports for director
level management and Access was used to hold results and
generate reports.
Technical Expertise: Working with
new approaches to project management (DSDM), delivering
solutions for generating automatic reports to all levels of
management.
People Management: Part of a diverse
team (business analysts, external project management,
supply-chain management).
Key Contributions: Design of the
inter-application reporting mechanism using EXCEL & VBA to
interface to a C++ application through SQL SERVER to a AS400
database.
Company: [snip], Maidenhead
Duration: October 1996 – June 1997
Position Held: Developer with Object Oriented development
experience
Key Responsibilities: Conversion of
existing functional interfaces into Object Oriented DLL,
migration of various applications onto 32 bit system & migration
to NT 4.0 platform, programming in C++. Documentation consisting
of requirements and design specifications. Writing tutorial
examples for their evaluation packages, testing and writing
scripts for analysing the efficiency of the compiler.
Technical Expertise: Working with
legacy 16 bit applications for migration to 32 bit environments.
Writing ‘wrapper’ class code for an API to provide an OO
interface, also working with the compiler optimisation team.
People Management: Part of a team
from Japan, Europe.
Key Contributions: Working on
pre-release target processors, coding in Visual C++, PC Card
(PCMCIA) driver development using VXDs API programming, MFC,
COFF files, C++ interfaces, Comms, GNU & IAR C++ compiler
testing/evaluation for SH family, porting apps to NT. UNIX
scripts, OMT modelling.
Company: [snip], Bracknell
Duration: October 1995 – October 1996
Position Held: Developer with Real-Time Object Oriented
development experience
Key Responsibilities: To assist in
the completion of the sub-units Software Design Document using
the Software through Pictures CASE tool based on the Rumbaugh
Object Modelling Technique methodology used on the IRIS project
Single Channel Radio Architecture. To design, code, test and
document any specific BITE (Built In Test Equipment) classes and
derived classes for general re-use under UNIX using C++
developed on both host and target environments, tested under
DejaGnu test harness.
Technical Expertise: C++ on embedded
& SOLARIS, OMT (Object Modelling Technique).
People Management: Member of a team
of 30 developers.
Key Contributions: Programming
'in-the-large' as part of a nine strong team working to DOD
standards 2167A. Use of the Software Through Pictures (StP from
AONIX) OMT CASE tool for the Object Oriented Design of a secure
radio equipment based on multi-embedded 68K processors, coding
in C++ throughout. Design, coding, testing and complete
round-trip reverse engineering of a family of classes using the
StP CASE tool with scripts.
Company: [snip], Wells
Duration: February 1995 – October 1995
Position Held: Developer with Real-Time Object Oriented
development experience
Key Responsibilities: Design of the
Station Level Computer PC software using Object Oriented
techniques for use on the ANKARA metro AFC (Automatic Fare
Collection) system. Based on the SELECT OMT modelling CASE
tool. All coding accomplished in C++ under MICROSOFT VISUAL
C++, using OBJECT PROFESSIONAL library, RTKernel multitasking
and ASYNC PROFESSIONAL comms tools for a DOS window based
application. Responsibility for the design, coding & testing and
integration of the above on a PC platform using MS Visual C++.
Technical Expertise: DOS based
development, OMT & C++.
People Management: Sole team member
responsible for technical coding, hand over to permanent
replacement.
Key Contributions: Technical
responsibility of the project, building a robust working system
and integrating three diverse packages within timescale
constraints within a team of three. Utilising the OO approach to
aid re-use, maintainability as well as documentation of the
application. |