|Location:||San Francisco, CA — not interested in relocation|
I'd like an opportunity to work on a small team on a high volume consumer application, where I can act in a variety of technical roles and fill in the gaps in other team members' skill sets. I'd be happiest continuing to work with Ruby on Rails.
I'm a pragmatist, always willing to adjust what I'm using and what I'm doing to the situation, regardless of dogma or fads in technologies and processes. I have the experience to help a team decide what to use and what processes to follow, in order to be most productive. I've proven that I can lead teams of up to 30 developers, or work as just another engineer in the trenches. I'm willing to help a team out by doing the dirty work that makes the team more efficient or the code healthier, but which is less fun than bringing a new feature to life. My skills are broad enough to allow me to act as a competent DBA, sysadmin, UI designer, project manager, requirements analyst, or sales engineer when the team needs someone to do a few hours of that type of work.
Senior Developer, Serious Business. November 2009-Present. San Francisco, CA.
Lead Developer / acting CTO, Thentic. May 2009-November 2009. San Francisco, CA.
Senior Software Developer, Planet Metrics. December 2008-May 2009. San Bruno, CA.
Founder / Lead Programmer, WhatYouAte. December 2006-Present. San Francisco, CA.
Consultant, HumTum. January 2008-June 2008. San Francisco, CA
Principal, Pervasive Code. January 2006-December 2006. San Francisco, CA
Responsibilities: Freelance software development for mobile applications. Ported RIM Blackberry Java application to PalmOS (J2ME, MIDP 2.0, CLDC 1.1 on IBM WEME runtime). Extracted common classes and created a separate library build with unit tests to ensure proper functionality before deploying the code into a resource and UI constrained device. Altered that J2ME application to target lower-end MIDP 1.0 phones. Developed prototype RSS reader in C to help estimate effort required to reimplement J2ME application as a native PalmOS application. Reimplemented J2ME application as native PalmOS application using Handheld Basic (HB++).
Senior Associate, Technology, SEC Ventures. January 2004-January 2006. San Francisco, CA
Senior Architect / Project Manager, Planitax. November 2001-January 2004. San Francisco, CA
Responsibilities: Define and implement software development processes, standards, and deliverables for several commercial enterprise software products through the full product life cycle (including 2 major releases of one product). Direct an offshore software development team and review their work. Direct and supervise local production support and professional services engineering work. Define technical system requirements and application architecture, and evaluate possible components for inclusion in this architecture. Mentor local and offshore developers. Travel to the offshore developers' offices during the design phase to communicate requirements and to jointly create the product design. Collaborate with the Product Manager and with Professional Services staff to create functional specifications deliverables. Brainstorm new collaboration techniques to improve efficiency and communication with the offshore team. Lead performance testing efforts and pinpoint application bottlenecks. Manage internal IT environment and IT outsourcing contracts for email, hosting, connectivity, and desktop support.
Manage transition of development efforts from offshore team to in-house development staff. Manage migration of production environment from one managed hosting provider to another (twice). Manage T1 transition from one ISP to another (twice) including troubleshooting and physically repairing miswired T1 line. Design computer security enviroment including Active Directory deployment, VPN, antivirus, and firewalls (packet-filtering and application-level on Cisco and Check Point platforms). Define job descriptions and create hard skills quizzes and phone screening questionnaires for engineering positions.
Independent Contractor. May 2001-November 2001. San Francisco, CA
Responsibilities: Port a Flash based game to PalmOS using the J2ME (Java 2 Micro Edition) CLDC / KVM. Evaluate different embedded Java platforms (Waba, IBM J9, Kada, JBed, J2ME) for general application development, and for game development specifically.
Senior Technical Architect, Sapient. February 2001-April 2001. San Francisco, CA
Responsibilities: Assist with sales pursuits involving Fortune 1000 companies as prospective clients. Research past Sapient project documentation in order to refine proposals. Create and edit proposals and sales presentations. Specify team skill sets and resource requirements and level of effort estimates. Define project approach, main tracks of work, detailed activities and deliverables.
Senior Developer, Viant. October 2000. Mountain View, CA
Responsibilities: Lead a two-person development "swat team" assisting a client with a high-profile development project which was behind schedule. Suggest architectural changes to improve performance. Work with client's DBA to improve application performance. Technologies included Java 2, Tomcat, Ant, Oracle 8i & InterMedia, Perforce, JBuilder, and XML.
Technical Architect, Viant. June 2000-September 2000. San Francisco, CA
Responsibilities: Define the high-level logical architecture for a client. Research very recent product releases, technical white papers, and technical articles relevant to this architecture in order to take advantage of important cutting edge technology with a proper understanding of the risks and trade-offs involved. Specify a development hardware and software environment and oversee its setup by a system administrator and a database administrator. Configure WebLogic Application Server 5.1 on Solaris 2.8 for development. Work with the Lead Technologist to define a set of prototype goals in order to mitigate architectural risks. Learn StarTeam administration, set up project repository, write installation and configuration documentation, and provide brief training to two project teams.
Lead Technologist, Viant. February 2000-May 2000. San Francisco, CA
Responsibilities: Carry forward technical architecture defined in previous assignment into implementation. Collaborate with Lead Tech from the project's Experience phase to assess the scope of work and develop a project plan for the Launch phase. Determine project cost and duration, and required roles for the Launch team. Complete web page template research begun initiated in the Experience phase to assess suitability to this project. Recommend a complete set of tools and technologies for use with this project and collaborate with the client to reach a final tool and technology set. Produce a list of products and pricing for all tools and technologies needed for this project. Review and revise Java API design for system components developed offshore.
Work with a startup client to define high level system requirements and assess potential technology partners. Interact frequently with the CEO, CTO, and President of the client company. Act as primary organizer and contact person for this work. Define technical criteria and create an overall analysis framework for technology partners. Refine criteria and drive to a final recommendation.
Technical Architect, Viant. October 1999-February 2000. San Francisco, CA
Responsibilities: Define technical architecture for a multimillion dollar web development project for a Fortune 1000 company. Define coding standards and gain consensus from developers. Evaluate the expertise level of developers and structure mentoring and growth opportunities for developers according to their abilities and needs. Define logical application architecture and present implementation guidelines to developers. Define build and release process. Refine build system from previous project to support more modular reusable components. Integrate reusable modules from previous project into current architecture. Oversee development of additional build environment convenience scripts for developers. Define QA process based on existing Viant intellectual capital, and select appropriate QA tools. Oversee evaluation of commercial object-relational mapping tools and review product recommendation. Define a set of coding standards, detailed application model with best practices tips, general Java best practices and coding tips, and publish these assets companywide. Review source code, object models and implementations across teams within the project to assure adherence to coding standards, good OO design practices, and communication of reuse opportunities between developers. Direct research in an Experience phase project into new technologies for web page templates. Collaborate with the client to define a physical architecture for the pre-production and production systems, including participation in meetings with their vendors. Collaborate with the client on all of these decisions to ensure that their operational and process requirements are incorporated into the development process.
Senior Developer, Viant Technology Center. March 1999-October 1999. San Francisco, CA
Responsibilities: Software engineering and web application development research. Develop a multitier web application incorporating very large scale object caching, a custom object-relational mapping subsystem, and integrate it with an existing business system. Full lifecycle development involving requirements gathering, HTML UI mockup, UML object modeling and roundtrip design using Together/J, and development of a GNU Make based build system for NT and Unix. Define a model for reusable source-code assets and publish all work in that form. Install and configure IBM WebSphere Application Server on Windows NT. Meet with vendors and analyze new tools and products for possible companywide partnerships. Publish meeting notes, whitepapers, and points of view to the rest of the company. Present published assets in person to Viant offices around the country.
Independent Consulting. January 1999-February 1999. Arlington, VA.
Responsibilities: Solaris and Linux system administration. Disk space management, backup administration, shell scripting, startup script configuration. Installation of secure shell (SSH) software. Installation and configuration of Java Web Server and JDK. Scripting of customer Web server access log rotation and analysis system. Installation and configuration of TCP wrapper security software. Installation of redir port redirection software for X windows connectivity through IP masquerading firewall.
Senior Software Engineer, NetResponse/iXL. September 1998-December 1998. Vienna, VA.
Responsibilities: Development cost estimation, sales, and technical strategy consulting. Linux, Solaris, FreeBSD, and Windows NT system administration. Leadership of a high-profile, large scale web site troubleshooting assignment involving Solaris, Java, Java Web Server, Oracle (7 and 8), Verity, Perl, and LiveWire. Solo development of an application-specific automated load testing tool in Java, and deployment of a dedicated network monitoring appliance to support this application. Java Server Pages research, and development of NR's first JSP-based client project.
Senior Consultant, Westlake Solutions, Inc. December 1996-August 1998. Washington, DC.
Graphic Designer / Internet Specialist, Westlake Solutions, Inc. March 1996-December 1996. Washington, DC.
Responsibilities: Creating mostly-static web sites: HTML editing, page layout, graphic design, Unix virtual server configuration, domain registration, name server configuration, proposals to potential customers, documentation, customer technical support. Perl CGI scripting. Also general graphic design work for print advertisements.
Coursework toward BS in Electrical Engineering, Four semesters of study completed. Sept. 1990-May 1991, June 1992-Dec. 1992. The George Washington University, Washington, DC. Coursework: Engineering Chemistry, Engineering Physics, Single Variable Calculus, Fortran, Pascal, Multivariable Calculus, Statics, 68000 Assembly Language.
Non-Degree Studies in Computer Science, Three courses completed. Sept. 1991-May 1992. Virginia Commonwealth University, Richmond, VA. Coursework: Data Structures in Pascal, Discrete Mathematics, Advanced Single-Variable Calculus.