2023
2022
- How fast is ASP.NET Core?
- The type system is a programmer's best friend
- Using Go generics to pass struct slices for interface slices
- Building a secure note sharing service in Go
- Fund OSS through package managers
2021
- Can we trust Microsoft with Open Source?
- .NET Basics
- You don’t need Docker
- Using .env in .NET
- Equal pay for equal work
2020
- .NET for Beginners
- GitHub Actions for .NET Core NuGet packages
- Automate frequently used CLI commands
2019
2018
- Why you should learn F#
- Drawbacks of Stored Procedures
- ASP.NET Core Firewall
- Open Source Documentation
- Stop doing security (yourself)
- Giraffe 1.1.0 - More routing handlers, better model binding and brand new model validation API
- Announcing Giraffe 1.0.0
2017
- Extending the Giraffe template with different view engine options
- Evolving my open source project from a one man repository to an OSS organisation
- Giraffe goes Beta
- Functional ASP.NET Core part 2 - Hello world from Giraffe
- Functional ASP.NET Core
- Thank you Microsoft for being awesome
- Error Handling in ASP.NET Core
2016
- Running Suave in ASP.NET Core (and on top of Kestrel)
- Building and shipping a .NET Core application with Docker and TravisCI
- Load testing a Docker application with JMeter and Amazon EC2
- Creating a Slack bot with F# and Suave in less than 5 minutes
- BuildStats.info |> F#
- JMeter Load Testing from a continuous integration build
- Custom error handling and logging in Suave
- Watch US Netflix, Hulu and more from anywhere in the world
- Asynchronous F# workflows in NancyFx
- Filtering the AWS Service Health Dashboard
- Automating CSS and JavaScript minification in ASP.NET MVC 5 with PowerShell
- CircleCI build history charts and NuGet badges by Buildstats.info
- Don't dispose externally created dependencies
- SHA-256 is not a secure password hashing algorithm
- Understanding ASP.NET Core 1.0 (ASP.NET 5) and why it will replace Classic ASP.NET
- ASP.NET 5 like configuration in regular .NET applications
- Running NancyFx in a Docker container, a beginner's guide to build and run .NET applications in Docker
2015
- Diagnosing CSS issues on mobile devices with Google Chrome bookmarklets
- Design, test and document RESTful APIs using RAML in .NET
- How to make an IStatusCodeHandler portable in NancyFx
- When to use Scrum? Waterfall vs. Scrum vs. Kanban vs. Scrumban
- Death of a QA in Scrum
- Display build history charts for AppVeyor or TravisCI builds with an SVG widget
- Using C# 6 features in ASP.NET MVC 5 razor views
- How to use RSA in .NET: RSACryptoServiceProvider vs. RSACng and good practise patterns
- The beauty of asymmetric encryption - RSA crash course for developers
- Running free tier and paid tier web apps on the same Microsoft Azure subscription
- Effective defense against distributed brute force attacks
- Demystifying ASP.NET MVC 5 Error Pages and Error Logging
- Guard clauses without test coverage, a common TDD pitfall
- Making Font Awesome awesome - Using icons without i-tags
- PHP UK Conference 2015
- Hello World