# Ricardo Borges

Personal blog

## How to set up Commitzen with Husky

Set up Commitzen with Husky to assist you in following Conventional Commits specifications.

## OOP Concepts in practice using TypeScript

The idea of this post is to modify a very small part of imaginary software by applying OOP concepts.

## Data Structures in TypeScript - Hash Table

A Hash table is a data structure with a highly efficient lookup, which store key values pairs

## Starting with search algorithms

Search algorithms that are used to retrieve information from a data structure, in this post I'll describe 3 search algorithms to find an element in lists

## Quick Sort

Quick Sort is an in-place sorting algorithm that uses a divide-and-conquer technique to sort a given list

## Merge Sort

Merge sort is a sorting algorithm that uses a divide-and-conquer technique to sort a given list

## Starting with sorting algorithms

In this post, I'll describe three sorting algorithms that, although not the most efficient, are easy to understand.

## How to check if a Binary Tree is a BST

Checking if a Binary Tree is a BST step by step

## Data Structures in Typescript - Binary Search Tree

Binary Search Trees are useful when you need to insert, delete and search comparable elements.

## How to reverse a Singly Linked List

There are some ways to reverse a Singly Linked List, the one that I want to show here doesn't require extra space.

## Topological sort

Topological sort is an ordering of the vertices of a directed acyclic graph, in a way that if there is an edge from a vertex A to B, then A comes before B.

## Data Structures in TypeScript - Graph

Graphs can be used to represent networks, websites structure, path optimization algorithms, there are also applications in other fields.

## Data Structures in TypeScript - Queue

Queues can be used whenever is necessary to process things in a first-in-first-out order, also helps in algorithms of other data structures.

## Data Structures in TypeScript - Stack

You can use stacks for expressions evaluations and conversion, backtracking, and memory management.

## Data Structures in TypeScript - Linked List

Linked Lists have some advantages over arrays and can be used to implement other data structures, such as stacks, queues, and graphs.

## Data Structures in TypeScript - Array

An array is a common data structure that holds items of the same type, in TypeScript, unlike other languages, an array doesn't have a fixed length.

## Best Practices for REST API interface design

Some notes about REST and best practices that I follow to design RESTful APIs

## My 2020 Retrospective

Some things that happened to me in 2020 that is worth writing about

## Four clean code techniques I wish I knew years ago

Write clean code requires practicing and I was wondering if there are some techniques that is easy to apply even if you are in the beginning of your journey to become a software developer. So I came up with four.

## How I open and resize all my applications with just a keyboard shortcut

Every morning I have to open, resize and reposition all applications I need to work, so I thought: What if I only had to press a keyboard shortcut that could do that for me...

## Learning GraphQL by building a chat application - Part 2

Continuing the previous article we are going to build our chat application front-end.

## Learning GraphQL by building a chat application - Part 1

Learning some GraphQL concepts by building a chat application.