Prateek Singh

Writing
Dark

Journey So Far

March 5, 2021

Article Header image

The chronological order of reading this article is from Bottom to Top.

Last Update: 2024-12-04

Fountane (Work Summary)

At Fountane, I contributed as a Full Stack Engineer, handling various aspects of frontend, backend, and DevOps development. On the frontend, I worked extensively with Next.js, React, and Tailwind CSS, building dynamic user interfaces and improving user experiences. I also gained experience with Hasura and GraphQL, which I leveraged to design efficient APIs and streamline data fetching.

For the backend, I implemented JWT-based authentication and designed robust APIs using Go and the Gin framework, focusing on scalability and performance. I built efficient image upload systems, managed databases using Bun ORM, and wrote comprehensive tests to ensure reliability. I also spearheaded CI/CD pipelines using Kubernetes, reducing deployment times and improving workflow efficiency.

Additionally, I developed the Fountane landing page independently, showcasing my ability to deliver complete solutions. I actively explored Cloud Native technologies, contributing to Kubernetes and expanding my knowledge in the DevOps domain.

My time at Fountane was marked by impactful projects and significant growth, both technically and professionally.

LFX Mentorship

For the next three months, I got mentored one-on-one by a senior mentor at a leading cloud native company Isovalent. My learnings exploded exponentially. A developed an entire Kubernetes Operator using Go. I also learnt about writing Integration and unit tests. The technologies I learnt and implemented were, Helm, Kuberntes Go Client, Kube Builder, GitHub Actions and most important, How to work with an International organisation, I got the code reviews I was looking for.

These are the Pull requests I worked on:

Fountane (Internship)

During my internship at Fountane, I learned a great deal from my mentor Siddharth Gelera. This was my first experience of being paid for writing code, and I contributed to various Front-End tasks. I also learned Next.js, Tailwind CSS, and Hasura, which introduced me to GraphQL. I was captivated by how GraphQL solved many challenges, so I explored it deeply, building several projects, including Top Crew, where I gained expertise. It was also where I learned and implemented Authentication and Authorization.

While interning, I continued my journey with Go and Kubernetes, seeking opportunities to contribute to Cloud Native projects.

DevOps

I began my DevOps journey with 90 Days of DevOps, revisiting foundational topics like Operating Systems and Computer Networking while learning new concepts such as Docker, Kubernetes, CI/CD, Azure Cloud, and Git/GitHub.

After months of learning, I discovered a strong interest in Kubernetes Development and started exploring ways to contribute to the project, which led me to learn the Go Programming Language.

Meanwhile, my public profile and "learn in public" approach caught the attention of Fountane, who offered me a six-month internship as a Full Stack SDE Intern.

Open Source

I wanted to be part of a community that welcomed beginners while offering opportunities to learn from senior engineers. Exploring the GSoC website led me to CNCF, an active and massive community centered around Kubernetes, the second-largest OSS project. The scale and activity intrigued me, and I decided to get involved.

However, the ecosystem's complexity, especially around Kubernetes, was a blocker. While I grasped some aspects from web-based projects, the Kubernetes Readme was overwhelming at first. With the community’s guidance, I learned what to focus on and began exploring foundational concepts. This journey ultimately introduced me to DevOps.

Web Development

Front-end

I started with Front-End Development, leveraging my design experience and initial coding knowledge from school. Learning HTML, CSS, and JavaScript felt natural, and I built several projects to refine my skills. I chose React as my primary library for its flexibility in building dynamic projects. To address challenges with state management, I learned Redux and implemented it in various projects, many of which utilized APIs. This sparked my curiosity about how APIs function.

Back-end

To understand how APIs work, I transitioned to Back-End Development, learning Node.js and building projects focused on REST APIs. I explored MongoDB as a database for its versatility. Discovering the potential of Full Stack Engineering, I embraced it wholeheartedly, motivated by the opportunities it presented. My growing interest in collaboration and learning from experienced developers led me toward Open-Source Development.

Computer Science

I am from an Engineering Background, with major in Computer Science so I had an environment, that made me try programming. Following the curriculum, I learnt the C Programming language, along with Data Structures and Algorithms using C.

Then other subjects I enjoyed are Operating Systems. I got familiar with the Linux Operating System. Really dived deep into it, tinkered with the system calls using C programming language. I thoroughly read this book Operating System Concepts for about 2 months.

Another subject I really enjoyed was Computer Networking. Playing around with packet tracer really made me understand how the internet works. This book specifically, Computer Networks: A Top Down Approach was a great learning experience. I spent like 2-3 months on this.

Other subjects I enjoyed learning and dived deep are Theory of Automata, Compiler Design and Design and Analysis of Algorithms. Also, I was exploring outside my Computer Science Curriculum in the meanwhile, below is the list of them.

Design

Initial interests being design and art where I learned about design principles for some time, I liked Typography, layout design, Poster designs etc. I am self taught in most of the things, It can be a boon as well as a curse. The biggest problem with being a beginner in any domain, is wrong advice. I liked design, but did not know how to capitalise that skill and a lot of people around me gate-keeped saying , I cannot be a good designer if I have not been to a design school. I did not stay with it long enough which I personally think was a good decision.

The skills did not go to waste though (they never do), I designed many websites/ posters for my college events. People really liked the designs. I often helped my peer learn the skills too. Learning Design basics actually helped me a lot for the next step as well. Which was Web Development.

0
0