Abhishek Gulyani

Greater Toronto Area, Canada ยท ๐Ÿ‡จ๐Ÿ‡ฆ
Profile Picture

Hi there, I'm Abhishek! ๐Ÿ‘‹

I'm a passionate programmer with a love for learning and exploring new technologies. My journey began at the age of 16 when I started editing WordPress plugins in PHP and JavaScript scripts as a freelancer. Since then, I've been obsessed with understanding the inner workings of languages and frameworks, constantly comparing them and devouring programming books.

About

Here is my short (Okay, maybe not that short) bio:

๐Ÿ‘ฆ Early Days:

My journey as a programmer began at the age of 16 when I started editing WordPress plugins in PHP and JavaScript scripts as a freelancer. From the very beginning, I was obsessed with learning new languages and frameworks, constantly comparing them to understand their inner workings. I would devour programming books from cover to cover, even during college classes that weren't directly related to programming.

๐Ÿงฑ SOLID Principles and Design Patterns:

As I progressed through various programming jobs and projects, I realized the importance of making software more maintainable through SOLID principles and design patterns. This realization led me to read "Head First Design Patterns." Initially, I tried to force design patterns into every aspect of my code, overengineering solutions. However, I soon learned that it's better to start with a simpler approach and refactor later to incorporate design patterns when necessary.

๐Ÿงช Test-Driven Development:

Building my project, EXELocker, taught me the value of test-driven development. EXELocker is a free, open-source application that allows users to password-protect executable files using strong AES-256 encryption. It offers features like locking any executable program, creating backups, and providing a user-friendly interface. Developing EXELocker made me realize how difficult it is to make changes to software without using tests. I learned about various types of tests, such as unit tests, feature tests, and end-to-end tests. By writing tests beforehand, I could ensure that the code continued to work even after making changes, making it easier to introduce new features while maintaining the integrity of the existing codebase. Initially, I wrote fragile tests that broke with the slightest changes, but after reading "The Art of Unit Testing" by Roy Osherove, I learned how to write more resilient tests. Today, the use of LLMs has further simplified the task of writing tests for me.

๐Ÿ“ˆ Scalability:

I also learned the importance of scalability when I created another project called Deep Work Timer. This app helps users overcome procrastination and improve focus by utilizing the Pomodoro Technique and providing detailed reports and data on user activity. However, when I started using analytics, the website's performance suffered significantly. This challenge led me to explore ways to accelerate my website and serve analytics in real-time. Reading "Designing Data-Intensive Applications" introduced me to various approaches for serving real-time analytics using different types of databases. I learned about Apache Spark for batch processing, Apache Kafka with Flink for aggregating real-time data, and using Elasticsearch and the ELK stack for serving real-time analytics after loading data with Logstash. I finally got the opportunity to apply these technologies in my work at Codematics, a marketing technology that helps businesses identify and convert anonymous website visitors into leads.

๐Ÿค– Machine Learning and Deep Learning:

Delving into analytics also sparked my interest in statistics, leading me to take statistics courses on Udemy, which introduced me to the world of machine learning. I was particularly fascinated by deep learning, as it seemed like magic to me โ€“ training an artificial brain. I have completed many deep learning courses by Jose Portilla on Udemy and even incorporated time series data to predict when a user will achieve 10,000 hours in a skill within my Deep Work Timer project. This knowledge also helped me develop vocabulary for my analytics in deepworktimer.com.

๐ŸŽฏ Recommendation Engines and other interests:

Curiosity drove me to read books on how recommendation engines are built, such as how Spotify uses graph-based ANN for music recommendations, how Facebook uses graph-based ANN for friend suggestions, and how LinkedIn employs similar techniques. I have also explored reinforcement learning through books and am currently seeking opportunities to apply this knowledge in my work. One challenge I've encountered with deep learning is the difficulty in acquiring and storing data, which has sometimes hindered my ability to apply my machine learning knowledge effectively.

๐Ÿ“š Continuous Learning:

I dedicate my weekends to learning new skills and satisfying my curiosity by watching courses on Udemy and reading books on subjects that pique my interest. This continuous learning journey has been an integral part of my growth as a programmer, and I look forward to the many exciting challenges and opportunities that lie ahead.

Experience

Software Engineer

Blue Leaf Corp. Pvt Ltd.

Blue Leaf Corporate Solutions P Ltd is a Global Mobility & Relocations Consulting company based out of New Delhi with offices in Gurgaon, Noida, Hyderabad, Bangalore & Kolkata.

March 2017 - April 2024

Founding Developer

Codematics Solution LLP.

Codematics provides a marketing technology platform that helps businesses identify and convert anonymous website visitors into leads.

Apr 2019 - Present

Software Engineer

Expicient Inc

Expicient Inc. was an omni-channel commerce focused software and services firm. We have served top retail, logistics and distribution clients in USA, Canada, UK, South America, the Middle East, Australia, Malaysia and India.

February 2016 - February 2017

Projects

Codematics.com

Codematics is a marketing technology that helps businesses identify and convert anonymous website visitors into leads.

  • It uses Identity Resolution technology to uncover visitors' details, including name, email, phone number, and over 600 parameters
  • The platform segments leads by behavior, allowing targeted multi-channel ad campaigns and personalized outreach
  • Codematics aims to deliver 30-60x more leads and conversions than competitors, with a simple setup process
Visit Codematics.com

DeepWorkTimer.com

Deep Work Timer is an app designed to help people overcome procrastination and improve focus and concentration.

  • It is built around the productivity principles of Flow and Deep Work, as described in the books by Mihaly Csikszentmihalyi and Cal Newport, respectively
  • Users can write down tasks and goals as small, actionable steps and assign estimated time and skills to each task
  • The app utilizes the Pomodoro Technique, where users select a task and start working in focused intervals
  • Deep Work Timer provides detailed reports and data based on user activity, allowing them to track their skill level growth through charts
Visit DeepWorkTimer.com

EXELocker.xyz

EXELocker is a free and open-source application that allows users to password-protect any executable (.exe) file using strong AES-256 encryption. This ensures that the locked files cannot be opened without the correct password, providing an extra layer of security.

  • Lock any executable program: Users can select any .exe file they want to lock and protect with a password.
  • Strong encryption: The application uses state-of-the-art AES-256 encryption to secure the locked files, making it virtually impossible for anyone to access them without the password.
  • Backup option: EXELocker offers a "Create Backup" option, which creates a copy of the original .exe file with a .old extension. This allows users to test the software and restore the original file if needed by simply renaming the .exe.old file to .exe.
  • User-friendly interface: The application has a simple and intuitive interface for both locking and unlocking files, making it easy for users to secure their executables.
  • Free and open-source: EXELocker is completely free to use without any hidden costs or adware. Additionally, the entire source code is available on GitHub, ensuring transparency and allowing users to verify the software's integrity.
Visit EXELocker.xyz

Education

Bharati Vidyapeeth's Institute of Computer Applications and Management, GGSIPU

Master's Degree
Computer Science

New Delhi, India

May 2013 - May 2016

Institute of Information Technology and Management

Bachelor's Degree
Computer Science

New Delhi, India

May 2009 - May 2013

Skills

Programming Languages & Tools
Workflow
  • Test-Driven Development (TDD)
  • SOLID Principles & Design Patterns
  • Scalable and Performant Systems
  • Real-Time Analytics & Data Processing
  • Machine Learning & Deep Learning
  • Recommendation Engines & Graph-Based Algorithms
  • Continuous Learning & Skill Acquisition