• 20 Apr 2017 | Why Choose Vue.js as your Default Javascript Framework

    I’m not an expert in javascript frameworks or in client-side development in general. But often I do need to create an interactive web UI, and do it fast. There are countless frameworks today and after considering some options I decided to commit to Vue.js. Learn more.

  • 15 Apr 2017 | Discriminated Unions in C#

    C# doesn’t have the support for discriminated unions yet. In this post I demonstrate one way of implementing a similar pattern in C# code. I show the alternative designs and explain where they fall short to provide type safety. Learn more.

  • 03 May 2016 | Data Flow Analysis

    Data flow analysis is an old, but valuable technique that helps to understand and specify a process by performing functional decomposition. It’s especially useful when the overall function of the system is well-defined, but there’s still not enough information to drive detailed design of modules. I try to show the process of data flow analysis by considering a real application that I have designed. Learn more.

  • 13 Apr 2016 | Use Cases Drive Software Design

    In my opnion, a system’s use case specification is a valuable tool for problem analysis in software design. Simply listing the use cases before designing a system can help drive software design in the right direction and improve solution quality in the end. Learn more.

  • 05 Apr 2016 | Context Diagrams: Getting a High-Level View of the System

    A helpful approach to begin the analysis and design of a system is by creating a context diagram. Doing so provides a high-level view of responsibilities of the system in its environment and the way the system integrates into the problem space. A context diagram is also a helpful tool for communicating the purpose of an existing system to another person. Learn more.

  • 04 Apr 2016 | A High-Quality Solution Begins with Proper Problem Analysis

    Problem Analysis is the most important step in development of any software. It is what allows us to make the most impactful initial design decisions based on more than feelings and assumptions. Learn more.

  • 03 Apr 2016 | Recommended Reading to Learn Software Design

    This is a list of reading for someone who wants to study software design. There are many resources available, but they overlap a lot. With this list I try to provide good coverage of the subject and little redundancy. If you have the opportunity, I think it’s worth to read everything on this list (or the alternatives). Learn more.