Every year I like share what I have learned. I will do my best not to repeat myself and be as practical as possible with this annual post. Last year I shared a post where I talked about the following subjects.
Staff Engineer Leadership Beyond the Management is the first book I read in years that a friend did not recommend. It initially got my attention because of the title in an auto recommendation from amazon. I decided to buy it as soon as I see it included an interview with Damian Schenkelman (I met him some years ago at an event in Brazil, and he seemed to be a great engineer, in the worst case, I would get some updates about his career).
I started Nun-db to be a real-time database of one product I was building. One of the goals for that product was never to be down.
In this tutorial, we will show how to add Nun-db to an already existent react/redux app. This project is a copy and paste of https://github.com/reduxjs/redux/tree/master/examples/todomvc + adding Nun-db as a database that makes it real-time and durable.
Overall I think the book is direct and practical. I felt like reading a programming language book with lots of “Howtos,” except that it is about management and business. The 4th Chapter, The people’s content, got my attention especially. It does build an exciting framework to find the right people. The author highlights a few characteristics that seem to identify great professionals, to list the ones that got my attention, “
- Unequivocal excellence
- Honesty and integrity
- Hungry for achievement
- Is enthusiastic
- energetic” (Read the book for the complete list, I liked all of them)
Book review Designing Data-Intensive Applications The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
The book was by far the most useful, inside a full book I read in the last year or so. It may be because I am have been working on Nun-db (a real-time database), but I think I would have liked it just as much in the past as well. First of all, the book has been recommended to me by a friend that the opinion I respect a lot (A Ph.D. in Computer Science), the title immediately caught my attention and I have been reading it since the day I put it on my kindle.
A fast-to-sync/search and space-optimized replication algorithm written in rust, The Nun-db data replication model
I have been working on Nun-db as a side project for over two years. Finally, in June 2020, I got it running as the unique real-time database for my main application. In the post, I shared that milestone. Since then, a couple of other applications have been starting using Nun-db, e.g., a chatbot, a real-time visitor for my blog, a house price scraper, a tic tac toe multiplayer, etc.
NunDB is an in-memory database that means we store all the data mainly in memory for speed (this helps keep NunDb fast). The obvious drawback is that if you are hosting your own NunDb and you have a server restart or need to stop it for any reason, you may lose what is in memory.
Last year, I started working as one of the tech leaders on a performance optimization project for one of my employer’s customers. At first, the team started using a regular Kanban process, so an engineer would pick some part of the code to optimize and work on until we felt good about the improvement. To me, it felt not to be the right approach to the problems we were trying to solve.
One of the features I like the most about Google Analytics is the real-time user track. Randomly during my day, I visit the real-time analytics of all products I run to see how many people my work is impacting at that time. It gives me the energy to see my work affecting other people. On the other hand, there are some drawn backs of using google analytics, to name a few:
- Technical user may block google analytics to avoid been tracked (and you will not see that traffic in your tool)
- You are giving data to google for free just to use a simple feature that may not be worth paying for at all. Or maybe you won’t even use most of it’s features.
The book Atomic Habits is a classic and a consensus among productivity and self-improvement actors (Youtubers, influences, writers, etc.). It did not introduce any new profound concept I have never seen in some other source. On the other hand, the author outstandingly exposes the ideas behind acquiring new habits. The idea of driving your habits in the direction of the future version of what you want to become is not evident in other books, and it proves to be a good idea.
A group of friends and I maintain a telegram group to talk about investing. A few years ago, we developed a chatbot to search for some stock prices once we post the stock’s name. The bot is quite simple and makes it fun since you don’t need to google or any other platform to see the price of the stock you want to check (Check out the image one of me getting the price of bitcoin).
Adopting Elixir: From Concept to Production is an excellent book about adopting new technologies. I would recommend it to anyone who plans to migrate a legacy system to any new technology, not only Elixir, manly the initial character that contains extensive insides about approaching the migration.
It has been a year since I open-sourced Nun-DB. That happened when https://www.teknisa.com invited me to give a talk about real-time processing. At that time, I worked on Nun-DB for over six months, and I thought it would be an excellent opportunity to announce the project. It was called “Freira-DB” back then, and the goal of this post is to update the Nun-DB and what has happened during this one year.
I have been working as a remote developer fulltime, for the last five years. Part-time/freelancing for at least ten years, over this time, I have collected several tips and tricks on how to become better at it and how to succeed and deliver results under this environment. I am writing this post to share some of these tricks, while this is a brief list. I am always testing these things. I thought it would be useful to do this one and periodically create a new one to share some updates.
I needed a realtime database for two personal projects I was working, a time tracker (not public yet ) and http://ebelle.vilarika.com.br, the natural decision would be to use something like Firebase, but I was looking for a light open-source alternative turns out I did not found one as simple as I wished, so I decided to build one. My needs were simple, I need my frontend to be updated whenever the data change in the backend (And I do not want to implement a new WebSocket for each of my application). Here I will not give many details about how I build Nun-DB. You can read it [not public yet], but I will focus on how I went to production with it for my project Ebelle.
Making the react + redux + redux-saga development more fun and productive and less repetitive and verbose.
I have recently been working on and delivering some projects using pure react and react + redux, and it seemed like something was missing that would make working with them more reliable. Early last year, I started learning new front-end architectures using react to a POC for one of my customers. I came across the combination react + redux + redux-saga, which felt pretty healthy to me as the right solution for lots of problems I had faced in recent projects. Since then, I have wanted to try the combination in a real-world project to see if it scales or not. The opportunity came early this year when I needed to create a new mobile UI for one of my personal SAS solutions, so I decided to give it a shot. After developing the first set of features, I found myself doing a lot of repetitive work that delivered few new features or improvements.
One of the most significant advantages of working remotely is choosing how and where you work. That is what makes a big difference from a person working in an office. On the other hand, sometimes, you feel you have no focus or unproductive working on your home-office. The simple fact to go somewhere else will make you be much more productive and get your attention back. That happens because novelty produces dopamine, and dopamine increases focus.
I have been working remotely full time the last 2 years, since I join Tenfold (https://www.tenfold.com/), almost at the same time I was starting to work toward a master’s degree in Computer Since(You can see some info about my research here). Those are two demanding activities I have to deal with on a daily bases. To achieve my goals on both I have been testing myself on all the ways possible, on how to be more productive in these last two year, and this is the first of a group of articles about what I have learned an tested and what has worked or not.