Algorithms And Data Structures

A collection of notes covering information on core Computer Science algorithms and data structures as well as relevant practice problems highlighting these topics.

Read More

Kafka

Apache Kafka is a high-throughput distributed messaging system.

Read More

Java

An issue I ran into when using IntelliJ IDEA is not being able to view Java source code, declarations, and Javadocs. This can be resolved by going to your src folder (i.e., where your source code is located). Right click, navigate and toggle: Mark Directory As > Sources Root (link).

Read More

Hash Table

In computer science, a hash table is a data structure that implements an associative array abstract data type (ADT). Fundamentally, a hash table maps keys to values using a hash function that computes an index into an array of buckets from which the desired value can be found. Ideally, the hash function will assign each key to a unique bucket. However, most hash functions are imperfect and cause hash collisions. A hash collision is when the hash function generates the same index for more than one key. Such collisions are usually accomodated for in some way (e.g., linear probing). In a well-dimensioned hash table, the average cost for lookup and insertion is independent of the number of elements stored in the table. Some hash table designs also allow for arbitrary insertions and deletions of key-value pairs.

Read More

C Programming

This semester I am a teaching assistant for Systems Programming. This post is a collection of useful notes.

Read More

Thread Synchronization

There are various thread synchronization primitives. A few are: mutexes, condition variables, spinlocks, read-write locks, and barriers.

Read More

Stack vs. Heap Memory

In this fabulous post, I will explain stack vs. heap memory and more! So, I suggest you grab some hot chocolat and learn a thing or two.

Read More

Vim And Linux

My vim dotfile notes! Below are options and commands I personally found useful through experience. Of course, this list is only getting started and will constantly be updated as time goes on.

Read More