Archives
All the articles I've archived.
Apache DataSketches: A Guide to Sketch Types
A quick overview of cardinality, percentiles, frequency, sampling, and membership sketches, with their use cases and trade-offs.
Fast Approximate Analytics in Scala with Apache DataSketches
Learn HLL, KLL and Frequent Items sketches in Scala with Apache DataSketches, and inspect stored sketches with SketchProbe.
Safe AI Agentic Development: Sandboxing Coding Assistants
Secure local environments from AI coding agents by sandboxing. How to isolate Claude using nono, Nix, or Docker to block unsafe commands.
Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 3
This blog is a part of the ***Data Plumber Series.***
Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 2
This blog is a part of the ***Data Plumber Series******.***
Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 1
This blog is a part of the Data Plumber Series.
A Generic Approach to Parsing CSV into Case Classes in Scala 3
CSV is one of the most common formats for exchanging and importing data between different systems.
Custom SBT Task to List Direct Dependencies of a Project
Recently, at work, there was a requirement to list out the direct dependencies of the our SBT project, something like Bill Of Materials.
Developing Java Applications with Scala-CLI
Discover how to easily create small Java projects without the need for Maven or other complex build systems.
Effective Test Parameterization with ScalaTest Tables
Make your tests more readable and maintainable using Table Driven testing in Scalatest
Scala Made Simple for Beginners: A Gentle Introduction to Kickstarting Your Scala Learning
How to leverage Scala-CLI, Scala Toolkit, and Scastie to kickstart your journey into the exciting Scala world.
Diving into ZIO Test 'Aspects': Streamlining Cross-Cutting Concerns in Testing
Empowering Your Testing Strategy: A Close Look at ZIO Test Aspects for Effortless and Effective Handling of Cross-Cutting Concerns
Mastering ScalaTest - Exploring Tagging, Retry, Runner and More
How to tag tests, retry flaky tests, runners, compile check etc in ScalaTest framework
Unlocking the Power of SBT: A Beginner's Guide to Understanding Not-So-Common Features
Overcome the complexities of SBT with this guide to advanced features for newbies. Streamline the build process and maximize SBT's capabilities.
Error Handling in Cats Effect [Part-9]
Various ways to perform error handling in Cats Effect 3
Useful Automation Tools for Scala Development
This article introduces popular and useful tools for Scala application development, such as GitHub Actions, Scalafmt, Mergfy, Scala Steward, etc.
Comparing case class instances using DiffX
Compare instances of scala case classes and identify differences with ease.
ULID - Sortable Unique Identifier
ULID - Sortable Unique Identifier that is better than UUID in many cases. ULID vs UUID
Easy Integration Testing with TestContainer-Scala
Non flaky integration testing with testcontainers-scala
Tuple Improvements in Scala 3
New changes introduced in Scala 3 for Tuples
Compile Time Error Generation using inline in Scala 3
Implementing compile time validation in Scala 3 using inline modifier
Scala Exceptions - Try, try..catch and a caveat
How does scala.util.Try differ from try-catch, and where scala Try don't work as expected!
Lazy and Eager Computations in Cats using Eval
Controlling evaluations in Cats using Eval
Retrying Cats Effect Failures With Ease
Learn how to create a customized retry policy with error handling using the Cats-Retry library. Discover the various methods like retryingOnSomeErrors and retryingOnFailures, that enable users to...
Self Type in Scala
Different usages of self types in Scala
Data Validation and Error Accumulation using Cats Validated
Let's see how this is not good in certain scenarios. Assume that we have a simple use-case of transfer of money between two bank accounts. The user input model looks like below and have some...
Common Operators in Cats Effect 3 [Part-8]
This is the 8th part of the Cats Effect 3 blog series. In this part, let's discuss about the other common operators/methods available in Cats Effect which were not discussed in the previous parts.
Synchronisation and Concurrent Access in Cats Effect 3 [Part 7]
We can mainly use 2 different ways to create a Ref:
Cancellation of IO/Fiber in Cats Effect 3 [Part 6]
This is the sixth part of Cats Effect series. In the part 4 of this series, we looked at concurrent programming in Cats Effect 3 using Fibers. In this part, we'll look at cancellation of already...
Resource Handling in Cats Effect 3 [Part 5]
For example, if we are opening a file to read and forgets to close it when done, this will lead to memory leaks and eventual crash of the application. So, it is very important that these resources...
Concurrent Execution in Cats Effect using Fibers [Part 4]
Parallelism is a way by which multiple computations run at the exact same time. This generally utilises multiple processor cores to execute each computation. The methods parSequence, parTraverse...
Traversing Cats Effect IOs [Part-3]
In this part, let's look at different ways to combine and traverse multiple IOs.
Tools to Get Started With Scala Programming
Get a taste of Scala for the beginners
Common APIs: Cats Effect IO [Part-2]
We can also use flatten to avoid nested IOs:
Cats Effect 3 for Beginners [Part-1]
Scala Cats Effect tutorial
ScalaNative - Build Native Applications In Scala
Native application using Scala Native
TASTy File Format in Scala 3
TASTy format captures more detailed informations regarding types and other advanced features in Scala 3. The Scala compiler converts the Scala files into TASTy format(.tasty). This .tasty file is...
Scala Closures
closure in scala
Creating an SBT Project Template using Giter8
Giter8 can be used in two different ways.
Introduction to Clear-Config in Scala
mongo.dbName = "mongoDB" mongo.username = "mongoUser"
Loading Configs in Scala using PureConfig
We can create the required case classes to hold the configurations. Pureconfig can then load the config from the files to these config classes. Pureconfig can handle HOCON, JSON and Properties...
Tagged Types in Scala
Programming languages utilize the concept of Tagged Type to enhance type safety and mitigate common errors. While not a standard library feature, Scalaz, Shapeless, and Scala-Common offer their...
Duck Typing In Scala
Duck Typing or Structural Typing in Scala
Different Ways To Package A Scala Application
Different ways to create scala app packaging using scala-cli, sbt-assmbly and sbt-native-packager
Json parsing using Json4s in Scala
Learn how to use Json4s, a widely-used JSON parsing library in Scala that can work with various existing json libraries including Jackson and Play-Json. Discover how to optimize Json4s with...