
Telecoms
Linking Our World.
T-Mobile, Hatfield, Hertfordshire, UK January 2006 – January 2007
Part of a team developing the NEXUS Pre-Pay billing system for T-Mobile. This involved design, OOD in UML and coding in a mixture of C and C++ on HPUX for rating, charging and balance control as well as many other details required for Pre-Pay accounts. A highly performant C, C++, multi-threaded, shared memory database (SMD) and rating engine formed the core application. Tuxedo interfaces were implemented by several business engine CORBA/Tuxedo servers which combined customer data from Oracle 10g reference cache, CORBA/Tuxedo interfaces and the SMD to build a single-shot memory structure of descriptors describing all the operations, serialized for writing to the SMD. Transport to/from SMD agent processes which delivered the data was by RPC. Changes in the SMD data meant immediate update to the high performant PAY call rating servers. Waterfall development process for each task.
Development: Business engine logic: C, C++ code was written for PARC account management, provisioning and PAY charging rules. SMD server libraries descriptors, triggers, logging, replication, supervision, admin and reference cache where updated together with C, C++ client server processes for multi-threaded server, health, replay, mediators, simulation, data migration, reports according to new business requirements. Worked on C, C++ SMD server processes including SMD supervisor, replicator, agent, log writer, console. XML was used for component configuration, POSIX pthreads for multi-threading and UNIX shared memory management by the core threaded servers. Work had to be accurate and there was a quarterly build cycle for the live system.
Development: Main contribution to NEXUS was to design and implement the attributes instances, tariff enhancements and non-real-time attributes, coded in C, C++ as part of the wholesale allowances feature. Most work involved a number of these components but most depth in the SMD descriptor and business engine libraries and their interfaces, which formed the core of the new features. Further experience gained with CORBA/Tuxedo and XML (transport and configuration), Oracle 10g embedded SQL (caching), UNIX shared memory management and POSIX pthreads (SMD) servers.
Testing: Sub-systems were tested locally with scripts and reduced size customer databases. Liased with dedicated regression test department to iron out any problems.
Lucent Technologies, Swindon, Wiltshire, UK August 2004 – October 2004
Assisted in the OMS and ITM-SC network management product development to provide additional Element Management System support. Additional EMS interface support was developed in C, C++ on HP-UX over an Oracle database.
Lucent Technologies Ltd., Malmesbury, Wiltshire, UK November 1999 - May 2001
Part of the Wavestar NMS team developing a replacement Fault Management component for the Network Management System based on a new system architecture. Responsible for the analysis of requirements and the development of part of the physical and logical architecture, threading models and a large part of the business logic for this fault management system. He gained experience in the design and implementation of a distributed 3-tier architecture, CORBA and the constraints/demands of processing large amounts of data in a fault management system and the partitioning of the system into a set of servers.
Analysis was done using UML OO, implemented in C++ on HPUX11. The database was Oracle. RogueWave Threads++ was used for multi-threading and CORBA/IDL was using IONA’s Orbix.
Lucent Technologies Ltd., Malmesbury, Wiltshire, UK June 1998 – November 1999
Part of a small team developing a new Sub-Network Management (SNM) component. The component was developed with the Kennedy Carter IOOA tool using Schlaer Mellor methodology. Performed analysis and design of part of the SDH model, which included production use-cases, sequence diagrams, ASL and C, C++ in-line coding to call the Client IDL and Informix SQL running on under a Solaris platform. The resulting generated code was built into a process and an adaption layer built to the database and the JAVA client. The product was completed in around 12 months and the analysis was split into eight domains with bridges. The KC architecture used was TA-1. Waterfall development process.
GEC-Plessey Telecommunications (GPT) Ltd., Poole, Dorset, UK 1994 - June 1998
A Senior Principle Software Engineer in a team developing Service Management Environment (SME) software within the Intelligent Networks (IN) at GPT (now Marconi). This was largely the development of client/server applications in C++ on Solaris to manage IN services the customer deployed on their network.
Analysis was done using Kennedy Carter OOA/RD techniques and with some C++ code auto-generated by an in-house C++ architecture written to take advantage of the information model of the tool’s formalism. Developed in C++ a profiling GUI to configure users’ access permissions to platform functions via an RPC interface to a secure server, an overview GUI to launch the above processes if they were licenced and present in the users profile, three GUIs and three servers to provide real-time display of network traffic performance statistics and manage traffic throughput, an algorithm configurable data encryption GUI to allow users to encrypt sensitive data and store in an Informix database and a message server to convert between IPC and Sun Tooltalk messages to provide a distributed system.
Experience gained in fairly complex Client/Server development and distributed systems, OOA/RD, C++, Solaris/SunOS, OI/UIB (Motif compliant) GUI development, Informix and Cantata++.