Professional Objective
I thrive on brainstorming back-of-napkin ideas and turning them into visceral reality, teasing out what works and doesn't. I want to work on something that will change the world for the better, either in some small way pervasively or by some fundamental shift.
TL;DR:
Github: https://github.com/kaolin/.
Stack Overflow: http://stackoverflow.com/users/856925/kaolin-fire.
Apple App Store: https://itunes.apple.com/us/developer/kaolin-fire/id506161943.
Google Play Store: https://play.google.com/store/apps/dev?id=6434898383935656011.
Education
- 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.2 [2020+]
Languages: Python/Jupyter, Objective C/C++/C/C#, Swift.
Language Toolkits: OpenCV, Dlib, sklearn, celery, flask, requests, pandas.
Software Development: Product Development and Management, Process Definition, Architecture Definition and Review, Computer Vision/Machine Learning, CI/CD (Jenkins), git.
Databases: PostgreSQL, MySQL, sqlite, cassandra, redis.
Software: Adobe Photoshop, Xcode, Unity, vi/vim.
Operating Systems: OS X, Linux (Ubuntu).
Cloudstuff: kubernetes, docker, ec2/gcp.
Interests
- 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 published 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.
Miscellany
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.
Employment History
Principal Architect
Grabango (Berkeley, California, USA)
June 2018-April 2020
Achievements:
- Business - discovered a disconnect in system expectations between engineering and leadership, pitched novel solutions, and helped the business understand the disconnect such that they could realign their own and customer expectations and shift the product roadmap.
- Core technology - saw a failure in hardware expectations, dug into failure modes, developed a system to characterize and triage hardware prior to installation; worked with third-party contractors to further improve process and recoup investment.
- Core technology - developed a novel solution for sensor extrinsics determination; worked with third-party contractors to build out the interface to decrease development time.
- Core technology - delved into networking and SPI interfaces to assist debugging custom hardware; managed burn-in testing and evaluation.
- Process - product specifications - defined a template for product and project specification to standardize expectations and expose miscommunication.
- Process - mentoring - mentored junior and senior engineers towards better software definitional processes and understanding of business, product, and engineering needs.
Principal Architect / Director of Research / Director of iOS / Subverter of Product
DITTO (San Francisco, California, USA)
June 2016-June 2018
Achievements:
- 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.
SDE III
A9 (San Francisco, California, USA)
April 2014-June 2016
Achievements:
- 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
Achievements:
- 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
Achievements:
- 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
Achievements:
- 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).
Software Architect/Developer
(personal projects)
1998-Present
Achievements:
- (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 3 July 2020.