Prayuj Pillai Profile Picture
Hi, My name is

Prayuj Pillai!

I am a Software Engineer and
a Tech Enthusiast.
[1]

About me

Hello! My name is Prayuj. I graduated from San Jose State Univeristy with a Master's in Computer Science

I am currently a Software Dev Engineer at AWS working in the IAM Control Plane. I worked at Cimpress as part of their Business subsidiary, National Pen.

Here are a few technologies I am proficient in:

Javascript React HTML CSS NodeJs Mongodb jQuery Python Java

[2]

My Experience

Software Dev Engineer @ Amazon Web Services
Jul 2024 - Present

Part of the Security Token Service (STS) team that enables temporary, limited-privilege credentials for users.

Worked on credential rotation effort for hundreds of accounts that run our services to mitigate unauthorized access.

Software Dev Engineer @ Amazon Web Services
May 2023

Part of AWS Consumer IoT Connectivity org handling Device Management, Device Defender, and Fleethub.

Involved in developing a secure shell terminal feature for Fleethub, allowing device technicians to SSH into their devices and update firmware and other system properties.

Senior Software Engineer @ Cimpress
August 2020 - July 2022

Operated in National Pen, Cimpress’ 2nd largest Business Unit, to build a multi-tenant end-to-end micro-services based E-commerce platform operational in 24+  countries.

Led the complete redesign of category and search pages along with Algolia integration, an AI powered product data feed, which led to a 46% increase in customer conversions from these pages to product pages and a 24% increase in overall revenue.

Incorporated Loqate, an address validation tool, on checkout and my account pages which led to a 9% decrease in cart abandonment and reduced last-mile miss deliveries by half.

Engineered an in-house image compression service that improved image sizes uploaded by marketing teams resulting in a reduction of “Bad URLs”, pages with Largest Contentful Paint (LCP) scores > 4 secs, on desktops devices from 1100 urls to 0 and 2500 urls to 1100 on mobile devices.

Integrated x-functional team’s React Components onto the E-commerce’s non-React pages to improve data consistency and user experience.

Replaced core-js polyfills with Polyfill.io, a service that dynamically returns polyfills based on the requesting browser. Minimized bundle size by 150KB and brought down Total Blocking Time (TBT) from ~3.2 secs to ~1.1 secs.

Data Science Intern @ Aegis School of Data Science
June 2019 - August 2019

Developed a Job Recommendation Model for Students' Placements.

Recommended Jobs based on the Job Requirement Skills and Grades of Students in those Skills.

Building the model included scrapping of Jobs, their requirements, matching skills between the Job and Student.

Software Engineer Intern @ CaratLane
August 2018

Designed and implemented a rule validation system for orders.

[3]

Projects

Distributed Computing Assignments (CS 249)
Java, gRPC, Kafka, Redis, Zookeeper, SpringBoot.

Collaborated with a team of fellow students to implement the ABD (Atomic Broadcast Design) and Chain Replication protocol based on their research papers. Implemented a consensus protocol leveraging ZooKeeper as the central oracle. Additionally, developed a scalable and fault-tolerant Distributed Hash Table (DHT) using Apache Kafka. Proposed solutions had to be inter-operable, thread-safe, and robust. Links to solution can be found on the below GitHub links.

Task Manager
NodeJS, Express, Mongo, Jest

As part of Andrew Meads's Node JS course, I built a Task Manager API along with a Frontend. Features include Logging in, Registering, Adding Notes, Deleting Notes, Sorting Notes all while using JWT for authentication. I used Jest for automation and testing.

URL Customizer
NodeJS, Mongodb

This project works alot like Bitly and other URL shorteners, however in this case I wanted a more customized experience. This application maps any url to a custom and unique endpoint. Whats more, if you don't have a name to give your new custom endpoint, you can set a list of default names. I made use of some delicious Indian food as those defaults and you can see an example of this in the github link below. Most links on this page make use of the url shortner.

Chat App using Socket.io
NodeJS, Socket.io

This was a really exciting Project because for the first time I used Socket.io to make real time, bidirectional communication. Features include entering Room ID and making a new or joining an Existing Room, Sending real time data for communication, Sending Current Location.

Game Renting Service
Mongo, Express, React, Node

This Project stemmed from a Job opportunity that was very lucrative which involved building a inventory system. It is a full stack project using React JS, Node JS with Express JS and Mongo DB. Various features include Issue and Return of Games along with OTP generation and validation, viewing list of past transactions, adding inventory and members, updating membership, etc.

Timetable Generation using AI
Python, React

For the Final Year Project of my Bachelor Program in Computer Engineering, Our Team Developed a Timetable Generator that would create Timetables for a Univeristy, We solved this multiconstraint problem using AI (Genetic Algorithm). We also published a Research Paper regarding the methodology involved.

Bill Splitter
React, Flask

Have you ever been in a situation where a bunch of your friends are out for a meal and when the Bill comes it's an ordeal to divide everyone's share. Well this takes care of it. Simply add each Dish and the Person Contribution and it will calculate each individual's contribution. It includes splitting taxes, tips, etc. in the appropriate proportion.

Calculator using Arduino with Python
Arduino, Python

One of the earliest Projects I developed back in my Second Year of Engineering. Basically we used an Ardunio as a sort of front end, which took input from a user and displayed the answer using a keypad and LCD screen respectively. For the heavy lifting of computation we chose Python and it's simple function 'eval' to calculate expressions. Data was transferred from the Arduino to Python using the Serial Port.