Categories
Uncategorized

Everything Dev

Every software application is a mix of different technologies working together to make something functional. The specific frameworks, languages, and tools depend on what the software is trying to accomplish. Foodable is a full-stack web app, and while it’s easy to split the tech stack into front-end and back-end, there’s a lot more going on under the hood. Instead of writing up another design doc, I’m breaking down some parts of Foodable’s tech stack and my experience working with these technologies.

My Favorite Technology: Next.js

Out of everything we’ve used in this project, Next.js is my favorite. It simplifies routing, enhances performance with server-side rendering (SSR) and static site generation (SSG), and allows for API routes within the same framework, reducing the need for a separate backend. The developer experience is also top-notch, with features like fast refresh and built-in TypeScript support. Plus, its tight integration with Vercel streamlines deployment and continuous integration.

How does it work?

Next.js enhances the standard React experience by allowing both static and dynamic rendering. It determines at build time or request time whether a page should be statically generated (SSG) or rendered on the server (SSR). This flexibility makes it perfect for Foodable, where some pages (like recipes) benefit from static generation for SEO, while user-specific pages (like saved recipes) need real-time data with SSR. With API routes, we can also handle backend logic without needing a separate Express server, keeping everything within the same framework.

Least Favorite Technology: None (But Some Were Annoying to Learn)

I wouldn’t say I have a least favorite technology, but some were definitely frustrating at first. Zustand and TanStack Query required a shift in mindset regarding state management, especially when handling both client-side and server-side state efficiently. However, once I got comfortable with them, they became essential.

Easiest Technology: Tailwind CSS

Tailwind CSS was by far the easiest to pick up and use effectively. It speeds up UI development with its utility-first approach, ensuring that styles remain consistent without writing tons of custom CSS. The ability to rapidly prototype and refine the UI made front-end development much more efficient.

What’s Missing From the Stack?

One thing I wish we had included from the start is WebSockets for real-time updates. While TanStack Query does a great job with caching and re-fetching, real-time features like collaborative shopping lists or live chat would be smoother with WebSockets or something like Pusher.

Overall

Building Foodable has been an insightful experience, and the technologies we chose have played a huge role in shaping how the app functions. While some tools had a steeper learning curve, they ultimately contributed to a more efficient and scalable application.

Categories
Capstone Uncategorized

Before it Starts

Hello 👋,

I want to start by saying that I’m really excited to begin the Computer Science capstone. I can’t wait to see all the new things I’ll learn and the connections I’ll make along the way. This is something I’ve been looking forward to, and I’m eager to get started and make the most of the experience.

I currently live in Albany with my wife because the rent prices in Corvallis are insane. I really don’t have time for hobbies; everything I’m doing this year is focused on making me a better Software Engineer and ensuring I can pay rent and afford food in this economy. This doesn’t mean I don’t have fun. For example, I’m currently configuring a more advanced Neovim setup and improving my Vim motions on my Arch Linux system, which I personally find very fun and rewarding. Some people might consider my time at the gym a hobby, but for me, the gym is non-negotiable, so I don’t view it as a hobby. If and when I have free time, the hobbies I’d enjoy would be hiking, playing games with friends (the type of game varies), and playing Nintendo Switch with my wife.

My story for getting into computer science is surprising to some, but here it goes. I started college in 2020 during what we all know and love as COVID-19. When I began, I was pursuing a degree in Kinesiology, also known as Exercise Science, with the goal of becoming a physical therapist (PT). I entered college with a lot of credit from being an International Baccalaureate (IB) graduate, which covered a decent portion of my core requirements, though I still had several classes left to take. As a result, the first two years were focused on completing those core credits, with some major-specific courses sprinkled in.

During my second year in Kinesiology, two main things happened:

  1. The course material and difficulty of many classes were no longer as interesting or challenging as they used to be.
  2. I began to love developing Discord bots and learning programming with Python.

Despite this, I continued with Kinesiology and, during the summer of 2022, landed a per-diem job at Good Samaritan as a Physical Therapy Aide. In this role, I worked side-by-side with physical and occupational therapists. Unfortunately, this only confirmed my disinterest in Kinesiology, leading me to take a huge leap of faith and switch to Computer Science. The first few classes completely opened my eyes to the possibilities of software engineering and the rest is history.

When I’m not working on an awesome project, I’m working at Beaver Town Movers as a Job Site Supervisor / Lead Mover. It’s a physically intensive job with flexible hours, and it’s usually fun and pays well. I’m truly grateful I found this job a year ago.

When I’m not working or spending time with my lovely wife, I’m also exploring new technologies. Currently, I find Amazon Web Services (AWS) fascinating. For my CS 406 course, I’m building an AWS project while pursuing my AWS certifications.

I might be a little biased, but my favorite project is one I proposed: Foodable. If we’re not talking about my project, then I’d have to say my two second favorites are the Language Immersion Virtual Environment (LIVE) and Lidar to 3D Sound Application for the Seeing-impaired. These projects fascinate me because they not only sound exciting to create but also have the potential to help people in the real world.