Mercury Framework
| When: 2012-Present |
| LoC: ~17000 |
| Contribution: Architect, sole developer |
| Tech: C#, VB.NET, MS CCR |
A set of libraries developed for reuse of certain programming patterns and for providing useful data structures and abstractions to common scenarios in .NET programming.
The framework is an ongoing project to which I add solutions and data structures for commonly encountered scenarios. It originated around a set of common abstractions while programming the Axis project and was extended significantly during the development of the Mercury.Messaging API. It includes libraries for dependency injection, file IO (especially Open XML), a simple expression engine abstraction, common networking components, a lightweight logging framework, a hash verification tool, specialized collections and data structures, some small libraries for the compact framework, and an asynchronous agents framework (Mercury.Messaging). Under development are additional libraries that provide abstractions for distributed programming and data management.
Iris (programming language)
| When: Active development |
| LoC: N/A |
| Contribution: Designer |
| Tech: .NET Framework |
A high-level language for the .NET runtime that provides first-class concurrency abstractions with an emphasis on supporting the development of highly parallel and distributed applications. While only in the initial design stages, it is a natural outworking of my research in the Mercury.Messaging project and languages like Haskell, Erlang, and Ruby.
Janus
| When: 2013 (cancelled) |
| LoC: ~55000 |
| Contribution: Architect, primary developer |
| Tech: C#, VB.NET, Mercury Framework, WPF, SQL Server |
Developed as part of an Asurion Inventory Integrity initiative to rewrite an MS Access based solution for cycle counting (CCDesktop) in a .NET environment. The finished product was to consist of a client and a server application, the server containing fully integrated support for the Prometheus scanner software.
Axis
| When: 2012 |
| LoC: ~60000 |
| Contribution: Architect, primary developer, system administrator |
| Tech: VB.NET, WPF, Mercury Framework |
While developed for the purpose of aiding the Asurion DAX Security team in the audit of MS Dynamics AX permissions and security groups, Axis was designed more broadly for auditing any sort of key-mapped data (data that is associated with a unique primary key).
Although expressly developed for DAX security auditing, it works equally well for comparisons of any uniquely mapped data items, even lines of code (the line numbers being explicitly provided). The primary data structure is highly configurable, allowing the basic building blocks to be defined in a custom XML template format (.xtpl). The templating engine and column expression support provide additional benefits, as well as the ability to define and manage queries for lookups on supported templates. Finally, discrepancies between the source item and a set of validation items can be evaluated and the entire audit can be saved to disk as a custom .audx file.
Prometheus
| When: 2010-2011 |
| LoC: ~8000 |
| Contribution: Architect, sole developer, system administrator |
| Tech: .NET CF, Windows CE, VB.NET, C#, Windows Forms, SQL Server |
A scanner-based cycle count application developed on the .NET Compact Framework for Windows CE using VB.NET.
The application used XML serialized messages to send and receive data from a SQL Server database through a small middleware service that ran on a desktop computer under the appropriate credentials. It was designed to integrate with the CCDesktop application, extending the count functionality beyond manual data entry.
CCDesktop
| When: 2009-2013 |
| LoC: ~38000 |
| Contribution: Primary developer, system administrator |
| Tech: MS Access, MS Excel, MS Outlook, SQL Server, VBA |
A database application for cycle counting that was developed for the Asurion Inventory Integrity department using Microsoft Access as the front-end client with SQL Server as the database.
Although I was not the original developer on the solution, I extended the application well beyond the initial product. Numerous modifications were made to support counting across multiple sites and companies (logical), whole sections of the code (> 50%) were refactored or redeveloped, a security mechanism with support for permission groups was added, the user interface was updated, and support was implemented for a scanner-based counting application (Prometheus).