When my knowledge portfolio was defined, describing the domains and programming languages I wanted to invest, I embraced it as my Lifelong Learning Program. I put this program into practice by creating GitHub repositories. I have at least one for each programming language that I have chosen and they somehow cover the domains I want to focus on. They are:

  • Digger (Java, Utilities) : An app to help developers to document relational databases in a collaborative way. There are many legacy databases out there and teams struggle to learn the meaning of tables, views, columns and other structures. Digger helps them to keep track of what they know about the database structure. Digger is developed in Java with Spring Boot and Hibernate. This stack was not mentioned in my new knowledge portfolio, but I’ve been working with Java for a long time and Digger is the most mature repository I have in my GitHub profile.

  • Minimily (Clojure, Home Automation) : An app to manage the minimalist life of a family at home. Its controversial approach is based on workload. It means the more I consume the more I have to use the app, thus less consumption means less usage. Tools like Mint connects to your bank account, do all the heavy lift for you and leave only charts for your eyes, without giving the feeling of spending frequency and volume. Minimily requires you to register every single record manually, so you feel you are spending more or less. It does not invade your privacy and does not care about your identity. Since I adopted Minimily I was finally able to buy everything in cash, including my last three brand new cars (one at a time, of course). We also gave a good down payment in our first home and we are able to pay down the mortgage faster.

  • Controlato (Python, Home Automation, Healthcare) : The original idea dates back to 2004, when we created an app called Planexstrategy. But it was too big, covering project management, document management, and process management. I’m taking about the process monitoring of the process management part and applying modern concepts found in the book “Measure What Matters”, by John Doerr. I personally need this tool to monitor my IoT devices, water, gas, and power consumption, and even team velocity and backlog at work. Controlato should be able to monitor from annual investment returns to heart beats. I decided to write it in Python and Django. Python will help me to analyze data that Controlato collects from everywhere.

  • SpitFHIR (Go, Healthcare) : While working in the healthcare industry, I was presented to a standard called FHIR® (Fast Healthcare Interoperability Resources). It is used to exchange data among healthcare systems. The more I learn FHIR® the more impressed I become. In my opinion, it is the most advanced interoperability standard for data exchange. It stands out specially in security due to the sensitivity of healthcare information. FHIR® is very popular and even used by Apple and Google to exchange data with their mobile devices like Apple Watch, Fitbit, Android, etc. There are many FHIR® implementations out there, most in mainstream programming languages to cover existing information systems - EHR (Electronic Healthcare Records). I’m advocating here the implementation in more modern languages to offer alternatives to new healthcare applications. I couldn’t find a mature implementation in Go, just some sketches here and there. Maybe Go has a limitation that I’m not aware of, but I’m wiling to take the risk and write SpitFHIR, a Go implementation of the FHIR® standard. If it will ever be completed, I don’t know, but I will certainly have fun writing some clever algorithms. However, if it is completed, then SpitFHIR is going to be the fastest, more productive, and maintainable implementation out there.

  • SampleReads (Elixir, Home Automation) : I currently use Goodreads, a social network of writers and readers. This app hasn’t evolved for a long time and has limited features. The only one I care about is keeping track of the books I read. And even that doesn’t fulfill my needs. So I decided to approach this problem with SampleReads: an app that keeps track of the book I read entirely or - and here is its differential - partially. I can register I read from page 47 to 81, make notes, write reviews, all counting to my reading stats. I also want to add books that are not in public databases, like my car’s driver manual, or a magazine or an obscure e-book.

  • Roma (Rust, Utilities) : Rust is the programming language I know the least in my portfolio. So, I’m going to start with a small tool to get familiarized with its concepts. Roma is a library to generate SQL statements from CSV files. It has special features like grouping insert statements in transaction chunks and inserting multiple rows with a single insert statement.