Hi, I'm David. A multi-passionate and pragmatic leader with 15+ years experience in software delivery and agile coaching. Recognized for building high-performing teams by fostering psychological safety and collaboration. Building Engineering Teams That Scale: The Power of Intentional Talent Development April 29 2025 The Most Valuable Engineering Team Members May Not Be Who You Think They Are April 29 2025 Thriving on Remote Teams: An Engineer's Responsibility April 28 2025 [Solved] Ruby Gems will not build natively on MacOS after upgrading XCode to 16 on Sequoia April 24 2025 [Solved] You have to install development tools first. April 24 2025 Did Ruby 3.2.2 introduce a breaking change? June 02 2023 Terraform Plugin Framework: Use State For Unknown May 24 2023 Terraform Plugin Framework: Computed Attribute Known Only After Apply May 21 2023 bundle install timing out May 21 2023 Expectations of an open-source project May 19 2023 Review: Software Development Metrics by David Nicolette (2015) April 02 2023 Terraform Plugin Framework: Optional Attributes with Defaults February 05 2023 I've Been Writing Code for 37 Years... November 27 2022 Why You Should Write Anyway November 26 2022 Publishing Old Drafts November 25 2022 [How To] Set up unique ssh keys per client November 20 2022 The Confluence Code Block Macro August 13 2022 Listen to me on the Virtual Coffee Podcast July 15 2022 Integrate vale into an open source project June 03 2022 git stores history as a graph November 28 2021 series: git fundamentals November 27 2021 Bad Teacher, Good Student November 09 2021 Git for Windows: Upgrade to 2.7.0 January 16 2016 Strong-Style Pairing, a Suggested Rotation November 20 2015 Testers Early On: What Does QA Do On Day 1? November 19 2015 Functional Programming and Axes of Change February 16 2015 .NET Project Layout Tips October 28 2014 Migration In Progress September 28 2014 Chocolatey: The remote server returned an error: (404) Not Found May 16 2014 Sam CPU Won't Sleep February 18 2014 [How To] Restore all nuget packages for a solution using MSBuild February 06 2014 Chocolatey: The 'minClientVersion' attribute is not declared January 03 2014 Resharper: Test wasn't run October 17 2013 On estimates and budgets in software June 02 2013 More Sprache goodness May 18 2013 Parsing VS Solution files with Sprache May 05 2013 NuGet Tip #3: Manage packages at the solution level April 21 2013 This is me in grade 9; or Nothing is real April 07 2013 Disable the XAML designer in Visual Studio March 24 2013 NuGet Tip #2: Run your own package feed March 09 2013 NuGet Tip #1: Restore Packages on Build February 24 2013 NuGet Tips February 24 2013 Testing should be fun February 10 2013 3 ways to remember which build you're running January 27 2013 Working with TFS branches in git using git-tfs January 12 2013 The correct way to uninstall Visual Studio packages (extensions) January 02 2013 [How To] Unregister a Visual Studio package (extension) December 28 2012 SOLID as an antipattern: when guiding principles go bad December 17 2012 A faster way to find the url for a git-tfs remote November 26 2012 Deploying test data for MSTest November 15 2012 Trying out NSubstitute November 01 2012 Git 101 - raw links February 27 2012 [How To] Find the url for a git-tfs remote September 01 2011 On Meeting Deadlines Versus Maximizing Throughput August 22 2011 Using Rhino.Mocks WhenCalled(...) - remember to Return(...)! July 28 2011 Nancy, a micro web framework for .NET July 18 2011 Upcoming speaking engagements June 08 2011 StructureMapConfigurationException – Type Instance … cannot be plugged into itself June 01 2011 Another Commerce Server 2009 gotcha: implicit CreditCardPayment validation November 18 2010 Commerce Server doesn’t like ampersands in variant IDs October 04 2010 On SharePoint development: notes from my first days on a SharePoint project August 28 2010 Should 1.0 is now available via nuproj August 25 2010 UI Design Patterns: let's clean up our language July 20 2010 UX-related podcasts June 10 2010 Styling the Web for Fun and Profit: 5 things about CSS that every web developer needs to know June 02 2010 5 things to think about while you are at the office May 31 2010 Attention UI Designers: "Dashboards" Surface Information May 26 2010 How to ignore a pesky System.Configuration.ConfigurationErrorsException May 21 2010 Merging the Streams April 28 2010 Winnipeg Code Camp is this Saturday February 23 2010 Google phases out support for IE6 – So what? January 30 2010 Presenting at MS Tech Days in Winnipeg November 30 2009 Synching an ASP.NET application to a local deployment folder with MSDeploy November 16 2009 Staging an ASP.NET application with MSBuild November 16 2009 The 5 Criteria of True Wealth November 06 2009 Fix Dreamweaver’s Open document context menu to work with backslash paths October 08 2009 Use Powershell to handle Subversion commit hooks August 31 2009 Essence of the parti; how Luke Warblowski & Jared Spool saved my Intranet project May 22 2009 Enable Machine.Specification’s TestDriven.NET runner May 22 2009 Dreamweaver – use nested templates to refactor shared markup January 16 2009 NYT does it again – think of the possibilities… January 15 2009 Dreamweaver primer – Template expression language December 08 2008 CodePlex now supports SVN October 30 2008 ASP.NET MVC Preview 5: strongly typed HtmlHelpers September 03 2008 Google Chrome: exciting innovation in the browser space September 02 2008 ASP.NET MVC Preview 5: string-based routes make sense once more August 29 2008 ASP.NET MVC Preview 5: is lambda-based route resolution still a possibility? August 29 2008 Using RIAs to visualize complex data August 01 2008 NYT uses information & interaction design to cut through the clutter August 01 2008 Delicious.com guides 5 million users into a new experience August 01 2008 Consumer experience shapes expectations in the business space June 16 2008 Developers: heed your web designers May 22 2008