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…
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…
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. …
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.
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…
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…
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).
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:
The first tool is for measuring what the actual querying time is spent on. The second is for investigating how the…
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.
Imagine that you’re in charge of developing or maintaining the code base of a simple…
Software developer, with a background working in the financial industry. Writes about software development, and other stuff I find interesting.