Zorched / One Line Fix

Musings of a software developer in Milwaukee, WI.

Geoff Lane’s Resume

Skills

Programming Languages:

Fluent: Java, C#, Ruby

Conversational: Objective-C (Cocoa), Groovy, Erlang, Python, JavaScript, PHP, Unix Shell Scripting

Familiar: C, C++, Perl

Technologies:

Java — Spring, Hibernate, Seam (EJB 3.0, JPA, JSF), Tapestry, Servlets, JSP, Tag Libraries, Jakarta Struts

Ruby on Rails

.NET — C#, ASP.NET , ADO.NET

SQL — ANSI SQL, Transact SQL, (MS SQL Server, Oracle, MySQL, PostgreSQL)

XML, XSLT, XPath, SOAP, HTML, XHTML, CSS, Javascript

Other Tools — Idea, Eclipse, Net Beans, Visual Studio.NET, Subversion, Git, CVS, Ant, NAnt, MSBuild, xUnit, Bugzilla, CruiseControl, Jira, Confluence

General Development:

Object Oriented Programming and Design (OOP/OOD), Architecture, Design Patterns, Refactoring, Unit Testing

Methodologies:

Agile, Extreme Programming (Iterative Development, Refactoring, Unit Testing, Automated Functional Testing, Build Automation, Continuous Integration, Pair Programming)

Operating Systems:

Mac OS X, Unix, Linux, Solaris

Windows NT/XP, Windows Server 2000/2003

Certifications

Sun Certified Programmer for the Java 2 Platform — Feb 2002

Experience

Sr. Consultant, SpiderLogic; Milwaukee, WI — Oct 2005 - Present

Lead efforts to architect, design and implement solutions for clients working with a distributed team of developers (4 offices in 2 countries). Work with sales to provide solution architecture and estimates for clients.

  • Designed and implemented custom WebDAV server in .NET/C# to provide access to files stored in a database allowing users to map network directories to virtual filesystem.
  • Researched and help implement Tapestry, Spring and Hibernate application rearchitecture to better leverage Hibernate and improve performance.
  • Designed and led implementation of .NET Compact Framework application that integrated with a Java based Web application using SOAP Web Services. Included configurable user interface and reliable delivery of messages.
  • Implemented Groovy and Grails based web applications for managing and reporting attendance, eligibility and meals for Head Start programs.
  • Provided architectural guidance and mentoring to large Java and .NET shops implementing SOA.
  • Worked with organizations in many markets including Emergency Management, Insurance, Auction, Non Profit Services and Banking

Lead Developer, B2P Commerce Corp.; Chicago, Illinois — Nov 2002 - Oct 2005

Designed, architected and developed a web-based performance measurement, reporting and analysis system which allowed Nonprofits to measure social impact and report to funders. Foundations and other funders could track grants, manage organizational objectives and aggregate grantee performance through the system. The system was successfully used by 25 Foundations and approximately 1500 nonprofits.

  • 3-tier, distributable system built on Microsoft’s .NET platform using C#, ASP.NET, and SQL Server
  • Architected a flexible database to cope with changing data storage requirements and business rules
  • Built and designed user customizable, data driven data collection modules to allow funders to easily collect, aggregate and compare data from many different nonprofit organizations
  • Implemented real-time integration with external partners through SOAP services
  • Assist analysts with developing requirements, estimating effort, and prioritizing work
  • Applied agile methodologies to ensure ongoing product quality and to adapt to a highly dynamic business environment
  • Developed tools, created scripts, and setup systems for a one-step scripted build including unit testing, functional testing and database creation
  • Setup and maintained systems for source control, defect tracking and continuous integration
  • Mentored and coached junior developers

Technical Team Lead, JG Sullivan Interactive; Chicago, Illinois — Apr 2002 - Nov 2002

Lead a team in architecting and developing consumer and business facing e-commerce solutions for the home appliance and flooring industries. The system allowed leading brand name appliance manufacturers to sell online through their local dealers.

  • Lead a team of 8 people in developing a mixed Java (Struts) and Perl based system
  • Made architectural and design decisions, assigned developer tasks, and advised management on the best technical courses of action
  • Developed XML based communication system to pass data between appliance manufacturers and their dealers to aid in selling online
  • Ran daily standup “Scrum” meetings to keep team up-to-date and to keep communication open

Java Engineer, Inclusion Inc.; Los Altos, California — Mar 1999 - Feb 2002

Developed web-based collaboration tools used by a number of large organizations for knowledge management and distance collaboration. The system was built on top of a Java servlet infrastructure with an Oracle back end and deployed on the Tomcat servlet engine.

  • Designed new data models and wrote code to implement features based on specifications from clients and in-house requirements
  • Developed a servlet and XML-based remote authentication (Single Sign-On) protocol to allow authentication against remote systems and a seamless user experience
  • Designed and implemented a file attachment mechanism allowing users to upload and share files
  • Designed and implemented an address book import and sharing system to integrate with Outlook contacts
  • Ported Java 1.1/Servlet 2.0 application to Java 2 (1.3)/Servlet 2.2 specification allowing us to move to Tomcat and improve performance
  • Customized template-driven web pages for clients
  • Installed and maintained production Linux servers for image serving, DNS and CVS

Education

Ohio University Honors Tutorial College, Athens, Ohio — Bachelor of Arts in Philosophy, 1999

University of Santa Cruz, Santa Cruz, California — Coursework Programming in Java, 2000

Open Source

TestMaker

Designed and implemented Tool (Test Object Oriented Library) — a Java-based framework for building automated tests for SOAP Web Services, dynamic Web sites and other Internet protocols. TestMaker was built on top of Tool and run through Python scripts using the JPython implementation. Both portions are licensed under the GPL license.

SQLSchemaTask (NAnt Task)

Developed an NAnt task to reverse engineer a SQL Server database schema (using SQL DMO) from an existing database to allow for easy scripting of database creation and modifications.

MSBuild Community Tasks

Contributed bug fixes and developed new tasks for the project. Specifically dealing with Subversion automation.

MigratorDotNet

Committer on the project. Undertook a major refactoring of the code base to make creating providers easier, implemented a high level of unit test code coverage, implemented MSBuild automation, implemented SQLite support.

Colophon

Geoff Lane is a software developer / architect / coder who writes about technology.

July 18th 2008
Tags: Code

One Comment

Member of the orignal 416 - Pradipta’s Rolodex

The 416 is an elite group of software developers (alright, some of them weren't software developers, and some of them were fresh out of school) brought together by Pradipita's mistaken use of CC. Who would have known what would come of such an innocent message: I have a couple of Ruby ...
June 19th 2008
Tags: Automation, Ruby

One Comment

Capistrano and Ferret DRB

This is a bit of a followup to my previous post on Capistrano with Git and Passenger. I decided to use Ferret via the acts_as_ferret (AAF) plugin. Ferret is a full-text search inspired by Apache's Lucene but written in Ruby. Basically Ferret and Lucene keep a full-text index outside of the ...
June 17th 2008
Tags: Ruby

2 Comments

Capistrano Deploy with Git and Passenger

One of the great things about Rails and its community is that they are very lazy. Lazy in the good way of not wanting to do boring, repetitive, error prone things manually. They metaprogram and they automate. A great example of this is Capistrano. Capistrano allows you to deploy Rails ...
June 10th 2008
Tags: Groovy

2 Comments

Package Grails DBMigrations in your WAR File

The Grails DBMigrate Plugin is a handy way to give you control over the generation of your database if you don't want Grails to auto-munge your schema. It works fine in development, but when you create a WAR for deployment on another machine the Migrations are not packaged in the ...
May 30th 2008
Tags: Erlang

2 Comments

Erlang Examples: Talk with Erlang

This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Implementing Talk with Distributed Erlang Make a simple Talk program that makes ...

Search

The archives run deep. Feel free to search older content using topic keywords.

Add to Technorati Favorites

SliceHost VPS

The Few, The Proud, The Pradipta 416