Image for post
Image for post
Photo by Charlotte Coneybeer on Unsplash

Unit testing is great for the cases you anticipated. Unfortunately, bugs tend to show up in the ones you did not. Property-based testing helps to bridge this gap. It does so by rather than having you handcraft each test input, it bombards your codebase with lots of carefully crafted randomized inputs.

As a professional software developer, it is almost impossible, not to encounter testing at some point in your career. Most of us have learned the value of having tests early on in the development cycle. Traditional unit tests have gained popularity because they are usually quick to write, fast…


Image for post
Image for post
Photo by Hunters Race on Unsplash

What if you could look at your current job situation through the same lens as you make investment decisions? When looking at your investment portfolio, you will normally aim at a tolerable risk level and then seek to maximize the returns within this risk. Modern Portfolio Theory (MPT) has two important concepts that can be applied when assessing your current job situation. The first is the concept of the efficient frontier, and the second is the concept of diversification. In this article, we will not be diving into the mathematics of working out an optimal portfolio, as the career landscape…


Image for post
Image for post
Photo by Patrick Fore on Unsplash

Estimates are a pain. How often have you done estimates, only to have them dismissed with, “You have 3 weeks”? I will show you a path out of this misery. The aim of this article is to provide a method that allows somebody with primary expertise outside the field of estimation to produce somewhat reliable estimates, without too much hassle. This involves some slight abuse of statistics, so if this tends to trigger you, consider this a fair warning. …


Image for post
Image for post
Photo by Andres Siimon on Unsplash

Debugging tends to be a painful experience for most developers. In this article, I will show you a few tricks, that will make your debugging experience more comfortable. I will be doing examples in C#, but the methodologies should apply to other languages supported by Visual Studio as well.

Override ToString Methods:

The Visual Studio debugger will actually use this method to display a string representation of your objects in the IDE. So let us assume you have implemented a Name class with properties for a first and last name, and it may look something like this.

Now you want to examine…


How to analyze our organizations the same way we analyze software.

Image for post
Image for post
Photo by Olga Guryanova on Unsplash

Companies spend lots of resources to keep their software systems highly available and resilient. But what about the teams building it?

Most software developers face the daily challenges of developing complex systems. We need to consider what level of uptime, maximum latency, redundancy, and also how fine-grained we can afford to let the system degrade when issues occur.

The design choices we make, ultimately imply which trade-offs we can accept in our systems. We also discuss these issues openly and come up with viable solutions.

So why don’t we try to do the same analysis on the organizations we are…


Image for post
Image for post
Photo by Marc Sendra Martorell on Unsplash

So your code using the MSSQL server is not as fast as it used to be. This article will explore how you can make your queries run faster, or at least get a good idea of where to optimize (often with very limited effort).

Tools of The Trade

In order to get started, you will need a few tools available at your disposal. Luckily they are both available for free from the Microsoft website. These are:

  • SQL Server Profiler
  • SQL Server Management Studio

The first tool is for measuring what the actual querying time is spent on. The second is for investigating how the…


Image for post
Image for post
Photo by Michael Dziedzic on Unsplash

A value object is a design pattern in which an object is made to represent something simple, like currencies or dates. A value object should be equal to another value object if both objects have the same value despite being two different objects. In this article, I will dive into why I find value objects useful and discuss various trade-offs in designing value objects. I will be doing examples in C#, but the examples should apply to many of the other major languages out there.

Shopping for value — a shopping cart example:

Imagine that you’re in charge of developing or maintaining the code base of a simple…

Rasmus Feldthaus

Software developer, with a background working in the financial industry. Writes about software development, and other stuff I find interesting.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store