A critical look at daily stand-ups and how they often disrupt focus, delay progress, and become performative rituals instead of productive meetings.| Spaghetti and Hammers
Some technical books I would recommend every engineer to read| Spaghetti and Hammers
When to follow the rules and when to break them| Spaghetti and Hammers
Some thoughts on my experience using the latest Gen-AI tools| Spaghetti and Hammers
Bloom Filters as space-efficient alternatives to Sets| Spaghetti and Hammers
Using Java Service Loader to allow pluggable code| Spaghetti and Hammers
Load testing a service using k6| Spaghetti and Hammers
How to be a good developer - beyond the technical skills| Spaghetti and Hammers
I have been thinking for long time in creating a newsletter. I made an rss feed since day 1, but I know some people prefer newsletters.| Spaghetti and Hammers
Implementing User Authentication on Scala Play Framework| Spaghetti and Hammers
How to make Java saying 1 + 1 = 3 by messing with Integer cache| Spaghetti and Hammers
My experience coming from the JVM into front-end development with React| Spaghetti and Hammers - Articles
How to create a type safe builder pattern| Spaghetti and Hammers - Articles
Beginners tutorial on why and how to use RabbitMQ with Scala examples| Spaghetti and Hammers - Articles
The updated version of the Play Framework, Slick, and MySQL tutorial and demo application. Now for Play 2.7.X| Spaghetti and Hammers
A intro to Mutation Testing, a technique that has become robust enough to be seen as a reliable alternative to Code Coverage as the de facto metric for assessing your unit tests quality.| Spaghetti and Hammers - Articles
Why use statically typed languages when all of your types are Strings? Forget about Primitive Obsession and leverage the type system for code correctness| Spaghetti and Hammers - Articles
Advanced HTML forms in Play framework.| Spaghetti and Hammers
How to create simple HTML forms in Play framework.| Spaghetti and Hammers
Why you should think twice before using Scala Tuples. The problems of using tuples in Scala.| Spaghetti and Hammers - Articles
How to handle exceptions in Scala. try/catch vs Try vs Catch[T]| Spaghetti and Hammers - Articles
How to use Git? What is the best Git workflow? Hot to use git log? Solving merge conflicts. Git reset vs Git checkout. Third part of a series of git tutorials| Spaghetti and Hammers - Articles
Some basic, or not so basic, questions about Scala. Interview level questions. Preparing your next Scala interview.| Spaghetti and Hammers - Articles
Functional Programming concepts. What is referential transparency? That are pure functions? What is idempotence? What is the Uniform Access Principle?| Spaghetti and Hammers - Articles
Getting started with Git. Git basic commands. Everything you need to know to start using Git in your personal projects. Second part of a series of tutorials| Spaghetti and Hammers - Articles
Introduction to Git. What is Git? First part of a series of tutorials| Spaghetti and Hammers - Articles
Second part of Scala enumerations, after some discussions. Looking at enumerations libs overheads, and Java enums as an alternative.| Spaghetti and Hammers - Articles
How to use enumerations in Scala? Is the native approach the best one? Which problems does it brings? Are there any interesting alternatives?| Spaghetti and Hammers - Articles
Code review has become one of the most important (and used) techniques when it comes to code quality. The code review process may have very different workflows and subtleties, but it is often driven around the following steps: The developer responsible by the code (a new feature, a bug fix, a refactor, etc) sends his changes to other colleagues (in git it is called a patch, that can be transformed into a pull request, merge request, or any other name your Git repository hosting service calls ...| Spaghetti and Hammers - Articles
This month Slack announced to have raised $200M on its most recent financing. At the same time I started to turn off Slack during working hours. One chat to rule them all Slack (just as Hipchat, and many other alternatives) are messaging apps for teams. If you are on a still small startup (< 5 guys) maybe you don’t have anything similar yet, but as you start to grow, you will fell the need for it. And as soon as you notice, Slack will be one of the most important tools you have. Besides com...| Spaghetti and Hammers - Articles
Last week GitHub released another new feature: GPG signature verification. While it may seem something new, Git already supports signing commits and tags with GPG . Still, GitHub turned easier to verify if the commit is signed by the author, introducing a badge next to the commit UUID. How to sign my own commits If you want GitHub to display your verified commits there are a couple of steps required. GitHub provides a very good explanation on that. Assuming you don’t have a GPG key yet, you...| Spaghetti and Hammers - Articles
Following up my previous post on mapping json objects to Scala models, it is time to present some more advanced use cases. In the past weeks I have found myself in cases where a little more ‘magic’ was needed: Read dates from the json (org.joda.DateTime) Mapping primitive types (as Long) to a custom case class Nested objects Reading dates from Json objects Imagine you have a Json object, with a Unix timestamp field: {"field":"example field","date":1459014762000} How to map it? Define the ...| Spaghetti and Hammers - Articles
Git has become one of the most essential tools for every developer. While most developers trust in GitHub to host their git repositories, Bitbucket, and more recently Gitlab, have become worthy alternatives. When users rely so much on those services for the everyday workflow, it became crucial for both, the providers and the users, to have almost non existing downtimes. One common approach to provide information to users about technical issues was to offer a status service (and API) for consu...| Spaghetti and Hammers - Articles
If you deal with external APIs (like Twitter, Facebook, Intercom, Github, and many others) on a regular basis there’s a big chance that you have already dealt with JSON answers before. JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages. JS...| Spaghetti and Hammers - Articles
This post was originally published on Codacy blog by me: I believe the Open Source movement is the biggest breakthrough in software development. Open Source has allowed many projects to increase the number of contributors (and contributions) to unreachable standards for any enterprise. Just take a look at the Linux kernel, which counts with 500,000+ commits and 5,600+ contributors. In this evolution, platforms such as SourceForge, Google Code, Bitbucket, and especially GitHub played a fundame...| Spaghetti and Hammers - Articles
Edit: You may want to have a look at the updated example using Play 2.7 instead of Play 2.4 at Play Framework and Slick example updated Typical nowadays applications need to store some persistent data frequently. And when we talk about persistent storage we are talking about databases. Among the most common applications, we have web applications. And it is uncommon to have a web application that does not require persistent storage. Building webapps in Scala is typically done using the Play fr...| Spaghetti and Hammers - Articles
For those who don’t know, the Play Framework is the standard web framework for Scala (also available to Java), and it is similar to many other MVC frameworks, such as Spring MVC, Ruby on Rails, Django, and so on. And it has been a while since I’ve been wanting to play a little bit and experiment the Play Framework. Unfortunately, I never had the time, or any good idea to start with it. And simply going through the available tutorials is not enough to learn about a library/framework, in my...| Spaghetti and Hammers - Articles
Last week, on September 1st, I started a new adventure on Codacy. Codacy is an automated code review tool that allows developers to improve code quality and monitor technical debt. It aims to improve the code review process. To achieve such goal, not only automates the code review process, but also integrates with existing project management tools such Bitbucket, Github, Travis CI, and so on. As usual, when getting a new job, you have to configure your workstation once again. Having a mac, yo...| Spaghetti and Hammers - Articles
It has been a while since my last post, but between some side projects, summer vacation, and personal hobbies, it hasn’t been exactly easy to get time to write something. Today I want to talk about another small project I finished not long time ago! It all started at Go Youth Conference 2015 (or GYC 2015) last April. GYC is an unique conference, created by a group of young entrepreneurs in 2012, with one clear goal, to inspire and empower young people to create their own future. Where entre...| Spaghetti and Hammers - Articles
Recently I’ve finished reading the book ‘Languages in Seven Weeks’. It is part of Seven in Seven series and it approaches seven different programming languages: Ruby, IO, Prolog, Scala, Erlang, Clojure, and Haskell. The publisher, The Pragmatic Bookshelf, introduces this book by making reference to a recommendation by The Pragmatic Programmer, which states “You should learn a programming language every year”, and suggesting that this book will make you learn seven new languages in a...| Spaghetti and Hammers - Articles
Have you ever committed code that made you feel ashamed? Maybe, for instance, a print statement you used for debugging just because you were too lazy to use the debugger? Maybe you even had that crazy idea of using a not so pretty print message? (Don’t worry, we all felt desperate to that point.) If the project you are working on has strong code review practices then, those print statements should get caught before going to production. Nevertheless, the code review process may let pass thos...| Spaghetti and Hammers - Articles
Hey there, and welcome to my new blog!| Spaghetti and Hammers