Stephen M. McKamey Software Architect, Developer Redmond, WA Mobile: (425) 802-8558 Email: stephen (AT) 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 - Present: Ancestry.com, Inc. Bellevue, WA http://corporate.ancestry.com/about-ancestry/properties/ http://www.myfamily.com Sept. 2008 - Present: Software Architect / Dev Lead Acted as leader of engineering team, overseeing architecture and mentoring the growth of team Application: 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 Service: 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. 2008: Sr. Software Engineer / Dev Lead Lead development efforts through architecture, implementation and mentoring of others Application: 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. 2010: InterNetris http://internetris.net http://apps.facebook.com/internetris/ http://www.chromeexperiments.com/detail/internetris/ Application: Tetris(R)-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 - Present: Open Source Frameworks & Libraries Nov. 2006 - Present: JsonFx.NET http://jsonfx.googlecode.com http://starterkit.jsonfx.net http://jsonfx.net Projects: Framework: JSON serializer (JSON, C#) * Features the most flexible JSON serializer available for .NET which allows converting to/from nearly any POCO type Framework: 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. 2008: JBST: JsonML + Browser-Side Templating http://starterkit.jsonfx.net/jbst http://jbst.net http://jsonml.org/bst Specification: 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 2007: JsonML: JSON Markup Language http://jsonml.org http://www.ibm.com/developerworks/library/x-jsonml/ Specification: 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. 2007: HtmlDistiller http://htmldistiller.googlecode.com Application: 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 2007: CssCompactor http://css-parser.googlecode.com Application: Cascading StyleSheet parser (C#) * CSS compactor and syntax validator is a full recursive-descent parser for the CSS 3 grammar April 2006 - Jan. 2007: ExifUtils http://exif-utils.googlecode.com Projects: Application: 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 Application: 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. 2007: WebFeeds http://web-feeds.googlecode.com Application: 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 2006: MimeUtils http://mime-utils.googlecode.com Application: 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 2007: Independent Projects June 2006 - April 2007: PhotoLib(TM) 1.0 Application: 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. 2006: SMM Resume http://smm-resume.com Project: Personal resume website (ASP.NET 2.0, C#, XML, XSLT) * Converted resume data into Resume 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 2007: Ramp Technology Group, LLC Bellevue, WA http://www.rampgroup.com Nov. 2006 - March 2007: Software Architect / Dev Lead (client: 16 Mile Solutions) Architected application, lead project development team & provided technical analysis Application: 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 2007: Staff 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. 2006: Sr. Software Engineer (client: Microsoft Windows Live Mail Group) Developed custom Ajax components which required creative solutions Projects: Application: 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 Project: 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 2006: Sr. Software Engineer (client: Count Me In Corporation) Architected the application's web framework and supporting tools Projects: Application: 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 Tool: 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 Service: MapPoint Integration (ASP.NET 2.0, C#) * Added location mapping and driving direction functionality to website by integrating Microsoft MapPoint services April 2004 - May 2005: Lead 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 Projects: Application: Business 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 Service: BI 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 Tool: Active Directory Search Tool (ASP.NET 1.1, C#) * UI wrapper for LDAP utility written to manage and abstract Active Directory queries Application: ExecFlash 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 Tool: 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 Application: Server & Tools Scorecard Prototype (ASP.NET 1.1, C#) * Designed & built custom templating system and custom DHTML connected WebPart-style portal Application: SMSG 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 2005: Software Developer (client: Count Me In Corporation) Key member on feature planning, prototyping of version 2.0 of the Count Me In registration system Projects: Application: Client Web Site Templates (ASP.NET 1.1, C#) Tool: 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. 2004: Software Developer (client: Miscellaneous) Worked on various software projects solving specific issues Projects: Application: Teamwork (ASP.NET 1.1, C#) * Bug Fixes & upgrade feasibility assessment Application: Corbis.com (ASP.NET control library, C#) * Custom Web Server Controls (e.g. Liquid Layout) Application: Register.com / eNom API wrapper (Class library, C#) * API Wrapper: Mapping layer for existing XML-based calls Aug. 2003 - Nov. 2003: Software Developer (client: Internet Advertising Company) Primary project developer implementing extranet Application: Partner Extranet (ASP.NET 1.1, C#) * Implemented application, Custom Server Controls and page templating system May 2003 - July 2003: Software Developer (client: Teamwork) Primary developer implementing major business component for application 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 2003: PseudoCode Solutions Normandy Park, WA http://pseudocode.com June 2002 - May 2003: Software Developer Contract work for various companies and organizations June 2002 - May 2003: Independent Projects Independent projects for experimentation and research Projects: Application: Task-List.NET (ASP.NET 1.0, SOAP Web Services, C#) * Fuzzy logic based personal task manager for natural, intuitive ordering of tasks Application: TerraStitcher (WinForm 1.1, C#) * Implemented a high-resolution satellite image browser using Microsoft TerraServer Web Services Application: WS-Dot Traffic Meter (ASP.NET 1.1, C#) * Implemented traffic app which consumes live Washington State Dept. of Transportation data Application: 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 2002: Western Washington University Bellingham, WA http://www.wwu.edu Sep 2001 - June 2002: Computer Science Instructor (department: Computer Science) Taught Computer Science labs, programming methods & concepts Projects: Course: CS-145 (Microsoft Visual C++ 6.0) * Taught object-oriented concepts, data structures, and algorithms Course: CS-211 (PLT Dr. Scheme) * Taught LISP-like functional programming concepts, recursion, simple UI March 2000 - Sep 2001: Software Developer (department: Computer Science / NSF Research Grant) Primary developer in team of diverse backgrounds funded by a National Science Foundation research grant Project: MAVRIC Project (Robotics, ActivMedia Saphira, C) * Project focused on artificial intelligence & embedded systems research * Implemented "Adaptrode" neural network & robot behaviors July 1999 - March 2000: Webmaster (department: Academic Technology & User Services) Primary web developer managing the University's main web presence Project: Western Washington University Web Site (HTML, CSS, JavaScript) * Designed and implemented an overhaul of the main WWU website Jan. 1998 - July 1999: PseudoCode Solutions Bellingham, WA http://pseudocode.com Web Developer Contract work for various companies and organizations June 1997 - Jan. 1998: PageVue, 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 1997: AdverWorld, 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. 2002: Master 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 2001: Bachelor 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 _____________________ 2010-02-28 @ 21:37:17