I write code for a living, but I also do it for fun. I’ve had success as a manager and a technical lead. I encourage Agile software development practices, which emphasize early and continuous delivery of valuable software.
Pivotal Labs is an Agile / XP software development shop specializing in Ruby and Java. Our practices include test-driving development and pair programming.
In addition to Agile evangelism with new and potential clients, I also manage staffing, recruiting, and the sales pipeline. Oh, and I still get to code.
I was a member of a 10-person team developing an enterprise web application for social services. The application is implemented in Ruby on Rails with jQuery, and featured an XML API for data export and import and Jasper reporting tools.
Pharos is a startup software and consulting company which caters to the electricity trading and asset management markets. At Pharos, I designed and built an energy trading product to aggregate public and private data from ISO energy markets. I also designed and built asset management software for generator owners and operators. Both applications are designed to be hosted “in the cloud”, and provide data mining and realtime data aggregation from multiple sources, including external websites, internal databases and data feeds. The software is implemented in Ruby, Rails, C, C++, Flash and JavaScript.
As system architect and lead developer for a generator operator, I designed, implemented and maintained a large energy management system (EMS) providing realtime overviews of the markets and electrical grid. The project was bootstrapped in two months under an extremely aggressive timetable. Implemented in Ruby, Rails, C, C++, Javascript.
As the technology director, I managed system integration projects for Accounting and Treasury departments, and managed the I.T. due diligence process for mergers and acquisitions. As part of managing the financial software systems, I initiated the company’s SOX 404 compliance efforts. I also managed outsourced staff of I.T. contractors across four sites.
At ASPEED, a successful startup ISV, I hired and managed a small team of developers in the design and development of a high-performance parallel computing SDK. The library provided dynamic load balancing, efficient data serialization and fault tolerance while supporting common business algorithms (e.g., Monte Carlo simulations) and associated issues (e.g., distributed random number generation).
Some advanced features included: machine-generating C++ template code for fast, typesafe, portable serialization of complex data structures; process management subsystem providing support for common SOA vendors as well as “native” process management for both Linux and Windows; and a patented algorithm for parallelizing some types of long-running pharmaceutical models.
I also co-authored and maintained a high-performance messaging library for distributed computing, which provided high throughput and low latency on both Linux and Windows.
The Infrastructure Application group was part of a larger effort to build a state-of-the-art ticker plant for financial market data. As team lead, I managed seven developers building and porting content generation applications under extremely aggressive deadlines. I also managed a small team of outsourced developers building a GUI application for browsing ticker plant data.
I designed and implemented a high-performance data feed to integrate third-party vendors. The feed used ASN.1 and BER encoding to describe and marshal data. The feed handled all contributed data for the firm. Implemented in C++ using POSIX threads.
At Bloomberg, I was the Lead Developer and Architect for Bloomberg Launchpad, a desktop platform which allows the user to customize a display integrating data from multiple sources: Bloomberg and third-party real-time market data; historical, fundamental and research data; news and web content. I designed and helped build the Launchpad application development framework, used by hundreds of developers across the firm.
As Lead Developer and Architect in Server-Side Integration and Research group, I led a team whose areas of focus were: rapid prototyping of applications; reusable component technology; salvaging legacy code using intelligent frameworks and components; generic market data pub/sub services; messaging and IPC; and evaluating database systems.
I led that same team in the design and delivery of a beta Bloomberg instant messaging product in three months; implemented using C++, pub/sub infrastructure and proprietary directory services.
As Lead Developer in the Trading System group, I designed and built the Trading Systems Desktop (“TW”), integrating Trading System functionality and market data display; including market data monitors, trading position blotters, pricing methodologies, news, auto-execution, trade history, and trade ticketing.
I also designed, built, and maintained TCP/IP trade feeds, custody bank links and client data feeds. This included designing an application-layer protocol and meta-programming to generate feed handler code based on feed specs.
Nokogiri is currently the most popular XML/HTML parsing library for Ruby developers. It supports CSS and XPath querying, has push and pull SAX parsers, validates DTD and XSD schemas, performs XSLT transformations, and has a very simple and usable API. It’s implemented in Ruby and C.
Loofah is an HTML sanitizer (based on Nokogiri) which can be used to prevent cross-site scripting (XSS) attacks. It provides a variety of methods to clean or remove unsafe HTML, and delivers ActiveRecord plugins for Rails applications.
Mechanize is a Ruby library used for automating website interaction and screen-scraping. It fully supports browser history and cookies, and allows easy authentication and form submission. Implemented in Ruby.
Graduated 1995 with a B.A. in Physics.