Software Estimation

You may be surprised that we are not able to give an estimation as well as we think, and you may be more surprised that not all of the software engineers are able to estimate (properly), most just guesstimate with rough intuition. Though it’s not completely wrong, we can actually learn how to estimate properly. If you are graduated from Computer Science major like me, you will remember that software estimation technique is one of the courses by itself.

Continue reading

On Growing in Software Industry: Domain Knowledge

Azur Lane Confused GIF - AzurLane Confused What - Discover & Share GIFs |  Anime pixel art, Pixel art characters, Cool pixel art

Shipping a working product is one thing, but do things really stop at production? Absolutely not, and I’m not talking about maintenance, but when we talk about “working,” it’s stretched beyond the definition of meeting acceptance criteria. It’s about whether the product has an impact on the customer and achieves the business outcome. Hence, think beyond the code, extend the knowledge of the domain, and understand the business.

Continue reading

On Growing in Software Industry: System Design

We agree that the tech industry is getting more and more competitive (especially with layoffs everywhere; the tech bubble is bursting already), and software development has always been evolving at a rapid pace.

However, I believe the key to staying relevant and competitive in this market always goes back to problem-solving. How exactly do you solve problems in tech? IMO, it is by providing the appropriate system design for the given problem.

Continue reading

On Knowledge Management Method: BASB a.k.a. Building a Second Brain

I shared briefly about BASB in the last post. I started my note-taking with the straightforward method, Zettelkasten, and used a simple note-taking, Obsidian. As my life went on, my job role expanded, various sources of information were unlocked, the long-term effect was real, I got information-overloaded, and I had difficulties managing my notes with a bunch of links and tags. I stumbled upon this book on Amazon and tried the PARA method, and it has been life-changing.

Continue reading

On Capturing Notes

Unlike the other typical managers who are very tidy and organized on their stuff, I tend to be chaotic. However, COVID has changed me quite a lot, especially after one month in an isolated room with dyspnea + silent hypoxia. I read a bunch of books and newsletters and went through many YouTube & Facebook videos (yes, the Indian street food videos. 🇮🇳) and I found a perfect formula for me to capture knowledge .. in notes. I stumbled upon this article https://fortelabs.com/blog/basboverview/ and decided to put my nuance into the takeaway.

First Principle on Capturing Notes: Make it easy with less to no friction *inspired by the atomic habit

Continue reading

Redis use-cases aside from Cache

Redis can be more impactful aside from caching. Here are a few other use cases :
1️⃣ As a persistent storage for use cases like shopping carts, user profiles, and social-media-related posts/newsfeeds. Easily sorted set simply by ZRANGE
2️⃣ Tracking state with Bitmaps, easily track and get states with boolean logic with SETBIT and GETBIT
3️⃣ Location Based with Redis geospatial, easily search and add geospatial data with GEOADD & GEOSEARCH. AFAIK it’s quite tricky to do this with Postgre
4️⃣ Distributed Lock, i.e., updating inventory stock to handle flash sale traffic
5️⃣ Analytics Funnel with Probabilistic easily store event and or merge with the HyperLogLog
6️⃣ Simple event-driven architecture with Redis Stream or as a Pub/Sub with SUBSCRIBE/PUBLISH commands, which can be seen as a message queue even with LIST

reference: https://blog.bytebytego.com/p/redis-can-do-more-than-caching

On Evolutionary Architecture Book

Evolutionary Pokemon Architecture is good architecture that adheres to the fitness functions of the company; fitness function terms emphasized by the authors help to define what characteristics define good architecture.

The author’s discussion revolves around evolvable change, a change that has little to no breaking changes to the existing feature or integration, and implementation coupling leaks.

Continue reading

Thoughts on Developer Productivity

Color Cycling in Pixel Art | by Stephen Schroeder | Prototypr

I used to have a dream to work at a consulting giant until a few years ago. I worked with a bunch of them, as my parent company decided to hire one of the consulting companies, and they gave me nothing but a mess (Duh! 🙄). A while back, I stumbled upon this “Yes, you can measure software developer productivity” article from the consulting giant, and it sparked debate in a lot of tech blogs/newsletters.

Continue reading