Email and SMS Software

In 2009, EmpireCLS needed to migrate their customer email notification service off of Linux. We built an extensible framework that allowed EmpireCLS to easily add custom email and SMS notifications easily and with little risk.

A Plug-in architecture that could easily add SMS and Email specific formatting logic without changing common infrastructure code for sending and queue processing.

Technologies… C#, SQL Server, Exchange

Cache Software

In 2008, EmpireCLS needed to have a real-time display of current reservation data for it’s new dispatch system. Because of the number of client applications and the frequency of reservation data changes the dispatch application could NOT poll the SQL Server database directly.

This service monitored the relevant reservation data and cached up to the minute changes for access by all dispatch applications. The decreased the load on SQL Server and allowed the dispatch application to operate as fast as possible by just getting diffs of the datasets that they were working with.

Technologies… C#, SQL Server

Dispatch Software

In 2008, EmpireCLS needed to replace their existing Linux dispatch application. The application was a console app that was extremely difficult to maintain. The goal was to rewrite as a GUI fat client on Windows.

This application allowed the dispatchers to see all chauffeurs in real-time throughout the day. If the chauffeur was picking up, dropping off, or just waiting for instructions, it was all visible within this application. Real-time shift visibility was also a requirement, this allowed dispatchers to cut down on overtime and increase safety by constantly adjusting the workforce.

By using this application EmpireCLS was able to achieve a significant cost reduction in their overall operational costs and increase customer satisfaction.

This application was to integrate directly with SQL Server but was to be used in parallel with the existing Linux reservation and accounting system.

Technologies… C#, WPF, SQL Server

Database Replication Software

In 2008, EmpireCLS started the migration of their legacy Linux data to Microsoft SQL Server. A custom real-time data replication service was created to facilitate this first step in porting the legacy Linux C code to C# / .NET on windows.

A code generator was created that would parse C header files and create an XML model representing all of the data structures that were used by the existing ISAM database. This XML model was then used by Code Smith templates to generate SQL Server tables, procs, and triggers that would handle both the storage and access. We also generated a complete C# data access layer with Code Smith that would be used by the various services to interact with the database. The C# data access layer was to be the marshaling layer between the ISAM and SQL Server databases.

Technologies… C#, XML, Code Smith.

Chauffeur App

In 2008 EmpireCLS needed to revamp their current pager strategy for communicating reservation information and statuses to and from their chauffeurs. We created a Windows Mobile 6 app to be deployed on Moto Q devices.

Once released the chauffeurs had constant real-time updates of reservations data and had the ability, via 1 or 2 taps, to notify dispatch of various statuses that occur when picking up and driving a customer to their destination.

This project required a backend web service implementation to communicate with the mobile device app. The backend web service in turn communicated with several Linux services via windows sockets.

Technologies… Windows Mobile 6, .net framework, WCF, asp.net, IIS

EmpireCLS Customer Website

In 2007, EmpireCLS needed to revamp their customer booking website. This website allowed private customers, corporate customer, and travel administrators to manage reservations. This website also acted as the portal for EmpireCLS’ vast network of affiliates, allowing them to both receive assigned trips and notify EmpireCLS of statuses and closeout information.

One of the biggest challenges of this site was that it had to integrate with the existing Linux system. We designed and implemented a socket communication framework to facilitate this. We use Code Smith to generate the communication layer based upon XML models that we created to specify methods and messages.

Technologies… asp.net web forms, C#, Code Smith, IIS, and Linux

Source Code Control Procedures

In 2007 EmpireCLS’ current Linux 1 million line code base had no source control and no build scripts. The development process was to copy a file and backup into a sub-directory before making changes.

We installed a TFS Linux client and added the entire code base to a TFS project. We then trained the 2 Linux developers on TFS check-in / check-out procedure sand branching scenarios.

Now that the code was source controlled we moved on to creating build scripts for the 120 programs and services that they were constantly updating. These build scripts where then source controlled.

The result of this was the clients code base being controlled, backed-up, and a repeatable build process.

Developer Training

In 2007 Comverse required a bit of help with the training of a junior programmer.

I personally helped one of the junior developers build out a file synchronization tool. This involved daily mentoring sessions, code reviews, and paired programming sessions. This was extremely fulfilling as the developer was really inexperienced and was basically forced to sink or swim on their own. This project went on for a few months and by the end of the time the developer was comfortable with continuing on with the development of this tool on their own.

Comverse Integration

In 2006 Comverse asked us to help with the systems integration of their latest product acquisition.

Comverse had just acquired another company at the time and was trying to integrate their front-end into the existing back-end.

This project consisted of building a J2EE framework. I looked at this as seeing how the other half lived. We were able to pick J2EE up pretty quickly as it had a lot of parallels with the .NET world. My task was to put together patterns and practices for extensibility models for their next-gen product. This included learning swing, spring, java beans, etc.

Our contribution was a proof of concept showing various patterns to use for extensibility.

Real Time Billing Software – Next Gen

In 2005 Comverse asked us to help design and implement the next generation of their product line.

We were tasked with helping the staff figure out how to make their entire existing product line extensible. The goal was to simplify onboarding of new customers that had specific requirements outside of the core framework. The extensible points in the existing product ranged from embedded SQL in C++ projects, web services, GUI clients, Oracle stored procedures and tables, along with various build, package, and deployment processes.

We developed a meta-data model to represent all the extension points and hooks and by running a custom code generation tool we would build all the stubs for the extensibility pieces during a build process.

Various technologies were used here… C++, PL/SQL, VB.NET, HTML, etc.