About Me
Hello! I'm Hairum Qureshi, a 21 year old passionate aspiring software developer with a keen interest in building web applications and exploring new technologies.
Early Beginnings
My journey into programming began when I first started learning HTML, CSS, and JavaScript. From the very start, I was fascinated by the idea of creating my own websites that mirrored the ones I frequently visited online. I recreated basic sign-in and sign-up functionality using local storage, and my curiosity often led me to questions like: “Why do my HTML pages end with '.html' while the websites I visit don't?” This curiosity eventually led me to discover Node.js.
Of course, my path wasn't always smooth. Still a novice, I once attempted to follow a full-stack WhatsApp clone tutorial but quickly became overwhelmed with setup errors, project structure, and syntax issues. Although frustrating, the experience taught me the importance of building strong fundamentals before tackling complex projects.
During high school, I supplemented my learning with programming books and mobile apps to practice JavaScript. Later, I used my school Chromebook to build small projects on Repl.it, such as Hangman, Tic-Tac-Toe, calculators, and converters. I didn't prioritize CSS much, focusing more on HTML and JavaScript, and even avoided Python initially because I disliked its syntax. Today, while Python isn't my first choice, I can use it effectively when needed.
My First Major Project: Novice ink.
Novice Ink. was a writing club at my high school that my best friend and I ran. When the idea of creating a website was suggested, I volunteered to build it from scratch instead of using WordPress. The initial version was a static site built with HTML, CSS, JavaScript, and Firebase for authentication and data storage. Building it was exciting, but it came with significant challenges.
Key Issues:
- Weak authentication middleware: Users could bypass login due to my lack of understanding about cookies and sessions.
- Poor mobile responsiveness: The site wasn't optimized for smaller screens.
- Flawed admin-only functionality: Admin restrictions were handled on the frontend, allowing non-admins to access admin features.
The Redesign
During the COVID-19 pandemic, I rebuilt the site with Node.js and Express.js, adding a proper backend and mobile-friendly design. However, I struggled with concepts like API endpoints, authentication, memory in Node.js, and properly using Firebase. My backend was crammed into a single app.js file, and authentication state was poorly handled by storing the "current user" in memory, which was unreliable.
Experiments
I attempted advanced features like notifications and a messaging system. While I built a messaging feature, it wasn't fully functional—lacking real-time responsiveness and aesthetic integration. I tried Firebase's real-time database and experimented with Socket.io, but struggled to get it working reliably. Over time, bugs increased, and by deployment, the site wasn't stable enough to sustain future club members. Still, the entire process was a major learning experience.
Exploring React and the MERN Stack
I first encountered React.js when it was primarily class-based, which intimidated me since I wasn't strong in OOP. After setting it aside to focus on Node.js and Express.js, I revisited React once functional components became the norm. This shift made React approachable, and I learned it through tutorials on state, components, and basic UI building. My first deployed React project was a simple blog site using Supabase as the backend.
Though I didn't explore Supabase deeply, I found it beginner-friendly thanks to its JavaScript methods. Eventually, I sought to connect React with an Express.js backend, which led me to the MERN stack—MongoDB, Express.js, React.js, and Node.js. Initially, MongoDB's model-based approach confused me, but over time I grew comfortable, and it became my go-to database.
Today, the MERN stack is where I have the most experience. My skills have since expanded with Socket.io for real-time communication, and through college web development courses I've begun exploring frameworks like Next.js and Nest.js.
My Journey:
Started learning web basics
Began experimenting with HTML, CSS, and JavaScript through YouTube tutorials, setting up simple static websites.
First major project: High School Club Website
Built a club website using HTML, CSS, and JavaScript, with Firebase as a backend—my first time connecting a frontend to a database.
Pandemic learning sprint
Refined my JavaScript skills and rebuilt the club website from scratch, learning the importance of iteration and continuous improvement.
First steps into backend development
Dove into Node.js and Express, realizing how APIs link frontends to real-world data and broadening my scope beyond frontend-only projects.
Started Computer Science at UD
Accepted into University of Delaware as a CS major. Gained first exposure to formal CS theory and low-level programming, which challenged me but expanded my foundations.
Learning React.js
Explored component-based development. At first, concepts like state, props, and hooks were confusing, but once they clicked, I understood how modern apps scale.
Exploring the full stack
Started combining MongoDB, Express, React, and Node.js into small applications. This marked the beginning of my full-stack development journey.
Campus jobs
Became a TA for the UD computer science department and worked tech support for the UD Lerner business college (Tech Deck); strengthening my communication and problem-solving skills.
Adopted TypeScript
Transitioned my projects to TypeScript, focusing on type safety, maintainability, and scalability in web applications.
First UD hackathon (HenHacks) (lost, but learned)
Participated in UD's hackathon. My team didn't win, but I learned to brainstorm quickly, work under pressure, better understand GitHub, branches, version control, and appreciate the creativity of other teams.
Shifted to TailwindCSS
Moved from vanilla CSS to TailwindCSS, learning how better tooling accelerates development and ensures design consistency.
First full-stack MERN deployment
Built and deployed an anonymous note-posting website on Vercel—my first live MERN project.
Shift toward independence
After not being rehired as a TA, I redirected my focus to personal projects and industry preparation, sharpening my self-driven learning habits.
Capstone and internship applications
Began my senior capstone project and applied to internships, targeting full-stack web development roles and practical industry experience.