Sign in

In this post, I will write about my personal notes and some personal comments from the amazing talk of Hernan Wilkinson about seven design principles with OOP. If you want to see the original video in Spanish you can take a look here.


How well our application is reflecting the domain of the problem that we are trying to resolve?

The design of our application, it’s one of the most important parts of our application. How can we measure or know if our application is good or bad? Well, from the point of view of the design, we could say…

This post is about my personal notes about the amazing talk of Alan Kay.

Alan, start to split the problem of Software Engineer into three main parts


Alain explains that the trash exists because the human doesn’t think about the future. We create all the products to be disposable, so in that way, we make a lot of trash around the world (physically exist the island of trash in the ocean bigger than most countries).

The important here, is the trash exist because of us.

Scoping the problem well, asking clarifying questions, make high-level design question such as:

  • What are the use cases?
  • What is the goal?
  • What does success look like in this system?
  • What are the constraints?
  • It’s important to have fast reads, fast writes, or both?
  • Reliability
  • Redundant
  • Stable
  • Security
  • Availability 100 up-time?
  • Simplicity vs Complexity
  • Maintainability
  • Consistency, or eventual consistency

Keep in mind the Cap Theorem.

Once the Component that we needed came up from the previous answers,

  • Be wisely at the moment to choose the component, like WebServer, Load balancer, these could introduce a single point of failure into your…


  • The DOM and CSSOM trees are combined to form the render tree.
  • Render tree contains only the nodes required to render the page.
  • Layout computes the exact position and size of each object.
  • The last step is paint, which takes in the final render tree and renders the pixels to the screen.

Optimizing the critical rendering path is the process of minimizing the total amount of time spent performing steps 1 through 4 in the above sequence.

This blog is about my personal notes about this fantastic course. I think It’s really helpful to know how the browser works under…

Composing functions

  • What is function composition?

→ Function composition is the process of applying a function to the output of another function

  • What is object composition?

The problem is that you can’t avoid composition just because you’re not aware of it. You still do it –

We spend more time maintaining software than we do creating it from scratch, and our bugs impact billions of people all over the world.

  • When you use pipe() (and its twin, compose()) You don’t need intermediary variables.
  • Writing functions without mention of the arguments is called “point-free style”
  • Using the pipe form, we eliminated 3 variables…

In this post, we will see a set of tips and recommendations about the use of the React testing library.

Extends expect of testing library

Adding the following attribute, we gain a lot of assertions which help us to improve the error messages in our assertion library:

import '@testing-library/jest-dom/extend-expect'

For the complete list, you can take a look at

Testing Input and Label

In the following example, you will see, how we find our component from a regex query like /favorite number/i . In that way, we avoid the problem with uppercase or lowercase.

// The React component:function FavoriteNumber({min = 1, max = 9}) {

What is GraphQL?

A New API standard/specification that was invented & open-sourced by Facebook which describes the way that should behave a GraphQL server. It enables declarative data fetching by a single endpoint that responds from a query, instead of using multiple endpoints likes REST does.

A little bit of history about GraphQL

Actually, GraphQL is not anything new. Actually, worn as an internal solution at Facebook in Feb 2012, called “SuperGraph” by Nick Schrock (an initial member of the infrastructure team, a co-worker of Lee Byron) as a mobile solution to back and forth data efficiently between mobile and backends. The first prototype was created in a couple of…

First of all, What is Jenkins?

Jenkins is an open source continuous integration (CI) and continuous delivery (CD) tool written in Java.

It’s automation server used to build and deliver software project. Jenkins was a forked from another project called Hudson, after a dispute with Oracle. A major benefit of using jenkins is that it has a lot of plugins available.

Job DSL (older) vs Pipelines

  • They both have the capability to write all your CI/CD in code.
  • The difference is in implementation in Jenkins
  • Jenkins Job DSL creates new jobs, based on the code you write.
  • The Jenkins pipelines is a job type, you can create a Jenkins pipeline job…

What is WebDriverIO?

It’s a Next generation of WebDriver test framework for Node.JS.

What it’s the difference between WebDriver and WebDriverIO?

WebDriver: it’s a common standar like CSS, HTML, etc.

WebDriverIO: is a particular a NodeJS test framework implementation for using WebDriver.

What it’s the benefit of using WebDriverIO over just selenium?

The main benefit of WebDriverIO: it’s simplifies commands by combining actions. So WebDriverIO is a framework that provides a binding to Selenium, that allow simplify several Selenium commands for us.

How it’s integrated with other services and third-party libraries?

There exist many ways to extend their functionalities by using built-in services such as:

Standalone Mode vs WDIO Testrunner

So basically means that wedriverio npm module dependency (v5), is not tied to some specific test runner. It’s up to…

Well, this title it’s a twitter actually from Guillermo Rauch, and these notes come from the talk from Kent C. Dodds.

Testing is all about achieve confidence.

How much code coverage do you need?

“It depends”

So that describe in this talk, about Aeron talk about looking for a Sweet Spot.

So, for example, if you are working on in a financial application, you probably want to be more on the right side of the blue line. Because each bug it’s really expensive. …


Full-Stack Software Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store