Monday, November 24, 2025

Mother tongue - Learning any skill like Mother tongue

What really is a mother tongue?

A language spoken to you as a child even before you start eating proper solid food.

So, a child learns a language not by the grammar and rules associated with it, but starts learning a language by uttering words even without understanding any real meaning behind them.

So, this type of (rote?) learning makes a language a mother tongue. The continuous practice from early childhood makes it a mother tongue.

Isn't it applicable to any prodigy as well?

# For example, Ilayaraja, the extraordinary music composer.

He learned music without any understanding very early. He started making use of the harmonium without any sort of understanding.

# I've seen a small kid who swims like a fish in the swimming pool, but nobody taught him anything in a systematic way. He learned it because there was a swimming pool in his apartment, and continuous practice by being in the water made him learn to swim like a fish :)

# Another good example is Ramanujan, the mathematical genius.
He solved complex problems, and he couldn't say clearly how he arrived at the solution.
He started practicing very early.

Now, can I apply this to learning technical or other skills?
How do I apply this?

For example:
Start coding early. Don't wait to understand concepts. Eventually everything will fall into place. Do this for, say, 100 days, and then start getting into concepts.
It is continuous practice that makes a skill stick rather than thorough understanding in the beginning itself. Please note, thorough understanding helps you appreciate the knowledge better, but to get hands-on, one needs continuous practice.


connection storm in TCP and how to avoid

All databases, in fact, all TCP servers, are susceptible to a connection storm.

Let's dig deeper to understand what it is and how to handle it.

A TCP connection storm occurs when applications rapidly open and close a large number of database connections, overwhelming the server's connection handling capacity.

The impact can be severe, leading to resource exhaustion (each connection takes up 2-8 MB), CPU thrashing during connection handshakes, internal lock contention (in the case of multi-threaded handling), high memory fragmentation, or even downtime.

If your database is distributed and the master faces a connection storm, it may put your database in an inconsistent state, and it can be really tricky to bring it back to consistency.

A few ways to handle this at the OS level include configuring iptables rate limiting, which limits new connections per IP.

You can also tune the TCP stack by updating the `/etc/sysctl` file and configuring SYN parameters and the connection queue.

All major databases also expose TCP-related parameters like backlog size, pool size, timeouts, etc., so review the configurations and tune your parameters accordingly.

You can also add a second line of defense with a database proxy (e.g., ProxySQL, PgBouncer, etc.).

A good practice is always to monitor the connection count on your database instance.

Depending on the database you use, there are ways to gather these metrics, so proactively monitor them and set up alerts.

Some examples are: - `pg_stat_activity` in Postgres - `threads_connected` metric in MySQL.

This will help you prevent outages due to a connection storm and respond in time.

 

Golden path (in software)

What is golden path in software?

A golden path in software is a standardized, opinionated, and supported set of tools, processes, and best practices for common tasks, such as building and deploying applications.

Provides developers with a streamlined and efficient "approved way" of working, reducing complexity, decision fatigue, and technical debt.


By offering a well-defined and templated route, golden paths allow developers to focus on delivering business value rather than reinventing infrastructure and tooling, ultimately accelerating delivery velocity and improving consistency across an organization.


Golden path in platform engineering:

Instead of a new team having to figure out logging, monitoring, and CI/CD from scratch, a Spring Boot golden path would provide a ready-to-use template with pre-configured logging, monitoring, and deployment pipelines, allowing the team to focus on their application code.