Matheus Marabesi website, sharing ideas about software development - Listing posts on page 2

Announcing the JSON tool - A companion for formatting json content, focused in privacy

Recently I have been working on a simple app with one goal in mind: format json content locally, without the need to access a third party website for that. The answer that that is json-tool, a electron based app that formats json content with a click of a button, or just pasting the desired json. It offers a 100% offline experience once it’s installed and the most important: there is no track, ads or anything related to data. Privacy first. Besides that, it was an excuse to practice my outside-in TDD (Test Driven Development) skills (TDD is a subject of...

That's my keyboard kit - a walk-through, custom AKKO 3068

Often I get asked which keyboard I am using and which configuration I use for coding. This post aims to give a walk-through my current keyboard and also the future changes that I might want to put in place. The goal here is also to share prices and where I bought the parts I use, given it sometimes is a pity that people that shared theirs didn’t share the place you can find the same pieces to pump the keyboard. Note that this is just my personal setup, it does not mean that you should use one like mine or...

Growing object oriented software guided by tests - notes

Test driven development has been a subject of interest on this blog for a few years now and the first pot to come around was the classic book from Kent Beck: Test Drive Development by example. More recently I also wrote on my TDD journey as I was trying to focus on what would be the next steps on that. Following this discovery, I started reading the book “Growing object oriented software guided by tests” [1] which as the title says focus on the development of software guided by tests, the proposal is to use a double-loop TDD - From...

Developer productivity with the keyboard - My most used vim key bindings

As a developer I am often looking ways for improving the way I write code, and also, texts in general, like this post for example. Throughout the years I tried different editors and IDE’s. In this journey, I found that each tool focus on one side of the equation. For example, IDE’s tend to focus on the integration as a way to improve developer’s workflow, one single place to do everything: accessing terminal, writing code, runnings test, accessing the database and so on. On the other hand, text editors are focused on a specific task, editing texts. Which doesn’t mean...

TDD anti-patterns - the liar, excessive setup, the giant, slow poke

Test Driven Development (TDD) has been adopted across different developers and teams as a way to deliver quality code, through short feedback cycles in a (fail-pass-refactor) fashion. Kent Beck [1] popularized the methodology that became a standard in which the industry follows and build on top of it. Therefore, starting with TDD is not easy and keeping it sharp in a way that the test suite run fast is even harder. Code bases that tackle business problems require a non-trivial amount of code, and with that, a non-trivial set of test cases. Therefore, as [2] describes: the industry has an...

Terraform HashiCorp certification - infrastructure as code, the udemy course companion

Infrastructure as code (IaC) is a growing trend as the devops became the standard to delivery applications. As such, cloud providers have each, their own way of offering infrastructure, in the past, administrators had to manually execute commands on the servers and manually provide resources (which it’s the case until today). Terraform provides a solution through code for managing infrastructure. It is a single place to talk to different providers and keep the changes repeatable and versioned, giving confidence to change the infrastructure of any application. The idea is to automate as much as possible and you do not manage...

TDD revamped, five years and many more to come

This post goes through my journey that started at least five years ago with testable code, specifically using Test-Driven Development (TDD). I remember when I found it out it was a moment of magic, even though, it took some time for me to realize that TDD changed my way of thinking. Not just about my code, but about software development in general. Throughout this post, there are references on the first TDD international conference, XP and agile, if some of them is not familiar to you, feel free to jump to the references. As a companion, I offer a youtube...

XP explained second edition (WIP) - book club at Codurance

Extreme programming (XP) [1] is a methodology focused on the technical and social aspect of software development. It focuses on two main pillars: agile and technical excellence. Technical excellence is the structure that allows teams to be agile. On the other hand SCRUM is the methodology that got traction and is the most adopted by the industry as a means to “be agile”. Therefore, as already explored by Martin Fowler SCRUM has a place in the party, but is not the main course. Kent Beck popularized different technical practices on writing XP and this post aims to go over the...

My technical reading path - Software engineering journey

This is a list of readings on software engineering related topics, on the books I read, podcasts I like to listen to, magazines or other resources. I also shared the books I read in 2020, which is liked with this post. Across this blog I have a more general list that I keep updated as well. Have fun and suggest any other reference you might want to be listed here. 📚 books 🗞 links 🎵 audio Software engineering 📚 Head First Software Development: A Learner’s Companion to Software Development 🗞 https://engsoftmoderna.info 🗞 Software Engineering: A Practitioner’s Approach 8th 📚 Accelerate:...

Accelerate - Building and Scaling High-Performing Technology Organizations - Book review and my personal notes and insights

Delivering software fast and keeping the quality is challenging. Accelerate brings the light through data on the devops culture and practices. Devops (even though the term wasn’t there?) has been adopted by the industry for a while and Accelerate dives into the practices on what makes successful teams to delivery software fast and also what hold them back to improve the delivery process. Besides that the book is accessible for different profiles within the technology world (software engineer, cyber security, quality engineer, etc) [1]. This post follow the same structure as the book, but instead of three (as the third...