The Sympriser Blog

Software Design, Technical Leadership and Business Innovation



We've always loved Software and its magical transformational power, and it has been a wonderful journey.

We started with Computer Engineering, building CAD tools for microelectronics, operating systems, and compilers. We expanded our focus to e-Business and saw its power, transforming how companies and people work. Distributed Systems and Machine Learning are now pervasive, and the power to innovate has reached unprecedented levels.

The Sympriser Blog is a collection of our reflections on software design, technical leadership and business innovation.

Top Articles

Authentication and Authorization in a Microservices Architecture
by Gustavo Peixoto de Azevedo

Authentication and Authorization in a Microservices Architecture

Authentication and Authorization are critical issues in any IT system that deals with swnsitive informations. A distributed system as an Event-Driven collection of Microservices running on the cloud adds additional challenges for these issues.

This post recapitulates the characteristics of an Event-Driven Microservices Architecture, what is Authentication and Authorization, explains the requirements for a Solution, and finally proposes a solution that addresses these requirements.

Project Dashboard
by Gustavo Peixoto de Azevedo

TypeScript Starter for a Better Developer Experience in 2021

TypeScript is an evolving type-safe superset of JavaScript, that offers modern language concepts and constructs. Combined with NodeJS is a favored option to write scalable applications.

A well-configured TypeScript installation can improve your Development Experience, accelerating your development workflow and reducing your cognitive load.

Here, I show how I configure TypeScript, helping me work better and faster. I explain my decisions and describe how to implement them. You will understand my approach and have a 2021 starter TypeScript installation to use in your projects.

Computer pioneer and genious Edsger Wybe Dijkstra
by Rafael Peixoto de Azevedo

The Open/Closed Principle: Concerns about Change in Software Design

High-quality software designs are easier and safer to work with. Investing in quality demands discipline and skill. Good design principles are usually helpful. But are they always applicable?

This post investigates the applicability of the “Open-Closed Principle” when adding new functionality to a software design whose source code is entirely under our control.

Our argument is based on Dijkstra’s concept of separation of concerns.

by Rafael Peixoto de Azevedo

Revisiting Fowler’s Video Store: Refactoring Code, Refining Abstractions

Refactoring techniques and Design Patterns have been extensively propagated and advocated for over a decade now. Why we still find it hard to change, anaemic or overly complex object-oriented structures? What is missing in our design practices?

We posit that continuously refining the abstractions we build in our code is a necessary ingredient for effective refactoring.

In this series, we use Fowler’s didactic Video Store program to show how the focus on refining abstractions generates practical advanced refactoring strategies that improve design simplicity, expressiveness and flexibility beyond standard object-oriented practice.

Project Dashboard
by Rafael Peixoto de Azevedo

PM Effectiveness – The Experience Trap

“Experienced project managers can deal more effectively with complex software projects”. Really?