Experience
March 2006 to present (18 yrs)
Developer Express, Inc., Glendale, CA
Chief Technology Officer
Developer Express, Inc., sell components for WinForms, ASP.NET/MVC, WPF, Blazor,
MAUI, and client-side HTML5/JavaScript, and also IDE enhancement tools for Visual Studio.
Am employed as CTO with responsibility for the company’s technological
vision, for understanding the component market, for raising the
visibility of DevExpress in the .NET component and Visual Studio
add-in markets. Have technical oversight over all products. Drive
acceptance of new techniques and methodologies within the development
organization. Research new technologies and prototype possible new
products.
Also involved on a day-by-day basis with the marketing and evangelism
department. Responsible for pushing the new openness of
the company using blogging and webinars, publishing the annual roadmaps, and being
the contact for editors and journalists for technical magazines and
papers. Coordinate evangelists’ blogging and webinar activities; proof and edit
their posts. Partly as a result of this openness, revenues have grown
and continue to grow strongly each year.
February 2005 to March 2006 (1 yr, 1 mo)
Configuresoft, Inc., Colorado Springs, CO
Software Architect
Configuresoft, Inc., marketed a configuration management system for
large enterprises. It was acquired in 2009 by EMC, then by VMWare.
Was employed as a Software Architect, with sole responsibility for the
architecture and design of the middle tier (business object and data
access layers). Also evangelist for .NET (using C#) as a solution for
current and future projects, as well as design and code reviewer for
projects written in C#. Driver for the acceptance of a more agile
process for developing software, including pushing for a more
test-driven development methodology.
Researched and designed next-generation business object and
database-independent data access layers, including selecting patterns,
class models, application blocks, and frameworks to facilitate writing
these layers. Helped .NET development teams understand different
design possibilities to select best solution. Drove project to design
better packaging story for classes into assemblies to aid with
versioning. Designed in-house company-specific frameworks.
Extensive experience in analyzing and fixing poorly-written C#
codebase to improve performance, stability, and memory consumption.
Wrote and presented many internal C# and development-related seminars
to increase understanding of C# and .NET technologies (topics
included: using exceptions, unit testing, design patterns, coding
anti-patterns, generics, iterators). Wrote the company’s general and
C#-specific coding standards.
March 2004 to February 2005 (11 mos)
Falafel Software, San Jose, CA
Senior Software Architect
Falafel Software was a consultancy based in San Jose, CA, that was
closed down in 2017.
Was employed as a Senior Software Architect, mostly involved in
medium-sized projects, working in small teams or solo. Examples of
work completed: writing introductory courseware on using Borland’s
C++BuilderX product; implementing a suite of components for WinForms
applications that enables command objects to be linked to UI controls
to centralize action processing (initially written for a large
customer, but it was then converted into a retail product called
CommandMaster).
Final contract was designing and implementing a multi-tier Volunteer
Tracking system for a Californian non-profit organization. This system
was written in C# and ASP.NET 1.1 and used SQL Server 2000 and
Reporting Services on the backend. Used code generation to generate
the majority of the SQL scripts (for both table creation and stored
procedures) and business layer code from the simple data descriptions.
May 2003 to December 2003 (8 mos)
Microsoft Corporation, Redmond, WA
Program Manager
Microsoft Corporation is a rather large well-known software company.
Was employed by Microsoft as Program Manager in the Visual C# team in
the Developer Division. The team acts as a “component vendor” for the
main Visual Studio product, providing IDE functionality specifically
for C# users, debugging functionality across the product, and, of
course, the C# compiler. Worked as one of the Program Managers in the
IDE section. Was involved in work primarily on Whidbey (the code name
for Visual Studio 2005). Responsibilities included designing the
Reorder Parameters, Add Parameter, and Remove Parameter refactorings;
designing the initial look of Whidbey for C# users; writing a strategy
for improving help documentation; participating in other IDE design
meetings; designing a new development methodology for the next Visual
Studio version after Whidbey. Gained extensive knowledge of the new C#
2.0 features: generics, iterators, anonymous methods.
March 2002 to May 2003 (1 yr, 2 mos)
Aristocrat Technologies, Las Vegas, NV
Director of Future Systems
ATI is a subsidiary of Aristocrat Leisure Ltd, an Australian company
developing and marketing gaming machines and systems for the casino
industry.
Was promoted from TurboPower to lead the development effort to produce
a new global casino management system to be written in C# and .NET.
Responsible for devising and implementing the development process (a
simplification of the Rational Unified Process) and for putting
quality software standards and processes into action (a mix between
eXtreme Programming and Test-Driven Development). Liaised with
Marketing and other departments, including country managers, to review
and approve requirements list. Responsible for and manage a team of
developers and QA engineers. Also in charge of budgetary and other
financial planning for the new systems division. Project
cancelled during company reorganization.
May 1993 to February 2002 (8 yrs, 10 mos)
TurboPower Software Company, Colorado Springs, CO
Software Engineer, Director of Engineering
TurboPower Software Company wrote and sold programmer tools and
libraries for Borland developers. It was acquired by Casino Data
Systems in 1995, which was then acquired by Aristocrat Technologies in
2001; TurboPower was finally closed down in January 2003 and its
products were open-sourced on SourceForge.
Originally employed by TurboPower as a software engineer working on
their B-Tree Filer database engine and to help with their telephone
technical support. Responsible for the development of new releases of
this product and the writing of the user manual.
Managed the development of Orpheus (a collection of UI components, the
first released for Delphi 1), writing the file viewer, the grid, and
part of the manual and help system. Later managed the development of
Orpheus 2, the 32-bit version for Delphi 2. Oversaw and wrote part of
SysTools, a library of algorithms and system-related routines.
Designed and managed the development of FlashFiler, a client/server
database engine. Wrote the server, the client-server communications
layer, and the interface to Delphi’s database classes. Wrote the
manual and help system.
Was promoted in July 1996 to Director of Engineering. Responsibilities
included the managing of all the tools and library development at
TurboPower; making recommendations and decisions about possible future
products; managing all the software engineers and their day-to-day
work; participating in the budget process; prioritizing development
versus technical support; mentoring developers; hiring new
programmers; writing and proofreading manuals.
Development work was reduced; however, highlights include designing
and writing the Zip Deflate compression code, a “large decimal” class
for performing accurate arithmetic, a set of stream classes, random
number generators, etc.
Delphi and Borland C++ Builder on Windows; some Borland Kylix on Linux.
November 1990 to April 1993 (2 yrs, 6 mos)
Deutsche Bank AG, London
Trading Systems Manager
Deutsche Bank is the largest German bank and the fourth largest bank
worldwide. The London organization was essentially a merchant banking
operation in those days, with emphasis on bonds, swaps, and options.
Headhunted to analyze, design, and implement a swaps trading system,
to advise on and manage the Swaps Group’s software and hardware
requirements, to represent the Group on technical matters, and to
oversee and improve the Group’s LAN. The London Swaps Group had close
links to other Deutsche Bank Swaps Groups worldwide and my expertise
was used globally. Reported directly to the Head Trader.
The system implemented was a portfolio management system for swaps,
FRAs, loans, deposits, and FX trades. It was multiuser, multicurrency,
and multibook. Trades and complete books could be valued; swap
equivalent hedges were also automatically calculated. New in-house
developed algorithms and portfolio research were used throughout.
Assembly and object-oriented Borland Pascal on DOS and NetWare.
May 1990 to November 1990 (6 mos)
Softbridge Capital Markets Ltd., London
Design Consultant
Softbridge Capital Markets Ltd wrote and marketed a swap portfolio
system. It has since been acquired.
Was employed as chief designer for their Swaps Manager package.
Redesigned the user interface in order to target the product towards
dealers and traders. Designed and specified the new Futures module,
made various recommendations on improving the performance of the
algorithm for recalculating the zero coupon curves. Designed the new
amortizing swap entry module. C/C++ on DOS.
September 1989 to May 1990 (8 mos)
Elders Finance Group, London
Contractor
Elders Finance Group were a UK financial division of an Australian
conglomerate.
Investigated and researched better algorithms for hedging swap
portfolios using Futures and FRAs as hedging instruments. Designed and
started to write a program for tracking portfolio hedges but,
unfortunately, Elders were closed down during my contract. Helped
during the shutdown by writing various applications and by managing
their portfolio systems. Turbo Pascal on DOS.
July 1988 to September 1989 (1 yr, 2 mos)
Intercapital Brokers Ltd, London
Development Director
At the time, Intercapital Brokers Ltd (ICAP) was a small brokerage that
focused on broking futures, FRAs, swaps and other related financial
instruments. It created a small software subsidiary called Data Analysis
Risk Technology Ltd (DART) to write and sell swaps trading software on PCs.
Headhunted from MHL to become Development Director of the new company
and to design and write the software. Learnt the various money market
and capital markets valuation algorithms, designed routines to
calculate zero coupon curves, present values, and swap durations, and
wrote the Swap Portfolio Manager. Demonstrated the pre-release version
to potential customers in the City, in the UK, and in Europe. Turbo
Pascal on DOS.
March 1984 to July 1988 (4 yrs, 4 mos)
Manufacturers Hanover Ltd, London
Front Office Systems Manager
Manufacturers Hanover Ltd (MHL) was a merchant bank specializing in
Eurobond trading. It merged with Chemical Bank, then with Chase
Manhattan, and is now part of JP Morgan Chase.
Graduated from analyst/programmer working on my own
modifying/enhancing the bank’s MIDAS/34 system, to Systems Manager
with sole responsibility for MHL front office systems. In addition,
managed a team of six System/38 analyst/programmers, designed and
helped write a new Eurobond trading system on the System/38,
maintained the Bank’s population of personal computers, and looked
after the bank’s communications amongst its various computer systems.
Had sole responsibility for the PC population (from ordering PCs, to
arranging maintenance contracts, to programming small applications, to
providing an informal help desk). Designed and wrote various
spreadsheets for the Eurobond Trading desk. RPG II/III on System/34
and /38, also Lotus 1-2-3 on PCs.
Team management included recruitment interviews, staff appraisals,
salary review recommendations, as well as the normal day-to-day
management of projects and the team members’ work.
November 1982 to March 1984 (1 yr, 4 mos)
Brooke Bond Group, London
Analyst/Programmer
Brooke Bond was a retailing company specializing in teas and coffees;
it is now part of Unilever.
Was involved in a Group Accounting system for the Finance division to
correlate and consolidate the Group’s accounts. Wrote the program
specifications from an analyst’s system design, created the data
dictionary, and databases; then, with a team of two outside
contractors working under me, wrote the complete system. After the
programming phase, performed the system test with data and help from
the Finance Division. Set up the in-house programming standards. RPG
II on System/34.
September 1979 to November 1982 (3 yrs, 2 mos)
CAP Group Ltd, London
Analyst/Programmer
CAP was a consultancy company.
Was involved in numerous projects, initially as a programmer, but
graduating to program design and systems analysis. Most projects were
on the IBM System/34 using RPG II for various commercial, industrial,
and financial clients.
Publications
December 2013
Kindle: Unlock the Full Potential
Author of “How e-ink works” chapter
This was a one-off “bookazine” by Future Publishing Ltd that covered
all aspects of owning an Amazon Kindle. Essentially a book in a magazine
format. Wrote the chapter on how e-ink works.
May 2007 to October 2012, monthly
PCPlus
Author of Theory Workshop section
PCPlus was a British magazine that covered general hardware and software
topics, appearing on a monthly basis. It had a small section on
programming at the back. Wrote the Theory Workshop section from May
2007 until October 2012 when the magazine was closed down.
This section covered basic algorithms, computer science
theory, and history of computers, and was generally aimed at the
interested programming amateur rather than the professional.
Originally two pages in length, but was ‘promoted’ to three pages in
January 2009. Wrote 70 articles in all.
Articles were republished on personal blog after a year.
(Full list)
November 2009
Professional DevExpress ASP.NET Controls
Author of chapters on JavaScript, charting, async programming
The book was an exploration of using ASP.NET controls from DevExpress
in professional web applications. Was called in at a late stage to
help finish the book, and wrote the chapters on charting, asynchronous
programming using AJAX, and the section on JavaScript.
November 1997 to January 2007, monthly
The Delphi Magazine
Author of monthly algorithm articles
The Delphi Magazine appeared monthly until March 2007, publishing
technical and programming articles for Delphi developers. Wrote for
the magazine from November 1997, and was given my own column on
matters algorithmic in June 1998 (Algorithms Alfresco). Wrote an
article every month from then onwards until just before it closed down
(with a hiatus from May 2003 to February 2004 because my employment
with Microsoft required me to stop). Topics have included binary and
ternary trees, B-trees, encryption, compression, multithreading,
random numbers, automata, binomial heaps, simulation, sorting, genetic
algorithms, and so on.
June 2001
The Tomes of Delphi: Algorithms and Data Structures
Author
The book provides Delphi developers with a comprehensive overview of
using algorithms and data structures from a practical perspective. It
begins with a discussion of algorithm performance, and provides
comprehensive coverage of such topics as arrays, linked lists, and
binary trees. The book focuses on search algorithms—such as
sequential and binary search—and sort algorithms—including bubble,
insertion, Shell, quicksort, merge sort, and heapsort—along with
techniques for optimization. Additionally, it presents hashing and
hash tables; priority queues, state machines and regular expressions;
and data compression techniques such as Huffman and LZ77.
“The Tomes of Delphi: Algorithms and Data Structures is a practical,
well written, and comprehensive resource.” Tom Lisjac, Delphi
Informant review
“I strongly recommend that all Delphi/Kylix developers buy it.” Zarko
Gajic, about.com
The Kindle edition.
The Lulu paperback edition.
May 1997
Special Edition: Using Delphi 3
Author of chapter on multithreading