Stack Overflow: http://stackoverflow.com/users/856925/kaolin-fire.
Apple App Store: https://itunes.apple.com/us/developer/kaolin-fire/id506161943.
Other Apps I've Written: TextDetective: https://itunes.apple.com/us/app/textdetective/id541494875?mt=8, MagniFire: https://itunes.apple.com/us/app/magnifire/id589564315?mt=8, Saintify: https://itunes.apple.com/us/app/saintify/id608804799?mt=8.
- BS in Electrical Engineering/Computer Science, 1995-2000. Focus in Bioelectrical Engineering. Core courses included digital design, signal processing, bioelectrical interfacing, algorithms, and system modeling.
University of California, Berkeley (Berkeley, California, USA)
Skills 3.1 [2015+]
Languages: Objective C/C++/C, Python, Swift, glsl/gles.
Language Toolkits: OpenCV, Dlib, sklearn.
Programming: Product Development and Management, Process Definition, Architecture Definition and Review, Computer Vision/Machine Learning.
Databases: PostgreSQL, MySQL, sqlite.
Software: Adobe Photoshop, Xcode, vi/vim, Jenkins.
Server Software: git, bash/tcsh, aws-cli.
Operating Systems: OS X, Linux (Ubuntu).
Skills 3.0 [2010-2015]
Languages: Objective C/C++/C, Python, AS3.
Language Toolkits: Cocos2d, OpenCV.
Programming: Product Development, Algorithms, Object Oriented Design, Computer Vision, Probabilistic Graphical Models.
Databases: PostgreSQL, MySQL.
Software: Adobe Photoshop, Xcode, vi/vim.
Server Software: git, svn, bash/tcsh.
Operating Systems: OS X, FreeBSD.
- Neuroelectrical Engineering. This includes neurochemistry, biology, electrical engineering, interfacing, artificial intelligence, theories of consciousness, chaos theory, and all things related.
- "The Arts". I enjoy painting (generally abstract/surreal), and writing fiction and poetry. I run a few writing-related sites and publish an award-winning magazine of literary + genre fiction, poetry, and art.
- Gaming. I develop the odd computer game on the side: desktop (Win/OSX/linux), Flash, and iPhone. That's generally how I sit down to learn a new language, platform, or technology, if I don't already have a problem defined for me.
Excellent communication and problem-solving skills, with a strong ability to adapt to the situation at hand.
Specialties include (but are not limited to) database interfaces, creating data channels between heterogeneous systems, quickly evaluating and learning new technologies, and designing systems that run themselves.
Many years of experience using and administering a wide range of computer platforms.
Well-rounded person with an eclectic set of interests, ideas, and hobbies; I add personality and depth to any situation.
Favorite words include: context, perspective, and scale.
Principal Architect / Director of Research / Director of iOS / Subverter of Product
DITTO (San Francisco, California, USA)
- Core technology - face-shape based recommendations - dug into data and metrics, expanded ground truth meaningfully, defined the necessary targets and methodology for achieving same
- Core technology - scaling - dug into technology stack to fix egregious errors in a new scaling technology, defined processes for evaluating and roadmap for creating tools and addressing issues
- DITTO iOS SDK - theater - translated an adobe after effects video into a data-driven API and consumer-facing CoreGraphics animation
- DITTO iOS SDK - vto + iq - directed and implemented core functionality for iOS interface to virtual-try-ons, theater, and recommendations
- Various enterprise/partner iOS apps - defined, executed and/or managed execution of a handful of bespoke and white-labeled in-store apps and technology demo apps
- Process - product specifications - defined a template for product and project specification to standardize expectations, change management, sign-off, and releases
- Process - artefacted releases and gitflow - helped drive definition and adoption of git branching strategy and repeatable/documented/tagged releases, as well as semantic versioning
- DITTO js SDK - principal architect of major refactor focusing on ease of client customization/implementation and simplification/separation of technology stack
- Process - implemented CI for iOS SDK and several iOS products
A9 (San Francisco, California, USA)
April 2014-June 2016
- Architected, prototyped, designed, and implemented portions of—and managed a small team implementing the rest of—a city-scale data acquisition project (Python, C++, Objective-C, PostGreSQL, computer vision, UX)
- Advised/mentored/assisted the building of supporting tools for same, and building them out for other projects (Python, Flask, SQLAlchemy, PostGreSQL, js)
- Presented two posters and a talk at successive internal computer vision conferences; chaired another set of talks at same. (Keynote, UX)
- Implemented several prototype apps for exploration of UX and technical ideas (Photoshop, UX, Objective-C)
VP of Products
Blindsight (Berkeley, California, USA)
September 2012-April 2014
- Guided development on an increasing array of products (Objective C/C/C++, Photoshop, UX)
- Wrote and submitted grants to the NIH and NSF; developed an academic poster as well as a Google Talk (Keynote)
Senior Software Engineer
Blindsight (Berkeley, California, USA)
September 2011-September 2012
- Turned a decade of research into a real product on the App Store; drove UX for accessibility and "curb appeal"; product has received rave reviews from the blind community (Objective C/C++, Photoshop)
- Developed a number of iOS proof-of-concept apps and research tools for internal use and to promote the technologies involved to interested parties (Objective C/C++)
- Designed and implemented a "ground truth data system" for collecting and annotating data to help train our algorithms against (Python, CherryPy, Postgresql, Octave)
- Defined a simple and efficient clustering algorithm for a key tier of our text detection algorithm
Senior Software Engineer
510 Systems (Berkeley, California, USA)
June 2010-August 2011
- Maintained and extended company's flagship software (git, C++, cmake, Qt)
- Developed a proof-of-concept server for GIS-related information (python)
- Instigated, developed and maintained a company-wide database of information where none had existed; extended with three separate front-ends, with the intention of bringing them together after further exploration (python, php, js, sqlite, cron)
- (2011)Heaven and Hell (http://erif.org/code/games/tetris.php) Implemented the xkcd comics "Hell" and "Heaven" within 12 hours of their being posted. "Heaven" was posted about on Boing Boing, ycombinator, kotaku, and more. Written in AS3.
- (2008)Detritus (http://erif.org/code/detritus/) maps the standard Asteroids torus to the surface of a sphere; the game is largely unchanged from traditional play excepting the use of 3d models and the odd orientation of the rest of the playing field (and a few powerups). This was my first serious foray into C++, and gave me a chance to brush up on trig and geometry, as well as learn about quaternions. Written in C++ with OpenGL, OpenAL, and SDL.
- (2003)Falling Up (http://erif.org/code/fallingup/) is a "twist" on the standard falling tetronimos game, and is by far my most well-received. Building on ideas of an earlier version ("Groovy Tetris" ~ written with a C core and compiled with MFC for Windows and GTK+ for linux), this was my first foray into OpenGL. I later ported Falling Up to the iPhone using an ObjectiveC wrapper (and the reduced OpenGL ES library), but had to remove the app from the app store due to complaints from The Tetris Company.
- (2001-)poemranker (http://poemranker.com) is a cross between a poetry workshop and the amihotornot phenomenon. I designed, wrote, and maintain the site. It was Yahoo's pick of the day (July 7, 2002) and has been covered in the UK's Guardian, twice, and once on BBC Radio 2.
Last modified 29 September 2017.