An options market based on a financial instrument on Ethereum called a “Perp” (NFT-based perpetual option contract)

The story of Perpetuity begins with the ETHGlobal Scaling hackathon. I signed up for ETHGlobal’s hackathon with the intention to build something interesting and impactful and walked away with a project that I feel strongly about. With there being so many different sponsors showing off cutting-edge tech, I was looking for a use case that I thought would be a good fit. I knew I wanted to work on something in DeFi given my education and interest in finance. …


A review of Robert Sedgewick’s Union-find case study

Recently, I’ve been going through Sedgewick’s Algorithms textbook and really liked his way of talking about algorithms and data structures in general. His point of view is that Big-O is too broad of a brush to paint the picture of an algorithm’s performance. For those reading who don’t know what Big-O is, it’s a tool used to describe the worst-case performance of an algorithm in mathematical terms. It describes how the run-time of an algorithm grows with input size. Sedgewick believes that you can do better and be able to describe performance…


Fret not, for there is rhyme & reason to this madness!

Stressed out about interviews and your progress in achieving algorithmic godliness? No worries, I’m here to give you New Hope.

Algorithms are the bread and butter of our world and in the context of technical interviews they’re super important! In fact, if you don’t have a good grasp of data-structures and algorithms, you can’t expect to get far in technical interviews. A lot of people see them as an unnecessary evil of the hiring process and think that this skillset doesn’t translate into actual software development. Although it’s true…


Graph data structures are incredibly important and exist in applications that we use daily! Think Google Maps, Uber, Facebook. This article will help you grasp them better and introduce you to basic graph traversal.

What’s a graph? Let’s start off with a nice concise definition: A graph is a set of vertices or nodes connected through edges. A graph can be directed or undirected, it can be cyclic or acyclic, it can be weighted or unweighted. A graph is directed if there is direction between two connected nodes, you can tell a graph is directed in its visual representation when…


“Reverse a linked list” — Sound familiar? This article will help you grasp an understanding of one of the most popular data structures that is asked about in tech interviews.

In this article, I will go through each singly & doubly linked list data structures in JavaScript and their class implementation. These can be executed functionally, but I feel that a class implementation makes it easier to conceptualize them as data structures. Classes in JS are syntactical sugar, but that’s another story for another day!

Singly Linked List

The list of the methods that we will be implementing are the same for singly and doubly linked lists and are listed below:

  1. Push
  2. Pop
  3. Shift
  4. Unshift
  5. Get
  6. Set
  7. Insert
  8. Remove
  9. Reverse

The only differences will be the implementation of some of those methods.

At…


On advanced SQL commands, table creation & ActiveRecord methods

In this article, we’re going to finish off raw SQL with some advanced commands/syntax and table creation, then we’re going to go into some ActiveRecord and talk about some important methods. Although it is not required, you may find it beneficial to check out Pt. 1 of this article series: https://medium.com/@hbmalik88/activerecord-the-great-sqlizer-pt-1-cb826eb17210.

Advanced SQL Commands

Timestamps — Timestamps are important pieces of data that we often need in our applications, we also need to be able to manipulate/extract information from this data. Fortunately, SQL provides us with a command that let us do that: the extract command lets us extract parts of a date…


Does it pay to understand what’s going on under the hood? Yes! This article covers some SQL essentials.

Note: The SQL commands within this article are primarily being used with PostgreSQL, these commands may vary with other databases.The article also assumes you have working knowledge of Ruby/Rails.

Active Record is a wonderful abstraction given to us by Rails that lets us interact with our database in an easy and meaningful manner. This however can be troublesome for those who don’t have a good understanding of SQL in of itself. I’ve been guilty of this and have always had it in the back of my mind to round out this area of my knowledge. I recently took a SQL…


Before this weekend I wouldn’t touch D3 or any data visualization library with a ten-foot pole…

But I decided to take the leap and dive in, because I was interested in making a mini crypto-exchange. This exchange lets you create an account based on a randomly generated hash. There’s a faucet to let you generate a few coins at a time and a function to let you send them to another wallet address. I thought it would be interesting to analyze a user’s interaction with the faucet aka God Wallet and other users. …


A brief exploration on emotions, namely boredom and its application within the Hook Model.


I’m going to prelude the main topic of this article with how I came to think about Zipf’s law to begin with. Working on a project I was creating some seed data for my app. I realized how important seed data is to see the relationships you’ve established in your app on a mass scale. As you can see below I started to create some seed data and realized that my join model, PostCategory, wouldn’t really work with the seed data that was being pushed in.

Hassan

Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store