RSSAmplifier

Blog

Beginner's Guide to Scala & Functional Programming

Beginner-Friendly Articles to Master the Basics of Scala and Functional Programming.

yadukrishnan.liveRSS feed ↗20 posts

Latest posts

Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 3

Introduction This blog is a part of the Data Plumber Series. In Parts 1 and Part 2, we explored simple and batch-oriented data pipelines. Now, let's dive into continuous streaming data processing using FS2. Streaming Data Plumber The streaming impl...

Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 2

Introduction This blog is a part of the Data Plumber Series. In Part 1, we explored the basic implementation of our data pipeline framework, demonstrating the core concepts of type-safe data transformation between sources and sinks. While the simpl...

Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 1

Introduction This blog is a part of the Data Plumber Series. In today's enterprise applications, data integration is not just a feature—it's a fundamental requirement. Applications need to communicate with various systems using different protocols ...

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. While working on a Scala 3 project, I needed a way to read CSV files and convert them into case classes generically—without manually setting values for...

Custom SBT Task to List Direct Dependencies of a Project

Introduction Recently, at work, there was a requirement to list out the direct dependencies of the our SBT project, something like Bill Of Materials. SBT itself provides the dependencies as list or tree or searchable HTML page using the built-in comm...

Developing Java Applications with Scala-CLI

Introduction Scala-CLI is a relatively new tool that simplifies learning Scala and building simple applications. I wrote a detailed blog about the features of Scala-CLI to build applications in Scala. However, it is also possible to write pure Java a...

Effective Test Parameterization with ScalaTest Tables

Introduction To manage the software's quality, it is essential to cover the methods with unit/integration tests. However, writing tests for all the methods/classes is not enough. It is important to write proper tests covering all the edge cases. Othe...

Scala Made Simple for Beginners: A Gentle Introduction to Kickstarting Your Scala Learning

This blog is a beginner-friendly guide to kickstart your Scala programming journey, and it even covers how to incorporate external libraries. If you're relatively new to Scala, I hope you'll find this information helpful. I won't be walking you throu...

Diving into ZIO Test 'Aspects': Streamlining Cross-Cutting Concerns in Testing

1. Introduction Testing is one of the most essential parts of any software development. As a result, developers spend a lot of time writing unit and integration tests to make the code free from errors. Often, it becomes necessary to address non-funct...

Mastering ScalaTest - Exploring Tagging, Retry, Runner and More

Introduction ScalaTest is one of the most popular and oldest testing libraries in Scala. As a result, it is used by a huge majority of the Scala codebase. Other popular testing frameworks are MUnit, uTest and so on. In this blog, I would like to take...

Unlocking the Power of SBT: A Beginner's Guide to Understanding Not-So-Common Features

1. Introduction SBT is the most popular and de-facto build tool for Scala projects. It lets you write the build configurations using its Scala-based DSL. SBT is very powerful and can create very customizable multi-module builds. However, with great p...

Error Handling in Cats Effect [Part-9]

1. Introduction This is another part of the Cats Effect 3 series. In this short part, let's look at some of the ways to handle errors in Cats Effect 3. 2. Raising an Error Firstly, let's see how we ca

Useful Automation Tools for Scala Development

This article introduces popular and useful tools for Scala application development, such as GitHub Actions and Scalafmt, and provides installation and configuration instructions. It also provides examples of configuration files and commands to use sc...

Comparing case class instances using DiffX

Diffx is the ideal tool for comparing intricate data structures, even those with nested case classes. Its user-friendly APIs, customization features, and effortless integration with testing libraries have made it a favourite among developers. With th...

ULID - Sortable Unique Identifier

Learn about ULIDs, a 128-bit identifier that's lexicographically sortable and making it an ideal alternative to UUIDs for order preserving unique identifiers. Introduction While building software applications, we need to generate random identifiers ...

Easy Integration Testing with TestContainer-Scala

1. Introduction Integration Testing is a very important part of software development. It is generally better to have an integration testing environment as close to the production setup as to catch bugs early. However, it is also cumbersome to set up ...

Tuple Improvements in Scala 3

Scala 3's enhanced Tuple datatype enables element access by position, supports tuples comprising beyond 22 elements, and introduces supplementary methods and combinators, ultimately improving user experience. Introduction Tuple is a special type of ...

Compile Time Error Generation using inline in Scala 3

1. Introduction As most of you already know, Scala 3 has completely redesigned the language and also brought in a lot of new features. As part of it, Scala 3 has implemented meta programming from scratch. Scala 3 has simplified a lot of common meta p...

Scala Exceptions - Try, try..catch and a caveat

Learn about the various approaches to exception handling in Scala, and discover a peculiar situation that may arise while using scala.util.Try. This blog post delves into the fact that scala.util.Try is designed to handle only NonFatal exceptions, an...

Lazy and Eager Computations in Cats using Eval

Unleash the potential of Cats Eval, a specialized monad that streamlines synchronous evaluations and harmonizes diverse code types. In this write-up, we'll delve into the numerous benefits of Cats Eval, including its ability to regulate code executio...