Shea Kauffman

Address

2525 14th Avenue S

Apartment 534

Seattle, Wa. 98144

Phone: (206)226-7515

Skills

Software Engineer

Polyglot Programmer

Excellent programming skills in Python, PHP

Experience writing Ruby, MySQL, Prolog, Lisp, C/C++, Java, Haskell, ActionScript, others

Multi-paradigmatic programming

Object Oriented Programming - including advanced patterns like metaclasses, object polymorphisms, functors, generic programming, etc...

Functional Programming - including advanced patterns like currying, memoization, lazy evaluation, higher order functions, closures, etc...

Procedural Programming - comfortable writing a procedure quickly for one off programs.

Logical Programming - implemented and used SLD resolution as DSL's in other languages

Web Technologies

HTML / XHTML / CSS - Deep understanding of standard web technology.

Rest / XMLRPC / SOAP - implemented servers and clients in these technologies

Ajax / DHTML - Designed and implemented ajax abstractions in cgi's, utilized ajax while remaining SEO friendly.

CMS - Drupal, Alfresco

Web Frameworks - Django, Ruby on Rails, Custom

Quick Learner

Due to the breadth of languages I've programmed in, I can quickly pick up a new language.

My background interfacing with a host of libraries, and frameworks allows me to quickly pick up related technologies.

Standards Compliance

Implemented cross browser sites using W3C standards

Implemented sites ensuring WAI accessibility.

Architect

Holistic Approach

The first thought I have about software architecture is what are the objects, and how do they communicate.  How can I design this so that each system can act independently of the others.  How is the system going to allow for failure?

Rapid Development

I have specialized in rapid software development from an architectural standpoint.  That means making independent units, separating side effects, enforcing literate code, creating the most abstract piece of software time allowing, write the smallest thing that works, choosing technologies based upon needs, etc...

Data Abstraction

How data is abstracted is often more important than how it is processed.  Data need to model the problem domain in a direct way, however data also needs to be abstracted in such a way that it behaves like a native object. 

Development Lifecycle

Deep understanding of the whole software development lifecycle.  Worked with clients to get software through every stage of the process, and additionally come into a project part way to assist in difficult portions.

Design Methodologies

Though I've done structured and collaborative design. I tend to favor designs that best represent the conceptual domain directly.  Meaning, when a specification defines a set of uses, I use a design which directly (not implicitly) defines those uses, often by interfacing with a more abstract object which can define multiple uses.

Design Patterns

I tend to take a hybrid approach with design patterns, using the technology that fits the conceptual domain the best.  I tend to favor service oriented architectures, with services having distinct model-view layers.

Service Oriented Architecture

Model-View-Controller

Actor model / Reactor model

Object Design Patterns - factories, lazy initialization, object pool, decorators, etc...

Frameworks

Worked with currently existing frameworks to get technologies deployed rapidly including Django, Rails and Drupal.

Designed and implemented custom frameworks to meet particular technology needs utilizing existing software packages

Designed and implemented servlet based frameworks, and reorganized framworks based on services to improve scalability

Management / Communication

Agile Development

I tend to feel that though communication is very important for team cohesivness, some teams over do it on meeting, which can distract from productivity.

SCRUM, XP, Rapid Development

Leadership

Led programming teams, delegated tasks.

I am never afraid to let a client know when they are making a mistake.

Presentations

Given presentations using software directly, powerpoint, or simply standing up and talking.  I know how to give presentations effectively, to communicate the important points to my target audience.

Writing

I've written technical specifications, reports, and essays on technology.

Delegation

I always try to delegate to the talents of my coworkers.  Giving people a complete aspect/module to write and take ownership of.  People do best when they believe they're the steward of a project.

Teamwork

I've worked solo, and in larger teams.  I tend to find small working groups, and pairs work best.

Getting programmers to ask for help is often the most difficult aspect of team cohesiveness.

Theory

Science

My background in scientific methodologies and cognitive science helps me to identify when people are falling into common cognitive pitfalls.

Statistics

My background in statistics allows me to identify what kinds of data points to look for and how to measure them.  Which is useful for understanding the effectiveness of software.

Logic

I have an advanced understanding of mathematical logic.  It helps me define computational relationships, optimize code, and infer things about programs that may otherwise be undiscovered.

Mathematics

My background in linear algebra, and discrete mathematics allows me to define problems that exist in one conceptual domain as belonging to a larger class of problems.

Computation

I understand the theory of computation.  It allows me to understand computational limits of certain kinds of problems, and define problems as DSL's to more effectively model the conceptual domain.

Theoretical Models - Computational Linguistics, Turing Machines, and the Lambda Calculus.

System Complexity - big O

Artificial Intelligence

I have engineered and designed systems to compute problems that require fuzzy thinking, e.g. "may also like" recommendations.

Statistical Models - Simulated Annealing, Bayesian Filters

Artificial Life models - Agent Based computation, Genetic Algorithms

Artificial Neural Networks - Back Propagation, associative networks

Software / Platforms

Linux

Basic Administration, Package Management, Grep, Shell

MS Office / OpenOffice.org

Written scripts to automate office tasks (generate reports).

CRM

Used and built against CRM software.

CMS

Administered and assisted in getting CMS systems ready for production use.

Designed simple CMS solutions.

SPSS / R

Used statistical software for data analysis.

Software Development Software

Trac, Jira, NMS, SSH, SVN, VPN, eclipse, etc..

Experience

Software Engineer (PHP (Drupal), Ruby on Rails, Alfresco)

Wetpaint

Email: info@wetpaint.com

Phone: 2068596300

http://www.wetpaint.com Wetpaint lets you build a rich, online community around the whatever-it-is that you’re really into. Utilizing the best features of wikis, blogs, forums and social networks, Wetpaint mixes everything you need so you can create, collect, and organize content on your own social website.

Oct 2009 to Mar 2010

Rapidly developed Drupal site to prototype new business model.  Worked with a team in SCRUM environment to determine technical needs.  Designed and implemented custom CMS using Ruby on Rails and Alfresco.

 

Accomplishments
  • Rapidly re-factored and re-engineering complex web applications on a tight deadline while learning Drupal.
  • Assisted in the system architectural design for creating a custom CMS
  • Learned Ruby on Rails quickly, and developed a Disqus API
  • Picked up Alfresco CMS, to help with back end integration

Senior Programmer (PHP/Python/MySQL/Javascript)

Evo Media Group (devhub)

Email: info@evolanding.com

Phone: 2064414399

DevHub is the web hosted publishing platform and content editor created by EVO Media Group. Currently in limited beta, DevHub's technology reduces the complexity of publishing to the web, enabling the creation of useful, engaging and user-focused niche websites

Feb 2008 to May 2009

Designed and Developed software allowing a network of dynamic rich media websites to automatically render rich media content. Assisted in design and maintenance of a web application allowing users to quickly create their own media rich and monetized web sites.  Took initiative in implementing new features to meet the demands of our user base.

Accomplishments
  • Designed and engineered a color analysis system, creating dynamic color schemes for a network of sites.
  • Designed and engineered general XML aggregation software, allowing content to be dynamically distributed among a media network.
  • Implemented partner API's into a network of DHTML websites.
  • Designed and engineered a method for conveniently and quickly parsing XML into a generic set of object attributes.
  • Assisted in Design of a complete web framework, allowing thousands of sites to run on a single code instance.

 

Contract Software Design Engineer

16 Copenhagen

Email: info@16copenhagen.com

Phone: 2064940030

16 Copenhagen is a full service design agency. Head-quartered in Seattle, Wa, We blend imagination with purpose to design and deliver targeted products that make the lives of our clients easier and exceed their expectations.

Jul 2009 to Aug 2009

I came into this project, hired as a python developer.  I quickly produced the desired code ahead of schedule and help the client re-architect the software.

Accomplishments
  • Implemented tile mosaic algorithm backend in python.
  • Re-engineered existing systems for calculating and displaying web application.
  • Reduced software debt.
  • Picked up Actionscript 3 to implement mosaic front end.

Contract Software Design Engineer

Victoria Hampton

Email:

Phone:

Real Estate Baroness

Jan 2008 to Apr 2008

Utilized my skills to design and implement a web site focusing on assisting real estate investors and property managers by allowing for a central web based accounting system and availability for investors to engage in social networking.

Accomplishments
  • Realized client feature requests as specific technical solutions
  • Designed application specifications
  • Created PHP web framework for use with the project
  • Improved project team workflow by specifying standards for code formatting

Web Developer, Technician, Office Manager

Ion Business Solutions

Email: info@ionbusinesssolutions.com

Phone: 205288158

Founded in 1994, Ion Business Solutions is a leader in network services for small and medium-sized businesses, offering a proven service portfolio for customers looking for IT project management, simple monitoring services and a range of outsourced IT solutions. Ion Business Solutions' proactive services enable customers to lower IT service costs, usher in a new sense of business security and, foremost, provide customers peace of mind knowing their IT services are in trusted hands. Based in Seattle, WA, Ion Business Solutions provides managed network services to scores of companies in the Puget Sound area.

Jan 2006 to Apr 2008

Assisted with staff and office management.  Managed projects for staff.  Designed and implemented web pages.  Tracked and corrected bugs in hosted web pages.  Installation and administration of servers. Network cabling.  Client server and desktop application monitoring software (n-central). Computer setup and installation.  Installation and troubleshooting of Windows 2000 and Linux servers.

Accomplishments
  • Took leadership role in finding open source solutions for our clients, saving both companies time and money.
  • Implemented CRM system, allowing better organization of our clients and tasks.
  • Quickly developed web pages based upon clients' needs and expectations
  • Took charge of customer relations, freeing up time for our CEO and sales team
  • Assisted clients with emergency debugging of web software

Contract SPSS Specialist & Statistician

The Hacker Group

Email: info@hackergroup.com

Phone: 2068051500

Hacker Group is a leading provider of direct marketing and database marketing services. It offers planning, creative, and management services to design and implement direct marketing campaigns using traditional mailings, as well as interactive media. The group's PowerTest product allows clients to test, research, and develop marketing programs at a much quicker pace than traditional methodologies offered by other agencies.

Sep 2006 to Jan 2007

Capitalized on my educational background in psychology and computer science by programming SPSS and Excel.  Created Python code to automate tasks.  Utilized software tools available for data analysis and generating statistical reports.

Accomplishments
  • Took initiative by learning Python and Excel programming on-the-job, then engineered automated solutions to data analysis problems.
  • Examined and reorganized software solutions to shorten development time.
  • Restructured code base to eliminate legacy issues.
  • Automated many aspects of data analysis process, saving man hours.

Freelance

freelance

Email:

Phone:

Random individuals I've helped.

Mar 2010 to Jan 2005

Ongoing work freelancing to help organizations and individuals meet their technical needs.

Accomplishments
  • Implemented user-friendly inventory tracking database for independent bookstore
  • Implemented wiki software to assist a client with a Web 2.0 project
  • Installed and configured blogging software
  • Created full wireless compatibility for a client's Linux laptop
  • Helped with installation and customization of clients blog

Education

Bachelors of Science in Psychology and Computer Science

The Evergreen State college

Email: info@evergreen.edu

Phone: 3608676000

The Evergreen State College is an accredited public liberal arts college and is a member of the Council of Public Liberal Arts Colleges that is located in Olympia, Washington, USA. Founded in 1967, Evergreen was formed to be an experimental and non-traditional college. Faculty issue narrative evaluations of students' work rather than grades, and Evergreen organizes most studies into largely interdisciplinary classes that generally constitute a full-time course load. The current Evergreen President is Thomas L. (Les) Purce and its Board Chair is Christopher Hedrick.

Sep 2000 to Jun 2005

My Time at Evergreen gave me strong understanding of the fundamentals of computer science and the mathematical underpinning of machines.
I blended my studies in psychology with my studies in computer science by examining artificial intelligence, neural networks, and user experience design.