Apr 16, 2016
Requirements Engineering - A tool for Use Case
A tool to manage software engineering UML use case requirements in the web.
Apr 16, 2016
Requirements Engineering - A tool for Use Case
A tool to manage software engineering UML use case requirements in the web.
Mar 31, 2017
Software engineering - is specification important?
Recently during my daily work I started to think about software specifications. The development world is living in the agile era and is even more aggressive with dead and quality. There are two extreme scenarios which we can begin with, the first is a team where developers don't have documentation...
Jan 14, 2019
Strategies to test legacy code, an attempt to use the pyramid of tests to aid developers' pain in legacy systems - PART 1
Often developers have to deal with code base without test, which might lead to discomfort in maintaining the code base. On one hand, there is the business that needs a new feature or a bug fix ready for the users to use, and on the other hand, there is the...
May 23, 2020
Getting started with testing (PHP and javascript) - PART 1
Testing has its place in the development phase, often related as unit testing since the programmer write test cases for the smallest part of the code, such as a method of a class or a function. Therefore, to reach a level of confidence and write tests as a routine during...
Sep 1, 2020
Rethinking legacy code and testing - Challenges and Strategies for Testing Legacy Code in Agile Teams
In my previous article, I discussed legacy code and strategies for testing legacy codebases. This strategy involves starting with acceptance testing, gradually refactoring the code, and then moving on to unit testing. Ideally, the codebase should have several acceptance tests before refactoring begins to replace the acceptance test suite with...
Oct 17, 2020
Software architecture patterns - Layered, Event-driven, Microkernel, Microservices, Space-based and CQRS
This is a short post on the book Software architecture patterns by Mark Richards, published by O Reilly. The book catalogs five architectural styles Layered, Event-Driven, Microkernel, Microservices and Space-Based. For each of them, the author goes through six aspects and ranks them, which collects broader names, Overall agility, Ease...
Apr 8, 2021
How to lose your developers - Mindmap around software development, what not to do to lose developers
This post is random thoughts around software development from a developer point of view. The content covered is mainly based on my career, and the opinions expressed might not fit all scenarios. Do not take the text as a saint grail or a tutorial, it is more like a conversation...
Jun 23, 2021
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...
Apr 13, 2022
Hexagonal architecture - Another way to the hexagone
I am not sure how this post is going to be, but the idea is to brain dump what is my current understanding of hexagonal architecture and try to make like a journal of that. As I improve my understanding I can improve this post and so on.
Aug 18, 2023
Clean architecture - Hexagonal architecture, Screaming architecture, DCI, BCE
Separation of concern, isolating pieces of code that repeats and decoupling responsibilities from different parts of the code base seems to be a common approach among experienced developers. Maximiliano Contieri for example, named coupling the only software design. Therefore, through the experience comes the opinionated approach, some developers might decide...
Apr 12, 2016
S.O.L.I.D - Practices for Object Oriented Programming, design better software with code examples in PHP
Being able to write better is an achievement that every programmer want to. SOLID is a great thing to start with and particularly one of the best things to be followed by TDD. Single responsibility, open-close, Liskov Substitution, Interface Segregation, Dependency inversion.
Nov 29, 2020
Mocks, dummies, spies, fakes - testing your code
Master these test doubles and write rock-solid unit tests. Get code snippets for dummies, spies, mocks, and fakes - conquer your code's dependencies!
May 8, 2024
Pair Programming: Tips and Insights through professional experience and theory
Discover insights and practical advice on pair programming, including personal experiences and key recommendations for effectively adopting this technique within your team.
May 11, 2024
Software design
May 19, 2024
Graphql vs rest
Graphql and rest are widely used choices for building APIs, in this post we will go over different features of each one of them. Comparing, discussing and going through the differences in a pragmatic way.