Home
The latest from my desk.

FaceMatch

Posted on

For the Amazon Web Services (AWS) Hackathon at The Future of High Tech, part of the Startup Fest Europe 2017, I developed FaceMatch, a mobile app that uses deep learning-based facial detection, and displays the results in an augmented reality heads-up display. I ended up winning the hackathon’s grand prize of €1,000 along with VIP tickets for StartupFest Europe.

View Project →

Hacking UTwente’s PeoplePages

Posted on

As a future CreaTe student at the University of Twente, I wanted to get in touch with a particular professor. Their website, PeoplePages, uses a RESTful API for AJAX requests to search for university staff, so I decided to add everyone to my contacts. (Also makes sending LinkedIn requests to everyone much easier.) See how I did it and how they could improve their security, so others can’t.

Continue Reading →

BharatHacks

Posted on

This June, I’m organizing BharatHacks, a hackathon for solving India-specific problems. Programmers, designers, engineers, and entrepreneurs will come together to build products to make lives better. Organizated in collaboration with Facebook Developer Circle Delhi-NCR, BharatHacks will help you take your idea forward, from hacking to raising investment and launching your product in the market.

View Project →

Zomato for Android Redesign

Posted on

I took fifteen minutes to make some strategic design changes to Zomato’s Android app. I wrote extensively about the iconography, typography, and role of actions in the app’s user experience. I wrote this article originally in March 2016 for the Zomato Android team and publically published it in April 2017 since Zomato decided to implement most of my design changes.

Continue Reading →

Life Update: College

Posted on

Just a little bit of background about my college “situation”: I graduated from highschool in April 2016 and joined the Unitedworld Institute of Design (UID) in Ahmedabad, Gujarat, after working at the Government of Delhi for a month. UID was an excellent college for people who want to study design using the fundamentals of art. I’ll push in an update if I decide to join a program.

Continue Reading →

The Defence for MD5

Posted on

A few days ago, I tried to reset my password on PR.com, the press releases website. I entered my email, and they sent me the username and password in plain text. That’s right, in plain text.

The problem with this method of password storage is that if anyone gets access to your database, they can literally just see the passwords. This is why hashing is used, which converts the plain text password to an encrypted “hashed” version that is, in an ideal world, undecryptable. The problem with this hashing is really about how hashing fundamentally works: collisions are not uncommon, i.e., multiple strings could have the same hashed string.

Continue Reading →

Tokens for Authentication

Posted on

Something that I’ve started experimenting recently with is token-based authentication. Since I’ve been using more JavaScript and less PHP, I figured I can try using tokens in a RESTful API instead of sessions on the server. Instead of using a framework like OAuth (which I highly recommend using), I tried to recreate the token process. This is what I came up with.

This is usually how the process works: A user logs in, and a token is generated. The token is stored on the client (usually in a session, lately also as a local storage object). Then, to call an API, the view also sends the token. The server checks the integrity of the token and returns the relevant response. Each token contains a “private key” of sorts that only the server could’ve created. JWT does this really well. My way includes a hashed username and timestamp.

Continue Reading →

URL Shortener Length

Posted on

I made a small URL shortener for Oswald at osw.li in an hour using PHP and MySQL, but I want to learn the MEAN stack, so I thought that this could be a fun starter project. One interesting decision was to decide how many characters the shortened URL’s slug be.

There can be 64 possible characters: A to Z, a to z, 0 to 9, – and _. Even if we make a 3-digit slug, there can be 64^3 = 262,144 possible URLs, which is a big number. The trouble happens with collisions, though. After how many URLs would a pseudorandom generator have repetition? I wrote some JavaScript to find out.

Continue Reading →

Naari

Posted on

Naari is the end-to-end period healthcare companion—from giving you personalized tampon recommendations using P&G’s survey data and HPE’s machine learning APIs, to getting those products delivered to your doorstep via Amazon. Naari is also a social platform that lets you chat with your doctor, friends, or anonymously in a group to find someone who has previously experienced what you are experiencing and express yourself freely, and get a daily curated feed of women’s health articles and news from leading journals.

View Project →