📝 Research :https://ojitha.blogspot.com.au for my lengthy articles.

Kubernetes Introduction

January 3, 2026
Scala Functors
This post provides a practical introduction to Kubernetes, focusing on essential networking concepts and hands-on debugging techniques within a Linux-based cluster. It guides readers through inspecting node roles, understanding Container Network Interfaces (CNIs) such as Flannel, and analysing overlay networks using tools such as ip route and crictl. The tutorial examines kube-proxy modes, service discovery via CoreDNS, and the deployment of multi-tier applications using Redis and Nginx. Furthermore, it demonstrates how to expose services using NodePort, scale deployments for high availability, and utilise `kubectl exec` and `cp` for effective pod interaction and troubleshooting.
More…

ICIJ Fraud Analysis

December 6, 2025
Scala Functors
Uncover the hidden wealth of nations by analysing the ICIJ Offshore Leaks Database using Apache Spark and Scala. This technical guide demonstrates how to process more than 810,000 offshore entities identified in the Panama and Pandora Papers to detect financial fraud. We walk through the process of defining Schema Case Classes for nodes and relationships, loading CSV data into Spark Datasets, and executing complex multi-hop graph joins. Learn to reconstruct fragmented data into complete entity profiles, map beneficial ownership networks, and identify suspicious shell companies sharing registered addresses. Master graph database analysis techniques to expose global corruption and money laundering structures effectively.
More…

Spark Dataset APIs

November 7, 2025
Scala Functors
Comprehensive technical guide to the Apache Spark Dataset API, defining it as a distributed collection that provides type safety while benefiting from the performance optimisations of the Catalyst Optimiser. It explains key internal mechanisms, such as Encoders, which manage the serialisation between domain-specific JVM objects and Spark’s internal binary format, using the MovieLens dataset to illustrate conceptual data entities. The text analyses fundamental transformations, including the functional narrow transformations like map and flatMap, and contrasts the standard, untyped join with the type-safe joinWith operation. Furthermore, the guide highlights significant performance considerations for wide transformations, noting that groupByKey requires a full data shuffle and lacks the map-side combine optimisation available in the standard DataFrame groupBy. Finally, the documentation scrutinises a physical query plan to detail how Adaptive Query Execution (AQE) dynamically optimises resource usage by adjusting partition sizes based on runtime statistics.
More…

Functional Programming Abstractions in Scala

October 31, 2025
Scala functional fundementals

Master the foundation of modern Scala development by exploring five essential functional programming abstractions. This guide takes a deep dive into algebraic structures, starting with Semigroup and Monoid for combining values. It progresses to type constructors, explaining how Functors transform wrapped data, Applicatives combine independent contexts, and Monads sequence dependent computations. By understanding these core patterns, developers can write more polymorphic, composable, and algebraically sound Scala code that works across diverse data types.

More…

Scala 2 Collections explained

October 27, 2025
Scala Functors

Scala collections are a powerful feature providing rich data structures for working with sequences, sets, and maps. The collection hierarchy comprises three main types: Sequence for ordered indexed access, Set for unique elements, and Map for key-value pairs. Scala emphasises immutable collections by default, ensuring thread-safety and referential transparency, while mutable collections enable efficient in-place modifications. Key collection types include List for linked list operations, Vector for random access, and Range for memory-efficient numeric sequences. Understanding the distinction between immutable and mutable collections is essential for writing safe, concurrent Scala code. Iterators enable lazy evaluation, allowing efficient processing of large datasets without consuming memory.

More…