Stephen M. McKamey

Software Architect, Developer

This isn't just my day job. I am a passionate software architect continually seeking to learn and grow. My experience, natural talents and hard work combine to deliver creative solutions to hard problems. I am an active member of the open-source community contributing libraries and frameworks used globally.

Experience

Jan. 2011 - PresentIsomer Innovations

Redmond, WA

Technology Practice Lead

Aug. 2006 - Jan. 2011Open Source Software

Dec. 2010 - Jan. 2011CSS/LESS

http://cssless.org
http://bitbucket.org/mckamey/cssless

CSS3 compactor & {LESS} pre-processor for the JVM (CSS, LESS, Java)
  • Native JVM implementation of LESS preprocessing and CSS3 parsing.

Aug. 2010 - Nov. 2010DUEL

http://duelengine.org
http://bitbucket.org/mckamey/duel

Dual-side Templating Engine (JsonML, Rhino, JavaScript, Java)
  • Uses HTML for layout and 100% pure JavaScript as the binding language
  • Views are compiled to JavaScript and Java classes for use in MVC-based Ajax web apps
  • Views may be executed both directly in the browser (client-side template) or on the server (server-side template)

April 2010 - Aug. 2010JsonFx v2.0

http://github.com/jsonfx/jsonfx

Data Serialization Framework (JSON, BSON, XML, C#, LINQ)
  • Unified interface for stream-based reading/writing of JSON, BSON, XML, JsonML
  • Implements true LINQ-to-JSON|BSON|XML (not simply LINQ-to-Objects over JSON-centric types)
  • IoC/DI-friendly extensibility for custom reading/writing & name resolution strategies

Aug. 2006 - Jan. 2011CssUserAgent

http://cssuseragent.org
http://bitbucket.org/mckamey/cssuseragent

CSS library for browser-specific overrides (CSS, JavaScript)
  • Applies special CSS classes to your pages allowing you to use valid CSS to work around browser-specific quirks.

March 2007 - May 2010Ancestry.com, Inc.

Bellevue, WA
http://corporate.ancestry.com/about-ancestry/properties/
http://www.myfamily.com

Sept. 2008 - May 2010Software Architect / Dev Lead

Acted as leader of engineering team, overseeing architecture and mentoring the growth of team

MyFamily.com 3.0 (ASP.NET 3.5, JsonFx, JBST, jQuery, JavaScript, Ajax, C#, SQL Server 2005)
  • Wrote a proposal and lead an effort to rebuild the entire service from the ground up
  • Ultimately achieved a better product with more diverse features, better performance, better security, all delivered in a shorter amount of time
MyFamily.com APIs (ASP.NET MVC 1.0, WCF 3.5, JsonFx, C#, Ninject, SQL Server 2005)
  • Proposed, designed and built OAuth-secured external APIs and an internal WCF services stack
  • Enabled expanding our service beyond single web application into other areas such as an iPhone app

March 2007 - Sept. 2008Sr. Software Engineer / Dev Lead

Lead development efforts through architecture, implementation and mentoring of others

MyFamily.com 2.0 (ASP.NET 2.0, JavaScript, Ajax, C#, SQL Server 2005)
  • Helped to define the technical solutions to business issues and adapt the existing solutions to new business needs
  • Took the existing architecture to the limits of improving stability, performance and expanding features
  • Built, and in several cases designed, the most technically difficult and commercially appealing features of the service

Feb. 2007 - Feb. 2010InterNetris

http://internetris.net
http://apps.facebook.com/internetris/
http://www.chromeexperiments.com/detail/internetris/

Tetris®-style puzzle arcade game (JsonFx, JsonML, Ajax, JavaScript, C#)
  • Built to show-case JsonFx / JBST: demonstrates complete client-side MVC
  • Became one of the highest rated applications on Google's Chrome Experiments in April 2009, getting thousands of visitors per month globally
  • Integrated with Facebook in Feb. 2010 allowing users to share high-scores via profile stream

April 2006 - March 2007Open Source Software

Nov. 2006 - March 2007JsonML: JSON Markup Language

http://jsonml.org
http://www.ibm.com/developerworks/library/x-jsonml/

Specification & implementation (JavaScript, JSON, XSLT)
  • Original purpose was to transport HTML in JavaScript without escaping giant strings, generally applies to lossless round-trip conversion between mixed-content XML and JSON
  • Implemented in several JSON serialization libraries and is being considered by ECMAScript / V8 community as a serialization format for ECMAScript ASTs

July 2008 - Oct. 2008JBST: JsonML + Browser-Side Templating

http://starterkit.jsonfx.net/jbst
http://jbst.net
http://jsonml.org/bst

Specification & implementation (JsonML, JavaScript)
  • Designed and implemented extensions to JsonML for implementing client-side templates
  • Familiar ASP / JSP style syntax gets compiled to 100%-pure JavaScript

Nov. 2006 - March 2010JsonFx.NET v1.x

http://jsonfx.net/download
http://starterkit.jsonfx.net

JSON Serialization Framework (JSON, C#)
  • Most flexible JSON serializer available for .NET allows converting to/from nearly any POCO type
Ajax UI Framework (Ajax, JSON, JSON-RPC, JsonML, JBST, JavaScript, C#, ASP.NET 2.0 / 3.5)
  • Lightest and most intuitive Ajax Framework for ASP.NET 2.0+ with fast client-side templating and JSON-RPC services

Sept. 2007 - Oct. 2007HtmlDistiller

http://htmldistiller.googlecode.com

HTML parser and filter library (C#)
  • A light-weight HTML parser which allows filtering and munging of markup which does not need to be XHTML-compliant
  • Features pluggable sets of custom HTML filters for easy implemention of white-lists or black-lists; can filter to any arbitrary set of tag / attribute / style

March 2007 - May 2007CssCompactor

http://css-parser.googlecode.com

Cascading StyleSheet parser (C#)
  • CSS compactor and syntax validator is a full recursive-descent parser for the CSS 3 grammar

April 2006 - Jan. 2007ExifUtils

http://exif-utils.googlecode.com

XMP utility library (C#, WPF, XMP, RDF)
  • Supports reading and writing XMP metadata found in serialized XMP/RDF and images
  • Wraps the WPF methods with a simple comprehensive interface to extract XMP data
EXIF utility library (C#, GDI+, EXIF)
  • Supports reading, writing and cloning EXIF metadata found in Digital Still Camera (DSC) JPEG photos
  • Wraps the cumbersome GDI+ methods with a simple comprehensive interface

April 2006 - Sept. 2007WebFeeds

http://web-feeds.googlecode.com

Unified RSS / RDF / Atom feed library (C#, XML)
  • A complete object model for Atom 1.0/0.3, RSS 2.0, and RSS 1.0 (RDF) plus associated IHttpAsyncHandlers for generating feeds

April 2006 - July 2006MimeUtils

http://mime-utils.googlecode.com

MIME-Type utility library (C#, XML)
  • Simple library with comprehensive MIME-Type database providing simple conversion between file-extension, content-type, etc.
  • Data is XML config-based for ease of adding new or custom MIME types

June 2006 - April 2007Independent Projects

PhotoLib™ 1.0

Ajax photo gallery (Ajax, JavaScript, JsonFx, ASP.NET 2.0, C#, WinForm 2.0)
  • Implemented app which reads and processes digital camera image EXIF data and allows to publish image galleries to a web viewer app
  • Used "progressive enhancement" (or "hijax") techniques to provide standards-based accessible content

May. 2003 - March 2007Ramp Technology Group, LLC

Bellevue, WA
http://www.rampgroup.com

Nov. 2006 - March 2007Software Architect / Dev Lead (client: 16 Mile Solutions)

Architected application, lead project development team & provided technical analysis

Sept. 2006 - March 2007Staff Manager (department: MS Technologies Team)

Provided timely and effective support, conflict resolution, coaching, mentorship and performance reviews to team of software developers; Participated in company-wide resource planning, interviewing, and hiring; Provided approval for team's expenses and timesheets; Participated in client-facing business development

June 2006 - Nov. 2006Sr. Software Engineer (client: Microsoft Windows Live Mail Group)

Developed custom Ajax components which required creative solutions

http://mail.live.com

Windows Live Mail (Ajax, JavaScript, C#)
  • Implemented an audio player into email for inline audio attachments and features which support integration of voicemail and call logs
Mashup Demo (Ajax, JavaScript)
  • Mashup proof of concept which integrated multiple cross-domain data providers in browser to produce single Ajax experience
  • Demonstrated cross-domain communication without violating browser security restrictions

May 2005 - June 2006Sr. Software Engineer (client: Count Me In Corporation)

Architected the application's web framework and supporting tools

http://countmein.com

Website Architecture (ASP.NET 2.0, C#)
  • Single website drives underlying functionality for many organizations so requires complete customization by each client
  • Architected a highly customizable web framework allowing re-skinning, content editing and configuration by client admin
WYSIWYG CSS Editor (WinForm 2.0, C#)
  • Internal tool for customizing the complex stylesheets which drive webpage structure and look and feel
  • Customer service staff used editor to build skins for clients without requiring knowledge of CSS or HTML
MapPoint Integration (ASP.NET 2.0, C#)
  • Added location mapping and driving direction functionality to website by integrating Microsoft MapPoint services

April 2004 - May 2005Lead Software Developer (client: Microsoft GP&O Solution Design Group)

Worked on feature planning, prototyping, UI design, documentation of Business Intelligence applications for executives of the four major commercial business groups

Jan. 2005 - May 2005Business Intelligence Pilot Portal (SharePoint Portal Server 2003, C#)
  • Designed & built Custom Web Parts featuring Web Part Connections, Asynchronous data fetch, credential impersonation, Web Services, dynamic UserControl instantiation, LDAP AD lookup, SPList creation & manipulation, data caching, custom security
Jan. 2005 - May 2005BI Data Extraction Service (Windows Service, C#)
  • ETL process allows offline data sources to be automatically imported into SQL Server for report generation
  • Continually running background service responds when new documents are uploaded to file share by data source owners
Active Directory Search Tool (ASP.NET 1.1, C#)
  • UI wrapper for LDAP utility written to manage and abstract Active Directory queries
Aug. 2004 - Jan. 2005ExecFlash Portal (SharePoint Portal Server 2003, JavaScript, XML)
  • Portal serves as a central location for ExecHot data (Executive Hot Issues), CompHot (Competitive Hot Issues), Active Pipeline data, as well as bringing together communications, alerts, resource links, and reports which these executives access on a frequent basis
Cascading StyleSheet Color Shifter (WinForm, C#)
  • Manipulates CSS files using lazy-loading RegEx recursive-descent parser (CSS 2.1 grammar)
  • Provides interactive UI for user to shift color palette of CSS by hue, saturation or brightness
June 2004 - Aug. 2004Server & Tools Scorecard Prototype (ASP.NET 1.1, C#)
  • Designed & built custom templating system and custom DHTML connected WebPart-style portal
April 2004 - June 2004SMSG Finance Dashboard Prototype (ASP.NET 1.1, C#)
  • Designed & implemented lightweight templating system for pages & user controls which was then used by rest of group for the implementation of several apps and prototypes

Jan. 2004 - April 2005Software Developer (client: Count Me In Corporation)

Key member on feature planning, prototyping of version 2.0 of the Count Me In registration system

May. 2003 - Jan. 2004Software Developer (client: Corbis, Teamwork.com, eNom)

Worked for multiple clients implementing billing systems and application features

June 2002 - May 2003PseudoCode Solutions

Normandy Park, WA
http://pseudocode.com

June 2002 - May 2003Software Developer

Freelance work for various companies and organizations

June 2002 - May 2003Independent Projects

Independent projects for experimentation and research

Task-List.NET (ASP.NET 1.0, SOAP Web Services, C#)
  • Fuzzy logic based personal task manager for natural, intuitive ordering of tasks
TerraStitcher (WinForm 1.1, C#)
  • Implemented a high-resolution satellite image browser using Microsoft TerraServer Web Services
WS-Dot Traffic Meter (ASP.NET 1.1, C#)
  • Implemented traffic app which consumes live Washington State Dept. of Transportation data
RenderTool (MFC, Visual C++ 6.0)
  • Designed & implemented 3D Rendering Engine & Fractal Mountain Generator
  • Phong, Gouraud Rendering of 3D-objects entirely in software without 3D library (i.e. no DirectX or OpenGL)
  • Generates realistic fractal mountains, complete with terrain (water, trees, snow)

July 1999 - June 2002Western Washington University

Bellingham, WA
http://www.wwu.edu

Sep 2001 - June 2002Computer Science Instructor (department: Computer Science)

Taught Computer Science labs, programming methods & concepts

CS-145 (Microsoft Visual C++ 6.0)
  • Taught object-oriented concepts, data structures, and algorithms
CS-211 (PLT Dr. Scheme)
  • Taught LISP-like functional programming concepts, recursion, simple UI

March 2000 - Sep 2001Software Developer (department: Computer Science / NSF Research Grant)

Primary developer in team of diverse backgrounds funded by a National Science Foundation research grant

MAVRIC Project (Robotics, ActivMedia Saphira, C)
  • Project focused on artificial intelligence & embedded systems research
  • Implemented "Adaptrode" neural network & robot behaviors

July 1999 - March 2000Webmaster (department: Academic Technology & User Services)

Primary web developer managing the University's main web presence

Western Washington University Web Site (HTML, CSS, JavaScript)
  • Designed and implemented an overhaul of the main WWU website

Jan. 1998 - July 1999PseudoCode Solutions

Bellingham, WA
http://pseudocode.com

Front End Web Developer

Contract work for various companies and organizations

June 1997 - Jan. 1998PageVue, Inc.

Enumclaw, WA

Webmaster

Lead front-end web developer for early web site hosting company

  • Helped build infrastructure for client sites
  • Acted as technical liaison of the startup company, guiding the direction for the technology department

Oct. 1996 - June 1997Internet Advertising Startup

Fargo, ND

Webmaster

Lead front-end web developer and head of the web services department for an early Internet advertising company

  • Prominent member of Technology Department guiding early direction for growth
  • Originally worked independently, grew to a leader of 15-20 developers
  • Presented technology lectures at corporate events to audiences of up to 1500 people

Education

Aug. 2002Master of Science, Computer Science (GPA: 4.0)

Western Washington University, Bellingham, WA
  • 5th Year Masters Program
  • Research involved mining weather data for associations via neural network

June 2001Bachelor of Science, Computer Science (GPA: 3.49)

Western Washington University, Bellingham, WA
  • Honors Curriculum
  • Partially completed a minor in Fine Arts, Graphic Design

Skills

  • Technologies

    • C# 4.0, LINQ, dynamic
    • Ajax, ECMAScript / JavaScript
    • JSON, BSON, JSON-RPC, JsonML, JBST
    • HTML 5/4.01 / XHTML 1.x, CSS 3/2.1
    • ASP.NET MVC 2.0/1.0, ASP.NET 4.0/3.5/2.0
    • Web Services, XML, XSLT
    • .NET Windows Services, WCF
  • Abilities

    • Research experience & interest
    • Ajax framework implementation
    • Parsers, compiler theory & design
    • Artificial Intelligence experience
    • 3D-rendering experience
    • Test-driven development
    • Dependency Injection / IoC
    • UI design skills
  • Qualities

    • Meticulous yet pragmatic architecture
    • Self-directed, passionate
    • Creative problem-solver, fast learner
    • Leadership skills, integrity
    • Balanced between "big-picture" & "attention to detail"
    • Excellent interpersonal & writing skills
    • Good sense of humor
rev: 2010-08-29 22:13:57
  • Valid XHTML 1.1
  • Valid CSS 2.1