Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 -