Download Resume

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Cross-site scripting wikipedia , lookup

Remote Desktop Services wikipedia , lookup

Transcript
CURRICULUM VITAE
Personal Particulars
Candidate:
Ian Linsdell
Email:
[email protected]
Phone Number:
(404) 862 2134
Position:
Sr Software Developer / Architect
Availability:
Negotiable
Qualifications:
London Institute City and Guilds in Technical Electronics
Strong Java, JavaScript, C, C++, SQL, Web Application Development, Linux,
Windows and OO Skills.
 JAVA  GRADLE  GROVY  SPOCK  JDBC  JNI  JNDI  ANT  WEB
SERVICES - AXIS SOAP / JWSDP  CORBA  AWT  SWING  JAVA
SERVLETS  RMI  SPRING  HIBERNATE  EHCACHE  JSF  J2EE EJB
CMP2.0  APACHE TOMCAT  WEB LOGIC
Summary:
 JAVASCRIPT  AJAX  JQUERY  EXTJS  NODEJS  HTML5  CSS
 MOBILE APP DEVELOPMENT  CORDOVA  JQUERY UI MOBILE 
ANDROID SDK
 'C++'  C  STL  ATL  TCP/IP  COM / DCOM  ADO  'C' CURSES 
XML  XSLT  APACHE-C  BOOST  THREADING  SOCKETS
ECLIPSE IDE  VISUAL STUDIO  VISUAL STUDIO CODE  DELPHI
OBJECT PASCAL  INFORMIX 4GL & SQL  ORACLE-SQL  OBJECT
ORIENTATED DESIGN  UML  MS WINDOWS 3.X/9X/XP/7/10/NT 3.15 
MS OFFICE INTEGRATION  MSDOS  UNIX V  EMBEDDED LINUX 2.4
& 2.6  XENIX  BSH SHELL SCRIPTING
 .NET WEB SERVICES  C#
 AGILE LEAN DEVLOPMENT PROCESS
JAVA
JAVASCRIPT
C
C++
SQL
UNIX/LINUX
ORACLE
References:
(15+ YEARS)
(10+ YEARS)
(15+ YEARS)
(15+ YEARS)
(15+ YEARS)
(15+ YEARS)
(10+ YEARS)
Available on request.
EMPLOYMENT HISTORY
FEB 09 – DATE
VERINT – ARCHITECT/ANALYST/PROGRAMMER
Contacted by Verint Inc to develop a Linux port of their IP Recorder. Verint Inc then employed me
directly to work on various components of their core recorder system such as their IP Recorder,
Alarming and messaging components as well as a new line of analytics products.
Feb 2009 - Jan 2011
Responsible for porting Verint’s C++ IP recorder products from Windows to Linux, this was done
using the BOOST library, portable POSIX pthread and socket code. A continuous integration
system was then developed by creating a Windows to Linux cross compiler from a customized
version of crosstool-ng for the MinGW platform. Also responsible for developing new features for
their core recorder components using C++/C based on customer requests.
Jan 2011 - Feb 2012
Responsible for development of a new biometrics product which analyses captured call audio
against biometric voiceprints from a collection of people of interest. This included design and
implementation of both the back end server and front end UI. Code was development in Java,
Tomcat, C++/C, JavaScript, JQuery, ExtJS, HTML5 and CSS. This product was then deployed as a
proof of concept to an interested customer site.
Feb 2012 - Mar 2014
Responsible for integration and new feature development of Verints biometrics product in a now
larger team. During this time was also responsible for performing analytics of large amounts of
customer data to show return on investment of the product. Was responsible for adding new
features to the biometrics product based on feedback from customers. Data analytics and new
feature development was developed using JavaScript, JQuery, HTML5, CSS, NodeJS, Java,
WebLogic, C and C++.
Mar 2014 - Jan 2016
Responsible for developing a continuous integration and deployment testing framework using
Gradle, Goovy, Spock and Jenkins as well as developing of new features in Verint’s biometrics and
recording products. Also responsible for new UI feature development using JavaScript, JQuery,
ExtsJS, CSS.
JAVASCRIPT JQUERY EXTJS NODEJS HTML5 AJAX CSS JQUERY UI MOBILE
CORDOVA JAVA GROOVY GRADLE SPOCK C C++ LINUX SHELL-SCRIPS TCP-IP
WEB & MOBILE-DEVELOPMENT WEB-SERVICES XML ANT APACHE TOMCAT
ANDROID SDK
JUNE 06 – FEB 09
RECORDANT INC – ARCHITECTE/ ANALYST/PROGRAMMER
Employed by Recordant Inc to work on design and development of a new line of products
including a Phone Handset digital recording device, a POT’s digital recording device, a VOIP
recording device and a TDM digital-phone recording device. Also responsible for two additional
products, which aggregated, encrypted and uploaded recordings from portable recorders to a
central server over the internet. It was a requirement that all of these products be remotely
firmware updateable from the other side of the customers firewall.
Involved in the hardware design process and responsible for all software for these products.
- Ian Linsdell Page 2 -
EMPLOYMENT HISTORY
Jun 2006 - Nov 2006
Responsible for hardware selection and all firmware for Recordant’s analog phone digital
recording device, which included writing C code for an embedded Linux 2.4 SBC.
This product included an embedded web server for configuration and diagnostics, SSL upload and
download code to securely send and receive recordings, log files and remote firmware updates to
and from the device to a central server over the internet.
Also wrote modified kernel code to interface with the Cirrus Logic audio CODEC which was used
to record and play back announcements over the phone, fixed point math DSP modules to detect
phone state via sub audio signalling, a field update feature which allowed firmware updates using a
USB key either at a customer site or at the hardware fabrication plant, self test code for use by the
hardware fabrication plant, custom SPI code to program gain chips, hardware and software
watchdog code to monitor the health of the product, time synchronization code with the central
server, Id3V2 header tagging code to embed customer information in the recording files and audio
compression code to reduce upload file size.
Nov 2006 - Apr 2007
Responsible for hardware selection and all firmware for Recordants 6 unit aggregator device,
which included writing C code for an embedded Linux 2.4 SBC and embedded C code for a
Microchip PIC MCU USB Client.
This product included writing a file backed FAT32 file system on the embedded Linux SBC, which
interfaced via SPI-SD-SCSI to the PIC MCU. The PIC MCU then functioned as a USB client
device, which was used to connect multiple aggregators together for synchronising file transfer and
remote firmware updates. This feature allowed a customer installation of several aggregators to be
connected via USB, rather than requiring extra network drops.
Also wrote custom apache web modules in C for the embedded Linux 2.4 SBC to process dynamic
web content in a similar way to JSP/ASP servers. Code was then written to unit and stress test the
product using Java Tomcat web server.
Apr 2007 - July 2007
Responsible for writing firmware for Recordants single unit Mini Aggregator. This included Java,
JavaScript, XML, AJAX and C code for an embedded Linux 2.4 SBC.
The product required customizing apache source and writing custom apache modules to implement
an AJAX framework for asynchronous web page updates.
July 2007 - Nov 2007
Responsible for writing firmware for Recordants Microphone interface device, which included
writing Java, JavaScript, AJAX, XML, CSS and C code for an embedded Linux 2.4 SBC.
This feature required new interfacing code for the Linux ‘sound class driver ‘audio CODEC, new
web server code and the addition of new web services on the embedded web server.
Nov 2007 - Mar 2008
Responsible for hardware selection and all firmware for Recordants next generation recording
devices. This included phone signalling detection, a new Texas Instruments USB audio codec with
decimation filter and improved resolution gain chips.
The firmware for this new line of product was written in C for embedded Linux 2.4 & 2.6 and
required new SPI code for the enhanced resolution gain chips and new web server code in Java,
JavaScript and C for the CODEC configuration pages. Ian also added USB Video frame capture
capability to Recordants line of products.
- Ian Linsdell Page 3 -
EMPLOYMENT HISTORY
Mar 2008 - June 2008
Responsible for hardware selection/prototyping and all firmware for Recordants VOIP recording
device. This device passively detected SIP messages using a Micrel 8995MA switch chip and was
implemented using a custom Ethernet sniffer module for PCAP. Custom hardware and firmware
was also developed to support full duplex file and signalling communication between two
embedded ARM based Linux SBC’s.
June 2008 - Aug 2008
Responsible for all hardware design/prototyping and writing all firmware for adding caller id to
Recordants analog phone tap device. The hardware design included a CMX602B FSK chip
connected to a Microchip PIC 18F2420, which in turn communicated with an ARM based
embedded Linux SBC.
The software design and code included handling call state, decoding the FSK into SDMF/MDMF
and transmitting this information over an enhanced software SPI bus from the real time PIC micro
controller to the SBC running Linux. The enhanced SPI bus design also included, data bandwidth
throttling, reliable messaging, restart synchronization and error detection.
Aug 2008 - Jan 2009
Responsible for hardware selection for Recordants new SOM processor board as well as porting all
firmware from Recordants existing Cirrus Logic SBC running Linux 2.4, to their new ATMel
microcontroller running Linux 2.6.
This included setting up a new cross compiler and developer environment, customizing and cross
compiling the Linux 2.6 kernel source, porting code from the old Linux 2.4 audio and device
interfaces to the new Linux 2.6 ALSA and SYSFS/UDev subsystem and incorporating the new
ARMv5 DSP instructions into Recordants audio compression code.
EMBEDDED C / LINUX 2.4 & 2.6 DSP SHELL-SCRIPS TCP-IP JAVA AWT WEBDEVELOPMENT WEB-SERVICES AJAX XML HTML CSS JAVASCRIPT EXTJS ANT
APACHE-C&TOMCAT
JUNE 00 –
JUNE 06
WITNESS SYSTEMS - ANALYST/PROGRAMMER
Contracted by Witness systems to develop Web based software for their call centre range of
products. Witness systems then employed me directly to work on their software driven data capture
product to capture screen and audio data from agents Windows PC’s, for replay via a Java SWING
plug-in client running in a web browser.
Jun 2000 - Oct 2000
Responsible for writing user front end elements including custom sorting and presentation using
the SWING set of components and the MVC model.
In addition wrote data abstraction layer modules to interface with the Java front end in order to
satisfy changing business requirements. This was implemented as C++ modules using the standard
template library, running as a DCOM server. I was also tasked with optimising the generated ad
hock SQL required to retrieve data for business requirements.
Oct 2000 - May 2001
Responsible for writing compression, decompression and capture code in C++ as well as
infrastructure code to capture and record screen data from a Windows PC over a TCP/IP network.
Also responsible for writing code to decompress video data for real time viewing in a web browser
using the Java JNI API and C++ code. This feature also required code to enable the captured video
and audio to be exported in a common media AVI format, in order to be emailed to or reviewed by
third parties.
May 2001 - Nov 2001
Responsible for writing a media recoding data store manager which maintained the reference
counts, status and location of recorded media files within an enterprise, in addition to archiving and
removing them form near line storage as directed by the Witness business object layer.
This involved writing multi threaded C++ server modules with DCOM interfaces and a custom real
time - high performance database engine to persist the media content details.
- Ian Linsdell Page 4 -
EMPLOYMENT HISTORY
Nov 2001 - Oct 2002
Responsible for analysing, documenting and implementing Oracle database performance
enhancements to increase the Witness contact recording software performance up to 1,000
concurrent contact recordings per second with associated attributes.
This involved using the Oracle stats pack tools: SQL Analyse, Top SQL, Session monitor,
performance monitor graphs in addition to analysing SQL and C++ code.
From this I documented using UML and implemented the required architectural, schema and SQL
changes to achieve the performance goals.
Oct 2002 - Mar 2003
Responsible for implementation of integrating Witness Systems CRM software with a line of
products from a newly acquired company, this facilitated the playback of VOIP phone and PC
screen data. This feature involved JFC Swing components, custom Java bean components for the
user interface, Web Services and business object servlets running on Tomcat Application Server.
In addition developed CORBA services to encapsulate business logic using the TAO ACE ORB
and interfaces for the CORBA servers using OMG's Interface Definition Language for both the
C++ and Java components of the system.
Also responsible for design and implementation of a real time network streaming video/audio
media player written in C++. The design allowed the media player to be hosted by a Java client
running in a web browser via the use of the JNI API. The implementation required writing multithreaded network streaming modules and various proprietary audio and video CODEC routines for
the witness recording system. The design was documented using the UML standards.
Mar 2003 – May 2004
Responsible for writing new VOIP playback features for the media player, either over a PC speaker
or via a Tomcat hosted TSAPI audio server using the MS-SOAP protocol. The implementation
used the Java AXIS SOAP library with custom marshalling for the structured data types used by
the MS SOAP server.
May 2004 – Jan 2005
Responsible for design and implementation of a new Enterprise Management Tool product. This
product allowed customers to manage 90+ software recorders distributed over a companies
enterprise network. Distributed recorders running Apache Tomcat were managed via web port-lets
developed using JSP, custom tags, DHTML and AXIS web services. Also responsible for design
and implementation of the single login enterprise wide distributed security framework, which used
the RBAC model and utilized organizational units stored in a JNDI server for authentication &
authorization. This implementation used XDoclets and a J2EE/EJB Web Logic business layer.
Additional design requirements for this project were to allow an administrator to manage
distributed recorders of varying versions, even if installed behind a DMZ network configuration.
Communication between the Enterprise Management Tool and distributed recorders used AXIS for
MS-SOAP V1 and JWSDP for document/literal WSI compliant web services. A Proxy servlet
module for syndicating the configuration of distributed recorders into the Enterprise Manager was
also developed. Other responsibilities included developing ANT build and source code control
scripts to retrieve, build and notify the status of code written at a remote office.
Feb 2005 – Sept 2005
Designed and implemented three-dimensional Track View component allowing customers to
visualize contacts and their associated attributes. Used C#, .NET User Control and web service
client to retrieve data from web service database via Ado.NET.
Sept 2005 – May 2006
Responsible for the architecture, design and implementation of Witness new Search & Replay
module. The design allowed for incremental migration from their existing Web Logic EJB
The design reduced the companies’ dependency on their central Web Logic server by
incrementally migrating their existing EJB Tier to POJO’s using the Spring Framework and
Apache Tomcat server.
The Search & Replay included the development of a Rich Internet Application Expression Builder
written using HTML, JavaScript, CSS and AJAX. The back end used AXIS Web Services and
database persistence modules using Hibernate. The Apache Tomcat and Spring hosted POJO
business layer was implemented to generate optimised SQL, retrieving data from a 200 million
contact database. The design and implementation was documented using UML standards.
- Ian Linsdell Page 5 -
EMPLOYMENT HISTORY
JAVA SWING AWT JNI RMI C++ C STL ATL DCOM CORBA JINTEGRA SQL
VISUAL-STUDIO .NET-WEB-SERVICES C# ECLIPSE SUN JDK (1.2 - 1.5) XML XSLT
JNDI J2EE EJB-CMP2.0 APACHE-TOMCAT AXIS-WEB-SERVICES SOAP/JWSDP JSP
CUSTOM-TAGS ANT XDOCLET JSF HTML CSS JAVASCRIPT JSF AJAX
HIBERNATE SPRING ORACLE-STATS-PACK UML WEB-LOGIC
JUNE 95 –
JUNE 2000
COMMONWEALTH SECRETARIAT - ANALYST/PROGRAMMER
Contracted by the Commonwealth secretariat to develop a user interface, with data export features
to a Windows PC in the C language, their existing system was written in INFORMIX-4GL. The
Commonwealth then contracted me to re-write their existing economic management system for the
Windows environment.
Jun 95 - Oct 95
Responsible writing a user front end and data conversion program in C for the existing INFORMIX
4GL debt management system.
This was then enhanced for integration with Windows software to transfer economic data from a
Unix system via a TCP/IP network to windows’ based PC’s and automatically importing into
spreadsheets and analytical tools. This was achieved using C code, and Curses on a Unix/Xenix
platform with a third party terminal emulator and the use of C++ code incorporating Windows API
calls on the PC.
Nov 95 - Apr 96
Responsible for writing a hot-line support and bug tracking system in New Era with networked
document management facility. This included writing C and C++ code for DDE links to third party
software.
Apr 96 - Nov 96
Responsible for developing expansion modules to an existing economic processor written in C and
INFORMIX 4GL on a Unix platform.
This includes modules for evaluating the impact of currency fluctuations for scenario economic
environments. The normalisation of economic data for aggregate reporting and the calculations for
aggregating of economic data based on user specified criteria for use with their economic strategy
modules.
Nov 96 - May 98
Responsible for the re-design and development of the debt management systems core processor,
originally written in C for UNIX it was re-designed and written with an object orientated approach
in the Delphi object Pascal language.
This included analysing the changing business requirements of the economic management system
and designing an object oriented system to meet these needs.
The design goals were achieved by creating a generic class hierarchy in Delphi to module common
behaviour and attributes of financial instruments and specialising these generic classes into
business requirement objects using an optimised runtime expression evaluator written in the object
Pascal language.
The system design incorporated the ability for a user to enter new economic terms into the
processor to meet their ever changing future needs, as well as a generic framework to map the
object oriented design onto a variety of relational database management systems.
The whole project was implemented using a 3 Tier DCOM design to enable the application to be
distributed over multiple machines in order to enhancing its scalability.
May 98 - June 2000
As well as ongoing enhancements and support of the debt management system, Ian has been
responsible for the organisation wide implementation of intranet and internet technologies.
This has included the installation and configuration of an email routing system using the C2 Router
and SMF 7.1 on a Novell network, providing both internal and external internet mail routing for
two separate sites connected via a kilo stream fibre link.
The installation of an MS Proxy server to provide the organization with internet access.
The development of a intranet to provide staff with secure up to the minute information on debt
data stored in an Oracle V8 database and to allow them to update and process economic data for
viewing via their web browser.
This involved the use of Java code using JSP and JDBC drivers to access the Oracle database,
PL/SQL stored procedures and SSL for the secure encrypted connection to the server.
DELPHI OBJECT PASCAL C++ OBJECT ORIENTATED DESIGN UNIX XENIX
'C' CURSES INFORMIX 4GL COM/DCOM ORACLE SQL/PL-SQL JBUILDER MSOFFICE-INTEGRATION
- Ian Linsdell Page 6 -
EMPLOYMENT HISTORY
MAR 94 -JUN 95
INTERGRAPH LTD - ANALYST/PROGRAMMER
Contracted by Intergraph to work on a number CAD system projects for their clients, these
included the following:
Mar 94 - Aug 94 British Aerospace
Worked in a team of two to write an integrated CAD/database management application. The
software was developed with a DB-Access framework (embedded SQL/C language) running on
UNIX and utilising NFS and an INFORMIX ON-LINE database.
Responsible for the search, user access control, report generation and import/export of large
amounts of data utilising binary packing algorithms.
Aug 94 - Nov 94 Intergraph
Responsible for porting Intergraph’s customisable drawing registry and management system
originally written in 'C' for UNIX, to a Windows 3.11 and NT platform.
This involved design and configuration of TCP/IP, NFS and Netbeui networks with NFS mounted
plotter servers, UNIX database servers and Windows 3.11/NT PC clients.
Dec 94 - Jun 95 Thames Water
Worked in a team of 4 to develop a CAD/database management system and was responsible for
writing C and 'C++' code to work with their network file management system running SCO UNIX
and Oracle 7. Also responsible for writing a 'C' interpreter to automate the conversion of CAD
drawing and database entries from proprietary systems to the Intergraph standards.
'C' DB-ACCESS ORACLE INFROMIX C++ CLIX UNIX SQL XWINDOWS TCP/IP NFS
NOV 93 - MAR 94
BENHAM A BUCKINGHAM LTD - ANALYST/PROGRAMMER
Contracted to provide general UNIX utilities and C programs to improve the administration of in
house systems. Ian then became the in house administrator for the period of the contract.
Their SCO UNIX / INFORMIX database systems used a range of dumb serial terminals. Ian
later upgraded this to Windows PC clients connecting to the server via TCP/IP to facilitate
Windows and Novell interoperability. C routines and INFORMIX 4GL code was used to enhance
the systems usability.
SCO UNIX 'C' TCP/IP INFROMIX MICROSOFT-LANMANAGER SHELL-SCRIPS
NOV 92 - OCT 93
FD INTERNATIONAL PLC - ANALYST/PROGRAMMER
Contracted as an Analyst/Programmer to work on the Integrated Management System. This was
developed using GUPTA SQL Windows language on a PC running MS Windows 3.11, with an
SQL Base database running on a Novell Netware 3.11 network
Responsible for writing the order processing system and a number of reports. Primary roles were
in development with emphasis on programming standards, locking strategies and transaction
processing. Extensive 'C' coding was required to perform batch-processing routines in addition to
SQL query optimisation due to the large database size.
'C' MS WINDOWS SQL BASE SQL WINDOWS SQL TALK SQL CONSOLE
JUN 92 - OCT 92
MOUNTFIELD SOFTWARE LTD - ANALYST/PROGRAMMER
Full-time course provided by Mountfield Software covering MS Windows 3.1 Gupta SQL
Windows, SQL Talk, connecting to both SQL Base and INFORMIX . Ian developed a Mountfield
Software in-house time sheet application in the first 5 weeks of this training period.
'C' 'C++' INFORMIX-4GL/SQL SQL WINDOWS
JUL 87 - MAY 92
A.G.M - ANALYST/PROGRAMMER
Designed and implemented a relational database system using Alpha 4 for company equipment
management. This included evaluation of equipment performance and equipment depreciation
features for calculating the resale cost to the company of existing equipment.
Also wrote many embedded ‘C’ and assembly language routines for Z80 and 6502 hardware
projects and has additional familiarity with 68000 and 8080 assembly language.
ALPHA 4 'C' ASSEMBLY LANGUAGE
- Ian Linsdell Page 7 -