I bring excitement, enthusiasm and fresh ideas to the projects that I work on. I’ve always had a passion for technology. I continually self-train on new technologies and then introduce them into the workplace.

Through my books, articles and my presentations I’ve become skilled not only in learning new technologies myself, but in conveying this knowledge effectively to developers. This another key element that I bring to development teams.

Having great technology is important, but the key to success is solving customer problems. I bring a commitment to a practical customer-centric development approach.

Jobs

2010-current
Fortify
Sunnyvale CA

Senior
Software Engineer and Team Lead

SSC, FOD Team Lead, rapid prototyping of new products

At Fortify I helped to develop the SSC server product that enables security specialists to analyze results from static analysis, dynamic analysis and penetration testing. That work included the entire stack from front to back end. After that I lead the Fortify On Demand development using Agile and Scrum to develop and deploy nine releases in twelve months. I’m currently developing a new prototype product for their Runtime team. I have developed several prototypes for Fortify and HP. I wrote a paper on the novel visualizations for one of the prototypes and that paper was accepted to TechCon.

Focus on Flex: The primary UI technology for Fortify was Flex based. I was hired on in some part to bolster the team’s Flex abilities. I implemented several key features of their SSC application using both Flex and Java. I lead the FOD team in porting code from an older Flex and Java platform to an updated platform.

Focus on Java: I implemented several key features of both SSC and FOD in both Java and Flex. This included support for automated upload support. I also developed an RCP application using SWT for editing runtime configurations.

Focus on Ruby: I used Ruby to prototype a new web-based application to provide details on open source security. In that context I developed the full stack including database code, Rails MVC code, and Ajax front-end code.

Focus on Web technologies: I used both Flex and jQuery extensively at Fortify. The primary UI technology for both SSC and FOD was Flex. For my prototyping work I used an HTML5 stack and layered on top of it jQuery with our own custom widgets.

Focus on Leadership: At Fortify I helped indocrinate the team in the Agile methodology. I also ran the Fortify On Demand product for a year, which included nine successful releases.

Focus on Databases: I developed against database models for both SSC and FOD, as well as helping to diagnose database performance issues. I also worked to help educate my coworkers on the advantages of technologies such as Mongo and Hadoop.

Focus on Writing: At Fortify/HP I wrote a research paper that garnered entry into the 2011 TechCon, a prestigious technical conference held annually.

2009-2010
Ning
Palo Alto, CA

Senior
Software Engineer

Social network features, Virtual gifts, Ad targeting, Abusive content detection

At Ning I developed (as well as help design) several key projects in and around their primary social networking product. These included virtual gifts, photos and videos and network appearance. In addition I worked on analytics across Ning in support of the platform. I lead the effort to build a network categorization interface in support of ad targeting in Ruby On Rails. I also worked as both a team lead and on-call engineer when required. My work at Ning, which has 1.6 million networks and 40 million users and growing, provided experience in working at scale.

Focus on Databases: At Ning I worked with DBA to diagnose performance issues with the databases that drove the social networks. In addition I learned and used Hadoop for data mining. I also developed a database for the network monitoring application using MySQL.

Focus on Ruby: PHP was the primary language at Ning for application work, but while working on the ads team I developed a complete Rails application for network monitoring.

Focus on PHP: PHP is the primary applications language for Ning’s social network application. I developed Object Oriented PHP code for the model and view portions as well as template code for the user interface.

Focus on Web technologies: Ning made extensive use of Javascript to build a highly dynamic interface. I wrote a lot of Javascript at Ning, including a notable complete rewrite of their website appearance editor.

Focus on Leadership: At Ning I lead the group that build a social network monitoring application. Starting with a prototype that I developed we added an additional development resource as well as two QA engineers to the team. I ran the project using the Agile methodology.

2004-2009
Leverage Software
San Francisco, CA

Senior
Software Engineer

Data visualizations, Widgets, Rich Internet Applications

I built cutting edge user experiences for the social networking platform using Flex, Silverlight and Ajax. I developed a widget toolkit that used innovative transport techniques to get Leverage’s social networking data on any site. I developed all of my features completely from the database back-end to the rich Internet application front-end.

Focus on Databases: Leverage was a small enough company that no engineer could specialize, we all had to be full-stack engineers. As such I developed all of the database schema and stored procedure code for the features that I implemented.

Focus on Flex: Leverage used Flex for some of the more complex client-side data visualizations for it’s customers to view activity on their network. I developed these Flex applications and maintained them on a “Leverage Labs” site.

Focus on .NET: Leverage used ASP.NET and C# for their web servers. I wrote several key features of the social network application from the model and controller code all the way to the front end page templates including the Javascript when required.

Focus on Web technologies: I pioneered the creation of Javascript ‘widgets’ at Leverage that allowed our customers to put information about what was happening on their social networks on their corporate portal sites. These widgets were written in pure JS without the aid of a framework to allow for maximum portability.

Focus on Writing: At Leverage I wrote and maintained all of the documentation for web designers to use the widgets I had developed.

2001-2004
Macromedia
Redwood Shores, California

Senior
Software Engineer

Document format translation, image editing, code analysis and generation

I implemented a mechanism to import Microsoft Word and Excel documents into Contribute. I added image editing features to Dreamweaver. I lead the migration of Flex Builder from the C++/MFC platform to the Eclipse platform. On Flex Builder I was the team lead on developing the code analysis engine.

Focus on Flex: I was a key member of the team building Flex Builder 3. My work was primarily focused on selecting the Eclipse platform

Focus on C/C++: I was a developer on the Dreamweaver application that was written in C++/MFC. I was the lead developer on the code that transformed Microsoft Office content into a HTML, as well as the image manipulation and Fireworks integration code.

Focus on Java: At Macromedia I used both C++/MFC for Dreamweaver and Java for Flex Builder 3. The primary focus of my Java code was in modeling the structure of the AS3 applications being edited by the user.

Focus on Leadership: I lead the small team that made the decision to move away from the Dreamweaver MFC platform used for Flex Builder 2 to the Eclipse-based RCP solution for Flex Builder 3.

Focus on Writing: At Macromedia I wrote the research summation and proposal to migrated from MFC to Eclipse for Flex Builder 3.

1999-2001
Certive
Redwood City, California

Engineering
Manager/Team Lead

Framework implementation, User interface toolkits, Team leadership

I was the first engineering hire and I built a team which I then led to build three releases of their innovative online service. We used Agile development practices on the LAMP platform to build a reliable, fast and well tested application.

Focus on Databases: I used code generation to build out the database schema, stored procedures and Perl code for accessing the databse in our application.

Focus on Web technologies: Though it was still early days for the Dynamic web we made extensive use of Javascript in both our transactional interface and our reporting. We also made use of early front-end automation to monitor the application in production.

Focus on Leadership: At Certive I hired on and lead a team of six developers and two QA engineers to build their first application using HTML::Mason and Perl. This was before the Agile methodology became popular, but we ran the project in a very lightweight Agile manner.

1993-1999
Axon Instruments
Foster City, California

Engineering
Manager/Team Lead

Real time data acquisition, Device control, User interface toolkits, Team leadership

I was the engineering manager for two years at Axon. I successfully managed four different releases of three different software packages. As a developer I built and maintained the user interface framework for the entire company, as well as developing a high-speed multi-channel data acquisition system.

Focus on C/C++: At Axon I spent many years developing applications in C++ using the Microsoft Foundation Classes. I developed a replacement dialog management framework for the company, then trained our engineers on how to make use of it.

Focus on Leadership: After moving back to Foster City from Australia I became the solitary lead engineer in California. I hired on four more engineers, as well as managing three remote developers.

Focus on Writing: At Axon I wrote all of the API documentation, including tutorials and associated code examples, for the dialog framework I developed.

Books

I’ve written six books. These cover a wide variety of topics, from podcasting to meta programming.

Selected Articles

Over the years I have written more than one-hundred articles. The technologies cover the entire spectrum of front-end to back-end work.

Projects

To keep my skills fresh I spend much of my free time working on projects both for myself and for the open source community.

  • Ripley
    - A small interpreted language.
  • jQMusic
    - A jQuery widget set for music applications.