Tools Expertise |
|
|
Considering only those tools, applications, methods
and practices that have been used in
production-level capacities, the list
includes, but is not limited to:
- Operating Systems - RedHat Linux 6.x/7.x/FC 3-7/RHEL 3-5,
Ubuntu 10, MS-DOS, Windows 3.1/95/98/NT/XP, Solaris, NeXTSTEP,
OPENSTEP, MacOS 6.x/7.0/X
- Development Languages - C, C++, Objective-C,
Java, FORTRAN, Pascal, VB/VBScript, 16-bit ASM, PHP,
ASP, csh, bash, perl (including CGI)
- Developer Tools - Git, GutHub, CVS, PVCS,
SourceSafe, MQSeries, Sun ONE Message Queue, GNU Make,
AutoDoc, JavaDoc, Glade, UML and Rational Rose, Apache
- Databases - Oracle (PL/SQL), Sybase (T-SQL),
SQL Server (T-SQL), PostgreSQL (PL/pgSQL),
Paradox 3.5/4.0, Access (VBScript), ODBC, JDBC
- Networking - TCP/IP, IPX, Novell, Windows
NT/2000, NFS, Cisco, NAT, Routers
|
|
|
Representative Projects |
|
|
DataBusII
|
PEAK6
|
| Highlights: |
Ever increasing messaging rates from OPRA, NASDAQ feeds
meant a new kind of system needed to be designed and
built to allow for automatic A/B arbitration, preferred
side flipping in case of line outage, and downstream
conflation for slow clients, so that fast clients got
every message, and slow clients didnŐt overload, or
over-burden the upstream systems
|
|
|
Design, Development, and Testing of a toolkit for exchange
data processing. Including modular exchange codecs, lockless
queues and NBBO engine.
Primary Tools: GCC (C++), Linux (Ubuntu 10), ZeroMQ, MMD,
OOA&D.
|
|
|
|
PricingServerII
|
PEAK6
|
| Highlights: |
Ever increasing data rates from exchange feeds meant a
new pricing (greeks) engine needed to be designed and
built to allow for faster throughput, allowing for fast
consuming clients as well as slow, and adding the what
if scenario capability not present in current systems
|
|
|
Design, Development, and Testing of a pricing (greek) engine
taking embedded DataBusII ticker plants, event-driven
processing with lockless data structures to enable minimal
delays in processing for both high-speed clients and slower,
on-demand, clients. To minimize additional components, a
request/response what if capability was added to give clients
additional capabilities through the same interface.
Primary Tools: GCC (C++), Linux (Ubuntu 10), ZeroMQ, MMD,
OOA&D.
|
|
|
|
MMD
|
PEAK6
|
| Highlights: |
SOA is fine, but service location, load-balancing, and
API mismatches creates difficulties in growing an
infrastructure of many diverse services. MMD, or Magic
Middle Dude, is PEAK6Ős attempt at solving these issues.
Using distributed erlang, services connect to a local
MMD node that replicates the services they publish,
connects them to services on other nodes, balances the
load of all services, and provides API conversion for
websocket clients.
|
|
|
Development, and Testing of several local erlang services
including accessing mongoDB using erlmongo.
Primary Tools: erlang, mongoDB, erlmongo, Linux
(Ubuntu 10).
|
|
|
|
Falcon
|
Chicago Trading Company
|
| Highlights: |
Large datasets of risk and greek data for the enterprise,
Fast retrieval of large datasets to many web clients with
minimal load on the client.
Directly delivering to and supporting risk managers and
portfolio managers,
Meeting Tight Deadlines and Delivering New Features
Weekly
|
|
|
Design, Development, Testing and Support of a
very large, live, ticking
data visualization and data reporting tool for risk
positions.
Primary Tools: Linux (RedHat RHEL5), Google Chrome,
Java (J2EE), JavaScript, 29West, OOA&D.
|
|
|
|
MarketMash
|
UBS O'Connor
|
| Highlights: |
Large Systems Integration issues, C++ Server, J2EE
and JMS along with RMI and other middleware technologies,
Directly delivering to and supporting traders,
Meeting Tight Deadlines and Delivering New Features
Weekly
|
|
|
Design, Development, Testing and Support of a
multi-tiered, clustered, live, ticking
data visualzation and data reporting tool for risk
positions in the Hedge Fund.
Primary Tools: Linux (RedHat RHEL3), NT/XP, C++ (GCC),
Java (J2EE), MQ Series, Sun ONE Message Queue, JMS,
InfoShop (see below), many thrid-party packages, scripting
tools (sh, csh, make, etc.), OOA&D.
|
|
|
|
InfoShop
|
UBS O'Connor
|
| Highlights: |
Large Systems Integration issues, J2EE, CORBA,
MQ Series, JMS, along with RMI and other middleware
technologies, Delivering to and supporting
infrastructural systems, Meeting Tight Deadlines
and Delivering New Features Weekly
|
|
|
Design, Development, Testing and Support of a
collector/organizer/aggregator/distributor of non-fast-tick
data throughout the organization to provide to other
systems at a minimal cost and maximal convenience.
Primary Tools: Linux (RedHat RHEL 3),
Java (J2EE), CORBA, RMI, JDBC, XML, Sun ONE Message Queue,
many thrid-party packages, scripting tools
(sh, csh, perl, make, etc.), OOA&D.
|
|
|
|
MarketData Server
|
UBS O'Connor
|
| Highlights: |
MarketData Vendor APIs, C++ server talking to Bloomberg API,
Reuters RMDS, CacheStation (see below), and in-house historical
data sources, Directly delivering to and supporting
infrastructural systems as well as user scripts/apps,
Meeting Tight Deadlines and Delivering New Features Weekly
|
|
|
Design, Development, Testing and Support of a MarketData server
that allows applications in the organization to use one API
(C++/Java/perl) to a single server for getting a large variety of
market data.
Primary Tools: Linux (RedHat RHEL 3), C++ (GCC),
several thrid-party APIs, scripting tools
(sh, csh, perl, make, etc.), OOA&D.
|
|
|
|
CacheStation
|
UBS O'Connor
|
| Highlights: |
Reuters RMDS price feed conditioner and cache, Java server talking
to in-house API to Reuters RMDS for tick data, caching results
and applying rules to get the best market price for each ticker,
Directly delivering to and supporting infrastructural systems,
Meeting Tight Deadlines and Delivering New Features Weekly
|
|
|
Design, Development, Testing and Support of a caching that allows
applications in the organization to obtain a consistently good price
from a Reuters data feed.
Primary Tools: Linux (RedHat RHEL 3), Java, in-house APIs, scripting
tools (sh, csh, perl, make, etc.), OOA&D.
|
|
|
|
OneCard
|
BankOne
|
| Highlights: |
Total Life-Cycle Development, Interconnection
via MQSeries Middleware, Meeting Tight Deadlines,
Large Java Development.
|
|
|
Architecture, Design, Development and Testing of the
back-end systems for a web-based credit card management
system for the Commercial Card Services group.
Primary Tools: NT, Solaris, Java, MQSeries, SQL
Server, scripting tools (sh, csh, perl, make, etc.),
OOA&D.
|
|
|
|
CellAnalysis
|
The Man from S.P.U.D.
|
| Highlights: |
High Performance Image Processing, Web Server
integration, Unique solutions and algorithms to
complex problems.
|
|
|
Architecture, Design, Development and Testing of a
server-based image processing system that quantitatively
identifies cancerous and non-cancerous cells in multiply
stained processes for cancer screening system.
Primary Tools: Linux, Solaris, C, GTK, PostgreSQL,
Apache/PHP, scripting tools, OOA&D.
|
|
|
|
AKit
|
BankOne
|
| Highlights: |
Design Patterns, Reuse-focused Development,
User-focused Deliverables, Internal Sales and
Marketing.
|
|
|
Member and Manager of a Technical Architecture Group
which focused on all aspects of reuse within the Capital
Markets Group - including the creation of AKit.
These infrastructural libraries, applications and
documentation saved starting groups approximately
10 man-years.
Primary Tools: NeXTSTEP,
OPENSTEP, Solaris, NT, Obj-C, Sybase, scripting tools,
OOA&D, Management and Sales Skills.
|
|
|
|
CSPUD++
|
The Man from S.P.U.D.
|
| Highlights: |
Large Sparse Matrix Techniques, Topology Analysis,
Simulation, Advanced OOA&D.
|
|
|
Architecture, Design, Development and Testing of a
C++-based SPICE-like circuit simulation program for
traditional Electrical Engineering academic work.
This included handling several issues that SPICE didn't
handle well - open nodes, looped inductors at DC, and
a much improved plotting system.
Primary Tools: Amiga, C++, PlPlot, OOA&D.
|
|
|
|
Calumet Office System
|
Port-to-Port Consulting
|
| Highlights: |
Complete Business Modeling, Full life-cycle
Development, Business Re-engineering.
|
|
|
Delivered product managed everything about business
operation except payroll. This included manufacture,
field tank storage, shipping, order processing and
rail car management for the company.
Primary Tools: Paradox 3.5/4.0, DOS/Windows, VB,
Cicso MPR, Netware 3.11, Co-Session
|
|
|
|
BKit
|
BankOne
|
| Highlights: |
Porting from NeXTSTEP/OPENSTEP to Java, Re-useable
Object Development, OOA&D.
|
|
|
Ported much of the AKit to Java to facilitate
faster development using tested object models.
Primary Tools: NT, Solaris, Visual Age for Java,
Visual J++
|
|
|
|
North Hollow Farm
|
The Man from S.P.U.D.
|
| Highlights: |
Complete eCommerce Site, Full life-cycle Development,
User Interface Development.
|
|
|
Complete eCommerce site for business tailored to
their needs including order tracking, credit card
acceptance and automatic mailing.
Primary Tools: Linux, Irix, Apache, PHP, PostgreSQL,
gimp, vi
|
|
|
Community Projects |
|
|
perl
|
www.perl.com
|
|
Found a bug in the 5.005_03 source that effected
Solaris and submitted it for inclusion. Patch was
incorporated.
|
|
gaim
|
gaim.sourceforge.net
|
|
Introduced patch for perl 5.005_03 that gets around
non-patched perl versions in perl plug-in. Also patched
response parser for the Yahoo IM client.
|
|
xchat
|
www.xchat.org
|
|
Introduced patch for perl 5.005_03 that gets around
non-patched perl versions in perl plug-in.
|
|
bidwatcher
|
bidwatcher.sourceforge.net
|
|
Patched buffer-overflow bug in one release... added
dynamically created buffers in another release... added
compile-time UI options in a recent release.
|
|
CorePlot
|
code.google.com/p/core-plot
|
|
Replaced CoreAnimation encoding problems with NSDecimals
to use non-struct-based objects (NSDecimalNumer objects) and
retrofitted changes into code for minimal impact
|
|
|
Employment History |
|
June 2010 - Present |
PEAK6 - Chicago, IL |
|
Senior Software Architect in Messaging and Data Feed Group
creating next generation firm-wide ticker plants and greek
pricing server using direct exchange data feeds, as well as
in-house valuation libraries and an overall architecture
emphasizing low-latency processing.
|
|
|
March 2009 - June 2010 |
Chicago Trading Company - Chicago, IL |
|
Senior Developer in newly created Risk Analytics Group creating
firm-wide risk and P/L applications for senior management.
Duties include design, development and support of live, ticking,
risk display and reporting tools.
|
|
|
June 2001 - March 2009 |
UBS O'Connor - Chicago, IL |
|
Consultant/Developer on Risk Management applications
for the trading floor. Duties include design, development
and support of live, ticking, risk display and reporting
tools delivered through a three-tier, clustered system
based in Java (J2EE), RMI, CORBA, JDBC, XML and associated
datasources.
|
|
|
February 1996 - June 2001 |
BankOne - Chicago, IL |
|
Vice President/Senior Systems Architect in the Commercial
Banking Systems Group at BankOne, Chicago IL. Projects and
activities at this position have included development,
management, organization and syndication.
|
|
|
June 1991 - February 1996 |
Port-to-Port Consulting -
Indianapolis, IN |
|
Founding Partner, Executive Vice President,
Technical Director and System Consultant, Port-to-Port
Communications Corporation, Indianapolis, Indiana. Duties
included advising clients on Personal Computer hardware and
software purchase decisions, developing database and
telecommunications applications.
|
|
|
August 1988 - June 1991 |
Auburn University - Auburn, AL |
|
Assistant Professor of Electrical Engineering,
Auburn University, Auburn,
Alabama. Position involved teaching, research, publication,
and supervision of graduate students. Total contract
dollars overseen in excess of $450,000.00.
|
|
|
February 1982 - Present |
The Man from S.P.U.D. - (various) |
|
Owner, Operator, Developer. This company has been the
umbrella under which considerable academic, public domain,
Open Source, and charity development and systems work has
been accomplished. Projects run the gamut from circuit
simulators to eCommerce web sites to talking alarm
clock/calendars to decrypting software.
|
|
|
Education |
|
|
Bachelor of Science in Electrical Engineering, May, 1982;
Purdue University, West Lafayette, Indiana
Master of Science in Electrical Engineering, May, 1984;
Purdue University, West Lafayette, Indiana
Doctor of Philosophy in Electrical Engineering,
August, 1988; Purdue University, West Lafayette, Indiana
|
|