Methods and processes of Software Engineering: how to create beautiful software

A Guide to Low-code Platforms

What are low code platforms? A low-code (development) platform allows to create applications through graphical user interfaces and/or configuration instead of traditional computer programming. They can be a great tool for enterprise companies to reduce the cost of development mainly in two ways: by giving a software that non-developers can use to create apps tailored […]

Developing Plugins for Jetbrains Products: an Interview with Joachim Ansorg

If you read this blog regularly you will know that I really believe in the power of tools to support people in their work. I even called my consulting company Strumenta, which means “tools” in Latin. I am also a big supporter of Jetbrains: I think they make great products that really improve the life […]

Code Generation

A Guide to Code Generation

There are many uses for Code Generation: We can generate repetitive code from schemas or source of information we have. For example, we can generate Data Access Objects from database schema files We can generate code from wizards We can generate skeletons of applications from simple models. We wrote about an example here: Code Generation […]

The OOP(S) Concepts You Need To Know

OOP(S) Concepts: All You Need To Know

Object Oriented Programming (OOPS or OOPS for Object Oriented Programming System) is the most widely used programming paradigm today. While most of the popular programming languages are multi-paradigm, the support to object-oriented programming is fundamental for large projects. Of course OOP has its share of critics. Nowadays functional programming seems the new trendy approach. Still, […]

Using the Redmine API to create a page where to quickly add and edit tasks

  Recently I have been looking for the right issue tracker for my needs and I compared a few tools including Jira, Trello, Asana and Redmine. You can read about it here. Redmine was almost good enough but I wanted to be able to quickly add and edit tasks. Installing plugins for Redmine seem painful […]

On the quest for the right project management tool: Jira, Trello, Asana, Redmine

I have used many different project management tools but I have to say that I have not yet found one which really makes me 100% happy to use it. I have played with many tools and used some of them extensively and I was growing a bit frustrated about this. In the good old times […]

The 5 things a developer expects from a Project Manager: how a Project Manager can help developers becoming much more productive

To be effective as a software developer technical excellence is not enough. On top of that there are several other aspects on which a great professional should focus. Near the top of my list there is the ability to interact with other people involved in the project. Whatever is the nature of your project you will […]

An Erd web server: generation Entity Diagrams from a textual description with Haskell

An Erd Web Server: Generating Entity Diagrams from a Textual Description with Haskell

Last week I started discussing how I am working on improving my approach to diagrams generation, so that it could become acceptable for a Software Engineer. Currently I write a textual description of my entity-diagrams and I generate the corresponding images using Erd. Erd is a fantastic tool written in Haskell which parses its own DSL […]

An approach to UML diagrams and ER models bearable for a Software Engineer

An approach to UML Diagrams and ER Models Bearable for a Software Engineer

As part of my current job at Groupon I have to create diagrams: those nice pictures which make project managers happy. I write basic UML diagrams (State diagrams and Activity diagrams) together with Entity-Relationship diagrams (yes, the ones for the DB). Yes, people want these pictures and I have to create them What Is Wrong […]

Docker as a Developer: How to Build an Environment You Can Trust

  Lately I have spent a lot of thoughts on building repeatable processes that can be trusted. I think that there lies the difference between being an happy hacker cracking out code for the fun of it and an happy hacker delivering something you can count on. What makes you a professional it is a […]