Short-form notes

Developer Bits

Tools || (new) features || blog posts in a bit format on topics that I'm excited about.

  1. #playwright · #testing

    Playwright v1.45 makes you a Time Wizard

    The latest release of Playwright, version 1.45, introduces a new feature called Clock . This feature allows you to manipulate the time in your tests, making...

    Read bit
  2. #typescript

    Inferred Type Predicates

    It's finally here! While working with TypeScript, I assume we all have been in a situation where we have to write a type predicate to help TypeScript...

    Read bit
  3. #developer-experience · #productivity · #devtools

    Interacting with GitHub through the GitHub CLI

    Throughout the last few years, GitHub has provided us with more and more tools that improve the experience with their platform. The development never stops,...

    Read bit
  4. #empathy · #non-technical

    Empathy Matters (as a Software Developer)

    The most challenging aspect of software development isn't the technical side of the coding process, but rather the human interactions involved. To quote...

    Read bit
  5. #dotnet

    Simplified Dictionary Lookups

    When accessing values from a dictionary, it is common to check if the key exists before accessing the value to avoid exceptions when the key does not exist...

    Read bit
  6. #tools · #performance

    Load testing

    To measure is to know. As a developer, it's crucial to evaluate your system's capability for building robust and reliable software applications.

    Read bit
  7. #sql · #entity-framework

    SQL Temporal Tables

    SQL Temporal Tables is a feature that allows you to keep a history of changes to a table without an effort. By enabling SYSTEM_VERSIONING on a table, SQL...

    Read bit
  8. #windows · #developer-experience

    Creating a good-looking Windows Terminal

    As a developer, I spend a "lot" of time in the terminal. I use it to run various other commands ranging from navigating to folders, running my environment,...

    Read bit
  9. #dotnet

    Rate limiting in ASP.NET

    Rate limiting is a technique used to control the number of requests a client can make to a server. It is often used to prevent abuse of an API, e.g. to...

    Read bit
  10. #angular · #devtools

    Angular DevTools

    The Angular DevTools is a browser extension that provides debugging and profiling capabilities for Angular applications. With the DevTools you can explore...

    Read bit
  11. #dotnet · #libraries

    Snapshot testing in C# with Verify

    Snapshot testing is a powerful technique that allows you to compare the output of your code with a previously stored value, also known as a snapshot. This...

    Read bit
  12. #dotnet · #entity-framework

    Entity Framework Include Filters

    The location where you filter (included) entities is important, as it has a significant impact on the result set. Without knowing the details, it's easy to...

    Read bit
  13. #typescript · #developer-experience · #libraries

    Use Zod to parse Unknown Data

    How many times was there an issue within your application because you trusted data that you don't control (e.g. incoming data), or worse, how many times did...

    Read bit
  14. #devtools · #productivity

    Use jq to query and manipulate JSON data

    jq is a lightweight command-line tool to quickly process your JSON data. I mainly use it to search ( grep ) and select specific fields of a JSON file, but it...

    Read bit
  15. #dotnet

    NuGet Central Package Management

    When you've worked in a mono-repository that contains multiple C# projects, you've probably felt the pain of maintaining NuGet dependencies. Updating...

    Read bit
  16. #typescript

    Pretty TypeScript types

    I learned this trick from Matt Pocock , and I've seen the power by seeing Marko Stanimirović using it in the NgRx codebase. Because I think that we'll see...

    Read bit
  17. #dotnet

    New in C# 12: Collection expressions

    Creating collections becomes simpler in C# 12 using collection expressions. We can also make use of the spread operator .. to copy the values from a collection.

    Read bit
  18. #devtools · #developer-experience · #vscode

    Polyglot Notebooks

    As developers, we sometimes need an isolated environment or a testing sandbox. For example, to reproduce a problem, or to share a snippet with a team member.

    Read bit
  19. #angular

    Angular Control Flow

    The past week I cursed Angular a little bit because I just wanted to have a simple if-else condition within my HTML template. But, as you probably already...

    Read bit
  20. #playwright

    Cypress to Playwright converters

    Migrating from one test library to another can be a daunting task, but with the right tools, we can make it a smoother transition.

    Read bit
  21. #dotnet · #typescript

    Switch Exhaustiveness

    How many times have you added a new option (enum, union, expression, ...) without updating all code paths? Did this result in unforeseen issues?

    Read bit
  22. #dotnet

    The Evolution of C# Constructors

    C# 12 introduces a new syntax to declare class constructors with Primary Constructors . That's why I thought that it's a good time to look back at the...

    Read bit
  23. #git

    Git Log Heatmap

    Use git log to create a heatmap of the files that have been changed the most frequently within a repository. This is useful to identify the files that most...

    Read bit
  24. #libraries · #security

    Big List of Naughty Strings

    Does your application correctly handle all kinds of input correctly? Do you need some inspiration to test your application with some edge/special cases?

    Read bit
  25. #devtools · #developer-experience

    Http Files

    .http files are a simple way to quickly invoke your API endpoints because you don't have to leave your IDE to use a separate tool. I use it regularly when...

    Read bit
  26. #angular

    Angular Input enhancements

    The Angular 16 release adds useful enhancements to the @Input decorator. We can make an input required, we can transform the input value, and we can bind...

    Read bit