Principal Software Architect
2020 - 2022Sunquest Information Systems- Created the first internal, open-source library to unify the handling of temporal data and time zones. It was adopted by three product lines, which could then support users in multiple time zones from one server, and reduced those ops costs by 30%.
- Led the shift to CI and defined the build and branch strategy, shifting to trunk-based development. Led the push toward automated testing, which was adopted by two product lines that changed from annual to bi-weekly releases.
- Standardized the cloud deployment model, separating the concerns of security, regulation, scaling, and code. The first new product got to market in six months while still meeting all system-level needs. The prior best was three years.
Technologies: System Improvements, Architecture, Azure, C#, C++, Refactoring, Full-stack, Full-stack Development, Technical Leadership, XML, CSS, HTML, Technical Training, Relational Databases, Unit Testing, Patterns, Software Architecture, .NET, Node.jsStaff Technical Coach
2016 - 2019Tableau- Shifted 130 teams to trust the build system and stop on a failure, fixing it immediately. Reduced the broken build rate from 100% of the time on each of six branches to under 3% of the time, with the whole company on one branch.
- Created a technical center of excellence to spread refactoring skills, wrote the curriculum, and trained trainers. Impacted 15 teams, reducing their lead time to release by 95% and increasing their velocity by 200%, on average.
- Shifted the strategy to break up the monolith. Prior efforts ran three years with no results. In two quarters, the new strategy fixed the biggest problem, monolith-wide, and 25% of teams completely isolated themselves from the monolith in one year.
- Created a new-hire program to teach refactoring, which trained 250+ developers over two years. The new-hire ramp-up time to first useful contribution went from six months to 2-3 weeks.
Technologies: C++, JavaScript, NoSQL, SQL, Refactoring, Test-driven Development (TDD), TypeScript, C#, Systems Thinking, Agile Transformation, Transformational Leadership, Instructional Design, Full-stack, Full-stack Development, Technical Leadership, CSS, HTML, Technical Training, Unit Testing, Patterns, .NET, Node.jsSenior Developer, Engineering Excellence
2011 - 2014Microsoft- Trained the Microsoft Office team to refactor legacy code while moving the products to the cloud. Reduced the bugs written per release by over 99%, saving $1 billion+ in operational and development costs over five years.
- Designed the OData protocol for geospatial data. OData is one of the most widely deployed protocols for geospatial data exchange.
- Helped teams across the company refactor their ugliest code. Contributed code to Windows kernel, Windows Server, Office, ASP.NET MVC, Visual Studio, and Roslyn (the C# compiler).
- Drove the internal TDD community of practice. Engaged the Office, Windows Server, and Visual Studio teams to guide them from multi-month manual test passes to clean code and automated test suites with daily deployment.
Technologies: C#, C++, JavaScript, Refactoring, Test-driven Development (TDD), SQL, TypeScript, Systems Thinking, Instructional Design, Technical Instruction, Full-stack, Full-stack Development, Technical Leadership, XML, XML Parsing, CSS, HTML, Technical Training, Relational Databases, Unit Testing, Patterns, .NETCTO
1999 - 2003Silver Platter Software- Raised $3 million in funding to create games with embedded advertising—a new idea at the time.
- Created and led a team of 50 software developers. Developed multiple iterations of the first product, 3D-Crossword, shipping every week. Led the pivot to a second product.
- Introduced extreme programming, which was new at the time, established weekly continuous improvement cycles that applied social science methods, and published three industry papers.
- Created a library for running massively multiplayer games distributed on client machines with the security of server-side execution. Enabled a test game to execute with 98% lower operating costs.
Technologies: C++, Refactoring, Management, Architecture, Extreme Programming, Process Improvement, CTO, Full-stack, Full-stack Development, Technical Leadership, XML, XML Parsing, Unit Testing, Patterns, Software Architecture