|
-
|
|
WORK EXPERIENCE
|
Digital River Technical Lead for SWReg E-Commerce
|
May 2008 - Present Eden Prairie, MN
|
|
In May, 2008, I was promoted to be Technical lead of a mid-size e-commerce platform written in C/C++ and Perl purchased by Digital River in 2005. I manage a team of three other developers as we work on building out new features for the platform as well as continually stabilizing and refactoring the legacy code that we've inherited. - Evangelized unit testing on a platform which previously had next to no unit testing. This allows the development team to begin making changes with more confidence as we can easily and quickly verify no regressions have been introduced into the code base. This also helps minimize human testing time as well as speeding the time to market.
- Introduced and integrated modern Perl technologies like Moose, DBIx::Class and Catalyst to enhance developer efficiency and platform stability.
- Provided leadership in developing a more predictable development capacity by increasing communication with the business owners throughout the development process. This has helped business owners recognize the cost of modifying (as opposed to rewriting) legacy code as well as setting realistic expectations that don't require heroic efforts to meet arbitrary deadlines.
-
|
|
|
Digital River Sr. Software Engineer
|
April 2006 - Present Eden Prairie, MN
|
|
My time at Digital River brought much more breadth to my skill-set. I branched out from my primarily Perl/MySQL development background and worked on large projects written in Java, Ruby and PHP with Oracle behind the scenes. I also gained experience working on larger teams where communication is both more important and difficult. Some specific accomplishments: - Proved my ability to learn new skills quickly to provide benefit to the team and company as quickly as possible. This included (at various points during my time at DR): getting up to speed on Ruby and Ruby on Rails, refreshing my Java knowledge from the five year hiatus, and deepening my relatively light PHP experience.
- Worked with five other developers in building a high-performance, large-scale data warehouse ETL toolset written from Java using best practices and industry standard tools like Spring, Hibernate and Maven with domain-specific tools like the JBPM workflow engine and Quartz scheduling engine.
- Helped build several internal web applications based on the Ruby on Rails framework utilizing AJAX.
- Added features to the php-based DirectTrack Affiliate Marketing platform on a team of more than 10 developers. This platform powers Digital River's oneNetworkDirect affiliate program, one of their most important marketing programs.
- Continually advocated improving quality by using automated unit tests (JUnit, Test::Unit) and tools (Selenium). This decreases the necessity for human testing which is costly from both monetary and time-to-market perspectives.
- Became the subject matter expert for many of the contributing platforms to Digital River's enterprise data warehouse project. This enabled us to provide developer time and expertise on third-party platforms to support the requirements of the data warehouse without distracting those platform's development teams from their existing projects.
- Integrated the Ruby Capistrano deployment tool with Digital River's internal release management tool to enable easy deployment of various platforms with minimal configuration. This has helped our team roll out several different platforms very quickly without spending a lot of time on a deployment strategy.
-
|
|
|
Holmes Corporation Sr. Software Engineer
|
June 2005 - April 2006 Eagan, MN
|
|
I was hired by Holmes Corp. with the goal of instituting change to a technology platform that was starting to reach the limits of it's maintainability (lot's of "Cut-N-Paste" programming) and scalability (software and release practices designed to be performed on a single server). Even though I was with Holmes Corp only a short amount of time, I accomplished much in overcoming these weaknesses in their e-Learning technology platform (built on Perl, HTML::Mason and MySQL): - Migrated the technology platform to use HTML::Mason's "multiple component root" functionality to allow code to be written once and reused across all clients while allowing modifications as needed.
- Redesigned test-taking engine from the ground up to support the various testing models already in use. The variable functionality is all driven by database configuration values to minimize custom coding for individual clients. This dramatically shortens the development cycle for new clients while decreasing ongoing maintenance costs.
- Developed a full-stack localization and internationalization framework based on Locale::Maketext to allow Holmes Corp to work with international clients.
- Designed and implemented domain-specific language for non-technical, instructional designers to write "application exercises" which provide learners with continually changing (random values within given parameters) learning exercises. This content is automatically parsed and loaded by the system and instantly available for testing with minimal involvement by the technical staff.
- Championed automated code testing to improve regression testing and decrease Q/A time. This included code quality testing using Perl::Critic to ensure code was written to appropriate standards.
- Advocated the use of a individual development environments as well as a seperate staging environment to provide reliable Q/A testing.
- Automated release process with various shell and Perl scripts to enforce revision control and standardized processes. This included an automated way to compare CPAN libraries and versions between various servers and automatically build and install the necessary versions onto the production servers.
-
|
|
|
FanBuzz, Inc Storefront Engineer / Sr. Storefront Engineer
|
July 2002 - June 2005 Minnetonka, MN
|
|
My programming experience at FanBuzz was primarily perl, utilizing HTML::Mason as a templating language and MySQL as a DB backend. I started as a storefront engineer working with small functionality tweaks and bug fixes. Since then, I have gradually become the primary engineer in charge of large-scale application development and design, working with both our storefront and backoffice teams. This includes a promotion to senior software engineer in the Fall of 2004. Some of my major accomplishments are listed below. - Greatly broadened FanBuzz's customer base by integrating with Amazon.com as a Platinum-level merchant. The system I designed and developed managed bi-directional data feeds including product and inventory information as well as orders shipments and refunds via their SOAP API with minimal human intervention.
- Helped design and implement abstracted data import and export system to manage integration with vendors and clients. This system separates the transport of data from the generation or processing of that data to enable easy error recovery at any stage of the process. We use this system in our integration with Commerce Hub, Amazon.com, Commission Junction, NBC/Universal and others.
- Provided online shoppers with the option of paying by check by integrating with CheckFree using their SOAP API. This reduces our fraud risk and decreases handling costs of processing mailed checks.
- Improved customer experience by developing full-featured product search engine technology. This search engine's technology includes word-stemming, spelling correction, fuzzy-logic matching and various limiters based on product classification, price ranges and boolean operators.
- Developed perl API to ZebraCard ID card printers to allow our warehouse management system to automatically print membership cards on demand for specific orders as components of a regular merchandise pick.
- Integrated our customer address and catalog request functionality with USPS's address standardization web API. Standardized addresses help in negotiating lower shipping rates and make cleaning and de-duping of catalog lists a much simpler matter.
- Built interface with Borderfree to allow Canadian customers to see accurate exchange rates, taxes and duties at the time of purchase as well as streamlining getting packages through customs.
-
|
|
|
Northwestern College Assistant Webmaster / Webmaster / Web Team Lead
|
December 1997 - June 2002 Roseville, MN
|
|
My time at Northwestern College started small as a work-study position and grew into a Web Team Lead position by the time I left. I utilized many different technologies ranging from CGI Perl scripts to PHP to Java Servlets, JSPs and the Velocity templating engine with MySQL and Informix on the backend.
-
|