59 pages tagged with "software"
The Cypherpunks
December 11, 2024In the early ’90s, with the internet on the rise, a group called the Cypherpunks emerged to defend digital privacy. They pushed for encryption and privacy tech, shaping our digital world with their vision and ideals.
In the early ’90s, with the internet on the rise, a group called the Cypherpunks emerged to defend digital privacy. They pushed for encryption and privacy tech, shaping our digital world with their vision and ideals. Who were the Cypherpunks? Philosophy and goals Impact nowadays Challenges and cr…Verified git commits
November 17, 2024When it comes to software development, trust and security are very important. One easy way to level up both is by using verified commits.
When it comes to software development, trust and security are very important. One easy way to level up both is by using verified commits. Whether you’re working on an open-source project or in a private company, verified commits can make sure your contributions are legit. Let’s break down what the…bashunit
October 30, 2024bashunit is a lightweight, easy-to-use testing framework for Bash. Features like parallel and snapshot testing, test doubles, data providers, and tons of built-in assertions.
bashunit is a lightweight, easy-to-use testing framework for Bash. Features like parallel and snapshot testing, test doubles, data providers, and tons of built-in assertions. Backed by clear docs and an active community, it’s become a favorite for reliable Bash testing. What started as a simple de…People skills
September 02, 2024So, you’re a software developer, and you’ve mastered coding languages, algorithms, and all the tech stuff. That’s awesome! But here’s the deal: technical skills alone won’t get you as far as you might think.
So, you’re a software developer, and you’ve mastered coding languages, algorithms, and all the tech stuff. That’s awesome! But here’s the deal: technical skills alone won’t get you as far as you might think. If you can’t work well with others, it doesn’t matter how great your code is — nobody will…Bitcoin: A Work in Progress
August 02, 2024With thousands of “crypto” projects out there, they say Bitcoin is old and boring, but nothing could be further from the truth. This book will guide you through the latest developments in Bitcoin, as seen through the eyes of one of its many developers.
With thousands of “crypto” projects out there, they say Bitcoin is old and boring, but nothing could be further from the truth. This book will guide you through the latest developments in Bitcoin, as seen through the eyes of one of its many developers. You’ll learn about the latest soft fork known…What is Waterfall?
August 01, 2024Waterfall is like following a straight path where you move from one step to the next in a defined order — like water flowing down a waterfall through different stages.
Waterfall is like following a straight path where you move from one step to the next in a defined order — like water flowing down a waterfall through different stages. The problem is that each step can take a lot of time and resources to complete. Plus, you don’t get feedback until the entire stag…Programmable Money
July 06, 2024Bitcoin is often referred to as “programmable money” because it allows for the execution of programmable transactions through its scripting language.
Bitcoin is often referred to as “programmable money” because it allows for the execution of programmable transactions through its scripting language. Understanding Programmable Money Programmable money is the ability to embed logic and conditions into financial transactions. This programmability al…Mastering Bitcoin
July 05, 2024This book covers everything from the basics to the most profound technical aspects of Bitcoin. It is an excellent guide through this complex world, providing the knowledge you need to participate in the Internet of money.
This book covers everything from the basics to the most profound technical aspects of Bitcoin. It is an excellent guide through this complex world, providing the knowledge you need to participate in the Internet of money. The first edition of this book was published in December 2014. Ten years lat…The Phoenix Project
May 31, 2024This is a story about an impossible project in which the people around are constantly playing politics, busy fixing critical bugs and wasting constant efforts on quick patches instead of helping the business thrive.
This is a story about an impossible project in which the people around are constantly playing politics, busy fixing critical bugs and wasting constant efforts on quick patches instead of helping the business thrive. If IT fails, the business fails. DevOps Principles: Flow, Feedback, and Continua…What kills agility?
May 30, 2024Dozens of documents and spreadsheets, meetings over meetings, and yet without much impact, result in team misalignments—realized too late.
Dozens of documents and spreadsheets, meetings over meetings, and yet without much impact, result in team misalignments—realized too late. How we manage an organization defines its quality. Excellent management is crucial to avoid the Waterfall trap if we aim to build an Agile environment. But why…Learning concurrency in Golang
April 02, 2024I wanted to learn a new language, so after trying some, I ended up with Golang as one of my favorites for its simplicity and capabilities. It has features I haven’t used in years, like multithreading and concurrency.
I wanted to learn a new language, so after trying some, I ended up with Golang as one of my favorites for its simplicity and capabilities. It has features I haven’t used in years, like multithreading and concurrency. Golang (or Go) supports concurrency through lightweight threads called goroutines…Effective pair programming
March 28, 2024What is pair programming? Let’s first establish what pair programming is: Two people working together on the same problem at the same time.
What is pair programming? Let’s first establish what pair programming is: Two people working together on the same problem at the same time. It is not about one person showing off their skills in front of another, nor one person afraid of making mistakes due to an impostor syndrome. Each person wil…Deployments on Fridays
February 25, 2024I have heard multiple times, from various people, the idea of panic towards deploying on Fridays. How good is that idea of banning the day before weekend from delivering new value to our clients or customers?
I have heard multiple times, from various people, the idea of panic towards deploying on Fridays. How good is that idea of banning the day before weekend from delivering new value to our clients or customers? The main argument in favor of NOT deploying on Friday is based on the idea that we “shoul…Great engineering
December 30, 2023Coding is not just another job. Writing software can be really fun and, even more, it can be your personal hobby as well! You might be focused on coding, coding and more coding to level up your own career skills.
Coding is not just another job. Writing software can be really fun and, even more, it can be your personal hobby as well! You might be focused on coding, coding and more coding to level up your own career skills. That itself is not bad at all! Practice makes the master, so a lot of coding will ine…How to test private methods?
October 20, 2023This is a question that I have encountered with some frequency for a long time. So I thought I would put together my thoughts on the subject here.
This is a question that I have encountered with some frequency for a long time. So I thought I would put together my thoughts on the subject here. Short answer Never. Long answer Never ever. What if…? If you really want to test a private method, consider extracting that private method logic into a…Dedicated QA Teams in software?
May 17, 2023This will be controversial, but let’s talk about the QA position. The hidden truth behind the lack of software quality and why this should concern you if you write software.
This will be controversial, but let’s talk about the QA position. The hidden truth behind the lack of software quality and why this should concern you if you write software. QA is a role, not a position As a software developer, when you write software, you are responsible for the quality of whateve…Effective Remote Work
April 17, 2023Introducing a new tech stack
April 14, 2023To introduce a new tech stack for the entire team, it’s important to bring “why?” and a strategy to make it happen among the team because it will affect everyone.
To introduce a new tech stack for the entire team, it’s important to bring “why?” and a strategy to make it happen among the team because it will affect everyone. Why that new tech stack? To decide whether to use a new tech stack or not, remember that it is a team decision, according to the standar…Accelerate
March 19, 2023Ignoring Scrum to get more Agile?
December 06, 2022Talking to a friend about agile, he asked me a fascinating question remarking how badly sometimes Agile and Scrum fit together, especially regarding meetings. These are my thoughts about this topic.
Talking to a friend about agile, he asked me a fascinating question remarking how badly sometimes Agile and Scrum fit together, especially regarding meetings. These are my thoughts about this topic. TL;DR: People become slaves to systems that are supposed to help. Boring meetings are killing agil…Recipes for Decoupling
November 28, 2022Working agile with non-agile teams
November 11, 2022Let’s assume you already know what the agile manifesto is. Let’s consider that you apply most of the “extreme programming” values, principles, and practices. How can you work with other teams that aren’t agile?
Let’s assume you already know what the agile manifesto is. Let’s consider that you apply most of the “extreme programming” values, principles, and practices. How can you work with other teams that aren’t agile? Individuals and interactions over processes and tools Working software over comprehen…Different beliefs about software quality
October 08, 2022I recently got a great question on Twitter which got me thinking for a while and I decided to share my thoughts about it.
I recently got a great question on Twitter which got me thinking for a while and I decided to share my thoughts about it. Context But first, some context: I am feeling great because the codebase where I work is getting better and better, so I am tweeting this: “As software improves with time, yo…Continuous Discovery Habits
August 21, 2022Clean Craftsmanship
July 11, 2022Modern Software Engineering
June 29, 2022The path to seniority in software
June 08, 2022We all have been junior developers at some point. This is easy to know because it is at the very beginning of your carrier. Your responsibilities were narrowed down by other peers who were looking after you.
We all have been junior developers at some point. This is easy to know because it is at the very beginning of your carrier. Your responsibilities were narrowed down by other peers who were looking after you. Suddenly, at some point, after some months or years, you got your promotion or another job…Update your team to be more extreme
February 26, 2022Our software profession is constantly evolving; it demands a non-stop learning process. We must embrace the change in our industry.
Our software profession is constantly evolving; it demands a non-stop learning process. We must embrace the change in our industry. We need to create spaces to get out of our comfort zone, so our cognitive brain can train and improve how to adapt to our surroundings, which are constantly transform…London vs Chicago
November 20, 2021There are two known schools in TDD: the mockist school (aka Outside-in) and the classicist school (aka Inside-out).
There are two known schools in TDD: the mockist school (aka Outside-in) and the classicist school (aka Inside-out). Why London and Chicago? Two companies, one from London and another from Chicago, claimed to do TDD, but they were focused on different aspects. The London company was building softwar…TDD vs BDD
September 25, 2021These are two different techniques. The key to each of them is about the mindset and context of what you want to achieve.
These are two different techniques. The key to each of them is about the mindset and context of what you want to achieve. BDD is a “test-driven feature” Basically, it’s a test-first driven development, where the main focus is ensuring the expected final behavior, and therefore the result of the sof…Test-Driven (Development)
August 01, 2021The complexity here is not about writing tests itself, but the habits that we have to change to create software that is easy to be tested.
The complexity here is not about writing tests itself, but the habits that we have to change to create software that is easy to be tested. The root of the problem Without (a solid) experience in testing, developers can have a hard time while trying to apply testing in general as part of their daily…Responsibilities of a Tech Lead
July 01, 2021The Trident Career Model by Patrick Kua has three tracks. Each track represents where people spend most of their time or energy.
The Trident Career Model by Patrick Kua has three tracks. Each track represents where people spend most of their time or energy. Archetypal Story Individual Contributor 70–80% time spent on “Executing, doing”. Designing. Testing. Coding. Management 70–80% time spent on “Managing the system”. Pla…Become an Effective Software Engineering Manager
June 27, 2021A great compilation of all topics that are important for management: 1:1s, performance reviews, hiring and laying off, workplace politics, remote work, and others.
The book is divided into 3 parts: the first part covers things a new manager should know, the second and third parts go into topics that all managers should master.
A great compilation of all topics that are important for management: 1:1s, performance reviews, hiring and laying off, workplace politics, remote work, and others. The book is divided into 3 parts: the first part covers things a new manager should know, the second and third parts go into topics tha…Open-Source Software
May 03, 2021What is Open-Source Software (OSS)? What are their benefits? How can you start contributing to any OSS? Pet projects? Knowledge sharing? Why all of these?
What is Open-Source Software (OSS)? What are their benefits? How can you start contributing to any OSS? Pet projects? Knowledge sharing? Why all of these? What is Open-Source Software (OSS)? What are their benefits? How can you start contributing to any OSS? Pet projects? Knowledge sharing? Why …Phel: the Lisp that compiles to PHP
February 01, 2021A new Functional Programming language build-in on the PHP ecosystem.
A new Functional Programming language build-in on the PHP ecosystem. The Phel Language Phel is a Functional Programming (FP) language that compiles to PHP. It is a dialect of Lisp inspired by Clojure and Janet. Features Built on PHP’s ecosystem Good error reporting Different Datastructures (Arrays…To mock or not to mock
January 11, 2021Mocking is useful, but “what to mock” usually turns out to be more complicated than expected if you don’t treat this carefully.
Mocking is useful, but “what to mock” usually turns out to be more complicated than expected if you don’t treat this carefully. How to escape the mocking hell What is actually happening when we create a mock? Which types of mocks are there? Is mocking good or bad? Well, as always, everything depend…Sharing your git patches
December 01, 2020Discover another way of sharing suggestions with your development team.
Discover another way of sharing suggestions with your development team. Imagine this situation You are reviewing a Pull Request (PR), and you see some minor improvements or suggestions that you would like to share with the author. You might write some comments, and usually, that would be sufficient…Principles of package design
November 12, 2020Never use array_merge in a loop
November 10, 2020Using array_merge inside a loop is a performance killer. The spread operator will help you to improve this by flatting the array.
Using array_merge inside a loop is a performance killer. The spread operator will help you to improve this by flatting the array. Flattening a one-level array I have seen people using the array_merge function in a loop like: <?php $lists = [ [1, 2], [3, 4], [5, 6], ]; $merged = []; foreach…Typed arrays in PHP
October 13, 2020Argument unpacking, function variable argument list, and variadics function.
Argument unpacking, function variable argument list, and variadics function. The perfect combination Argument unpacking: Instead of passing the argument itself to the function, the elements it contains will be passed (as individual arguments). Function variable argument list: The arguments will be…Object design style guide
October 10, 2020Objects are the central concept of languages like Java, Python, C#. Applying best practices for object design means that your code will be easy to read, write, and maintain.
This book captures dozens of techniques for creating pro-quality OO code that can stand the test of time.
Objects are the central concept of languages like Java, Python, C#. Applying best practices for object design means that your code will be easy to read, write, and maintain. This book captures dozens of techniques for creating pro-quality OO code that can stand the test of time. Examples are in an…Domain-Driven Design Distilled
September 10, 2020Domain-Driven Design Distilled brings DDD to life. Whether you’re a developer, consultant, or customer, it will help you understand it, so you can benefit from its power.
Domain-Driven Design Distilled brings DDD to life. Whether you’re a developer, consultant, or customer, it will help you understand it, so you can benefit from its power. This book delivers powerful results in practice, which is why developers worldwide are rapidly moving to adopt it. This is an …Testing Effectively Legacy Code
August 17, 2020These tests are also known as Characterization tests.
These tests are also known as Characterization tests. A characterization test describes the actual behavior of an existing piece of software, and therefore protects existing behavior of legacy code against unintended changes via automated testing. This term was coined by Michael Feathers. They e…Advanced Web Application Architecture
August 16, 2020This book helps you get your web applications back in shape. It contains many techniques for decoupling from infrastructure (like the framework or the database).
“The best guide that brings your coding and architecture skills a level up. All the modern PHP features combined with the elegance of a well-designed modular design.”
This book helps you get your web applications back in shape. It contains many techniques for decoupling from infrastructure (like the framework or the database). “The best guide that brings your coding and architecture skills a level up. All the modern PHP features combined with the elegance of a w…Strict Types in PHP
August 09, 2020In December 2015, PHP 7 introduced scalar type declarations and with it the strict types flag. What is this new feature?
In December 2015, PHP 7 introduced scalar type declarations and with it the strict types flag. What is this new feature? The good thing about declaring a PHP file as strict is that it actually applies to ONLY the current file. It ensures that this file has strict types, but it doesn’t apply to any…The art of refactoring
June 28, 2020If you see something, in the scope of your current task, that can be easily improved, improve it. And if you have any questions about it, ask.
If you see something, in the scope of your current task, that can be easily improved, improve it. And if you have any questions about it, ask. What is refactoring? Refactoring means improving your code. It can go from making a variable name more readable, extract some lines of code into a private m…Final classes in PHP | Java | Any
June 06, 2020Clear contracts, isolated side effects, testability, low complexity and cognitive load, code fluidity, and confidence in yourself.
Clear contracts, isolated side effects, testability, low complexity and cognitive load, code fluidity, and confidence in yourself. Motivation Reduce the scope visibility to the minimum When you see a class prefix with final you will prevent a particular class to be extended by any other, which not …7 languages in 7 weeks
May 21, 2020The art of testing: where design meets quality
April 07, 2020Why you should consider testing as part of your daily development habit and how it’s directly linked to the software quality.
Why you should consider testing as part of your daily development habit and how it’s directly linked to the software quality. This post intends not to explain the different testing techniques that we can use. I’m not going to tell you the differences between unit, integration, feature, or end-to-e…Clean Agile
March 12, 2020Extreme Programming Explained
March 05, 2020Symfony 5
February 20, 2020Working Effectively with Legacy Code
July 01, 2019Clean Architecture
June 04, 2018The Pragmatic Programmer
October 01, 2016Sprint
September 01, 2016The Clean Coder
August 01, 2016Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. Readers will learn What it means to behave as a true software craftsman How to d…97 Things Every Programmer Should Know
July 15, 2016Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you’ll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.
Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you’ll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing…Clean Code
May 01, 2016Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way. Summary Chapter 1: What Is Clean Code? The code can be me…