# Jaskamal Kainth > Chief Software Engineer at Samsung R&D Institute India, leading engineering for Samsung's global product search platform (query understanding, retrieval, ranking). B.E. Computer Science and M.Sc. Mathematics from BITS Pilani; ACM-ICPC competitor and long-time competitive programmer. Personal site and blog of Jaskamal Kainth. Articles cover algorithms and data structures (Bloom filters, segment trees, disjoint set union), search engineering (Elasticsearch, HNSW), modern C++, philosophy, music and learning Korean. Content may be quoted and cited with a link to the source page. - Author: Jaskamal Kainth, Chief Software Engineer, Samsung R&D Institute India, Bangalore - Profiles: https://github.com/Jaskamalkainth, https://www.linkedin.com/in/j1k77/, https://icpc.global/ICPCID/TY7NYK0ENIEA - Sitemap: https://jaskamalkainth.github.io/sitemap.xml ## Articles - [Best Samsung Phones Under ₹50,000 in India (2026 Guide)](https://jaskamalkainth.github.io/blog_posts/best-samsung-phones-under-50000.html): The best Samsung phones under ₹50,000 in India for 2026: Galaxy A36 5G for display, M47 5G for battery, M17e 5G on a budget, with prices and key specs. - [Bloom Filters Explained: How They Work, False Positives and C++ Code](https://jaskamalkainth.github.io/blog_posts/bloom_filters.html): How a Bloom filter answers set membership with no false negatives and a tunable false-positive rate: the bit array, hash functions, formulas, real uses and C++ code. - [C++ Notes: Templates, Lambdas, constexpr and the STL](https://jaskamalkainth.github.io/blog_posts/CppNotes.html): Short, example-first notes on modern C++: template specialization and metaprogramming, overloading, lambdas, constexpr, variadic templates, tuples and unordered_map. - [Disjoint Set Union (Union-Find) Practice Problems](https://jaskamalkainth.github.io/blog_posts/DSU_problems.html): Practice problems for Disjoint Set Union (union–find) from UVa, HackerEarth and Codeforces, ordered by difficulty: connected components, group leaders and merges. - [Elasticsearch Notes: Inverted Indexes, Shards, Segments and Query DSL](https://jaskamalkainth.github.io/blog_posts/elasticsearchNotes.html): Elasticsearch from the bottom up: inverted indexes, Lucene shards and segments, why updates are costly, and curl examples for Query DSL, filters and aggregations. - [Galaxy Book6 vs Book6 Pro vs Ultra: Which Should Students Buy?](https://jaskamalkainth.github.io/blog_posts/samsung-galaxy-book6-student-guide.html): Galaxy Book6 vs Book6 Pro vs Book6 Ultra for students: processor, display, RAM and storage compared, and which tier fits writing, CS/engineering or design work. - [Korean Learning Notes: Hangul, Grammar, Numbers and Verb Conjugation](https://jaskamalkainth.github.io/blog_posts/korean-learning-notes.html): My Korean (한국어) study notes from Sejong Korean levels 1–2: Hangul, pronunciation rules, numbers, time, grammar and formality, vocabulary, and a 해요체 verb table. - [Music Is My Only Drug: Piano Pieces I Keep Coming Back To](https://jaskamalkainth.github.io/blog_posts/music.html): The piano pieces I return to again and again: Beethoven's Für Elise, Mariage d'Amour, the Love Story theme and a virtuosic Harry Potter medley, with videos. - [Philosophy Timeline: Great Thinkers Through History](https://jaskamalkainth.github.io/blog_posts/philosophy-notes.html): A timeline of philosophy from Socrates to contemporary thinkers, with each philosopher's dates, school and one-line answer to why humans do what they do. - [Segment Tree Problems: 20 Practice Problems from Easy to Hard](https://jaskamalkainth.github.io/blog_posts/segment_tree_problems.html): 20 hand-picked segment tree problems from LightOJ, SPOJ and Codeforces, sorted by difficulty, tagged by technique (lazy propagation, custom merges), with solutions. - [Why Do We Do What We Do? A Philosophical Journey Across the Ages](https://jaskamalkainth.github.io/blog_posts/whatwedowhywedo.html): What drives human action? How Plato, Aristotle, the Stoics, Augustine, Hume, Kant, Nietzsche, Sartre and cognitive science answer it, plus a personal reflection. ## C++ notes - [Template explicit vs implicit specialization](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/1.html): Why a C++ explicit specialization declared as f(const int) still matches f(int): top-level const is not part of the function type. Worked example. - [std::unordered_map in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/10.html): std::unordered_map in C++: a hash table with average O(1) lookup, insert and erase, basic usage, and custom hash functions for user-defined keys. - [Ambiguous function overloading in C++: why foo(0) is ill-formed](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/2.html): Why calling foo(0) fails to compile when foo(const char*) and foo(short) both exist: 0 converts to either with equal rank, so the call is ambiguous. - [Template metaprogramming in C++: compile-time Fibonacci](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/3.html): Compute Fibonacci numbers at compile time with C++ template metaprogramming: a recursive struct template with explicit specializations as base cases. - [Template metaprogramming in C++: compile-time factorial](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/4.html): Compute factorials at compile time in C++ with a recursive class template and a Factorial<0> base case, so the result has no runtime cost. - [Lambda expressions in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/5.html): C++ lambda expressions explained: syntax, capture lists, capturing by value, mutable lambdas, and using lambdas with standard algorithms. - [constexpr in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/6.html): How constexpr moves work to compile time in C++11/14/17: constexpr functions, compile-time vs runtime evaluation, and why it beats template metaprogramming. - [Struct vs class in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/7.html): The only differences between struct and class in C++ are default member access and default inheritance (public vs private). When to use each. - [Variadic templates in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/8.html): Variadic templates in C++11: parameter packs, recursive expansion with a base case, C++17 fold expressions, and where they are used. - [std::tuple in C++](https://jaskamalkainth.github.io/blog_posts/CppNotesDb/9.html): Using std::tuple in C++: creating tuples, std::get, std::make_tuple, C++17 structured bindings and class template argument deduction, and std::tuple_cat. ## Interactive demos - [Bloom filter visualization](https://jaskamalkainth.github.io/blog_posts/experiments/bloom-filter/): insert and query strings and watch bits flip in a live Bloom filter. - [HNSW visualization](https://jaskamalkainth.github.io/blog_posts/experiments/hnsw-simul/): step through how Hierarchical Navigable Small World graphs answer approximate nearest neighbour queries. - [Fourier epicycles](https://jaskamalkainth.github.io/blog_posts/experiments/fourier-epicycles/): rotating circles that redraw a shape from its discrete Fourier transform. - [Image pixelator](https://jaskamalkainth.github.io/blog_posts/experiments/Pixelate/): turn an uploaded image into pixel art in the browser. ## Talks and papers - [FFT for large number multiplication (slides)](https://jaskamalkainth.github.io/blog_posts/FFT_LargeNumberMultiplication.pdf) - [Good triplets: 7 solutions to 1 problem (slides)](https://jaskamalkainth.github.io/blog_posts/GoodTriplets.pdf) - [CS thesis](https://jaskamalkainth.github.io/projects/JaskamalKainthCS_Thesis.pdf) and [Mathematics thesis](https://jaskamalkainth.github.io/projects/JaskamalKainthMATH_Thesis.pdf)