I offer full-stack web development with practical experience creating and hosting Typescript & React applications with flexible SPA, SSR, SSG (and hybrid) content delivery and highly scaleable state and route management. I have a 1st class BEng Electronics Engineering Degree and a decade of experience working as a corporate C/C++/C# software engineer. I have a detailed practical knowledge of CRA, Next.js, Razzle, Vite and Remix frameworks, and extensive knowledge of Angular, Vue, JQuery, Backbone and Marionette.. I can also host and create secure Drupal websites to serve as admin panel and headless back-end for any React client and make it’s data accessible via its JSON:API and GraphQL interfaces.
I have extensive commercial experience of the full agile development life-cycle including: continuous integration and build automation; test driven development; software issue queue and change management; virtual machine provisioning; module and component based software architectures; micro-service design and implementation; web design patterns; software build and package management; database configuration, data management and migration; data cacheing schemes; user authorisation and authentication; UI form design, validation and data submission management; object and component life-cycle subscriptions; software debugging, error and exception handling, testing, and issue reporting and resolution.
Since 2007 I have been engaged in self-funded, self-motivated, full-time up-skilling from C, C++ and C# to remote Typescript development with Visual Studio Code (managing remote execution, Docker containers, SQL databases, and more), Linux server management, VirtualBox virtual machines; Nginx web server; Docker containers; DNS management; CMS with complex multi-role permissions management; modern software engineering principles and design patterns, software life-cycle methodologies, build processes and git based version control.
I can create and consume authenticated web-enabled server API’s to support complex, concurrent, multi-user UI experiences with React, Flux (i.e. Redux and reducer based) patterns and Typescript pulling data from REST API’s, JSON:API’s and GraphQL API’s and deliver and mutate content using CSR, SSR, and SSG Typescript server frameworks. I can also provide automated test coverage on client and server using Jest, Testing Library and the Mock Service Worker utilities. I learned professional software engineering working across different industry sectors in diverse corporate teams, supporting the full SDLC processes from use-case capture, design, coding, through to unit and integration and E2E testing, contributing to software version control and issue queue management. I consider Typescript my primary and preferred language but I can also program to an intermediate level in PHP, C, C++ and C#. I enjoy mentoring others and sharing my knowledge and I have served three terms lecturing engineering and computing subjects to Bachelor and Master’s university students and three terms teaching computer programming to Higher Education evening class students.
I can create and maintain full-stack, reactive, web-enabled applications across the full Software development life-cycle using open source standards, platforms, frameworks, package managers, libraries and modules. I can administer servers utilising a wide variety of standard processes and tools with custom Linux scripting or proven Infrastructure-as-Code management tools, with Ansible as my preferred choice.
OpenSSL, SSH, Websockets, NFS, HTTP, HTTP2, AJAX, REST, GraphQL, OpenAPI, JSON:API, Hydra, RPC and SOAP.
YAML, JSON, XML, HTML, HAML or any arbitrary data format to design, code, and configure automated testing of entire projects (unit, component, module, integration, E2E), analyse resource usage, and manually debug remote source code. I can also install and configure both SQL and noSQL databases and optimise for scale and performance and I have a practical understanding of mysql, mongo and redis
Technologies: Windows XP Pro / C# / Visual Studio .NET 3 / OODBMS / UML / SVN source control / Design patterns / Iterative, time-boxed Agile/scrum/XP development / Continuous integration with N-Unit automated build testing and Cruise Control.
Technical Activities: Software design and development of the iMerge SoundServer S2000: a high-end audio sound server, incorporating multi-zoned playback, advanced play-list management, metadata network-lookup, and compatibility with third-party audio playback/archive systems. Co-designer of the media management middleware and underlying OODB using “Gang of Four” design patterns involving re-factoring an existing code base into patterns where necessary. XP test driven development, employing N-unit test modules for unit and integration testing and Cruise Control for automated hourly build and integration testing.
Technologies: Windows 2000 / C# / Visual Studio .NET/ COM / SQLServer / ADO.NET / XML / UML / Time-boxed Agile/XP development
Technical Activities: Software development of Motorola’s ASA (Advanced Software Applications) group’s IOS Windows Collection software: a data collection and analysis tool for GSM cellular network analysis and optimisation. Extensive data modelling in UML, and C# implementation from pre-defined requirements. Implementation in C# on .NET platform on Windows 2000. Enhancements to existing design and software. Database design using Rational Rose. SQL data access through ADO.NET. Steep initial learning curve and heavy workload with short delivery times.
Business Achievements: Assisted the team through a very difficult period of systems integration. I helped to minimise disparities between development and test teams and redistributed and reassigned test tasks. This was a demanding role as the project was running over time and budget when I joined. I started writing new code but soon played a key role in defining integration and system testing schedules with developers in India, China and Italy. I defined mock test environments with dependency injection to assist reproducibility of results. I advised mid and senior project management on best practices and recommended agile programming techniques for future development. Proposed, designed and mentored development of a cellular network simulator to assist development of overdue software deliverables to greatly reduce test times and increase test scalability. Received special recognition from the client for my motivational, planning, and people management skills
Technologies: Windows 2000 / C# / Visual Studio .NET / COM / XML / UML / Rational Rose / Rational Clearcase / Rational Clearquest
Technical Activities: Upgrade of CDMA mobile network analysis software (project: CTPU). Extensive UML analysis/design and C# implementation from pre-defined requirements, to provide newer version of existing software. Implementation in C# on .NET platform on Windows 2000. Technical lead of international integration testing team (Motorola UK, India, Ireland), defining and monitoring network testing across three countries, in accordance with high level quality controlled software processes. Successful delivery of very high quality software. Heavy workload with short delivery times.
Business Achievements: Identified problems in communication between core business personnel, in-house developers, and offshore subcontractors. Provided mediation services. Attended project management meetings with internal management and offshore contractors to assess progress and provide technical assistance for late deliverables.
Technologies: Windows NT / 2000 / C++ / stl / COM / ATL / XML / SAX / UML / HTML / Rational Rose / Visual Studio / Visual Sourcesafe
Technical Activities: Self-managed software development, working from own premises, reporting directly to senior management. Rework of failed offshore software development from requirements stage. Analysis, design and implementation of C++ COM-based data filters including support for XML, HTML, MS Word, SGML, Interleaf, Framemaker, Quark, and Pagemaker formats. Introduced novel ways to reuse developed technologies to provide significant gains on existing asset value.
Business Achievements: I advised a Global Implementation and Integration Manager on defining processes for bridging disparities between business stakeholders, developers and testers. Advised European sub-contract manager on software testing strategies. Defined testing roles for business personnel to improve staff satisfaction. Role involved interaction with wide variety of personnel including translators, middle and senior management. Continuation of previous service - see previous Xerox entry for more details.
Technologies: Windows NT/C++/stl/COM/ATL/Visual Basic/Visual Studio.
Technical Activities: Consultancy and troubleshooting bespoke telephony switching software tools. Conversion of COM components from VB into ATL COM (event driven connection points) to increase software performance. Quick problem analysis and solution delivered successfully.
Technologies: Windows NT/ C++ /stl / COM / ATL / XML / SAX / UML / Rational Rose / Visual Studio
Technical Activities: Requirements capture, formal analysis, OO UML design and C++/COM implementation of a corporate level human-language translation software suite (project: Globaltrans). Business process analysis and design of large-scale, n-tiered, multi-user, distributed translation system. Intensive client facing role. Large user base. Large development team (30+ personnel). Working under pressure to tight commercial deadlines.
Technologies: Windows NT / C++ / embedded software / RS232 / Labview / MFC / MS Visual studio / UML / Rational Rose/ Iterative Agile/XP development cycle.
Technical Activities: Sole software and systems engineer for real-time fluidics control software for an air pollution monitoring system. Working in a large multi-disciplinary engineering team (chemical, electrical, mechanical engineers). Organising and advising on systems and software processes to enhance the client’s administrative infrastructure, in addition to real-time embedded systems development.
Technologies: Windows NT / C++ / COM / ATL / MFC / MS Visual studio / USB embedded development.
Technical Activities: Commercial EPOS (electronic point of sale) distributed transaction control system for a large retail organisation. System was designed for scalability and performance. Also designed and implemented a bespoke USB 1.0 printer driver (in C++).
Technologies: Windows NT / C++ / COM / ATL / MFC / MS Visual studio / Borland C++ Builder / RS232
Technical Activities: Design and implementation of client-server remote user interface for wireless data and voice communications device. Also, software implementation of formal protocol specifications for wireless data communications. Lead a small team of engineers from Turkey and mentored in the use of Windows SDK and MFC.
Technologies: Unix / C++ / UNIX scripting.
Technical Activities: Pharmaceutical projection system. Scaleable, highly algorithmic, multi-process, high performance system for forecasting usage of pharmaceuticals products. Designed and coded algorithms and distributed performance-critical processes in C++. Small team of senior developers.
Technologies: Windows for Work-groups/C++/Visual Studio/RCS version control.
Technical Activities: Designed and developed diagnostic/maintenance sub-systems for the In Flight Aircraft Entertainment System (installed on the new Boeing 777’s and retrofitted onto 747’s). Large development team (circa 25) and very robust software processes. Excellent introduction to software process control.
Technologies: Using C++/COBOL/TAL/Unix/VMS
Technical Activities: COBOL developer/tester on a number financial software projects (3 months) including CHAPS. Also developed software on a Reuter’s media switch/router in C++as a port with enhancements from VMS to UNIX (9 months).
Role: Lecturer/Project supervisor in Electronics/Computing/OO/Digital design. Conducted lectures in a variety of subjects to groups of 30-60 students (mainly undergraduates) in large amphitheatres, classrooms and technical laboratories. Devised and managed a 12-week long project in computer programming for an MsC conversion course, as well as a variety of lectures in C++, OO, digital electronics design, and analogue electronics design.
Role: Tutor/lecturer to groups of 16+ students of all ages. Authored and executed courses in OO/C++/ C. Created original course material based on curriculum standards. Courses are now in print and are now in use as the standard course material for subjects taught. Duration: 3 x 12 week semesters
1st Class BEng. Hons with Distinction in Electronics Engineering. Awarded Institute of Electrical Engineers Associate membership. Final year distinction for project in Neural Network Image Recognition using standard RAM technology as a neural memory. Elected as Student Representative in the final year acting as intermediary between students and academic staff on a variety of issues.
BTEC National Diploma in General Engineering. A range of course material over two years ranging from mechanical engineering and manufacturing to mathematics, electronics engineering and computer science. Overall merit awarded.
9 GCE O levels: Computer Studies (B), Art (B), Mathematics (B), Arithmetic (B), Chemistry(C), Physics(C), English (B), English Literature(C), Geography(C)