Articles

Vibe Coding, Kotlin, Finance, and Data Visualization

Vibe Coding, Kotlin, Finance, and Data Visualization

Recently, I came across a paper discussing an experiment and tried to reproduce it. Here’s a brief summary: - Portfolio A: In a bull market, grows by 20%; in a bear market, drops by 20%. - Portfolio B: In a bull market, grows by 25%; in a bear market, drops by 35%. - Bull market probability: 75%. According to the paper, both portfolios should have a one-year expected return of 10%.
Treat life like a marathon, not like a sprint

Treat life like a marathon, not like a sprint

Like most of us, I am daily flooded with thoughts about life, my objective position in it, whether I am missing anything, or whether I need to do better. Am I providing enough for my family? Is my career on track? Am I being healthy enough? Am I just passing through life instead of aiming to strive? Those thoughts have been slowly mitigated, but they never got away. Over time, I have been slowly accepting this reality, and I came to realise that all the marathon training and long-distance running have helped me come to terms with these facts.
Uploading SARIF Reports to GitHub

Uploading SARIF Reports to GitHub

Recently I wanted to add Lint reports to a repository on GitHub. The goal is to report potential Lint violations when new code is committed, to make sure that all the committed code is lint-warning-free and pretty. My first idea was to look for a GitHub action that could run ./gradlew lint and report it as a PR comment. After asking about ideas in the Android Study Group, Carter Jernigan and Justin Brooks suggested me to upload directly the SARIF files into GitHub.
KotlinConf 2024 announcements

KotlinConf 2024 announcements

The first day of the KotlinConf 2024 is over, and there has been a significant amount. After 5 years the conference happened again at The Bella Center in Copenhagen, a fantastic venue close to the historical center of the Danish capital. The last two weeks have been intense, with the Google I/O announcing another set of relevant features for Android and Kotlin developers. Most notably, Google is now supporting KMP for Android development.
HTTP chunk requests with Android and ktor

HTTP chunk requests with Android and ktor

In this very short article, I will explain briefly what is a chunk or streamed HTTP request, what are the benefits of using it, and how it works in Android. Android apps use HTTP requests to download data from a backend. This information is stored and processed on the app to make it functional. HTTP requests are executed using different frameworks on Android. The most common ones are Retrofit or OkHttp.
My Investing Summary of 2022

My Investing Summary of 2022

Another solar rotation passed, and the world experienced a plethora of unexpected events. In the aftermath of the Corona epidemic that altered the course of the last couple of years, we had the unfortunate invasion of Ukraine by Russian forces, the tightening of Corona measures in China (and toward the end of the year, their withdrawal and gradual reopening of the economy), an ongoing economic recession, the rate hike by the FED and the general uncertainty of the most immediate future.
KMP, iOS Developers and Production

KMP, iOS Developers and Production

Kotlin Multiplatform (or KMP, KMM Mobile, etc) has been widely used for a number of years in applications that are currently in production. JetBrains compiled a website listing some of the companies that are currently using KMP. Since the advent of the mobile platforms we enjoy today, there has always been a certain market interest to push multiplatform technologies, such as Cordova, Xamarin, and others. With more or less success, those technologies aimed to provide a unified framework to develop multiple codebases, mostly focusing on the aspect of pricing (create code once, deploy multiple times).
A recapitulation of investing in pandemic times

A recapitulation of investing in pandemic times

It has been around 14 months since the pandemic started. We have all been affected by it to a greater or lesser degree, and the investing world has not been an exception (although surprisingly, the stock market is one of the winners of the pandemic). In this post I will share how the pandemic changed my investment thesis, the things I learned, and the mistakes I did. 14 months into the crisis of our generation (and with a few months to recover whatever the new normal will be), we now know that things will never be the way they used to be.
A short story of randomness (I)

A short story of randomness (I)

I have always been fascinated by the above comic strip. A discussion on randomness and determinism becomes as much a philosophical issue as it is a practical one. They are used in a variety of applications: from the obvious cryptography, gaming or gambling to the less evident politics or arts. How can we be sure that a number is random? Will observing the process mine our efforts on generating the random number, similar to the observation of a cat inside a box with a decaying radioactive atom?
From Java to Kotlin and back (III): Calling Java from Kotlin

From Java to Kotlin and back (III): Calling Java from Kotlin

This article is part of a series. You can find the remaining article of the series here: From Java to Kotlin and back (I) — Calling Kotlin from Java From Java to Kotlin and back (II): Calling Kotlin from Java In this last chapter of the series, we will evaluate consideration when calling Java code from Kotlin. One could argue that even in this situation happens often, keeping considerations in mind for some code that might legacy is not that practical.
From Java to Kotlin and back (II): Calling Kotlin from Java

From Java to Kotlin and back (II): Calling Kotlin from Java

This article is part of a series. You can find the remaining article of the series here: From Java to Kotlin and back (II): Calling Kotlin from Java From Java to Kotlin and back (III): Calling Java from Kotlin In the previous article, we explored how Java and Kotlin can interact with each other, and some considerations in this regard. In this second edition, we will keep reflecting on some relevant aspects to consider when Java is calling Kotlin.
From Java to Kotlin and back (I): Java calling Kotlin

From Java to Kotlin and back (I): Java calling Kotlin

This article is part of a series. You can find the remaining article of the series here: From Java to Kotlin and back (II): Calling Kotlin from Java From Java to Kotlin and back (III): Calling Java from Kotlin I am currently working on a multi-module project that combines a variety of Java and Kotlin code, so I decided to publish my thought and notes as an article series. It will likely help me as a journaling practice, and hopefully can help other potential readers that end up here trying to find some tips while they are facing the same problem.
Considerations when creating Android libraries

Considerations when creating Android libraries

If you are an Android developer, chances are you might have been working on your own Android libraries. A library is a useful way to create a reusable set of features that need to be integrated through different apps (or even different libraries). A library is a self-contained package including code and resources required to execute some functionality. Importing a library in our Android app is the same process as importing a .
GitHub Actions for Android developers

GitHub Actions for Android developers

If you are developing Android apps, chances are you have confronted any sort of CI at some point in your career. If you thought Android fragmentation was a thing, the wide availability of CI systems will be familiar to you. GitHub Actions was released around November 2019, and since then it has proved itself to be reliable for a production environment (one of our requirements before committing to any software system).
Using the Signature class to verify data

Using the Signature class to verify data

When there is an exchange of information happening, we often want to verify that the origin of the data is the right one. This can be used to ensure that the right clients are having access to our resources. For instance, let’s imagine that we want to ensure that an authorized device is querying a file with sensitive information from our backend. An immediate solution could be to use a X-Api-Token in our device.
Managing the Kotlin Weekly

Managing the Kotlin Weekly

I just sent the issue #182 of the Kotlin Weekly. #182 means that this has been the week 182 that the Kotlin Weekly is alive. Many things have changed since the first edition on the 7th of August 2017, sent to over 200 initial subscribers with 5 articles. In some of the first editions, the content was so scarce that I ended up writing my own articles to include them, or adding some code snippets I posted on Twitter.
2019 in retrospective

2019 in retrospective

This year is over. During the last 365 days, I fulfilled some of the goals I meticulously established at the beginning of the year. In other goals, I failed without palliatives or anesthesia. During the last 9 years, I have been following a process to determine my goals for the upcoming solar rotation. I sit at a coffee place next to my home in Munich, order a ginger tea and take notes.
A Gentle Introduction to Investing for Software Engineers (IV) — My methodology to determine which…

A Gentle Introduction to Investing for Software Engineers (IV) — My methodology to determine which…

You can access all the articles of the series through the following links: (I) — Motivation (II) — Compounding interest and introducing other factors (III) — Determining a company value and acquisition point (IV) — My methodology to determine which stock to buy In this fourth and last article of the series, I will explain my methodology to acquire individual stock in the market. Most of the guidelines I expose are thought of as a guideline that you might need to adapt depending on your circumstances (for instance, the double taxation will play a role depending on your tax residence).
Re-post: Which city has the most intense Android scene in Europe?

Re-post: Which city has the most intense Android scene in Europe?

I wrote this post originally 5 years ago. For a side project, I had to use the StackExchange data explorer again, so I decided to revisit it and update the numbers. StackExchange Data Explorer is an open-source tool to run SQL queries against public data from StackOverflow. Since StackOverflow is the biggest development forum of the world, there is surely a lot of information that companies can actually retrieve from their system in order to take some business decision (this is actually a brilliant place to apply BigData)
Using Git Hooks to improve your development workflow

Using Git Hooks to improve your development workflow

Recently, I was contributing for the first time to a new codebase. I extended and implemented some functionality that I needed. After thorough testing on my machine, where I checked that the functionality was properly working, I committed my contribution. Minutes after, our CI environment delivered a message: 4 Tests failed This happens so often, even on the codebases we are used to work with. We tend to focus on developing the new features, and forget that there is a test that is covering them.
A Gentle Introduction to Investing for Software Engineers (III) —Determining a company value and…

A Gentle Introduction to Investing for Software Engineers (III) —Determining a company value and…

You can access all the articles of the series through the following links: (I) — Motivation (II) — Compounding interest and introducing other factors (III) — Determining a company value and acquisition point (IV) — My methodology to determine which stock to buy In this third article of the series, I am giving an introduction to some of the factors that we commonly use to determine whether a company is apt for our investment strategy, whether it is the right moment to acquire stock, and in general to provide us some insight beneath the numbers.
A Gentle Introduction to Investing for Software Engineers (II) — Compounding interest and…

A Gentle Introduction to Investing for Software Engineers (II) — Compounding interest and…

You can access all the articles of the series through the following links: (I) — Motivation (II) — Compounding interest and introducing other factors (III) — Determining a company value and acquisition point (IV) — My methodology to determine which stock to buy In this second article of the series, I want to keep exploring some metrics to show the evolution of our investment keeping in mind different scenarios. This time I will be including screenshots from a Google Spreadsheet instead of displaying text tables.
A Gentle Introduction to Investing for Software Engineers (I) — Motivation

A Gentle Introduction to Investing for Software Engineers (I) — Motivation

You can access all the articles of the series through the following links: (I) — Motivation (II) — Compounding interest and introducing other factors (III) — Determining a company value and acquisition point (IV) — My methodology to determine which stock to buy If you are reading this article, chances are you a Software Engineer that has ended up here looking up for saving, investment or retirement advice. Or maybe you have a different profession, but ended up here anyway.
Approaching a methodology to select speakers for conferences

Approaching a methodology to select speakers for conferences

After a great first edition, this year I organised the second edition of the Droidcon Vietnam with some local folks. Before I organised a conference like this, my experience was limited to local Meetups in Munich (I am currently the organiser of the Kotlin User Group Munich, and the Firebase User Group Munich). The latter has a different nature in terms of resources, logistics and efforts required. They are community-based events, local and — without requiring an easy trajectory — they are certainly less complex than the former.
Creating a library for Android: The Good, the Bad and the Ugly

Creating a library for Android: The Good, the Bad and the Ugly

Software Development is like an Ouroboros. You end up going to the place you have previously resided, with requirements and knowledge updated and refashioned. You might have started working on an initial prototype that began the journey as a basic HelloWorld, and it has evolved into one of those mythological Nordic monsters. Or maybe Greek monsters are more terrifying and frightening. I do not know. At one of my projects we recently came up with the requirement of extracting some of the functionality well buried there to expose to third-party consumers.
On Strategies to apply Kotlin to existing Java code

On Strategies to apply Kotlin to existing Java code

Since the latest announcement at the Google I/O, things have been crazy. At the Kotlin Weekly Mail List we had an increase in subscribers over 20% in the last two weeks, over 200% increase in article submissions, and at a Meetup I organise (Kotlin Users Group Munich) we had a huge increase in attendees. And all this combined with the general blast in the developers community. A trend that will only continue to grow.
A follow-up on how to store tokens securely in Android

A follow-up on how to store tokens securely in Android

As a prologue to this article, I want to remark a short sentence for the notional reader. This quote will be important as we move forward. Absolute security does not exist. Security is a set of measures, being piled up and combined, trying to slow down the inevitable. Almost three years ago, I wrote a post giving some ideas to protect String tokens from a hypothetical attacker decompiling our Android application.
Using Firebase as a Real Time System

Using Firebase as a Real Time System

I was captivated by exposed pictures since I was a child. Is a unique way to capture movement in a static image. I have been an avid user of Firebase since more than a year now. When Parse.com announced it would be shutting off, I was attending a Google Launchpad in Mountain View as a mentor. If you haven’t heard of the Google Launchpads, they are great. Not only for the startups, which get a fair amount of advising and mentoring from people in different fields (UX, Tech, Marketing, Monetizing and Fund raising…) but also for mentors itself!
Learning to use and abuse Mutability

Learning to use and abuse Mutability

I am an old Java man, I never allocated many of my thoughts to reflect on the philosophy of mutability. In Java, unlike in other languages, there is no precise control over what is mutable and immutable. I never thought of Java objects as having this feature. Instead, I would always refer to them as “that Java class that has no setter”. “That Java class that cannot be modified once the value has been set up”.
An Overview of Polls for (Android) (Mobile) Developers in 2016

An Overview of Polls for (Android) (Mobile) Developers in 2016

Last year I started a weekly routine consisting on posting on my Twitter a poll every Monday, with topics related to Android / Mobile / Software Engineering (in that order). It has been a total of 18 polls during the year, with an overwhelming response and engagement of the community. (On a side note, I can‘t stress enough how lucky I am of being able to be a part of the Worldwide Android District.
On properly using volatile and synchronized

On properly using volatile and synchronized

In the last weeks I have been writing about the transient modifier and the different types of references available in Java. I want to hold the topic of underused/misused topics in Java and bring you this week the volatile and synchronized modifiers . Multithreading is an entire discipline that takes years to master and properly understand. We will keep a short introduction in this article. In computing, a resource can be accessed from different threads concurrently.
Diving deeper into the Java transient modifier

Diving deeper into the Java transient modifier

Nothing is tied forever. Neither are transient variables. Last week I published an article to help you understand how references do work in Java. It had a great acceptance, and I got a lot of constructive feedback. That is why I love the software community. Today I want to present you another article diving into a topic that it is not widely used: the transient modifier. Personally, when I started using it I recall I was able to quickly grasp the theoretical aspect of it, although applying was a question of a different nature.
Finally understanding how references work in Android and Java

Finally understanding how references work in Android and Java

A few weeks ago I attended Mobiconf, one of the best conferences for Mobile Developers I had the pleasure to attend in Poland. During his eclectic presentation “The best (good) practices”, my friend and colleague Jorge Barroso came up with a statement that made me reflect after hearing it: If you are an Android developer and you do not use WeakReferences, you have a problem. On an example of good timing, a couple of months ago I did publish my last book, “Android High Performance”, co-authored with Diego Grancini.
You live in a better world today

You live in a better world today

This has been a very tragic week in Germany. In less than five days, four attacks happened in the southern provinces of Bayern and Baden-Württemberg (the motivation of some of them being disputed, but being mostly assigned to the refugee crisis and open-borders policy of Merkel). After the attacks followed the classical harangue from certain civil and political sectors drawing attention on the rapidly deteriorating social peace in Germany and Europe.
The theoretical animal

The theoretical animal

We are theoretical animals. We spend our entire lives analyzing our immediate environment, theorising on how to solve our most immediate problems or improve processes. We think of having conversations with beloved people, we think of carrying out actions we have planned for a while with relatives and friends, and we think of starting new projects. Yet we do little to implement them and put all this knowledge into practice.
A Comprehensive Introduction to Perform an Efficient Android Code Review

A Comprehensive Introduction to Perform an Efficient Android Code Review

You are working in a team that cares about code quality. You have been doing -or thinking of doing- some code pairing. Your team regularly carry out hacking events to talk and present new technologies, or to talk about the personal discoveries of each member. And you are trying to devise the perfect code review process for your organisation. Is this situation familiar to you? Code reviews are hard to implement.
Automating Android development

Automating Android development

I have been recently talking at the DroidCon Spain and DroidCon Italy about how to automate a traditional Android workflow. To my surprise, there are still many organisations that do lack a Continuous Integration (CI) strategy. This is a big mistake! I decided to put down in words my thoughts about how to efficiently implement CI. As a software engineer, your aim is to automate as many processes as possible. Machines are more efficient than people: they do not need food neither sleep, they perform tasks errorless and they make your life easier.
Event-driven programming for Android (part III)

Event-driven programming for Android (part III)

(This is the third article in a three-part series) Previously, I have given an introduction to Event Driven programming with Android, and show some code to create a HelloWorld Event-Driven application. Now we are likely facing another problem: how can we easily scale an application using Event-Driven development without falling into a messy and unorganised code? In this article, I will provide a proposal architecture that serves to scale an application based on Event-Driven development, but that can also be used to create a more general type of applications.
Event-driven programming for Android (part II)

Event-driven programming for Android (part II)

(This is the second article in a three-part series) In the previous article we had a short introduction into Event-Driven programming. Now let’s see some actual code and how to perform the basics with EventBus. First I will present the entities that play a central role in Event-Driven programming. Refer to the following image taken from the EventBus repository. An Event Bus. This is the central communication channel that connects all the other entities.
Event-driven programming for Android (part I)

Event-driven programming for Android (part I)

(This is the first article in a three-part series) Although Android includes some event-driven features in its development, it is far away from being a pure event-driven architecture. Is this something good or bad? As in every issue with software development the answer is not easy: it depends. First, let’s establish a definition for event-driven development. This is a programming paradigm where the flow of execution is determined by events triggered by actions (such user interaction, messaging from other threads, etc).

A Gentle Introduction to Investing for Software Engineers (I) — Motivation

Planted July 27, 2018
Pruned June 9, 2025

A Gentle Introduction to Investing for Software Engineers (I) — Motivation

You can access all the articles of the series through the following links:

(I) — Motivation

(II) — Compounding interest and introducing other factors

(III) — Determining a company value and acquisition point

(IV) — My methodology to determine which stock to buy

If you are reading this article, chances are you a Software Engineer that has ended up here looking up for saving, investment or retirement advice. Or maybe you have a different profession, but ended up here anyway. It doesn’t matter, as long as this article can provide you some value. Recently, and in informal conversations with peers, investing came as a natural topic. I realized most of the peers in the industry do not have a clear strategy for retiring or investing their savings. I am summarizing here my knowledge and experience investing, and I hope it can be of your benefit.

You might realize that I have included the Roman numeric (I) on the title of this article. This means it will be part of a series I will be publishing, although I have not fully decided the content or extend. This is something I will do it on the fly — I think this promotes the benefit of taking interesting paths, depending on the feedback you can get from potential readers like you. So far, in this article I will focus on the motivation that pushed me to invest, and why I this think it is a great idea. We all have to deal with money. The better we know how to use it, the higher the quality of our lives.

Some situations described in this article are related to the Spanish/German legislation. Nowadays the schemas followed in this countries are widely similar among countries (taxes, retirement, unemployment, etc). European countries, and particularly north-European countries might have more generous community benefits than the average countries due to its social contract. It might not be the same in your country, keep this in mind.

I am not a professional investor, neither can give you professional legal or financial advice. I am describing my experience and what has worked out for me, how I learned it and how do I invest. Contrast this with other sources of knowledge, experiment, and create the system that works better for you.

Why for Software Engineers?

This is not an exclusive or elitist article, anybody can benefit from it. However, there are a few trends I believe we share in a particular profession. Since my profession is Software Engineering too, I believe I am in a similar situation to many of my folks.

  • We can enjoy remote work very easily. This benefits our life in many senses: we can live in places that are cheaper or have a better taxing perspective while we focus on our daily tasks.
  • We can also enroll in companies that are located in tech hubs — it is easier to find a job as a Software Engineer in Silicon Valley than on a tropical island in South East Asia. But you can actually live in SEA while working for a SV company.
  • Software Engineer jobs are highly paid. As a consequence, many folks have cash remaining that the can use in other endeavours (investing, saving, starting their own company…)
  • We fucking love creating our own tools.

Why would I need to invest?

Every one of us will have to deal with money in their lives. Know your options, so your life quality will increase.

It is not about achieving Financial Independence (FI) in your 30s, or going into retirement being young. If you ask me about my personal motivations: I like what I do, I get recognisement, I help other folks and I have fun with it. I do not have a reason to stop doing what I do, but I want to have options in my life.

You can have a side passive income, that will allow taking better life decisions because cash is not a daily need anymore. Yes, you can also go into the early retirement. Or start a foundation or your own company. Or keep doing what you want. But now you will have this new wide spectrum of options you never had before. You will not live in a world of scarcity.

And you do not achieve it with savings, or a monthly paycheck.

A personal journey

I started investing around two years ago, and more heavily with a well-defined plan for around a year. Everything started when I jumped from the security of a permanent job into the realm of freelancing. After years of having a permanent job, I got addicted to the security of the paycheck and the corporate benefits. Without realizing, I provided an architecture to my life: 27 days of holidays per year, productivity bonus, retirement schema… everything sounded easy. The company or government were taking care of it, and I never had to take care of it.

Suddenly, those “privileges” vanished overnight. I am quoting “privileges” because those are not real privileges, but after many years we end up believing it. There were no more unemployment benefits. No retirement. Damn, my first gig was only three months long, and I think my cash savings by that time covered half a year of expenses! And even if the fee I was charging as a freelancer was significantly superior as my salary as a permanent employee, it would have taken ages to cash up a decent amount to get me close to the financial independence.

As a financially conservative person, I was naturally concerned about the destination of my hard earned cash. Investments like Bitcoin or other cryptocurrencies were too esoteric and distant for me. Real-estate investment was at that time a big and scary monster — signing a contract for 30+years where you have to do monthly contributions to your mortgage, and if dark times come the bank can take it from you? What a modern wording for “enslaving”. So I naturally ended up sliding into learning about investing in the Stock Market.

DISCLAIMER: I actually own a few BTC and LTC, but this was out of curiosity to learn how they worked and the process. Although I have obtained some capital gains, for me it was never a financial investment.

All the above-mentioned arguments have their own weight, but the heaviest one was that as a freelancer I was not entitled any more to a public retirement (if we are supposed to get fussy, I could be entitled in the future to a minimum wage retirement pension, but that was never what I had in mind. I wanted to retire on my own terms, or achieve the FI by myself). That means I would need to adopt a strategy to

A) Save enough money to create my own safety mattress and/or

B) Somehow create a passive income that could support me overtime.

The pyramid scheme of pensions

I am a Spaniard living in Germany for 11 years. Both in my country of birth and in the country of adoption, pensions are paid following the principle of “intergenerational solidarity”. The word “solidarity” might make you think that this means some sort of “good deeds for the benefit of all”, but it truly means a distribution of poverty. Some folks that identify themselves with the anarcho-capitalism and extreme capitalism consider this a conspiracy from the top spheres to keep the populace docile and servile. I tend to believe in the dictatorship of negligence more than in the dictatorship of evil: this happened as a result of several generations where this schema did not explode (as it happens during the first generations of a Ponzi scheme) and we got used to it as a frog gets used to the increasing temperature of water in a cooking pot. We are so addicted to the system and it is so entangled in our society that few people see how harmful and prejudicial it is.

The system works like this: current generations pay with their social contributions for the pensions of the generation that is currently retired. Numbers might vary from one country to other: Spain has 2,23 active workers per retiree. Germany 2,1. Developed countries (notably European countries + Japan) have the same problem: a stagnant birth rate, and an increasingly aging population. We rely on the hope of new contributors to the system to keep the boat floating, but mathematics are a bitch.

There are 35.7 million people contributing to the state pension system and 17.7 million receiving a pension in Germany. Supposing that the proportion of 2.1 workers per retiree does not decrease (already an act of faith) we will need 70 millions of people contributing to the state pension system to keep it alive when the current workers transfer to the pension system. And after that, we will need 140 million. And the list goes ad-eternum.

The pension system, as it has been designed, is a scam (or the composed result of many bad decisions taken over years) that is failed and the longer we wait to take action the worst it will be. You do not want to rely on it.

The stock

As many of us, I associated the stock market with a high-risk investment. We all have heard stories of how brokers earn and lose millions within a day. We all have seen “The Wolf of Wall Street”. Damn, it takes a lot of hard work to earn money, I do not want to lose it all!

It turns out these fears are unfounded. There are those daily traders, that conduct many operations a day in the stock market moving millions and billions a day. They are mainly called “computers”. There are other strategies in the market (FOREX, currencies, futures…) that might be more complex as well, or using tools such as leverage. You might end up eventually using them if you increase your financial knowledge, but for the neophyte I do not find them adequate. However, there is a strategy I didn’t know before, which suits most of the non-professional investors that want to find security over time on their hard earn cash.

It is called Buy&Hold.

Buy&Hold is nothing like you have seen in the films. It is a very boring investing strategy. You invest diligently (the amount that suits you every certain period) in big, sustainable companies that pay a significant dividend. Then you reinvest the dividends and let the compound interest work out for you.

But can I lose all my money?

Well, it is theoretically possible that you lose all your money. Maybe a meteorite crashes on the Earth, the world as we know it disappears and we struggle to survive. In that case, your investment can go wrong. Otherwise, chances are rare.

Think about this. You will be investing in big, boring companies that have been for a while on the market and they pay their boring dividend every year. They do not have an explosive growth, but they are stable. Think of companies like Allianz, Siemens, BMW, Bayer, Unilever, Apple, 3M, Johnson & Johnson, Coca-Cola… Would you imagine a world where all these companies disappear? Things should have gone terribly wrong by then.

On average, the stock market provides a 7% yearly return after discounting inflation and the dividends. The key here is the word average. The stock market has a high fluctuation, and this 7% might be -15% one year, +10% the next, +4% the next one… hence we are here for the long term, not for the short-term trading. We cannot predict the future, but we make decisions based on how the past was. And historically, with all its ups and downs, the stock investing has been a profitable and a secure investing.

The Buy&Hold strategy states that you acquire diligently stock from big, boring companies, hold it over time and reinvest the dividends. There are some key aspects here:

  • Diversification per sector: it is key to include within your portfolio a sufficient diversification per sector. Imagine if you invest everything in the IT Market. You could have done tons of money in some periods of time, or lose a significant amount after the Web Bubble crashed. You do not want to make a lot of money in a short period of time, you want to boringly create your own portfolio and create your patrimony. Sector diversification is a must.
  • Diversification per company: let’s say you want to have 15% of your portfolio in the insurance sector. It would be a bad idea to invest all your money in a company, let’s say, Allianz. Allianz is a great company apt for the long term, but nothing prevents any company from having a few bad years. If you decide to go for 15% of your portfolio in the insurance sector, you might want to include as well a couple of other companies (let’s say, Mapfre and AXA).
  • Diversification per countries: during the Euro crisis, some countries (particularly in South Europe) were heavily affected. Some others (Central and Northern countries) were less affected. Some other world regions (Asia) had a strong growth. Over time you want to incorporate companies from different regions to provide stability to your portfolio.
  • Temporary diversification: let’s say, you have now a significant amount of cash you want to invest. You decide to put everything on a set of companies you have chosen. Now you are lucky enough to do it on a period where the Stock Market is low, so they revalued quickly, providing you gains. Congratulations! Or maybe there is a crash afterwards, so you lose 50% of your investment value. That sucks. Invest wisely over time, so you can catch up all the different periods. You will go through depressions and optimism periods in a period of 10–20 years. So do it wisely and calmly.

It is key to keep in mind that the Buy&Hold strategy is a long-term strategy. You are aiming to obtain Financial Independence or create your own patrimony in a period of no less than 10 years, maybe 15 or 20. Each person has different situations: some might earn more than others, some might have a family, some might live more frugally than others… but obtaining a stable income from the dividends is something everybody of us can make. We do not need to be especially smart. And this will give us more security, will allow us to make better life decisions and be happier.

The compound interest

The key to the Buy&Hold strategy is the compound interest. Let’s put some simple numbers:

Our friend Frank can invest 100$ dollars every year in the Stock Market. After getting financial knowledge for some time, he decided it is time to invest. So the first year he invests 100$ in a few companies.

He gets during this year 4% in dividends, so we know has 104$ in his broker. The next year he invests again 100$, plus the dividends he already got. He has a total of 204$. Now the dividends are 8.16$. So every year, he actually invests more money from his savings, and reinvesting the dividends he gets dividends over the reinvested dividends. ╔═══════════╦════════════════════╦═══════════════╗ ║ Year ║ Total investment ║ Dividends(4%) ║ ╠═══════════╬════════════════════╬═══════════════╣ ║ 1 ║ 100$ ║ 4$ ║ ║ 2 ║ 204$ ║ 8,16$ ║ ║ 3 ║ 312.16$ ║ 12,45$ ║ ║ 4 ║ 424,61$ ║ 16,98$ ║ ║ 5 ║ 541,59$ ║ 21,66$ ║ ║ 6 ║ 663,25$ ║ 26,53$ ║ ║ 7 ║ 798,78$ ║ 31,95$ ║ ║ 8 ║ 930,73$ ´ ║ 37,22$ ║ ║ 9 ║ 1.067,95$ ║ 42,71$ ║ ║ 10 ║ 1.210,66$ ║ 48,42$ ║ ╚═══════════╩════════════════════╩═══════════════╝

Over a period of 10 years, Frank has invested 1.000$ of his own money. He has, however, a capital of 1.210,66$ that is already providing him 48,42$ a year. We have a linear growing (Frank can invest 100$ every year) combined with an exponential growing (the dividends paid over the re-invested dividends).

What we want with the Buy&Hold strategy is to create a portfolio of big, boring companies that pay us a dividend. Using a cattle metaphor, we want to have a lot of cows that give us a lot of milk. We do not care how fat the cows are.

This example is simplified for clarity, but we are lacking other key aspects:

  • Dividends grow over time. Good companies increase their dividend over the years. There is a coined term, Dividend Aristocrats, referring to the company that increases their dividend over a certain amount of time.
  • Stock valuation grows. Discounting the dividends and inflation, the stock has grown 7% over the years. So your invested money will actually be worth more over time
  • Inflation: industrialized countries with no problems have an inflation rate of around 2%-3% over time. This makes the value of your money decreases, and it uses as well the compound interest. That is why leaving your cash on the bank is a bad idea! This also means, however, that Frank will earn more over time, and will be able to contribute more than 100$ per year.

In the upcoming article, I will explore more advanced examples taking into account these variables. I hope this introduction serves as an entry point into financing to the potential reader. Do not hesitate to write a comment if you have any question or something you would like to discuss.

Conclusions

  • The public retirement scheme is a broken scam.
  • Leaving your cash on the bank makes you lose on average 2%-3% of your hard-earned savings every year.
  • The Stock Market, when an appropriate strategy follows, is a conservative approach, and more secure than most.
  • Valuation and the creation of your wealth will come from the dividends.

I write my thoughts about Software Engineering and life in general in my Twitter account. If you have liked this article or it did help you, feel free to share it, ♥ it and/or leave a comment. This is the currency that fuels amateur writers.#### More where this came from

This story is published in Noteworthy, where thousands come every day to learn about the people & ideas shaping the products we love.

Follow our publication to see more product & design stories featured by the Journal team.