Stephen M. McKamey

Software Architect, Developer

Redmond, WA
Mobile: (425) 802-8558
stephen@smm-resume.com
http://smm-resume.com
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

March 2007 - PresentAncestry.com, Inc.

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

Sept. 2008 - PresentSoftware 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#, 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 - PresentOpen Source Frameworks & Libraries

Nov. 2006 - PresentJsonFx.NET

http://jsonfx.googlecode.com
http://starterkit.jsonfx.net
http://jsonfx.net

JSON serializer (JSON, C#)
  • Features the most flexible JSON serializer available for .NET which allows converting to/from nearly any POCO type
Ajax 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

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 2007JsonML: JSON Markup Language

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

Specification & implementation (JSON, JavaScript, XSLT)
  • Original purpose was to transport HTML in JavaScript without escaping to giant strings but can be generally applied to lossless round-trip conversion between XML and JSON
  • Currently being considered by ECMAScript / V8 community as a serialization format for ECMAScript ASTs and has been implemented in several JSON serialization libraries

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

May 2005 - April 2007Independent Projects

June 2006 - April 2007PhotoLib™ 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 2005 - Nov. 2006SMM Résumé

http://smm-resume.com

Personal résumé website (ASP.NET 2.0, C#, XML, XSLT)
  • Converted résumé data into Résumé schema standardized by HR-XML Consortium and extended to give greater granularity to project history
  • Using XSLT, dynamically generate multiple formats including XHTML, WordprocessingML, plain-text, JSON, HR-XML

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

Order Visibility (ASP.NET 2.0, JavaScript, ASP.NET 2.0 AJAX Extensions 1.0, C#, SQL Server 2005)
  • Extranet portal for visibility into order status between enterprise buyers & vendors

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

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

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
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 WYSIWYG editor to build skins for clients without knowledge of CSS or XHTML
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

Client Web Site Templates (ASP.NET 1.1, C#)
Asynchronous Code Generator (WinForm, C#)
  • Post-compilation utility which leveraged Reflection & CodeDom generation for converting all methods flagged with custom attributes into asynchronous Begin/End method pairs

Nov. 2003 - Jan. 2004Software Developer (client: Miscellaneous)

Worked on various software projects solving specific issues

Teamwork (ASP.NET 1.1, C#)
  • Bug Fixes & upgrade feasibility assessment
Corbis.com (ASP.NET control library, C#)
  • Custom Web Server Controls (e.g. Liquid Layout)
Register.com / eNom API wrapper (Class library, C#)
  • API Wrapper: Mapping layer for existing XML-based calls

Aug. 2003 - Nov. 2003Software Developer (client: Internet Advertising Company)

Primary project developer implementing extranet

Partner Extranet (ASP.NET 1.1, C#)
  • Implemented application, Custom Server Controls and page templating system

May 2003 - July 2003Software Developer (client: Teamwork)

Primary developer implementing major business component for application

Teamwork Billing System (ASP.NET 1.1, C#)
  • Implemented a credit card billing system into existing ASP.NET web app along with additional bug fixes & app enhancements

June 2002 - May 2003PseudoCode Solutions

Normandy Park, WA
http://pseudocode.com

June 2002 - May 2003Software Developer

Contract 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

Web Developer

Contract work for various companies and organizations

June 1997 - Jan. 1998PageVue, Inc.

Enumclaw, WA

Webmaster

Lead web developer for early web site hosting company

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

Oct. 1996 - June 1997AdverWorld, Inc.

Fargo, ND

Webmaster

Lead 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# 3.0, LINQ
    • Ajax, DHTML, ECMAScript / JavaScript / JScript
    • JSON, JSON-RPC, JsonML, JBST
    • XHTML 1.x / HTML 5/4.01, CSS 3/2.1
    • ASP.NET 3.5/2.0/1.x
    • WCF, Web Services, XML, XSLT, XSD
    • .NET Windows Services, WinForm
  • Abilities

    • Research experience & interest
    • Ajax framework implementation
    • Parsers, compiler theory & design
    • Artificial Intelligence methods & concepts
    • Multithreading & Embedded Systems
    • 3-D Rendering experience
    • UI design skills
  • Qualities

    • Meticulous yet pragmatic architecture
    • Self-directed, passionate
    • Creative problem-solver, fast learner
    • Leadership skills, excellent organizational abilities
    • Balanced between "big-picture" & "attention to detail"
    • Excellent interpersonal & writing skills
    • Good sense of humor
rev: 2010-02-28 21:37:17