Entradas

Understanding the SOLID principles

This week's blog , Undestanding the SOLID principles is a book section written by Edward Guiness really short, but full of important lessons and advices for correct implementation. One thing I like from lectures, articles and readings like this one is that it does not leaves the reader to find out the practical approach (as many times this are just presented theoretically). Now the author properly presents each one of the principle and tries to explain it with a code example (even though the code examples are quite obvious, it helps to learn and confirm where the principle can be applied).  While learning how to code, throughout my entire computer science major I had the privilege to attend classes where the teacher was doing some live coding. There, we knew how the process of turning an algorithm into code was. I remembered that teacher Roberto Martínez always warned us about first designing a clear and accurate solution and not jump straight ahead to code. That is the differenc

Microservices

Monolith applications is now a thing from the past. In order to build scalable and efficient applications, a new architectural style has come to try and solve the problems of deploying again and again the entire  code when a single change or modifications has been made to a single part of the project. I found logically correct to segment the application into units called services (each one with a specific purpose) and handle it like an independent application.  Web development and applications are growing, and considering that this will keep trending, HTTP is used as a communication method between services. How it is properly done? Through this incredible and standardized interfaces called APIs (Application Programming Interfaces). Since I learned Javascript,  when defining the routes I was already thinking in the required methods (GET, POST; PUT, DELETE, etc) and the scope for each one of them. Therefore, knowing about HTTP and APis will be (if it is not now) a necessary skill.  I was

Software Craftsmanship

We are still in the software crisis, and because of that, we still need to develop new methodoligies and strategies in order to mitigate as much as we can this problem. When programming and software engineering arrived, at the first stages people relied on cascade methods, meaning that the phases of a project were done straight. This time, almost everyday we are seeing new programming languages being created, new libraries, frameworks, cloud tools, and technologies that came to change how we develop and operate applications (for example Docker containers and Kubernetes).  Engineers should need to be prepared for a correct structure of their code, design and project. Corporations and organizations should not try to get better their product or solution by adding new methods or practices, instead, they should rather focus in the responsibles of generating the code, I mean, the programmers or coders.  I like the analogy of programmers being craftsmen. After hearing the podcast I had curios

Hidden Figures

I have always wanted to watch the movie Hidden Figures (directed by Theodore Melfi) but could not watch it until this course. My expectations were met, and I would like to make a comment about the movie.  Three black women succeeded in their own field, each in their own specific and inspiring way. And before that, they were presented their own challenges and tests. Clearly, there was no equality for white and black people, even in the sixties segregation was still common even in institutions like NASA. Nevertheless, there was one thing that make people forget (a bit) about races and be "together". On the first scene of the movie, the three main characters were in trouble due to a malfunction of their vehicle when a policeman arrived. The way the policeman addressed to the women changed when he found out that they worked for NASA and their objetive was to beat the russians. Clearly, the Cold Wat influenced Americans to partially respect black people contributing to the space r

Is Design Dead

Thsi week's activity... software design... it is said that the more senior you become, the higher level you go through projects and, well... maybe there is a bit of reason of software builders losing respect to the ones designing. But to be able to design such software systems, you need to have experience and had the whole picture of how systems work. You do not need to be specialized in a product or service, you just need to know how they work and interact with other components (perhaps like a black box). Where I work, I interact daily with all types of people. There are software engineers, cloud engineers, architects, consultants and project managers. With my two years meeting different professionals and being in different areas, I would like to tell more about the place I work.  Currently, I am a Cloud Solution Engineer. The job is a mixture of both hard and soft skills, but most of the time I am interacting with customers designing solutions, troubleshooting issues, presenting

Who needs an architect?

This week's article was a little short, but there are many ideas that can I can come up with. Basically, what the article was trying to do was to show the importance of architects, especially software architects. We have come a long way on our major of comptuer science, and it is time to start thinking big. Most of the projects we have worked in school are small projects which almost all of them consisted on a set of approximately seven classes, a database and a web server. Maybe for these projects you do not need a special person to check or validate the whole system.  But as the world progresses, organizations require bigger and more complex information systems and applications. Many of them involve the use of applications interacting with each other. Now, with that being said a special role or person is needed for a whole system to work. This includes knowing how a system interacts with a database, an application programming interface (APIs), with other classes, operating system

Putting the pieces together

As of today, I am a Cloud Engineer working in Oracle. My main functions include helping customers design their cloud solutions. My main area of focus is cybersecurity, which involves mainly identity and access management, cloud security, governance and compliance. Since I joined the team, what I have been told is to master this field so that in case my workmates need help regarding the matter I will be able to help them. But that's all, we can say that some people dedicate themselves to master one field or subject (currently in my case, cloud security). Why am I writing about this? Isn't it supposed to be a blog about the article written by Pete Goodliffe about software architecture? Well, yes and no. I would like to talk about architecture from my point of view. Having interacted with cloud architects, there are many things that amazed me about how they work. One of the many skills they have is that they are really good at putting the pieces together. They must have a really g