David A. Smith dsmith@alumni.caltech.edu http://dacvs.neocities.org/ https://github.com/dacvs/aoc2023/ SKILLS • As a programmer, I make a simple model of your problem that can be evaluated in any programming language, and I write an implementation in a convenient language. • Programs are better when they are clear (as when simple and using fewer language features or libraries), complete, fast, and memory-sparing. • I know many tricks to achieve this. In industrial design, I have made combinatorial (graph-theoretic) models where solutions are found by the technique of Dynamic Programming, even for large instances, optimally in reasonable time. • Often I study the academic literature to find suitable algorithms. I have solved geometric problems by combining known constant-time algorithms with combinatorial optimization schemes evaluated using vectorized numerical computation in Python and NumPy. • I have worked with large (genomic-scale) data sets on a large computing cluster. • I can define, evaluate, and visualize (using vector graphics) novel statistics for evaluating the quality of discrete structures such as clusterings of similarity graphs. CREDENTIALS September 2024 DoD security clearance TS/SCI September 2018 Passed actuarial exam P (of the Society of Actuaries) EDUCATION December 2010 Ph.D. Mathematics, Arizona State University, Tempe, Arizona • Dissertation: The first-fit algorithm uses many colors on some interval graphs. • Studied graph theory, combinatorics, combinatorial optimization, algebra, and analysis. • Used GLPK, Matlab, Maple, Sage, Python, Tk, Haskell, and C. December 2001 M.S. Mathematics, California State University, Long Beach, Long Beach, California • Graduate Dean's List of Scholars and Artists. • Studied algebra and analysis. June 1996 B.S. Mathematics, California Institute of Technology, Pasadena, California • Studied combinatorics, algebra, and analysis. WORK HISTORY December 2022 - October 2024 Simulation Engineer, Dynetics Inc., Huntsville, Alabama • Implemented geometric and combinatorial algorithms for planning air routes in simulation using Linux, Vim, Python, and NumPy in a flat plane and about the spherical and ellipsoidal earth. • Fixed bugs and reviewed source code written by peers and junior software developers, contributing to the overall quality of the software product. • Developed a prototype implementation in Python of a machine translation system to convert bitmap text on a computer screen from several foreign languages into English. January 2022 - December 2022 System Programmer, No company, Gilbert, Arizona • Wrote system software in x86-64 machine code and Forth (see http://dacvs.neocities.org/). September 2021 - January 2022 Software Solutions Developer, Aptus Engineering Inc., Scottsdale, Arizona • Investigated the academic literature and performed exploratory programming in job scheduling, artificial neural networks, natural language processing, and user interfaces for manipulating geometric objects. March 2021 - September 2021 Programmer and Videographer, No company, Gilbert, Arizona • Made videos on programming in x86 machine language (see http://dacvs.neocities.org/). June 2019 - March 2021 Virtual Construction Application Developer, Sundt Construction Inc., Tempe, Arizona • Wrote and implemented algorithms to design cost-optimal temporary building structures. • Wrote basic office productivity applications. May 2017 - May 2019 Programmer, No company, Missoula, Montana • Wrote system software and mathematical applications in Forth. September 2016 - December 2016 Instructor, California State University, East Bay, Hayward, California • Taught Math 2150, an introduction to Discrete Mathematics for students of Computer Science. July 2014 - January 2016 Data Scientist, Quid Inc., San Francisco, California • Wrote fast C-code variations on known methods of partitioning the vertex set of a weighted similarity graph. • Created Python tools with NetworkX and heuristic algorithms to compare partitions; and with SciPy to compare search result lists. • Visualized both kinds of comparison with PostScript plots made automatically. • Developed a method to infer associations between vertex labels in graphs described in US patent 9710544. • Wrote technical evaluations of free and commercial natural language processing software. October 2013 - February 2014 Software Engineer, Newfield Wireless Inc., Berkeley, California • Wrote C++ server software. August 2012 - April 2013 Visiting Assistant Professor, Grand Valley State University, Allendale, Michigan • Taught linear algebra, differential equations, and calculus. • Developed weekly computational exercises for calculus students. August 2011 - March 2012 Programmer, Semel Institute for Neuroscience at UCLA, Los Angeles, California • Processed large genomic data sets on the Hoffman2 Unix cluster. • Implemented graph algorithms in Python. August 2005 - August 2010 Teaching Assistant, Arizona State University, Tempe, Arizona • Taught calculus. • Taught Discrete Mathematical Structures to computer science students. • Supervised an undergraduate honors project involving Java programming. August 2004 - August 2005 Research Assistant, Arizona State University, Tempe, Arizona • Reported to the Dean on the calculus learning experience of first-year university students. • Assisted in teaching a course on Discrete Mathematics to in-service high-school teachers. February 2003 - December 2003 Lead Software Engineer, Mitretek Systems Inc., Falls Church, Virginia • Wrote public key infrastructure software in C++ for federal agencies. • Built an LDAP spider for X.509 cross-certificate webs using the Boost Graph Library. January 2002 - May 2002 Lecturer, California State University, Long Beach, Long Beach, California • Taught calculus to computer science students. August 2000 - December 2001 Teaching Associate, California State University, Long Beach • Taught calculus. January 1999 - March 2000 Software Engineer, Leverage Information Systems Inc., San Francisco, California • Wrote Java server software for high-volume web sites with Linux, Apache, and MySQL. • Contributed code to the open-source Locomotive Application Server. February 1997 - January 1999 Software Designer, Tandem Computers Inc., Cupertino, California • Developed an intraweb document management application in Perl and C. November 1996 - January 1997 Junior Localization Engineer, SimulTrans, L.L.C., Mountain View, California • Extracted software resources in English for translation into European languages. • Reinserted translated resources and adjusted user interfaces to accommodate them. June 1995 - September 1995 Summer Undergraduate Research Fellow, California Institute of Technology, Pasadena, California • Studied manipulation in voting with computer programs in C. June 1993 - October 1993 Summer Undergraduate Research Fellow, Jet Propulsion Laboratory, Pasadena, California • Assisted in developing a novel application of optical fibers for the Mars 94 Oxidant Experiment.