Beyond Basics: Exploring Advanced TypeScript TypesTypeScript has evolved into a powerful superset of JavaScript, offering advanced type system features that can help developers write more…Feb 12Feb 12
Testing Caching Strategies in .NET CoreWhat is Cache Stampede? Cache stampede occurs when a cached item expires, and multiple requests hit the system at once, all trying to…Jan 28Jan 28
Secret Caching for AWS Lambda: Is It Really Working?Recently, I worked on a project that used AWS Lambda functions a lot. As our serverless architecture got more complex, we needed better…Aug 6, 2024Aug 6, 2024
Boost Your PostgreSQL Queries: Understanding Index TypesWhen working with databases, indexing is a crucial concept that significantly impacts the performance and efficiency of your queries…Jul 7, 2024Jul 7, 2024
Branching Strategies: A Deep Dive into Trunk-Based Development and GitFlowAs a software engineer, I’ve worked with various development workflows and tools over the years. Among these, two of the most popular…Mar 26, 2023Mar 26, 2023
Understanding Time Complexity of C# List and LINQ MethodsTime complexity is a measure of how long an algorithm takes to run in relation to the size of its input. Big O notation is a common way to…Jan 25, 2023Jan 25, 2023
Scaling Up: The Importance of Fan-In and Fan-Out in System DesignDesign principles are the foundation of any well-designed system. Two important principles to consider when designing a system are fan-in…Jan 23, 2023Jan 23, 2023
Joi: The Ultimate Solution for Data Validation in Node.jsValidating data is an important step in any application, especially as your application grows in complexity. One way to ensure that the…Jan 13, 2023Jan 13, 2023
Sorting Words by Similarity in TypeScript: A Guide to Use Levenshtein distance algorithmIn natural language processing and information retrieval tasks, it is often useful to sort a list of words by their similarity to a single…Jan 12, 2023Jan 12, 2023