Thomas Becker, Ph.D.
Lake Tahoe, Nevada
Twitter:  thomasintahoe
LinkedIn:  thomasintahoe
Startup:  GreaterThanZero


University of Heidelberg, Germany
Master’s degree in mathematics and physics
Ph.D. in mathematics (magna cum laude) with a dissertation in the area of algebra and logic

Legal Status

Dual Citizenship: US and European Union



2012 – present GreaterThanZero, LLC
Founder, Full-Stack Developer, and Mathematician

GreaterThanZero started out as a web-based personal finance tool that lets investors understand the peformance of their financial accounts, most notably in the presence of deposits and withdrawals. I performed all development on the product, from the math backend to the frontend website. The technologies used are:

  • Google App Engine
  • Java Servlets with the Stripes web framework
  • JavaScript, HTML5, and css
  • Flot charting library

The company has since taken on a cofounder and has broadened its focus to provide a wider range of investment analytics tools, in the form of Web apps as well as investment analysis as a service.

1998 – 2011 Zephyr Associates, Inc.
Scientific Software Engineer and Mathematician (C++/Finance)

Zephyr Associates (since acquired by Informa Investment Solutions) licences software for performance and style analysis of stock and bond portfolios to leading institutional investors, money managers, and financial consultants worldwide.

My primary responsibility at Zephyr was the design, implementation, and maintenance of the mathematical engine that powers all of the company’s analytics software. The software was written in C++, using design and implementation techniques such as design patterns, generic programming, multithreading, Boost, the Standard Template Library, and a massive suite of regression tests.

The mathematics of the engine that I wrote is based on Modern Portfolio Theory. In particular, I implemented returns-based style analysis as set forth by Nobel laureate and Stanford professor William F. Sharpe.

Due to the small size of the company (I was the second developer hired and saw the team grow to more than ten members over the years), my work at Zephyr was not limited to the mathematical backend of the company’s software. I made significant contributions to the following product components:

  • A large Windows desktop application written in C++ with MFC, including a database access layer, a custom charting engine, and a COM scripting interface.
  • A distributed Web server architecture involving a multithreaded load balancer written as a Java Servlet running on Linux, and Windows NT backend servers.

Over the years, the growing client base of the company also created a role for me as staff mathematician. Besides working on the software, I also tended to all things mathematical, including client support, research concerning ongoing developments in portfolio theory, and talks at user conferences.

Finally, I also served as a mentor and instructor of more junior developers on the team, primarily on the subject of C++ and the Boost library.

1993 – 1997 Contracted Software Development and Training out of Munich, Germany

Project work for financial institutions such as Bayerische Landesbank, Hypo Vereinsbank, and Datev. Nine months stint at a startup company that made AutoCAD plugins. Programming languages were C, C++, Perl, AutoCAD Lisp, SQL, VBA, PL/1, REXX, and COBOL. Environments were MS-DOS, Windows NT, UNIX, OS/2, and IBM-Mainframe.

Training classes that I taught were attended by software developers and system administrators from all walks of life. Topics were: Programming in C++, Windows NT Programming (Win32, MFC, COM, ODBC), and Windows NT System Administration and Networking.

1988 – 1993 University of Passau, Germany, Computer Algebra Group
Assistant Professor

Duties included:

  • Research in computer algebra (see list of publications)
  • Design and implementation of mathematical algorithms in the computer algebra system Reduce
  • Teaching undergraduate and graduate level mathematics courses with an emphasis on computer algebra
  • Co-authorship of a graduate level textbook in computer algebra (see list of publications)

1983 – 1988 Department of Mathematics, University of New Orleans, New Orleans, LA
Instructor/Assistant Professor

Duties consisted of teaching and research in algebra.

1982 – 1983 Department of Mathematics, Tulane University, New Orleans, LA:
Visiting Assistant Professor

Duties consisted of teaching and research in algebra.

Publications and Related Activities

September 2000 - August 2003 Contributing Editor of C/C++ Users Journal. Author of a bimonthly column entitled STL and Generic Programming. Titles of the column articles were:
1. Welcome to STL and Generic Programming (CUJ 18/9, September 2000).
2. The Template Compilation Model (CUJ 18/10, October 2000).
3. Introduction to the STL (CUJ 18/12, December 2000).
4. STL Containers (CUJ 19/2, February 2001).
5. STL Container Iterators (CUJ 19/4, April 2001).
6. More on Iterators (CUJ 19/6, June 2001).
7. Writing Your Own Iterators (CUJ 19/8, August 2001).
8. Traits Classes (CUJ 19/12, December 2001).
9. Policy-Driven Design (CUJ 20/2, February 2002).
10. STL Algorithms (CUJ 20/4, April 2002).
11. STL Function Objects and their Adaptors (CUJ 20/6, June 2002).
12. C++ Template Metaprogramming (CUJ 20/8, August 2002).
13. More on C++ Metaprogramming (CUJ 20/10, October 2002).
14. Typelists (CUJ 20/12, December 2002).
15. C++ Metaprogramming Applied (CUJ 21/2, February 2003).
16. Creating Efficient Code with Templates (CUJ 21/4, April 2003).
17. Expression Templates (CUJ 21/6, June 2003).
18. That's All Folks (CUJ 21/8, August 2003).
2000 - 2001 Member of the program committee of Scott Meyers’ Workshop on C++ Template Programming. The workshop was held at Net.ObjectDays 2000 in Erfurt, Germany, and again at OOPSLA 2001 in Tampa, Florida.
Articles on Software Engineering
1. C++ auto and decltype Explained. Self-published article, May 2013, available online here. Not peer-reviewed in the traditional sense, but currently ranks between #4 and #7 in Google and Bing searches for "C++ auto and decltype" and similar search terms.
2. C++ Rvalue References Explained. Self-published article, 2010–2012, available online here. Not peer-reviewed in the traditional sense, but has been #1 in Google and Bing searches for "C++ rvalue references" and similar search terms since 2011.
3. On the Tension between Object-Oriented Programming and Generic
Programming, and What Type Erasure Can Do about It
. Online at the C++ Source, Oct 15, 2007.
4. Java-style variable binding in C++. In: Jörg Striegnitz, Kei Davis, Yannis Smaragdakis (Eds.), Proceedings of MPOOL 2002 (Workshop on Multiparadigm-Programming with Object-Oriented Languages), held at ECOOP (European Conference on Object-Oriented Programming) in Malaga, Spain, June 2002, 97-107. Available on the web here.
5. Java-style monitors in Win32. Dr. Dobbs Journal 331, 46-54 (2001)
6. Some generic extensions to the C++ Standard Template Library. C/C++ Users Journal 18/6, 58-65 (2000)
7. With Christopher Baus: Custom iterators for the STL. In: Proceedings of the 2000 Workshop on C++ Template Programming held in Erfurt, Germany, October 2000. Available on the Web here.
8. A semaphore with priorities for Win32. C/C++ Users Journal, 17/8 (1999)
9. Smart iterators and STL. C/C++ Users Journal 16/9, 39-46 (1998)
10. Strange encounters on the second level of indirection. C++ Report 10/5, 35-41 (1998)
11. Porting server applications from UNIX to Windows NT. C/C++ Users Journal 15/10, 19-32 (1997)
12. NT programming with Visual C++ (in German). NT Magazin 10-11/96, 47-50 (1996)
13. Software development with C++: Some common pitfalls (in German). SOFTWARE Entwicklung 6/96, 10-18 (1996)
14. Two extensions to GNU Emacs that are useful when editing TeX documents. Tugboat (Journal of the TeX User Group), December 1993. Available on the Web here.
Portfolio Theory
1. Sharper than Sharpe? Choosing the Better of the Two K-Ratios. Automated Trader Magazine Q4 2011, 64-71
2. The Black-Litterman Model: An Introduction for the Practitioner. Investments & Wealth Monitor (Journal of IMCA, the Investment Management Consultants Association), January/February 2009, 21-24
3. Exploring the mathematical background of returns-based style analysis. In: T. Daniel Coggin and Frank J. Fabozzi, (Eds.), The Handbook of Equity Style Management, Third Edition, John Wiley & Sons, New York, 435-453 (2003)
Mathematics Book Thomas Becker, Volker Weispfenning, in cooperation with Heinz Kredel: Gröbner Bases. A Computational Approach to Commutative Algebra. Graduate Texts in Mathematics 149, 574 pp., Springer Verlag, Berlin, Heidelberg, New York (1993)
Mathematical Research Articles
1. On Gröbner bases under specialization. Applicable Algebra in Engineering, Communication and Computing 5, 1-8 (1994)
2. Standard bases in power series rings: uniqueness and superfluous critical pairs. Journal of Symbolic Computation 15, 251-265 (1993)
3. With V. Weispfenning: The Chinese remainder problem, multivariate interpolation, and Gröbner bases. In: Watt, S.M. (Eds.) Proc. International Symposium on Symbolic and Algebraic Computation (ISSAC '91), ACM Press, New York, 64-69 (1991)
4. Homogeneity, pseudo-homogeneity, and Gröbner basis computations. In: Mattson, H.F., Mora, T. and Rao, T.R.N. (Eds.), Applied Algebra, Algebraic Algorithms, and Error-Correcting Codes (AAECC 9), Springer Lecture Notes Computer Science 539, 65-73 (1991)
5. Stability and Buchberger criterion for standard bases in power series rings. Journal of Pure and Applied Algebra 66, 219-227 (1990)
6. Standard bases and some computations in rings of power series. Journal of Symbolic Computation 10, 165-178 (1990)
7. Valued fields with a universal embedding property and eta-alpha-structures. Communications in Algebra 18(10), 3565-3576 (1990)
8. With L. Fuchs and S. Shelah: Whitehead modules over domains. Forum Mathematicum 1, 53-68 (1989)
9. A few remarks on the Dauns-Hofmann theorems for C*-algebras. Archiv der Mathematik 43, 265-269 (1984)
10. Real closed rings and ordered valuation rings. Zeitschr. für mathematische Logik und Grundlagen der Mathematik 29, 417-425 (1983)
Miscellaneous My free software utilities can be found on my personal homepage. I am also a (minor) contributor the the Boost library. Together with Dave Abrahams, I contributed the zip_iterator.
Erdös Number: 2 Paul Erdös (1913-1996) was one of the most prolific mathematicians of all times. He published joint papers with over 500 fellow mathematicians. Paul Erdös’ own Erdös number is 0. If you have published a joint paper with him, your Erdös number is 1. If you have published a joint paper with someone whose Erdös number is 1, your Erdös number is 2, etc. For more information, see the Erdös Project. My name can be found on the Erdös list as co-author of the Erdös1-mathematician Saharon Shelah.

Favorite Quote

The world is changed not by the self-regarding, but by men and women prepared to make fools of themselves.

— P.D. James