I have a passion for programming, for finding the simple and efficient solution to a seemingly complex problem. I am a software consultant and the founder and lead programmer of Intrig.
Below is a list of projects and links to source code and documentation, all written by me. A good, concise example of my coding style is this answer at codereview.stackexchange.com.
A generic tree data structure written in C++11. It behaves just like a std::vector, but the iterators, called cursors, also behave just like a std::vector.
A bitstring provides a way to easily and efficiently access data at a bit level.
A cross-platform C++11 open source protocol message decoder. Xenon loads XML protocol definitions and then parses messages. The result is presented as a multivector. Also, the Lua scripting langauge is integrated for displaying message descriptions. The primary emphasis is on 3GPP (LTE) and 3GPP2 protocols, with more protocol support on the way.
An XML schema for generating a custom XML DOM C++ validating parser.
A domain specific XML language used to describe protocol messages.
A recursive descent expression parser that supports basic math operations and user defined variables and functions.
A Qt based desktop protocol monitor that utilizes a previous version of the xenon decoder. The IDM takes extensive advantage of Qt's Model/View system, including multiple views, display filters, and controllers. The IDM is used in test and analysis equipment in major telecommunications companies throughout the world.
Developed an XML editor using C#. The editor created a class during runtime to reflect the structure of an XML schema, then instantiated an object of that class and set its values to those of the corresponding XML document. The object was then given to the .Net Property Grid for viewing and editing. Editing mulitple objects was supported.
Developed a generator routine that converted a complex recursive function into a repeatably callable
function using .Net's
Used .Net's networking libraries to write a simple simulator for testing without need of hardware resources, greatly increasing development time.
Ported linux to a new embedded machine and wrote a custom A/D driver module.