• Home
  • Search
  • About
    • Thoughts To Pen photo

      Thoughts To Pen

      Turning caffeine into clean Java, systematic trades, compound growth, and questionable life choices.

    • Learn More
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Portfolio
  • Resources
  • About
  • Contact
  • Privacy Policy
  • Terms of Service
  • Disclaimer

Computer Programming

  • Java Garbage Collection Showdown: G1GC vs. Generational ZGC in 2026 (Benchmarks & Architecture)

    Comprehensive benchmark and architectural comparison between G1GC and Generational ZGC in modern Java. Understand pause times, colored pointers, load barriers, and throughput trade-offs.

    Read More
  • Under the Hood of the Java JIT Compiler: How C1, C2, and Escape Analysis Turn Bytecode into Blazing Machine Code

    Comprehensive deep dive into the JVM JIT compiler. Understand Tiered Compilation (Levels 0–4), Escape Analysis, Scalar Replacement, and Inlining with runnable benchmarks.

    Read More
  • Streaming Real-Time Stock Market Data with Shoonya API and Java: Complete WebSocket Guide

    Learn how to stream real-time tick-by-tick stock market data using Shoonya (Finvasia) WebSocket API in Java. Step-by-step tutorial covering the NorenWSAPI protocol, handshake authentication, avoiding policy violations, and building an auto-reconnecting client.

    Read More
  • Getting Started with Algo Trading in India: A Beginner's Step-by-Step Guide with Shoonya API

    A comprehensive beginner's guide to algorithmic trading in the Indian stock market. Learn how algo trading works, set up Shoonya (Finvasia) zero-brokerage APIs, fix common network traps, and deploy risk-controlled paper trading strategies.

    Read More
  • Free Online QR Code Generator: Create Permanent, Private Text & URL QR Codes (No Sign-Up, No Expiration)

    Generate 100% free, private, permanent QR codes online from text, URLs, Wi-Fi passwords, UPI payments, and emails. No signup required, no subscription fees, no scan limits, and no expiring redirect links.

    Read More
  • How QR Codes Work: Matrix Anatomy, Reed-Solomon Error Correction, and Java Guide

    Deep technical guide to QR code internals: matrix anatomy, 2D scanning physics, Reed-Solomon error correction algebra, and complete Java ZXing implementation.

    Read More
  • Complete Guide to Shoonya (Finvasia) API Authentication in Java: OAuth 2.0, WebSocket Streaming & Network Fixes

    Learn how to authenticate with Shoonya (Finvasia) Trading API in pure Java. Step-by-step guide covering the modern OAuth 2.0 GenAcsTok flow, SHA-256 checksums, IPv6 network fixes, and live WebSocket streaming with accesstoken.

    Read More
  • Best Algo Trading APIs in India (2026): In-Depth Comparison, Pricing & Developer Guide

    Comprehensive comparison of the best algorithmic trading APIs in India: Shoonya, Zerodha Kite Connect, Angel One SmartAPI, Upstox v2, DhanHQ, and Fyers. Detailed analysis of API pricing, brokerage, rate limits, SDKs, WebSocket streaming, and pros & cons.

    Read More
  • CAP Theorem Explained Visually

    Consistency, Availability, Partition Tolerance. Learn the golden rule of distributed systems and why you can only choose two.

    Read More
  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing

    Learn how to use Message Queues to handle heavy background tasks asynchronously without making your users wait.

    Read More
  • Database Scaling: Sharding, Partitioning, and Replication

    When your single database hits 100% CPU, panic sets in. Learn how to scale your databases horizontally using Replication and Sharding.

    Read More
  • Caching Strategies & Content Delivery Networks (CDNs)

    Why query your database 10,000 times a second for the same data? Learn how Caching and CDNs drastically speed up your applications.

    Read More
  • Tries (Prefix Trees)

    Discover the Trie, a specialised tree for string operations. Learn how Auto-Complete works and how to search a dictionary of words in O(L) time.

    Read More
  • A* Search Algorithm

    The crown jewel of pathfinding. Learn how A* combines Dijkstra's guaranteed accuracy with a Greedy Best-First Search heuristic to find the shortest path lightning-fast.

    Read More
  • Bit Manipulation

    Zoom down to the 1s and 0s. Master Bitwise AND, OR, XOR, and Shifts to solve problems with brutal efficiency and zero memory overhead.

    Read More
  • Recursion Patterns — Base Cases & Unwinding

    Demystify Recursion. Learn how functions call themselves, how the Call Stack unwinds, and the difference between Head Recursion and Tail Recursion.

    Read More
  • Backtracking

    Learn how to solve Sudoku, N-Queens, and combination puzzles using Backtracking. We cover the core template that solves almost all combinatorial search problems.

    Read More
  • Greedy Algorithms

    Why look at the big picture when you can just make the best immediate choice? Learn when Greedy Algorithms work, and more importantly, when they fail.

    Read More
  • Dynamic Programming — Tabulation

    Master Bottom-Up Dynamic Programming. Learn how to replace recursive Memoization with iterative Tabulation to eliminate StackOverflows and optimise memory.

    Read More
  • Dynamic Programming — Memoization

    Unlock the power of Top-Down Dynamic Programming. Learn how Memoization turns slow $O(2^n)$ recursive algorithms into lightning-fast $O(n)$ solutions.

    Read More
  • Dijkstra's Shortest Path

    Master Dijkstra's algorithm to find the absolute shortest path on weighted graphs. Learn how it combines BFS and a Priority Queue to work its magic.

    Read More
  • Depth-First Search (DFS) & Applications

    Master Depth-First Search for graphs. Learn how to implement DFS recursively and iteratively to detect cycles, find connected components, and solve mazes.

    Read More
  • Graph Representation & BFS

    Enter the world of Graphs. Learn how to represent graphs using Adjacency Lists and Matrices, and master Breadth-First Search (BFS) to find the shortest paths.

    Read More
  • Heaps & Priority Queues

    Master Heaps and Priority Queues. Discover how an array can represent a perfect binary tree, and how to get the maximum or minimum element in O(1) time.

    Read More
  • Binary Search Trees (BST)

    Learn how Binary Search Trees achieve O(log n) lookups by enforcing strict ordering rules. Includes Java implementation of insert, search, and delete operations.

    Read More
  • Binary Trees — Traversals & Operations

    Discover the anatomy of Binary Trees. Learn the four main traversal methods (In-order, Pre-order, Post-order, Level-order) with clear diagrams and Java code.

    Read More
  • Linked Lists — Singly, Doubly & Circular

    Everything you need to know about Linked Lists. Learn how nodes connect via pointers, difference between Singly and Doubly linked lists, and Java implementation.

    Read More
  • Hash Tables & Hashing

    Understand the magic behind O(1) lookups. We explain Hash Tables, Hash Functions, and collision resolution techniques with Java's HashMap.

    Read More
  • Stacks & Queues — Core Operations

    Learn the core concepts of Stacks (LIFO) and Queues (FIFO). Understand their operations, time complexities, and see them implemented in Java using Deque.

    Read More
  • Sliding Window Technique

    Master the Sliding Window technique to solve contiguous sub-array and sub-string problems efficiently. Covers fixed-size and dynamic window patterns with Java examples.

    Read More
  • Two Pointer Technique

    Learn the Two Pointer technique to solve array and string problems efficiently. Covers opposite-direction and same-direction patterns with Java examples.

    Read More
  • Linear Search & Binary Search

    Master the two fundamental search algorithms. From the brute-force scan of Linear Search to the elegant halving strategy of Binary Search, with Java code and traced examples.

    Read More
  • Counting Sort, Radix Sort & Bucket Sort

    Break the O(n log n) barrier with linear-time sorting algorithms. Learn how Counting Sort, Radix Sort, and Bucket Sort work with detailed examples and Java code.

    Read More
  • Quick Sort — The Versatile Performer

    Discover how Quick Sort partitions arrays around a pivot to achieve O(n log n) average performance in-place. Full Java code, traced example, and pivot strategy discussion.

    Read More
  • Merge Sort — Divide and Conquer

    Master Merge Sort with a visual divide-and-conquer walkthrough, complete Java implementation, and a deep dive into why it guarantees O(n log n) performance.

    Read More
  • Selection Sort & Insertion Sort

    Understand Selection Sort and Insertion Sort with intuitive analogies, traced examples, Java code, and a side-by-side comparison of when to use each.

    Read More
  • Bubble Sort — The Simplest Sort

    Learn how Bubble Sort works with a detailed step-by-step walkthrough, Java implementation, and Big-O analysis. The easiest sorting algorithm to understand for beginners.

    Read More
  • Introduction to Algorithms & Big-O Notation

    Learn what algorithms are, why they matter, and how Big-O notation helps us measure their efficiency. Includes easy-to-follow examples, Java code, and a complexity cheat sheet.

    Read More
  • Algorithms & Data Structures — Complete Guide

    A complete, beginner-friendly guide to algorithms and data structures. Learn sorting, searching, trees, graphs, dynamic programming, and more — with Java examples.

    Read More
  • The New Date/Time API (Java 8)

    Master the thread-safe and intuitive java.time API introduced in Java 8. Learn how to handle dates, times, and time zones correctly.

    Read More
  • The Optional API (Java 8)

    Stop chasing NullPointerExceptions. Learn how to use Java 8's Optional class to build safer, more resilient applications.

    Read More
  • The Streams API (Java 8)

    Learn how to process data declaratively with the Java 8 Streams API. Master filter, map, and collect to write cleaner loops.

    Read More
  • Functional Interfaces & Default Methods (Java 8)

    Deep dive into Java 8's interface enhancements. Learn about Default Methods, Functional Interfaces, and the foundational built-in functions like Predicate, Consumer, Supplier, and Function.

    Read More
  • Lambda Expressions (Java 8)

    Master Lambda Expressions in Java 8. Learn how to write concise, functional code and eliminate anonymous inner class boilerplate.

    Read More
  • Java 8 Features

    Revisit the revolutionary changes introduced in Java 8, the release that brought functional programming to Java with Lambdas, Streams, and the Optional API.

    Read More
  • Predicate::not and More Enhancements (Java 11)

    Explore the smaller but impactful features of Java 11, including Predicate.not(), simpler Collection to Array conversion, and single-file execution.

    Read More
  • Local-Variable Syntax for Lambda Parameters (Java 11)

    Understand how to use the 'var' keyword in lambda expressions in Java 11 and why it's useful for annotations.

    Read More
  • String & Files API Enhancements (Java 11)

    Discover the new utility methods in String and Files classes introduced in Java 11. Write cleaner code for common text and I/O tasks.

    Read More
  • Standard HTTP Client API (Java 11)

    Master the modern HTTP Client in Java 11. Learn how to perform synchronous and asynchronous requests with support for HTTP/2.

    Read More
  • Java 11 Features

    Explore the landmark features introduced in Java 11 LTS, including the new HTTP Client, Local-Variable Syntax for Lambda Parameters, and key String and File API enhancements.

    Read More
  • Enhanced Pseudo-Random Number Generators (Java 17)

    Explore Java 17's new random number generator interfaces and algorithms for better performance and flexibility.

    Read More
  • Records (Java 17)

    Eliminate boilerplate with Records in Java 17 - the perfect solution for immutable data carrier classes.

    Read More
  • Text Blocks (Java 17)

    Write cleaner multi-line strings in Java 17 with Text Blocks, perfect for JSON, SQL, HTML, and more.

    Read More
  • Pattern Matching for instanceof (Java 17)

    Simplify type checking and casting in Java 17 with Pattern Matching for instanceof, eliminating boilerplate code.

    Read More
  • Sealed Classes (Java 17)

    Master Sealed Classes in Java 17 to control inheritance hierarchies and build more maintainable, secure domain models.

    Read More
  • Java 17 Features

    Explore the powerful features introduced in Java 17 LTS, including Sealed Classes, Pattern Matching, Text Blocks, Records, and enhanced random number generators.

    Read More
  • Primitive Types in Patterns (Java 25)

    Java 25 extends pattern matching to primitive types like int and long, unifying the type system.

    Read More
  • Module Import Declarations (Java 25)

    Say goodbye to import clutter with Module Import Declarations in Java 25.

    Read More
  • Flexible Constructor Bodies (Java 25)

    Flexible Constructor Bodies in Java 25 allow statements before super(), giving you more control over object initialization.

    Read More
  • Compact Source Files (Java 25)

    Java 25 introduces Compact Source Files to reduce boilerplate and make the language more beginner-friendly.

    Read More
  • Java 25 Features

    A comprehensive overview of the new features in Java 25, including Compact Source Files, Flexible Constructors, and Primitive Patterns.

    Read More
  • Unnamed Patterns & Variables (Java 21)

    Discover how Unnamed Patterns (_) in Java 21 help you write cleaner code by ignoring unused variables.

    Read More
  • Structured Concurrency (Java 21)

    Explore Structured Concurrency in Java 21 for more robust, readable, and maintainable concurrent code.

    Read More
  • Unnamed Classes & Instance Main Methods (Java 21)

    Simplify your Java learning layout with Unnamed Classes and Instance Main Methods in Java 21.

    Read More
  • Pattern Matching for switch (Java 21)

    Pattern Matching for switch in Java 21 revolutionizes control flow with type testing and complex case logic.

    Read More
  • Record Patterns (Java 21)

    Learn how Record Patterns in Java 21 allow for powerful and concise data navigation and processing.

    Read More
  • Sequenced Collections (Java 21)

    Sequenced Collections introduced in Java 21

    Read More
  • Virtual Threads (Java 21)

    Virtual Threads NOTE: This is a preview feature NOT enabled by-default in JDK-21.

    Read More
  • String Templates (Java 21)

    String Templates introduced in Java 21

    Read More
  • Java 21 Features

    All new features introduced in Java 21

    Read More
About Contact Privacy Policy Terms of Service Disclaimer Resources

© 2026 Thoughts To Pen. All rights reserved.

Educational software engineering & research publication. Content and code samples do not constitute financial or trading advice.

Popular Topics:
Indexing articles...
↑↓ Navigate ↵ Open ESC Close
Powered by Lunr.js