A timeline of the technologies, projects, and experiences that have shaped my journey as a Software Developer. From learning my first programming language to working with modern frameworks, Generative AI, cloud technologies, and software architecture, this timeline captures how my skills have developed over time.
Learn → Build → Explore → Improve
My first programming language, C, introduced me to programming fundamentals, logical thinking, and problem-solving. Covered concepts including variables, loops, functions, arrays, pointers, and basic memory management.
Learned Java and Java Swing in my 3rd semester and applied them by building projects like Tic-Tac-Toe, Guess the Number, Quiz Application, and Currency Converter. The Currency Converter was my first experience integrating an API into an application.
During my 4th semester of engineering, I built a strong foundation in Python by thoroughly covering its fundamentals and core programming concepts. Applied this knowledge to personal projects using Tkinter and Turtle, including a URL Shortener with API integration, a Notepad application, and various visual designs and patterns.
As my number of personal projects grew, I moved from storing code files on MediaFire to managing them with Git and GitHub. This introduced me to version control and a more organized way of maintaining my projects.
Worked with repositories, commits, branches, push and pull operations, and GitHub repositories to track changes and keep my code accessible and organized.
After building a foundation in Python, I used Pygame to apply programming concepts and problem-solving logic through game development. Created games such as Egg Catcher, Space Invaders, and Snake, working with game loops, player movement, keyboard events, collision detection, scoring, and game states.
During my 3rd semester of engineering, I built a foundation in SQL and MySQL, covering relational database concepts, tables, relationships, queries, joins, filtering, sorting, grouping, and CRUD operations.
Applied these concepts by creating an Employee Management System using Java, JDBC, and MySQL, followed by a Student Management System using Python, Tkinter, and MySQL. These projects involved connecting applications with a relational database and performing database operations through the application.
Built knowledge of NumPy, pandas, Matplotlib, and Seaborn for working with data. Covered data loading, cleaning, organization, and basic analysis with NumPy and pandas, followed by creating charts and visualizations using Matplotlib and Seaborn.
Learned Adobe Premiere Pro to create and edit videos showcasing my programming projects. Used it to record and present project demonstrations, explain how they work, and share them on YouTube.
I started publishing my project videos on my YouTube channel, Prathamesh Builds, as a way to document my work and share what I was building.
Learned the Click library for building Python command-line applications and applied it by creating GitURLGetter, a CLI tool for retrieving Git repository URLs. Also developed NaivePy, a Python library based on the Naive Bayes algorithm.
Built familiarity with python-telegram-bot for developing Telegram bots with Python. Created PDF to TXT, a document processing bot that extracts text and images from PDF files and delivers the extracted content through Telegram.
Built a foundation in HTML, CSS, and JavaScript, covering web page structure, styling, DOM manipulation, and interactive functionality. Applied these concepts through personal projects such as Tic-Tac-Toe and a Netflix clone.
React introduced me to building structured and interactive web applications. Alongside React, I worked with Bootstrap for UI development and Axios for API requests. Created projects such as a Quiz Application and a Dashboard, applying React components, state management, API integration, and reusable UI.
MongoDB introduced me to NoSQL databases and document-based data storage. Covered databases, collections, documents, CRUD operations, and querying and updating data while working with MongoDB.
Explored SQLAlchemy to understand how ORMs work with databases. Used it with MySQL and MongoDB to interact with databases through Python models and objects, reducing the need to write database queries for every operation.
Moved into Flask and Flask-RESTful for building web applications and REST APIs. Created applications using PostgreSQL with SQLAlchemy, working with database models, relationships, and CRUD operations. Also built Flask applications with MongoDB to understand document-based database integration.
Alongside backend development, worked with Jinja templates to create dynamic web pages and learned how Flask handles routes, request handling, templates, and database interactions.
After working with Bootstrap, I came across Tailwind CSS and its utility-first approach to styling web interfaces. Practiced building layouts with utility classes for spacing, colors, typography, and responsive design. Comparing Tailwind with Bootstrap also helped me understand the difference between composing interfaces with utility classes and using pre-built UI components.
FastAPI took my backend development further by introducing me to modern Python APIs and concepts such as Pydantic, request validation, structured error handling, and automatic API documentation. Understanding how Pydantic validates and structures request and response data became an important part of working with FastAPI.
Applied these concepts in Bloogo, a full-stack blogging application built with React, FastAPI, SQLAlchemy, and MySQL. The project brought together frontend and backend development while giving me experience with REST API design, database integration, validation, error handling, and FastAPI's automatically generated API documentation.
R became part of my 6th-semester coursework, where I used it for data analysis and visualization. Worked with data processing, created different visualizations, and built dashboards to present data in a clear and meaningful way.
With the growing use of TypeScript in web development, I added TypeScript to my React development workflow using Vite. On the backend, I worked with Node.js and Express.js, while Recoil introduced me to state management in React applications.
Put these technologies together in a simple full-stack project, connecting the React frontend with an Express.js backend and working across both sides of the application.
As my Python projects became more structured, I started using Poetry for package and dependency management. Worked with dependency versions, virtual environments, and project configuration through pyproject.toml, along with the basics of managing Python projects with Poetry.
During my trainee period at Systenics Solutions, jQuery became part of my web development work. Used it for DOM manipulation, user interactions, AJAX requests, and dynamic web pages, giving me my first experience working with a web technology in a professional environment.
After working with MySQL, I moved into MS SQL Server and T-SQL during my training at Systenics Solutions. Covered database creation and management, queries, joins, stored procedures, functions, views, and relationships, along with how SQL Server fits into application development.
Building on my database and web development experience, I moved into C# and ASP.NET MVC 5 during my training at Systenics Solutions. Worked with Dapper and Entity Framework Core (EF Core) to understand different approaches to database access and how they fit into web application development.
Programming projects also brought in the need for better visual content, which led me to Adobe Photoshop. Used Photoshop to create banners, graphics, and other visual assets for my web applications and project presentations.
Angular 16 introduced me to a structured approach to frontend development, covering components, services, routing, forms, and API integration. After going through the core concepts, I applied my knowledge by creating a simple web application using Angular 16.
With my Angular experience, I moved into Ionic to see how the same frontend skills could be applied to mobile development. Covered the basics of cross-platform app development with Ionic and Angular, then applied them by creating a simple mobile application.
After joining Systenics Solutions as a Software Engineer, my learning moved into AI and Generative AI. Started with the basics of Artificial Intelligence, Machine Learning, and Deep Learning, followed by an introduction to Large Language Models (LLMs), embeddings, vector databases, and retrieval-based applications.
Worked with LangChain, LangGraph, pgvector, and ChromaDB to understand how LLMs, embeddings, vector search, and retrieval can be combined to build AI-powered applications. Also explored concepts such as document processing, semantic search, and Retrieval-Augmented Generation (RAG).
As part of improving my understanding of software design, I’m currently studying design patterns in Java. Focusing on common patterns such as Singleton, Factory, Builder, Strategy, Observer, and Adapter, along with where and how these patterns can be applied when structuring software applications.
With the release of newer Angular versions, I moved to Angular 21 to understand the changes and updated approach introduced in the framework. The shift away from the traditional NgModule-based structure required learning the newer application structure and patterns. Alongside this, covered RxJS for reactive programming and NgRx for state management in Angular applications.
Moving beyond React, I picked up Next.js 16 and worked through its core concepts alongside Prisma ORM for database integration. After getting familiar with both, applied them by creating CodeReviewHub, a simple project built with Next.js and Prisma.
My introduction to DevOps brought together areas of development and deployment that I had not worked with deeply before. Covered Linux and Bash for working with environments and shell commands, followed by Docker and Docker Compose for containerizing applications and managing multi-container setups. Also worked with GitHub Actions to understand the basics of CI/CD and automated workflows.
So far, my DevOps work has focused on learning, building, and testing these setups in development environments.
While working on AI projects, I picked up Streamlit as a way to quickly turn Python-based AI and ML logic into interactive web applications without spending too much time on frontend development. Applied it by building DocChatAI with Streamlit, LangChain, and LangGraph, allowing users to upload documents and interact with their content through a conversational AI interface.
Deploying applications on my personal server introduced the need for reverse proxies and proper application routing. Worked with Nginx and Traefik to configure domain-based routing and expose multiple applications and services through a single server and entry point.
Used Strapi to manage the content of my personal portfolio website and separate content management from the frontend. Created custom content types for different sections of the portfolio and extended Strapi with a custom plugin to support functionality specific to my website.
Currently learning and using AWS as part of my day-to-day development and deployment work. Working with EC2, ECR, S3, IAM, CloudFront, and CloudWatch for running applications, managing container images, storing files, handling access permissions, delivering content, and monitoring resources.
Using these services in my own projects and development workflows while continuing to build my understanding of AWS and cloud infrastructure.