Back to Writing Page

Learn, Build, Deploy - What I experienced in Devscale

5 min read

Learning something beyond my comfort zone

In the ever-evolving world of web development, staying ahead of the curve often means diving into new technologies, wearing multiple hats, and embracing a builder mindset. Recently, I had the opportunity to work on a project called Splitbill.app, where I not only honed my skills as a full-stack developer but also stepped into the role of a product person. This experience taught me valuable lessons about teamwork, technology, and personal growth. Here’s how I navigated through the journey of learning Next.js, assisting my team, and growing beyond my job title.

The Tech Stack: Next.js, Prisma, and More

Our project, Splitbill.app, was built using a modern tech stack that included Next.js as the framework, Prisma as the ORM, and Vercel for hosting. As a full-stack developer, I was responsible for both the front-end and back-end development, which meant I had to get comfortable with these tools quickly.

Learning Next.js

Next.js was the backbone of our application, and it quickly became one of my favorite frameworks to work with. Here’s why:

API Routes: Next.js allows you to create API endpoints within the same project, which simplified our backend development. Instead of setting up a separate server, we could handle both the front-end and back-end logic in one place.

File-Based Routing: The file-based routing system in Next.js eliminated the need for complex routing configurations. This made the development process more intuitive and reduced the chances of errors.

Vercel Integration: Since we were hosting on Vercel, the seamless integration with Next.js made deployments a breeze. Every push to the main branch triggered a new build, and the changes were live in minutes.

Prisma for Database Management

On the backend, we used Prisma as our ORM (Object-Relational Mapping) tool. Prisma simplified database interactions by allowing us to define our database schema in a declarative way. It also provided type-safe queries, which reduced the likelihood of runtime errors. As someone who had previously worked with raw SQL and other ORMs, Prisma felt like a breath of fresh air.

Assisting as a Product Person

While my primary role was that of a full-stack developer, I also took on the responsibility of assisting the team as a product person (I kinda don't want to use product manager since I'm not 'managing' it). This meant I had to think beyond just writing code and consider the overall user experience, feature prioritization, and product vision.

Balancing Technical and Product Mindsets

One of the biggest challenges was balancing the technical and product mindsets. As a writer who diving into developer realm, my instinct was to focus on the technical feasibility and implementation details. However, as a product person, I had to shift my focus to the user’s needs and the business goals.

For example, when we were implementing the OCR (Optical Character Recognition) feature for scanning receipts, my team had to ensure that the technology we chose (llamaparse) was not only accurate but also easy to use. This meant working closely to create an intuitive interface.

Prioritizing Features

Another aspect of my role as a product person was prioritizing features. We had a long list of potential features, but we had to focus on the ones that would deliver the most value to everyone who use Splitbill.app

Growing Beyond the Job Title: Embracing the Crafting Mindset

One of the most important lessons I learned during this project was the importance of growing beyond my job title. As a developer now, it’s easy to get comfortable with the technical aspects of the job and focus solely on coding. However, this project taught me the value of embracing a crafting mindset, a mindset that encourages exploration, experimentation, and continuous learning.

Exploring New Technologies

Working on Splitbill.app pushed me to explore new technologies and tools that I hadn’t used before. For example, my team had to quickly get up to speed with llamaparse, an AI tool for OCR, and integrate it into our app. This required not only technical skills but also a willingness to learn and adapt.

Crafting the User Experience

As I took on more responsibilities as a product person, I found myself paying more attention to the user experience. I started thinking about how users would interact with the app, what pain points they might encounter, and how we could make the app more intuitive. This shift in perspective helped me grow as a developer and as a product thinker.

Building for the Future

Finally, this project taught me the importance of building for the future. As developers, we often focus on solving immediate problems, but it’s equally important to think about how our work will scale and evolve over time. By embracing a builder mindset, I was able to think more strategically about the architecture of our app and how it could be extended in the future.

Conclusion

Working on Splitbill.app was a transformative experience that allowed me to grow both technically and personally. By learning Next.js and assisting my team as a product person, I was able to contribute to the deployment of the project while also expanding my skill set.

If there’s one takeaway from this journey, it’s this: I'm grateful to step out of my comfort zone and take on new challenges. Whether it’s learning a new technology, wearing multiple hats, or thinking beyond my job title, these experiences will help me grow as a product developer and as a person.

So, what’s next for me?

I’m excited to continue exploring new technologies, building meaningful products, and embrace crafting. The journey of learning and growth never ends, and I can’t wait to see where it takes me next.