Continuous Profiling with Async-profiler

4 Pillars of Observability As systems grow in complexity, performance issues creep into application over time. Debugging such issues is often difficult as these are the result of amalgamation of multiple causes. Observability plays an important role in pinpointing these causes. Traditionally, there are 3 pillars of observability: logging, tracing, and metrics. The 3 pillars…

Read More

Inheritance in OOP is Evil

Inheritance is a fundamental concept in object-oriented programming (OOP). It allows creations of a new class based on an existing class, facilitating polymorphism and code reuse. However, while inheritance can be powerful, it is also almost always wrong. Let’s discuss the pitfalls of inheritance with some simple example. What is Inheritance? Inheritance allows a class…

Read More

Gradle Version Catalog – New Way to Manage Dependencies

Managing Dependency Versions in Gradle When developing a software, you rarely write all the code from scratch. Usually, libraries or frameworks are used, allowing developers to use numerous features without building everything from the ground up. Mismanagement these dependencies can lead to broken build or application, so it is important to manage them properly. The…

Read More