Resume of Flash (K.J.) Sheridan

Greater Princeton, New Jersey, USA

flash@pobox.com
http://flash-sheridan.name
http://www.linkedin.com/in/flashsheridan


Summary: Over twenty-five years experience in software quality assurance,
including four in static analysis; two years experience in software
development.  Skilled at finding, reporting, and tracking software bugs,
via whitebox testing, test harness development, user-level testing, load
testing, and static analysis.  Published authority on compiler testing and 
static analysis.

Skills:  Software quality assurance, automated testing, static analysis,
embedded systems, GCC, LLVM/Clang, Xcode, C/C++, Lisp, Perl, Python,
Swift, Coverity, Klocwork, Ethereum blockchain, Git, sh/tcsh/bash/zsh,
Jenkins, HTML, LaTeX, TCP/IP, Linux, Macintosh, Windows.


Employment

2022-2024 Matter Labs.  Senior Compiler Test Engineer.
Lit testing of an LLVM-based compiler back-end targeting a zero-knowledge proof
Ethereum Virtual Machine. Optimization validation with Alive2; wrote much of
its documentation for unsoundness diagnosis and trouble-shooting; arranged
first corporate sponsorship. Clang source-based code coverage. GitHub Action
build engineering.

2021-2022 Mythic AI.  Compiler software quality assurance engineer.
Testing of C++ tools for an Analog Matrix Processor coupled to a RISC-V CPU for
edge machine learning, via Docker and Bazel.  Static analysis with Coverity via
GitHub Actions, Yaml, and Python.

2018-2020 Axoni.  Compiler quality assurance lead.
Tested the Axoni compiler for AxLang, a new Scala-based language for
blockchain smart contracts on Ethereum-compatible networks.
Created Python test harness and unittest tests, and set up Jenkins and Docker
continuous integration.

2017 Bloomberg L.P./Open Systems Technologies, Inc.*
Software engineer in test
Implemented and evangelized software quality best practices in financial
software: continuous integration, automated test validation, and static
analysis.

2012-2015 Apple.  Compiler quality engineer.
Testing of Swift and the LLVM/Clang compiler/static analyzer via a
Python test harness; wrote the first Swift test plan.  Filed bugs in an
internal database against compilers and the Xcode development
environment; evaluated and reduced bugs filed in the public LLVM/Clang
Bugzilla database.  Test lead for the Apple Command Line Tools.  Added
validation tests to the open source Swift compiler unit tests.  GUI
automation tests for the Xcode IDE.

2011-2012  Bell Labs/Alcatel-Lucent.*  Software security static analyst.
Static analysis using Coverity and Klocwork for the detection of
security vulnerabilities in mobile telephony infrastructure.  Proposed
fixes to source code for bugs found via static analysis.  Evaluated
static analysis checkers for accuracy and relevance.  Developed and
championed realistic schedules and tracked task dependencies.  Developed
and documented triaging guidelines.

2009-2010  Qualcomm/Code Integrity Solutions.*  Senior consultant.
Static analysis using Klocwork, PC-lint, and Coverity for the detection
of bugs and security vulnerabilities in mobile telephony software. 
Proposed and checked in fixes to source code for bugs found via static
analysis.  Proposed corrections to static analysis configurations. 
Evaluated and compared competing static analysis tools.

2007-2009  Palm, Inc.*  Static analysis engineer.  
Corrected Coverity integration with existing build system to improve
automated detection of software defects; diagnosed analysis failures;
adjusted analysis options to increase relevance and quantity of defect
reports.  Implemented integration with OpenEmbedded build system. 
Implemented reporting system to track responsibility for detected
defects, which resulted in hundreds of bugs being fixed.

1998-2007  Palm, Inc./PalmSource, Inc.*  Test programmer.
Whitebox testing, C/C++ and Perl.  Maintained and extended internal test
tool for Palm VII server load testing; no unanticipated failures under
load in production by components for which I was responsible.  Senior
Quality Lead for the PalmSource ARM-native compiler; no bugs in the
compiler were reported after its release, and an account of my testing
methodology was published by one of the leading academic computer
science journals; see "Publications."  Filed bugs against Open Source
projects and worked with GCC maintainers to ensure that they were fixed.

1995-1997  Apple.*  Test programmer.  
Low-level Quality Lead, Newton MessagePad 2100.  API Quality Lead, eMate
300.  Low-level Quality Lead for an unreleased POP/SMTP client. 
Maintained and extended test harness for automated API and user-level
testing.  Developed test program for Newton Backup Utility data
integrity.  As semi-official Usenet representative, handled third-party
bug reports, user data collection, rumor management, and spin control.

1993-1994  Pocket Science.  Freelance Newton programmer.  
Developed KwikMenu, later acquired by LandWare; see "Newton Software."

1986-1989  The University of London.  Research assistant, inference
under uncertainty.
Writings on Artificial Intelligence, listed below.

iPhone Software (Objective-C)

EncycloClip.  A faceless app to expedite search in the Encyclopedia Britannica
web site.


Palm OS Software (CodeWarrior C)

Small Talk 1.02 & Japanese Language Module (LandWare).  Added support
for Japanese OS extension; supervised and implemented translation of
phrase database into Japanese.

Pilot Register (Kagi).  Port of Newton Register (below) to Palm OS. 
Pre-alpha.


Windows CE Software (Visual C++)

Small Talk (Concept Kitchen).  Translation software for business
travelers.  Alpha.


Newton Software (NewtonScript)

KwikMenu (LandWare).  Provided immediate, universal menu access to a
variety of common tasks.  Reviewed in NewtNews February 1996, Gecko April
1996, and Pen Computing May 1996.  Gecko rating: 4 1/2 out of 5.

Register (Kagi).  Allowed a user to pay for software with a credit card
via electronic mail; provided an API used by approximately 150
third-party packages.

URLCop (freeware).  Provided an API to dispatch a URL to the appropriate
application.  Supported by Newtscape, Newt's Paper, pURL, and Shuffler.



Publications

"Deploying Static Analysis," cover story, Dr Dobb's Journal, July 2012.

"Static Analysis Deployment Pitfalls," short paper, IEEE Symposium on Software
Reliability Engineering, 2010.

"Static Analysis in a Fallen World," talk at the Stanford University Computer
Science Department, 2010.

"Practical Testing of a C99 Compiler Using Output Comparison," Software:
Practice and Experience, 2007 [37] pp. 1475-1488.

"Access Linux Platform for Linux Geeks: an Introduction," PalmSource
Developer Newsletter #25, 2006.

"urlCop: Proposed Standard for Inter-Application URL Handling,"
presentation, Apple Newton Developer Conference, 1996.

"Status Bar Buttons Made Cheap and Easy," accepted by Personal
Interactive Electronics Developers Journal, shortly before it ceased
publication.

"A Survey of Techniques for Inference under Uncertainty," Artificial
Intelligence Review, 1991 [5] pp. 89-119.

Three articles in Non-Standard Logics for Automated Reasoning, Academic
Press, 1988, edited by Phillipe Smets, E.H. Mamdani, and Didier Dubois.

"A Variant of Church's Set Theory with a Universal Set in which the
Singleton Function is a Set," Logique et Analyse, 2016 [59].

"Fixing Frege's Set Theory," talk at the Stanford University Mathematics
Department, 2014.


Education

Balliol College, University of Oxford.  Thesis for a doctorate in mathematical
logic completed, and published by Logique et Analyse.  The results are
summarized in sections 4.1 and 4.3 of Set Theories with a Universal Set, by T.E.
Forster (Oxford Logic Guides 20, Clarendon Press, Oxford, 1992).

Yale University.  B.A., Mathematics and Philosophy.  Anthony D. Stanley
Award for Excellence in Pure and Applied Mathematics.

Phillips Exeter Academy.  Graduated cum laude.


Languages

Latin, Greek, French (fair), Russian (fair), German (fair).


User and Developer Groups

I was webmaster and co-founder of the Stanford Newton/iPhone User Group
from 1994 to 2014, president and founder of the Stanford PalmPilot User
Group from 1997 to 2009, chief judge for the PalmHack IV-VII programming
contests, and founder of the LinkedIn Static Code Analysis Group.

________________________
* Contractor or contractor to employee