Client Projects

These are some highlights from project work undertaken by FactorMax
TBSC required an analysis of their solution with a view to enhancing & optimisation. We performed the required analysis and reported back, highlighting a number of specific short & long term gains that could be achieved, each with an estimated resource cost. Following this the client was able to select the items they wanted in the short term, and we went on to implement the changes to deadline. Technologies used : C#/.Net 4.6/WCF/ASP.Net/SQLServer.
SiliconSafe approached FactorMax to implement a .Net interface to their PasswordProtect product. Working to a fixed timescale we quickly implemented and delivered a solution which exactly matched the client's expectations. A subsequent project saw FactorMax implement a large part of the firmware for their bespoke product, followed by a complex WPF application to enabled an administrator to commission and control the appliance.
At Centrix we took responsibility for the on-going development of the agent component of the iQ product. IQ enables IT departments to discover usage of applications across their estate, often numbering tens of thousands of devices, each with an agent instance running on it. The agent has the limitation that it should be as unobtrusive as possible. It is written in C# and mines various low level attributes of the host it is on. As well as the agent work, we collaborated on a rewrite of the collection back-end, re-engineering the database facing components in C# .Net 3.5 on a SQL Server 2008 database. Connectivity to the collection back-end was via HTTP with guaranteed delivery via RabbitMQ. An additional later phase saw the move to Microsoft Azure, and the re-factoring of backend components into their respective Azure roles. To support the diagnosis and health monitoring, we produced a number of WPF applications in C#.
We were contracted to provide a number of performance improvements to an existing suite of C++ applications, running on Solaris 10 against an Oracle 10g database. After an initial analysis period of the existing performance and the process architectures, we implemented "common sense" code optimisations such as the adoption of STL map containers for more efficient in-memory data retrieval, and introduced batch operations against the Oracle database. We also implemented radical changes to a previously sequential, single threaded architecture in several processes by the addition of multi-threading. This yielded substantial decreases in runtimes as the 16-core hardware was being under-utilised previously.
Utilising a large range of technologies, primarily C++ on Windows platforms (NT, Server 2003, XP, Vista) we worked on Rockwell's "Hermes" ACARS message processor and EAI tool for the aviation industry. The message processor linked to a back-end Oracle 10g database in a clustered environment, and communicated with 3rd party applications through a large number of communications protocols such as TIBCO, IBM Websphere MQ, MSMQ as well as lower level IP protocols such as FTP. Starting in 2004, existing client applications of the back-end server such as real-time aircraft situational awareness monitoring tools were re-written to take advantage of the .Net framework. C# was the language chosen for its OO purity and rapid development times. As part of this, we re-worked the NASA DirectX "WorldWind" globe display application to be a Windows forms component, making various modifications and enhancements to it. The open source part of this was released back to sourceforge. As well as a re-write of the front-end clients, a parallel back-end framework was designed and implemented to provide an SOA interface to the system. This was written using C#/.Net 3.5 and the WCF classes. During this time we acted as the architect of the software team, responsible for overall design, technological approval and presentation to customers both internal and external.
At Perot Systems we provided performance enhancements to overnight, time critical batch processing on a European wide car rental system. Technologies used included Oracle, PL/SQL, Pro*C, C, C++ on a cluster of Sequent Unix servers running Dynix ptx/4, with "rates engine" servers being NCR system 3000 machines running System V Unix.
At O2 we worked closely with the NMC (Network Monitoring Centre) team providing tools to enable them to monitor the health of the national mobile network in real-time. This involved the end-to-end provision of updated network traffic interpretation and storage, through to bespoke graphical tools for situational awareness. Technologies used included Solaris & HP-UX favours of Unix, Oracle, Pro*C, C++ & X11.