Getting started with TDD
TDD Craftsmanship

Getting started with TDD

Learning Test-Driven Development (TDD) isn’t very difficult. There are only a few rules you need to follow when doing TDD. And you can find plenty of resources that teach you the basics. But it is often a big leap from learning the basic TDD exercises to applying it in your day job on real-life production software. I know it certainly was for me! So, what can you do to make that leap easier? Let’s look at a number of strategies.

  • Daan Stolp
The technical side of agile software development
Craftsmanship Agile TDD

The technical side of agile software development

How do you make your software development project a success? Make it agile, is the popular answer. And many methodologies exist that will help you do that, such as Scrum and Kanban. But those methodologies usually focus on the work process, and not so much on the technical aspects of a software project. However, these technical aspects can impact your agility in a big way. What are these technical aspects, and how do they impact your software development project? Let’s find out.

  • Daan Stolp
Your secret weapon for flow and productivity: Windows Notepad
Productivity Craftsmanship

Your secret weapon for flow and productivity: Windows Notepad

How do you keep track of your tasks as a software developer? Perhaps your team uses a Kanban board, or issue-tracking system. And personally you might have a calendar, a to-do list, or even a personal productivity system such as Getting Things Done. There are a lot of productivity apps you can download. But there is one app that hardly ever shows up in productivity app reviews. An app that keeps you in a state of flow and makes you very productive: good old Windows Notepad*.

  • Daan Stolp
Dealing with data when your Angular PWA is offline
Angular TypeScript PWA

Dealing with data when your Angular PWA is offline

How do you add offline capabilities to a web application? If you search for an answer to these questions, the answer that will invariably pop up is to turn your application into a Progressive Web App (PWA). It is easy to find tutorials that cover the basics. But then the difficult questions arise: what architectural pattern do I use to fetch, store and cache my app’s data? How do I synchronize local changes to the data back to the server? How can I test all this?

Version management of npm packages
JavaScript npm CI/CD

Version management of npm packages

If you have been working on JavaScript projects for a while and have used npm, you have probably run into issues with package versions. Maybe your automated build fails, while everything works just fine on your laptop. Or you cannot get an existing project to run on your new machine, while your team mates have no problems at all with the exact same code base. Version differences between npm packages can cause quite some headaches, so how can you keep some sanity in all of this?

  • Daan Stolp
Cookies, tokens and session lifetime with Identity Server
C# .NET

Cookies, tokens and session lifetime with Identity Server

When dealing with OpenID Connect (OIDC) and OAuth authentication in a modern .NET application, Identity Server is ofted used as the identity provider. In this post, I’ll work through a common, but quite specific scenario: configuring the lifetime of a client session. In this case, the user of an ASP.NET MVC Client must be logged out of the session after 15 minutes of inactivity. In such a setup, there are a lot of places where you can configure time-outs, lifetimes, expirations etc.

  • Daan Stolp
Getting started with TypeScript and webpack
TypeScript JavaScript webpack

Getting started with TypeScript and webpack

As you probably know, TypeScript is a programming language that is a typed superset of JavaScript which compiles to plain JavaScript. Learning the language isn’t that difficult, but where do you start? In today’s world of front-end development, learning the language is only one part of the puzzle. In addition, you need to set up a system that somehow produces a production-ready deliverable from your source code. So how do you set this up?

  • Daan Stolp
Creating an AngularJS Component Using TDD
JavaScript AngularJS TDD

Creating an AngularJS Component Using TDD

Learning Test-Driven Development (TDD) can be a great way to improve your skills as a professional software developer or, dare I say, software craftsman. There is a lot to learn about TDD as a process, and taking up the practice can be challenging at first. Once you master the basics, you sometimes just run into small technical obstacles. You know what you want to do, you just need to know how to do it.

  • Daan Stolp
Een refactoring met gebruik van drie C# features
C# .NET Refactoring Clean Code

Een refactoring met gebruik van drie C# features

Soms zijn het maar kleine wijzigingen die je code net dat extra beetje cleaner kunnen maken. Een tijdje terug was ik bezig met het implementeren van caching. Hierbij schreef ik regelmatig code die controleert of data in de cache zit. Zo ja, dan wordt deze data teruggegeven. Zo nee, dan wordt de data opgehaald en in de cache geplaatst. De code ziet er steeds ongeveer zo uit: public SomeObject GetSomeObject() { string cacheKey = "SomeCacheKey"; SomeObject thingToCache; if (!

  • Daan Stolp