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.
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.
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.
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.
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.
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.
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.
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.
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.
Codematics provides a marketing technology platform that helps businesses identify and convert anonymous website visitors into leads.
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.
Codematics is a marketing technology that helps businesses identify and convert anonymous website visitors into leads.
Deep Work Timer is an app designed to help people overcome procrastination and improve focus and concentration.
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.
New Delhi, India
New Delhi, India