What do we mean by software for engineers?

In this post I’m presenting a very broad overview of what I consider to be tooling for engineers, which is the main subject of this blog. Software for engineers has many names, some people call them modelers, others, IDE, and others just “tools”. In this blog post we will stick with the generic label “software for engineers”.

In the grand scheme of things, software for engineers requires mostly the same principles of design that other software. As most business software, software for engineers uses a layered architecture. The main difference is that, for standard business software the three standard layers: presentation, business logic, and back-end contain some common and standard components, while software for engineers uses another set of components.

Continue Reading

The rise of the super editor

When I first learned to program in the late 90s, it was with JavaScript. I was 16 years old, and I did not understand the underpinnings of programming and the tooling that is behind. I remember searching Yahoo and Altavista for explanations on what is a compiler and how does it work. In the end, I ended up learning JavaScript, because you only needed an editor (the good old Notepad did the job) and a browser.

Continue Reading

My first post

Hello, I’m Edmundo López. I help companies to improve the productivity of their domain experts by creating custom tools that let them go from the problem to a solution faster and more reliably.

In this blog, I will share my thoughts about the different tools, methodologies and techniques to:

  • design custom tooling for your domain experts
  • decide whether you need to implement custom tooling
  • choose the right stack to implement your custom tooling

Please contact me if you have questions or need some clarification on the content I will be sharing.

Continue Reading

ADTs in Scala for Object Oriented Programmers

One of the many aspects that you need to learn when starting with functional programming is ADTs. But what are they and why do we care so much for them in FP?

ADT stands for Algebraic Data Types. They allow the definition of complex data types. If you come from object-oriented programming, the closest equivalent are classes, and in Scala they look almost the same.

Defining ADTs

Let’s start with the basics: the definition. We define an ADT by declaring its name and its variants. Variants might be parametrized . Let us consider a basic ADT where the variants don’t have parameters.

Continue Reading