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 2.0
Languages: AS3/Flex, C/C++/Objective C, SQL, PHP, JavaScript, HTML/xHTML, CSS, Python.
Language Toolkits: OpenGL, OpenAL.
Programming: Algorithms, Object Oriented Design, E-commerce, Cross-platform development, XML.
Databases: MySQL.
Software: Adobe Photoshop (8-CS2), vi/vim.
Server Software: BIND, Apache httpd, varnish, postfix, svn, mailman, bash/tcsh.
Operating Systems: Linux (Fedora), FreeBSD, Dos/Windows, OS X.
Skills 1.0
Languages: Java, JSP/Servlets, JDBC, Perl, Lisp/Scheme, Motorola 6510 Assembly, MIPS, LaTeX.
Language Toolkits: GLUT, MFC, DirectDraw, GTK+, SVGAlib.
Programming: Patterns & Antipatterns, i18n.
Databases: PostgreSQL, SQL Server, Access, mSQL.
Software: Blender, Gimp, make/ant.
Server Software: Resin, Tomcat, Sendmail, CVS/Perforce, bash/tcsh.
Electrical Engineering: Embedded devices, Fourier/Laplace/Z transforms, FPGA design.
Operating Systems: AIX.
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 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.
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
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)
Partner
Hand Brewed, LLC (Los Angeles, California, USA)
January 2006-Present
Achievements:
- Managed, architected, and/or developed over fifty projects for a wide variety of client needs/budgets, including:
- Developed iPhone proof-of-concept-app to integrate with varied data sources over multiple threads.
- Launched full re-development of valenciaacura.com (custom content management system, integration with Reynolds & Reynolds inventory system, integration with VINLink VIN detailing system)
- Launched full re-development of campusbooks.com (custom content management system, custom reporting, ongoing maintenance and extensions of development)
Adjunct Faculty
College of the Canyons (Santa Clarita, California, USA)
August 2006-May 2008
Achievements:
- Taught C as an intro-level programming course and C++ as a second-semester course; focused C around procedural code with specific attention to scope, memory management, and problem solving. C++ focused on OO-Design paradigms and using other libraries such as wxWidgets, SDL, and OpenGL.
Programming Manager
Centric (Valencia, California, USA)
November 2004-January 2006
Achievements:
- Defined a solid and defensible requirements document format; this requirements document enabled clients, designers, and developers all to understand, discuss, and agree upon what was being done.
- Mentored more junior developers in languages and concepts; Delegated tasks and set timelines
- Created a fast and extensible framework for future development that is especially easy for a new developer to come up to speed on; shifted Centric's development paradigm towards fast development of modular, standards-heavy sites that load faster and are simpler and faster to maintain
- Managed and developed several key accounts; had a part in redeveloping several sites for Memorex, as well as local organizations and large email campaigns.
Lead Developer
Timbuk2 Designs (San Francisco, California, USA)
June 2003-November 2004
Achievements:
- Re-architected the business logic of the website so as to integrate it with manufacturing and finance, normalizing information storage.
Freelance Web Developer
Self-employed (Oakland, California, USA)
July 2002-June 2003
Achievements:
- Continued to expand on techniques and strategies developed at Pharsight nee Metazoa.
- Built a string of websites for companies and individuals of disparate taste and requirements.
- Advised on and maintained legacy code.
Lead Engineer
Pharsight Corp, formerly Metazoa, Inc. (San Francisco, California, USA)
March 2000-July 2002
Achievements:
- Designed an enterprise intranet application and managed a small team of programmers to implement it. Chose technology platforms and designed product development cycles and documentation standards. Mentored team members and anyone interested in the technologies involved.
- Designed and implemented a system for pharmaceutical R&D, with complete auditing, revision control, and user authentication, including design of application and server security, with JSP/servlets and a transactional DB.
- Maintained and tuned FreeBSD, MySQL, PostgreSQL for optimal performance and security.
- Maintained/streamlined/refactored old and externally developed code.
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.
- (2005-)alethe.net is my personal server, originally running Fedora Core 2; have upgraded remotely up to FC8. It serves roughly a dozen websites of various traffic levels on various technologies (MySQL, PostgreSQL, Tomcat, Apache httpd, varnish, postfix, mailman, php/jsp)
- (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 4 August 2011.