• Home
  • About
    • Thoughts To Pen photo

      Thoughts To Pen

      My thoughts on Computer Programming || Psychology || Personal Finances || & much more...

    • Learn More
    • Twitter
    • Instagram
    • Github
    • StackOverflow
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Portfolio
  • Resources
  • About

Tag Archive

  • algorithms 27
  • architecture 1
  • async 1
  • backtracking 1
  • banking 5
  • bfs 1
  • big-o 1
  • bit-manipulation 1
  • borrowing 1
  • brokerage 1
  • bst 1
  • business 1
  • caching 1
  • canada 19
  • career 1
  • chequing 1
  • code-review 1
  • credit 2
  • currency 1
  • data-structures 4
  • databases 2
  • dfs 1
  • divide-and-conquer 2
  • dynamic-programming 2
  • emergency-fund 1
  • etf 1
  • fhsa 1
  • graphs 4
  • greedy 1
  • habits 1
  • hashing 1
  • heaps 1
  • heuristic 1
  • hisa 2
  • index-funds 1
  • interest-rates 1
  • investing 7
  • java 31
  • java11 5
  • java17 6
  • java21 9
  • java25 5
  • java8 6
  • linked-lists 1
  • literature 2
  • memoization 1
  • message-queues 1
  • mutual-funds 1
  • pathfinding 1
  • pension 1
  • performance 1
  • personal-finances 19
  • productivity 2
  • programming 62
  • psychology 4
  • punjabi 2
  • queues 1
  • rdsp 1
  • real-estate 1
  • recursion 1
  • relationships 1
  • resp 1
  • retirement 1
  • rewards 1
  • robo-advisor 1
  • rrsp 2
  • saving 3
  • scaling 1
  • searching 1
  • shortest-path 1
  • sliding-window 1
  • software-engineering 9
  • sorting 5
  • stacks 1
  • strings 1
  • student 1
  • system-design 5
  • tabulation 1
  • tax-saving 1
  • taxes 1
  • tfsa 2
  • theory 1
  • travel 1
  • trees 3
  • trie 1
  • two-pointer 1

algorithms

  • Tries (Prefix Trees)
  • A* Search Algorithm
  • Bit Manipulation
  • Recursion Patterns — Base Cases & Unwinding
  • Backtracking
  • Greedy Algorithms
  • Dynamic Programming — Tabulation
  • Dynamic Programming — Memoization
  • Dijkstra's Shortest Path
  • Depth-First Search (DFS) & Applications
  • Graph Representation & BFS
  • Heaps & Priority Queues
  • Binary Search Trees (BST)
  • Binary Trees — Traversals & Operations
  • Linked Lists — Singly, Doubly & Circular
  • Hash Tables & Hashing
  • Stacks & Queues — Core Operations
  • Sliding Window Technique
  • Two Pointer Technique
  • Linear Search & Binary Search
  • Counting Sort, Radix Sort & Bucket Sort
  • Quick Sort — The Versatile Performer
  • Merge Sort — Divide and Conquer
  • Selection Sort & Insertion Sort
  • Bubble Sort — The Simplest Sort
  • Introduction to Algorithms & Big-O Notation
  • Algorithms & Data Structures — Complete Guide

architecture

  • Monoliths vs. Microservices: When to Use Which?

async

  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing

backtracking

  • Backtracking

banking

  • How to Choose the Right Foreign Currency Account in Canada
  • How to Choose the Right Joint Account in Canada
  • How to Choose the Right Business Account in Canada
  • How to Choose the Right Student Account in Canada
  • How to Choose the Right Chequing Account in Canada

bfs

  • Graph Representation & BFS

big-o

  • Introduction to Algorithms & Big-O Notation

bit-manipulation

  • Bit Manipulation

borrowing

  • Understanding Credit Scores and How to Improve Them

brokerage

  • How to Choose the Right Investment Account in Canada

bst

  • Binary Search Trees (BST)

business

  • How to Choose the Right Business Account in Canada

caching

  • Caching Strategies & Content Delivery Networks (CDNs)

canada

  • The Ultimate Guide to Canadian TFSA: Limits, Rules, and Strategies for 2026
  • How to Choose the Right Foreign Currency Account in Canada
  • How to Choose the Right Joint Account in Canada
  • How to Choose the Right Business Account in Canada
  • How to Choose the Right Student Account in Canada
  • How to Choose the Right Tax-Advantaged Account in Canada
  • How to Choose the Right Retirement Account in Canada
  • How to Choose the Right Investment Account in Canada
  • How to Choose the Right Savings Account in Canada
  • How to Choose the Right Credit Card in Canada
  • How to Choose the Right Chequing Account in Canada
  • How to Choose a Robo-Advisor in Canada
  • Understanding Credit Scores and How to Improve Them
  • Why High-Interest Savings Accounts are Outpacing the Market
  • How to Build an Emergency Fund (And Where to Put It)
  • ETFs vs Mutual Funds: Which is Right for You?
  • Index Investing 101: Understanding Couch Potato Portfolios
  • The FHSA: Canada's Best Account for First-Time Home Buyers
  • The Definitive Guide to the RRSP (And When to Choose It Over a TFSA)

career

  • Imposter Syndrome in Software Engineering and How to Beat It

chequing

  • How to Choose the Right Chequing Account in Canada

code-review

  • Cognitive Biases in Code Reviews

credit

  • How to Choose the Right Credit Card in Canada
  • Understanding Credit Scores and How to Improve Them

currency

  • How to Choose the Right Foreign Currency Account in Canada

data-structures

  • Heaps & Priority Queues
  • Linked Lists — Singly, Doubly & Circular
  • Hash Tables & Hashing
  • Stacks & Queues — Core Operations

databases

  • CAP Theorem Explained Visually
  • Database Scaling: Sharding, Partitioning, and Replication

dfs

  • Depth-First Search (DFS) & Applications

divide-and-conquer

  • Quick Sort — The Versatile Performer
  • Merge Sort — Divide and Conquer

dynamic-programming

  • Dynamic Programming — Tabulation
  • Dynamic Programming — Memoization

emergency-fund

  • How to Build an Emergency Fund (And Where to Put It)

etf

  • ETFs vs Mutual Funds: Which is Right for You?

fhsa

  • The FHSA: Canada's Best Account for First-Time Home Buyers

graphs

  • A* Search Algorithm
  • Dijkstra's Shortest Path
  • Depth-First Search (DFS) & Applications
  • Graph Representation & BFS

greedy

  • Greedy Algorithms

habits

  • Habit Building for Developers (Atomic Habits Style)

hashing

  • Hash Tables & Hashing

heaps

  • Heaps & Priority Queues

heuristic

  • A* Search Algorithm

hisa

  • How to Choose the Right Savings Account in Canada
  • Why High-Interest Savings Accounts are Outpacing the Market

index-funds

  • Index Investing 101: Understanding Couch Potato Portfolios

interest-rates

  • Why High-Interest Savings Accounts are Outpacing the Market

investing

  • The Ultimate Guide to Canadian TFSA: Limits, Rules, and Strategies for 2026
  • How to Choose the Right Investment Account in Canada
  • How to Choose a Robo-Advisor in Canada
  • ETFs vs Mutual Funds: Which is Right for You?
  • Index Investing 101: Understanding Couch Potato Portfolios
  • The FHSA: Canada's Best Account for First-Time Home Buyers
  • The Definitive Guide to the RRSP (And When to Choose It Over a TFSA)

java

  • The New Date/Time API (Java 8)
  • The Optional API (Java 8)
  • The Streams API (Java 8)
  • Functional Interfaces & Default Methods (Java 8)
  • Lambda Expressions (Java 8)
  • Java 8 Features
  • Predicate::not and More Enhancements (Java 11)
  • Local-Variable Syntax for Lambda Parameters (Java 11)
  • String & Files API Enhancements (Java 11)
  • Standard HTTP Client API (Java 11)
  • Java 11 Features
  • Enhanced Pseudo-Random Number Generators (Java 17)
  • Records (Java 17)
  • Text Blocks (Java 17)
  • Pattern Matching for instanceof (Java 17)
  • Sealed Classes (Java 17)
  • Java 17 Features
  • Primitive Types in Patterns (Java 25)
  • Module Import Declarations (Java 25)
  • Flexible Constructor Bodies (Java 25)
  • Compact Source Files (Java 25)
  • Java 25 Features
  • Unnamed Patterns & Variables (Java 21)
  • Structured Concurrency (Java 21)
  • Unnamed Classes & Instance Main Methods (Java 21)
  • Pattern Matching for switch (Java 21)
  • Record Patterns (Java 21)
  • Sequenced Collections (Java 21)
  • Virtual Threads (Java 21)
  • String Templates (Java 21)
  • Java 21 Features

java11

  • Predicate::not and More Enhancements (Java 11)
  • Local-Variable Syntax for Lambda Parameters (Java 11)
  • String & Files API Enhancements (Java 11)
  • Standard HTTP Client API (Java 11)
  • Java 11 Features

java17

  • Enhanced Pseudo-Random Number Generators (Java 17)
  • Records (Java 17)
  • Text Blocks (Java 17)
  • Pattern Matching for instanceof (Java 17)
  • Sealed Classes (Java 17)
  • Java 17 Features

java21

  • Unnamed Patterns & Variables (Java 21)
  • Structured Concurrency (Java 21)
  • Unnamed Classes & Instance Main Methods (Java 21)
  • Pattern Matching for switch (Java 21)
  • Record Patterns (Java 21)
  • Sequenced Collections (Java 21)
  • Virtual Threads (Java 21)
  • String Templates (Java 21)
  • Java 21 Features

java25

  • Primitive Types in Patterns (Java 25)
  • Module Import Declarations (Java 25)
  • Flexible Constructor Bodies (Java 25)
  • Compact Source Files (Java 25)
  • Java 25 Features

java8

  • The New Date/Time API (Java 8)
  • The Optional API (Java 8)
  • The Streams API (Java 8)
  • Functional Interfaces & Default Methods (Java 8)
  • Lambda Expressions (Java 8)
  • Java 8 Features

linked-lists

  • Linked Lists — Singly, Doubly & Circular

literature

  • U$A ਕੈਫੇਟੇਰੀਆ
  • ਮੁੜਦੇ ਪਰਿੰਦੇ

memoization

  • Dynamic Programming — Memoization

message-queues

  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing

mutual-funds

  • ETFs vs Mutual Funds: Which is Right for You?

pathfinding

  • A* Search Algorithm

pension

  • How to Choose the Right Retirement Account in Canada

performance

  • Caching Strategies & Content Delivery Networks (CDNs)

personal-finances

  • The Ultimate Guide to Canadian TFSA: Limits, Rules, and Strategies for 2026
  • How to Choose the Right Foreign Currency Account in Canada
  • How to Choose the Right Joint Account in Canada
  • How to Choose the Right Business Account in Canada
  • How to Choose the Right Student Account in Canada
  • How to Choose the Right Tax-Advantaged Account in Canada
  • How to Choose the Right Retirement Account in Canada
  • How to Choose the Right Investment Account in Canada
  • How to Choose the Right Savings Account in Canada
  • How to Choose the Right Credit Card in Canada
  • How to Choose the Right Chequing Account in Canada
  • How to Choose a Robo-Advisor in Canada
  • Understanding Credit Scores and How to Improve Them
  • Why High-Interest Savings Accounts are Outpacing the Market
  • How to Build an Emergency Fund (And Where to Put It)
  • ETFs vs Mutual Funds: Which is Right for You?
  • Index Investing 101: Understanding Couch Potato Portfolios
  • The FHSA: Canada's Best Account for First-Time Home Buyers
  • The Definitive Guide to the RRSP (And When to Choose It Over a TFSA)

productivity

  • Habit Building for Developers (Atomic Habits Style)
  • The Psychology of Flow State: Writing Code Faster and Happier

programming

  • CAP Theorem Explained Visually
  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing
  • Database Scaling: Sharding, Partitioning, and Replication
  • Caching Strategies & Content Delivery Networks (CDNs)
  • Tries (Prefix Trees)
  • A* Search Algorithm
  • Bit Manipulation
  • Recursion Patterns — Base Cases & Unwinding
  • Backtracking
  • Greedy Algorithms
  • Dynamic Programming — Tabulation
  • Dynamic Programming — Memoization
  • Dijkstra's Shortest Path
  • Depth-First Search (DFS) & Applications
  • Graph Representation & BFS
  • Heaps & Priority Queues
  • Binary Search Trees (BST)
  • Binary Trees — Traversals & Operations
  • Linked Lists — Singly, Doubly & Circular
  • Hash Tables & Hashing
  • Stacks & Queues — Core Operations
  • Sliding Window Technique
  • Two Pointer Technique
  • Linear Search & Binary Search
  • Counting Sort, Radix Sort & Bucket Sort
  • Quick Sort — The Versatile Performer
  • Merge Sort — Divide and Conquer
  • Selection Sort & Insertion Sort
  • Bubble Sort — The Simplest Sort
  • Introduction to Algorithms & Big-O Notation
  • Algorithms & Data Structures — Complete Guide
  • The New Date/Time API (Java 8)
  • The Optional API (Java 8)
  • The Streams API (Java 8)
  • Functional Interfaces & Default Methods (Java 8)
  • Lambda Expressions (Java 8)
  • Java 8 Features
  • Predicate::not and More Enhancements (Java 11)
  • Local-Variable Syntax for Lambda Parameters (Java 11)
  • String & Files API Enhancements (Java 11)
  • Standard HTTP Client API (Java 11)
  • Java 11 Features
  • Enhanced Pseudo-Random Number Generators (Java 17)
  • Records (Java 17)
  • Text Blocks (Java 17)
  • Pattern Matching for instanceof (Java 17)
  • Sealed Classes (Java 17)
  • Java 17 Features
  • Primitive Types in Patterns (Java 25)
  • Module Import Declarations (Java 25)
  • Flexible Constructor Bodies (Java 25)
  • Compact Source Files (Java 25)
  • Java 25 Features
  • Unnamed Patterns & Variables (Java 21)
  • Structured Concurrency (Java 21)
  • Unnamed Classes & Instance Main Methods (Java 21)
  • Pattern Matching for switch (Java 21)
  • Record Patterns (Java 21)
  • Sequenced Collections (Java 21)
  • Virtual Threads (Java 21)
  • String Templates (Java 21)
  • Java 21 Features

psychology

  • Habit Building for Developers (Atomic Habits Style)
  • Cognitive Biases in Code Reviews
  • The Psychology of Flow State: Writing Code Faster and Happier
  • Imposter Syndrome in Software Engineering and How to Beat It

punjabi

  • U$A ਕੈਫੇਟੇਰੀਆ
  • ਮੁੜਦੇ ਪਰਿੰਦੇ

queues

  • Stacks & Queues — Core Operations

rdsp

  • How to Choose the Right Tax-Advantaged Account in Canada

real-estate

  • The FHSA: Canada's Best Account for First-Time Home Buyers

recursion

  • Recursion Patterns — Base Cases & Unwinding

relationships

  • How to Choose the Right Joint Account in Canada

resp

  • How to Choose the Right Tax-Advantaged Account in Canada

retirement

  • How to Choose the Right Retirement Account in Canada

rewards

  • How to Choose the Right Credit Card in Canada

robo-advisor

  • How to Choose a Robo-Advisor in Canada

rrsp

  • How to Choose the Right Retirement Account in Canada
  • The Definitive Guide to the RRSP (And When to Choose It Over a TFSA)

saving

  • How to Choose the Right Savings Account in Canada
  • Why High-Interest Savings Accounts are Outpacing the Market
  • How to Build an Emergency Fund (And Where to Put It)

scaling

  • Database Scaling: Sharding, Partitioning, and Replication

searching

  • Linear Search & Binary Search

shortest-path

  • Dijkstra's Shortest Path

sliding-window

  • Sliding Window Technique

software-engineering

  • CAP Theorem Explained Visually
  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing
  • Database Scaling: Sharding, Partitioning, and Replication
  • Caching Strategies & Content Delivery Networks (CDNs)
  • Monoliths vs. Microservices: When to Use Which?
  • Habit Building for Developers (Atomic Habits Style)
  • Cognitive Biases in Code Reviews
  • The Psychology of Flow State: Writing Code Faster and Happier
  • Imposter Syndrome in Software Engineering and How to Beat It

sorting

  • Counting Sort, Radix Sort & Bucket Sort
  • Quick Sort — The Versatile Performer
  • Merge Sort — Divide and Conquer
  • Selection Sort & Insertion Sort
  • Bubble Sort — The Simplest Sort

stacks

  • Stacks & Queues — Core Operations

strings

  • Tries (Prefix Trees)

student

  • How to Choose the Right Student Account in Canada

system-design

  • CAP Theorem Explained Visually
  • Message Queues (Kafka, RabbitMQ) and Asynchronous Processing
  • Database Scaling: Sharding, Partitioning, and Replication
  • Caching Strategies & Content Delivery Networks (CDNs)
  • Monoliths vs. Microservices: When to Use Which?

tabulation

  • Dynamic Programming — Tabulation

tax-saving

  • The Ultimate Guide to Canadian TFSA: Limits, Rules, and Strategies for 2026

taxes

  • How to Choose the Right Tax-Advantaged Account in Canada

tfsa

  • The Ultimate Guide to Canadian TFSA: Limits, Rules, and Strategies for 2026
  • The Definitive Guide to the RRSP (And When to Choose It Over a TFSA)

theory

  • CAP Theorem Explained Visually

travel

  • How to Choose the Right Foreign Currency Account in Canada

trees

  • Tries (Prefix Trees)
  • Binary Search Trees (BST)
  • Binary Trees — Traversals & Operations

trie

  • Tries (Prefix Trees)

two-pointer

  • Two Pointer Technique