Hello — I'm Pankaj Parashar, a designer, developer, and writer from Mumbai, India.


Match Expressions in Python
8 mins

PEP 636 introduced a new match expression which effectively is a switch statement on steriods. It not only fills the void due to the lack of switch cases in Python but caters to advanced use cases that will supercharge your Python codebase. Its basically Guido's way of saying, "In you're face" to the other programming languages commmunity. ..more

What The Kafka!
16 mins

In this article, we'll explore some of the basic concepts of Apache Kafka with hand drawn illustrations and cover all the commonly used terminologies in relation to Kafka. ..more


Passing the parcel
19 mins

In many ways Python's approach to handle references is quite different to other programming languages but I find it remarkably intuitive if you understand the idea of how everything in Python is an object and how objects are supposed to behave when passed as arguments to a function. ..more

The Walrus operator
9 mins

The walrus operator (:=) is perhaps the most controversial operator in the history of Python. Guido was so unhappy with the proposal that he even stepped down permanently from his BDFL role after he accepted this operator as part of PEP 572. ..more

Python Assert Methods
41 mins

This post is about using the different assert methods available in the unittest framework. It is however, has no resemblance with the python assert statements. ..more

Building a Blog with Next.js
0 mins

In this article, we will use Next.js to build a static blog framework with the design and structure inspired by Jekyll. I’ve always been a big fan of how Jekyll makes it easier for beginners to setup a blog and at the same time also provides a great degree of control over every aspect of the blog for the advanced users. ..more

What's new in Python 3.9
13 mins

Python 3.9 will release today. This article serves as a preview for the new features that will be introduced in the final release. ..more

Dark Mode
13 mins

It's not surprising that dark mode is the new fad in the town after Apple introduced the dark mode in MacOS. I decided to add a toggle button to switch to the dark theme on my blog. ..more

Look Ma! No Media Queries
5 mins

If you look under the hood of this website, you will not find any Media queries. That doesn't mean this website isn't responsive. It means it is practically possible to design modern websites with no media queries. ..more

Back to Top reboot
4 mins

The Back To Top button has been a holy grail along with the hamburger menu. Historically, jQuery was used to animate the jump from the bottom of the page to the top of the page. Is there a modern day equivalent? ..more

Lighthouse Audit Report
4 mins

I deployed the latest version of my website (v9.0) and was quite keen to run the Lighthouse Audit report. Admittedly this is such a small website that getting scores close to 100% is quite easy and not as daunting as a modern web app. ..more

Four years
60 mins

Its been four years since I last wrote an article on this blog. Even though the domain has been active, the content has been lying dormant for a while. To take a positive spin out of this ongoing pandemic, I promised myself to revive this blog and resurrect the old content for everyone's pleasure. ..more


Mocking Python
21 mins

The Python mock library has largely been a black hole when it comes to efficiently unit testing a Python code. Hopefully, this article will help you understand the essential bits to bump up that test coverage. ..more

Beyond PEP8
1 mins

Raymond Hettinger is a Python Core developer and has an amazing knack of explaining concepts related to Python in a succint manner. His talk at PyCon US 2015, titled "Beyond PEP8" revolves around the hazards of the PEP 8 style guide and learn what really matters for creating beautiful intelligible code. ..more

A friendly Readme
1 mins

Rowan Manning writes about the importance of writing a friendly README for your project, which is perhaps in my opinion is the most underrated yet extremely important part of maintaining a project. ..more

Introducing Atomize IO
14 mins

Over the weekend, I pushed out a new update to the Atomize IO app and this post is all about, explaining how those numbers are calculated. ..more

How 11 lines of JavaScript broke the Internet?
17 mins

Roughly around 1430 hours Pacific time on Tuesday, March 22nd, 2016, @npmjs observed hundreds of failures per minute for missing dependencies requesting for the now-unpublished package, left-pad. ..more

The Apple FBI saga
7 mins

In the San Bernadino shooting, FBI found an iPhone 5C of one of the gunmen. The FBI has a search warrant to check the contents of the iPhone to build its case. ..more

PEP8 for Humans
1 mins

The PEP8 standard has been known to be mysteriously obscure for the beginners. Kenneth Reitz, the man behind "Requests - HTTP for Humans" has re-written the PEP8 style guide so that humans can read and understand it too! ..more

ES6 - 101
20 mins

ES6 known to many as Harmony or es-next or ES2015 (preferred way) is the latest specification in the JavaScript world. In this article we'll go through some of the improvements and enhancements that ES6 has to offer. ..more

Atomize IO
3 mins

Offline Web Applications
4 mins

Codelab IO
3 mins


Building Custom Web Components with X-Tag
0 mins

After Google and Mozilla‘s solutions for web components, it is now Microsoft’s turn to enter this space with their public release of the X-Tag library. ..more

Password strength meter
0 mins

A number of major websites like Dropbox, Gmail and eBay, rely on some kind of an indicator to indicate the strength of the password to the user during registration. The indicator serves as a good reminder for the user as to the level of difficulty to crack the password ..more

Whats new in Python 3.5?
15 mins

Python 3.5 was released in the 2nd week of September, 2015 and brought a bunch of useful changes with it. In this article, I'll be discussing some of the enhancements to the language that I found extremely useful in the latest release. ..more

Introducing Pandas
15 mins

The intent of this post is to introduce you to the Pandas library by performing common tasks like reading, writing files and manipulating data. ..more

Optimizing website using GTmetrix
3 mins

Less vs Sass
3 mins

Magic methods
52 mins

Python's got a bunch of very useful magic methods that most of us do not use in day-to-day practice. This article is all about the dunder methods that can add magic to your python code. ..more

Atomizer Web
4 mins

The Diaper Pattern
3 mins

Migration to Polymer 1.0
0 mins

At the recently concluded Google IO 2015, Google released the much awaited 1.0 version of Polymer and declared it production-ready. For those of you who have been using the Polymer library while it was still in developer preview, this article will serve as a guide to migrate your existing application to the latest version of Polymer. ..more

Webucator - Python Training
4 mins

Building a Todo app with React.js
27 mins

This is my first attempt with React.js to build a basic Todo app. React has gained massive traction as a JavaScript library for building user interfaces largely because it is built by Facebook and their engineers have challenged the age-old best practice for separation of concerns. ..more

Best practices vs HTTP 2.0
11 mins

This post is all about the introduction of HTTP 2.0 into the mainstream by putting it side-to-side with some of the best practices that we have engineered and cultivated over the years. ..more

Credit Card Custom Element with Polymer
0 mins

In this article, we’ll be creating a custom element for a credit card payment form using the Polymer library. ..more

Scoping of index variables in Python
7 mins

The way scoping of index variables work in Python might surprise a few! This article is all about dealing with them by considering few scenarios and understanding the behavior. ..more

Mapping on iOS and Android
3 mins

Beautify CSS code using Codepen
5 mins

Few would argue that Codepen has been an indispensable tool for the Frontend developer community. Although, I have been using Codepen for a long time, only recently, I realised that it can also be used to beautify your compressed CSS code. ..more

CSS Selectors Level 4
17 mins

Not-so long ago I remember writing about CSS Selectors Level 3. Fast-forward 14 months, I'm now writing about the next specification of CSS that aims to improve and enhance CSS3 by introducing wide-range of new selectors and pseudo-classes. ..more

Connect Four
2 mins


Serving from a cookieless domain?
5 mins

Shorter code is inconsiderate
4 mins

JavaScript Classes
26 mins

It shouldn't come as surprise that JavaScript doesn't have classes! However, the language is potent enough to match any OO-language and has the ammunition to functionally represent OOP concepts. ..more

Practical Aria Examples
2 mins

Introducing Pedantic Python
2 mins

Building a Custom Element with Polymer
0 mins

Custom elements allow developers to define their own HTML elements with custom tag names that closely resemble their design components. ..more

Pedantic Guide
1 mins

OpenType features in web browsers
3 mins

Introduction to Polymer
0 mins

Modern web applications are not only complex to design but also quite difficult to develop. Given the range of tools involved, amount of testing required, and the combination of libraries/frameworks used, the development process has become harder. As the application scales over a period of time, it becomes harder to maintain the code and make enhancements. ..more

Regular Expressions in Python
33 mins

Regular expressions are hard but this post is not going to make them appear harder. Instead it attempts to simplify the complications that surround the world of regex. ..more

Designers Guide to DPI
3 mins

Holy Grail of Script Loading
3 mins

Negative Margin, Positive Padding
13 mins

Neat little trick I learned from Joshua Hibbert's website, where he has effectively used this technique to design backgrounds stretching infinitely on either directions but the content respects the width. ..more

Random Colors in Sass
25 mins

Randomly generating numbers in Sass is easy using the random() function that was released in v3.3. Interestingly, we can extend this concept to randomly generate colors as well. ..more

Freelance writing Infographics
4 mins

Got featured as Geek of the Week
2 mins

Minimal business card design
3 mins

Reading Position Indicator
0 mins

Lately I’ve seen quite a few websites that have some kind of an indicator to display the current reading position (how much you have “read”, depending on how far you have scrolled down an article). Generally, such indicators are used on blog posts or long form articles and help readers understand how far they are from finishing the article. ..more

Modify pseudo element styles with JavaScript
12 mins

Quite often I run into situations where I need to modify the CSS styles of the pseudo elements dynamically. This post shows you different ways in which it can be done! ..more

The HeartBleed Bug
9 mins

The encryption flaw that punctured the heart of the Internet and has left almost two-thirds of the world's websites vulnerable to attack by hackers. ..more

Download the web with WGET
13 mins

Having recently discovered the power of wget command, I have written this article to remind myself the various ways we could use this command to download the world wide web. ..more

Mistakes in the Design of CSS by W3C
5 mins

S03W01 Codepen Rodeo - The Chili recipe
3 mins

RSS to Email via Sendicate
7 mins

Debuting today, is the new RSS-to-Email feature that I have enabled on my blog using Sendicate. Subscribe to get notified to read new articles on my blog. ..more

Github hosted comments
3 mins

Unix file permissions
62 mins

I have used Unix for the major portion of my professional career, yet I have always failed to understand the intricacies surrounding the file permissioning system. This article is an attempt to dig deep and augment my understanding about them. ..more

The Net Awards 2014
35 mins

It’s that time of the year again when the long list of nominees is declared for the Net Awards 2014. Read on to know who am I voting this summer for Net Awards 2014. ..more

Font-face saga of Chrome
5 mins

Apparently, Google Chrome has been infected with a wierd bug that causes web fonts to randomly disappear and fallback to the default system fonts. Initially, I thought I was the only one facing this problem, becuase either hovering the text or reloading the page solved the issue. ..more

Github pages with custom domain
16 mins

Setup custom domain on the user page and then all the project pages of Github repositories will automatically appear under the same url. ..more

Color Stack
2 mins


Frontend build tool wishlist
31 mins

For quite a long time now, I have been toying around an idea of a perfect build tool to deploy front-end projects. This article is all about my wishlist from such a tool. ..more

CSS Selectors Level 3
2 mins

Effective shorthand CSS techniques
1 mins

The HTML5 meter element
0 mins

The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate. This is also known as a gauge. ..more

The HTML5 progress element
0 mins

As per the standard defined by W3C, the progress element represents the completion progress of a task. A progress element must have both a start tag (i.e. <progress>) and an end tag (i.e. </progress>), even though it looks like a replaced element (like an input). This is good though, as it helps with fallback content as we’ll cover later. ..more

Jack Morgan on Squared logo
3 mins

Why do I hate CSS preprocessors?
20 mins

Preprocessors solves a problem that doesn’t really exist! Continue reading my musings about using a pre-processing tool for a language like CSS. ..more


Getting to grips with the HTML5 File API
0 mins

The HTML5 File API allows developers to interact with the local filesystem on the client-side. Using these APIs, developers can build more robust web applications that work seamlessly both online and offline. This tutorial demonstrates the basic usage of these APIs to do common tasks like reading the properties and content of files. ..more

Dissecting HTML5 Boilerplate 4
0 mins

If you are looking for a perfect HTML5 template to kickstart your new project that should be fast, robust and cross-browser compatible, you do not have to look beyond the HTML5 Boilerplate. The world’s most popular frontend template is a result of the combined knowledge and effort of more than 100 developers, making it one of the most popular projects on GitHub. But before you skip this article to press the download button, you need to understand; what makes this framework so popular? ..more