resume

Adam Smith

Contents

Professional Experience

January 2008 to Present
Co-founder. Open Media Solutions LLC, Ithaca, New York.

Open Media Solutions creates hosted social networking solutions for niche markets.

January 2006 to Present
Software Engineer. Cornell University Library Systems, Cornell University, Ithaca, New York.

I work on an international digital preservation project to implement an Open Archive Information System (OAIS) for Cornell University Library (CUL) and develop a protocol for communicating with other OAISs. I have also been involved in key technology infrastructure initiatives that include implementing a Handle System server for persistent identifiers (PIDs) and an electronic resource management (ERM) system that uses OpenURL’s. With my team members, I helped pioneer the use of pair programming and test first development within CUL the produce high quality software and mitigate the risks of adopting cutting edge tools and standards. Most recently, I have been involved in the planning for the Microsoft Corporation large scale digitization initiative, and I am currently implementing the digital preservation aspect of this project.

January 2005 to Present.
Co-founder. Agile Enterprise Software LLC, Ithaca, New York.

Agile Enterprise Software is an independent software company providing high quality enterprise-class software to businesses and other organizations with an affordable total cost of ownership. My roles include software development and consulting, product development and branding, sales and customer service.

November 2002 to January 2006
Senior Software Engineer/Project Manager. Cornell Information Technologies, Cornell University, Ithaca, New York.

I worked closely with faculty in a team environment primarily developing solutions for a variety of projects in the Faculty Innovation Grants program. I was responsible for requirements gathering, estimating, design, development, testing, implementation, project management, and ongoing customer and technical support. This challenging work required that I not only learn and implement new technologies quickly, but learn them with enough depth to create solutions that are generalizable and reusable as a result. These solutions include cutting edge content management strategies, alternate user interface technologies, and more recently, the application of game design to teaching.

June 2002 to November 2002
Data Warehouse Applications Engineer. Claritas Inc., Ithaca, New York.

As part of a geographically distributed short term project, I led the Ithaca development team to create a high level API to a large Oracle data warehouse to easily query demographic data. This API was then integrated into a Web application that modeled the company’s workflow among departments and interacted with several different legacy systems. Throughout, I helped define the software standards used by the company.

September 1997 to May 2002
Senior Software Engineer/Team Leader. Albert R. Mann Library, Cornell University, Ithaca, New York.

My project-oriented work allowed me to collaborate with diverse people in every department of the library, and alongside representatives of many of the different libraries across campus to develop numerous Web based applications delivering cutting–edge functionality to library users world-wide. These systems have enhanced Cornell’s image as a world leader in the use of information technology to support research and they have both influenced and contributed to the overall IT strategy of the library. Several of these systems have been used by larger library software vendors, such as Endeavor Systems, as a model of how to incorporate the functionality of our online services into their software. I often worked directly with faculty and students to gather requirements, test the applications and provide ongoing support.

October 1996 to August 1997
Production and Operations Manager. Promotions Unlimited, Corning, New York.

I was in charge of scheduling and delegating all office and production functions as well as monitoring costs and job quality. I was also a part-time graphic designer and provided customer service, estimating and billing.

October 1996 to August 1997
Treasurer/Secretary. Finger Lakes Home Builders Association, Corning, New York.

I managed the finances for the organization and reported monthly to board meetings that I organized. I also helped coordinate other Association activities including advertising and public relations.

September 1994 to June 1996
Senior Claims Analyst. North American Health Plans, Amherst, New York.

Aside from evaluating and processing medical claims, I interpreted different health plans for, and acted as a liaison between, our clients, their employees, varied health care providers, and my supervisors.

Education

Syracuse University, Syracuse, New York.
Master of Information Science.

I learned relational database design and management as well as local area network design and administration. I learned basic programming in C, Perl and Visual Basic, and I gained a solid understanding of the many managerial issues facing information specialists every day.

Cumulative G.P.A.: 3.86

Cornell University, Ithaca, New York.
Bachelor of Science in Communication Arts.

I concentrated on written and visual communication, sharpening my researching, editing, and writing skills in a variety of styles, genres, and environments, as well as learning to design the visual presentation of my writings. My major was complemented by a variety of courses from the arts and humanities to the physical and social sciences. Throughout, I learned to work alone as well as in groups, critiquing others’ work and benefiting from others’ criticism.

Dean’s List honoree five consecutive semesters

Publications and Presentations

Smith, Adam (2007). “Developing Handle System Web Services at Cornell University.” D-Lib Magazine. Available: http://dlib.org/dlib/september07/smith/09smith.html.

Smith, Adam (2007). “Quick and Clean PHP Forms.” ONLamp. Available: http://www.onlamp.com/pub/a/php/2007/09/13/quick-and-clean-php-forms.html.

Smith, Adam (2007). “Introduction to iBatis.” Javalobby. Available: http://www.javalobby.org/articles/ibatis-introduction/.

Smith, Adam (2007). “Web Services Interface for the Handle System.” Handle System Workshop, June 21, 2007, Washington D.C. Available: http://hdl.handle.net/1813/7950.

Smith, Adam (2007). “Introducing Zoomify Image.” Information Technology and Libraries. 26.1: 48-51. Available: http://hdl.handle.net/1813/5410.

Bill Kehoe, Adam Smith (2006). “Co-operating Preservation Archives: Sharing OAIS Collections Among Dissimilar OAIS Repositories.” Digital Library Federation Conference, November 26, 2006, Boston, Massachusetts. Available: http://www.diglib.org/forums/fall2006/presentations/kehoe-2006-11.pdf.

Markus Enders, Bill Kehoe, Adam Smith (2006). “Bringing many tools together to build a system of co-operating OAIS’s in the MathArc project.” International Conference on Preservation of Digital Objects, October 10, 2006, Ithaca, New York. Available: http://hdl.handle.net/1813/3687.

Smith, Adam (2004). ILLiad: Implementing Software Off-the-Shelf. In Barnes, S. (Ed.), Becoming a Digital Library, Project Management and Implementation (pp. 171-173). New York: Marcel Dekker Inc.

Suzanne Cohen, John Fereira, Angela Horne, Bob Kibbee, Holly Mistlebauer, and Adam Smith (2000). MyLibrary: Personalized Electronic Services in the Cornell University Library. D-Lib Magazine. Available: http://www.dlib.org/dlib/april00/mistlebauer/04mistlebauer.html.

Professional Associations

Member, Beta Phi Mu, International Library and Information Studies Honor Society.

Software

Although my primary language for many years has been Java (I was an early adopter of the Struts framework, for example), I have years of experience in PHP, Python and Perl as well. I am also proficient in JavaScript, XHTML, CSS, and SQL, including specific work in MySQL, Oracle, Sybase, Microsoft SQL Server and Microsoft Access.

I am also an experienced project manager, following tenets of both the Extreme Programming and Adaptive Software Development methodologies. I have applied these in my work at Cornell University and for Agile Enterprise Software, an independent software company I founded.

Before becoming a software developer, I worked for several years as a graphic designer and copy editor. I still use these skills today in my work, especially for Agile Enterprise Software.

My Open Source Projects

(The following are projects for which I am the owner.)

Handle System Web Services
handle.library.cornell.edu

SOAP based Web Services supporting single and batched CRUD operations on a handle server for administering persistent identifiers.

Zoomify Image
sourceforge.net/projects/zoomifyimage

Zoomify Image was developed in cooperation with Zoomify Corporation (www.zoomify.com) to provide a cross platform, scriptable version of their conversion software integrated into the Python language and the Zope Application Server. Zoomify Image enables fast, efficient viewing of high resolution images through the web, including images many Gigabytes in size. This not only allows for the publication of images to the web that would not be possible normally, but the Zoomify interface also adds advanced capabilities to images including annotation support, and multi-user synchronized panning and zooming among others and is ideal for many image content management and digital library applications.

Agile Author
digdocdb.sourceforge.net

Agile Author is a framework built on top of the Zope Application Server (www.zope.org) that can be used to develop networked repositories of digital information such as digital libraries and content management systems. Agile Author (AA) represents a unique approach to the storage and retrieval of digital information and is appropriate for a wide range of needs.

Django RESTful Model Views
code.google.com/p/django-restful-model-views

This project is an attempt to make it easier to develop applications RESTfully in Django, providing functionality similar to what is available in Ruby on Rails.

Firefox search plugin for Cornell University Library’s online catalog.
mycroft.mozdev.org/download.html?submitform=Search&sherlock=yes&opensearch=yes&category=46

simpliPHy (Currently inactive)
simpliphy.sourceforge.net

SimpliPHy is a model-view-controller (MVC) framework for PHP based on the design of Jakarta Struts. While there are existing MVC frameworks for PHP, including two PHP ports of Jakarta Struts, I believe that SimpliPHy is unique in its approach. Instead of attempting to be a direct port of Struts, SimpliPHy implements the basic design of Struts while taking advantage of PHP’s unique strengths. The design goals for SimpliPHy are to create a very simple, lightweight design that is also robust and flexible. The result is a framework that is easy to learn and use to quickly build a more maintainable Web application.

Other Open Source Contributions

(The following are other open source projects to which I have contributed.)

oscMall
www.systemsmanager.net

While implementing this multi-shop fork of the famous osCommerce application for an Agile Enterprise Software customer, I contributed dozens of bug fixes, provided online support to other users of the system, and wrote a popular dynamic report of store sales that has become one of the most downloaded add-ons to oscMall. Because of my active role in the oscMall community, the project owner invited me to join the core development team in March 2006 which has allowed me to add new functionality to the core product for each new release.

Faster Dapper
www.dylanknightrogers.com/2006/07/17/faster-dappersh

I contributed a bug fix to software that tweaks the performance of the Ubuntu Linux distribution.

Dynamically determine execution path of a file.
aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496889

I donated a recipe to the Python Cookbook that provides a convenient and intelligent method for determining the relative execution path of a file at run time.

Config Pear Package
pear.php.net/package/Config

I contributed a significant bug fix to this important package in the PHP libraries.

Opening Popup Windows with no extra markup.
www.tjkdesign.com/articles/popup_window_with_no_extra_markup.asp

While incorporating this functionality into Agile Author, I contributed a significant enhancement to this code that made this approach more convenient to use.

Technologies

Programming Languages

  • Java
  • PHP
  • Python
  • Perl
  • SQL (ANSI SQL as well as MySQL, PostgreSQL, Oracle 8i, 9i and 10g, Microsoft SQL Server, Microsoft Access and Sybase)
  • XSLT
  • XHTML
  • JavaScript/AJAX
  • CSS
  • Unix shell scripting
  • Ruby

Frameworks and Applications

  • Java:
    • Tomcat
    • Axis
    • Many Apache/Jakarta tools including Ant, Log4J, Velocity, Taglibs, Commons, James, Regexp, POI
    • Struts (early adopter)
    • Object Relational Bridge
    • JUnit
    • JDOM
    • Spring
    • iBatis
  • PHP:
    • Drupal
    • WordPress
    • MediaWiki
    • Magento
    • osCommerce (specifically, Zen Cart and significant contributor to oscMall fork)
    • XOOPS
    • Gallery 2
    • Smarty
    • Moodle
  • Ruby/JRuby:
    • Ruby on Rails
  • Python:
    • Zope
    • Django
  • Javascript/AJAX:
    • jQuery
    • Prototype and Scriptaculous
  • CSS:
    • Blueprint

Databases (administration and programming)

  • MySQL
  • Oracle 8i, 9i and 10g
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access

Operating Systems

  • Linux including SUSE, Ubuntu, Red Hat/Fedora
  • Solaris
  • HPUX
  • Windows XP

Miscellaneous Skills & Tools

  • Apache
  • Eclipse
  • CVS
  • Subversion
  • UML
  • RSS formats, including Atom and podcasting

Project Management

  • eXtreme Programming
  • Adaptive Software Development
  • Rational Unified Process

Library Specific Tools and Standards

  • MARC, Dublin Core
  • OAI-PMH
  • OAIS Reference Model
  • METS and METS Java toolkit
  • Premis
  • aDORe
  • NOIDs
  • Handle System
  • Jhove
  • Voyager database
  • EndNote, ProCite and ReferenceManager citation formats