About me

I'm a passionate fullstack engineer who specializes in building modern web applications using Next.js, Tailwind, TypeScript, Shadcn/ui, and React Server Components.

I'm a strong believer in the power of shipping early and often. This stack allows me to rapidly develop and iterate on features, making me a valuable asset in fast-paced startup environments where the ability to quickly ship, measure, and learn is crucial to success.

I feel very comfortable taking projects from concept to implementation. I enjoy bringing ideas to life quickly while maintaining a focus on writing clean, readable, and scalable code.

If I had to describe my core strengths, they would be:

  • Agency
  • Craftsmanship
  • Bias for action
  • Strong communicator

🧑‍💻️ My Work

TLDR: If you're in a rush and want a quick overview of some of my recent projects, here are the highlights:

Throughout my career, I've had the privilege of working with fast-paced, innovative startups. I thrive in environments where I can leverage my skills to rapidly develop and ship features that make a real impact.

I have a particular passion for UI engineering. I find great joy in crafting intuitive, engaging user experiences that not only look stunning but also perform flawlessly. Tailwind CSS has been a game-changer for me, as its design principles perfectly align with my belief in the power of great UI/UX.

I'm thrilled to see Tailwind gaining widespread adoption and becoming the go-to choice for writing CSS. I'm also a big fan of recent developments such as Shadcn/ui, which builds beautifully on top of Tailwind, providing powerfool tools and enabling me to rapidly develop accessible and visually appealing interfaces that leave a lasting impression on users.

When tackling projects, I bring a keen eye for detail and a commitment to excellence. Whether I'm working on optimizing database solutions, designing realtime chat applications, or implementing advanced SEO techniques, I approach each challenge with a focus on delivering high-quality, performant, and user-centric solutions.


🧠 My Philosophy

I've been fortunate to work on a wide range of projects throughout my career that have shaped my approach to software development and best practices. This includes building MVPs, some project management, working on performance optimization, integrating SDKs, migrations to the new app router, programmatic SEO, and refactoring and accesibility projects.

While I have my preferences, I understand that each project is unique. However, there are certain principles that I believe are essential to success, regardless of the project's specifics.
Here are a few of the core philosophies that guide my work:

  • Integrate Refactoring into Your Workflow: Make refactoring an integral part of your development process. After completing a feature, take the time to review and optimize your code for better quality, readability, and maintainability. Don't add a note saying you'll circle back to it. After the feature is shipped, the chances of you touching that code are zero-to-none. Regular refactoring efforts can lead to a cleaner, more efficient, and more scalable codebase as well as set a standard for other developers working in the same codebase.

  • Rate of change is the highest indicator of success: In the fast-paced world of startups, the ability to adapt quickly is crucial. The rate at which you can change and improve, both as an engineer and as a company, is - in my opinion - the best predictor of success. Embrace change and continually strive to enhance your skills and processes. Embrace discomfort, develop tools to deal with uncertainty, and have the confidence to jump into the unknown.

  • Craftsmanship: Take the extra time to polish your work. It matters, even when you feel like it doesn't. The best companies I know relentlessly pursue excellence in anything and everything they do. Some of the companies that embrace this - and that I personally look up to - are Linear and Tailwind.

  • Focus on systems: While goals are helpful to set a direction, systems and processes are what really set success apart from failure. Every startup wants to be successful, but goals alone rarely have anything to do with achieving the results we want. It's the companies that continuously refine their processes, learn from each iteration, and adapt their systems based on those learnings that are most likely to see positive results over time and ultimately achieve their goals.

  • UI/UX Designers Have a Compound Effect: A great UI/UX designer can significantly impact a company's success by creating sleek and intuitive user experiences, developing efficient design systems, helping streamline the release process, strengthening brand identity, and contributing to the product roadmap. Therefore, the lack of a skilled designer can result in inconsistent user experiences, inefficient development processes, and a weaker brand presence, ultimately hindering the company's growth and success.

I know that working in a startup can sometimes feel like you're building a car as you race, making it challenging to focus on some of these aspects, let alone all of them simultaneously. These are just things that, in my experience, have either worked best for companies or hindered their success the most when lacking.


🚀 Tech Stack

While I'm always open to learning and adopting new technologies, I do have a preference for working with certain tools and frameworks. Here's what my go-to stack looks like:

I've carefully curated this stack because it allows me to code efficiently and deliver top-notch solutions at a fast pace. With these tools in my arsenal, I can focus on building amazing products and features without getting bogged down by unnecessary complexities.

Honorable mentions:



🌱 Interests

Weight lifting, strength training, and anything that has to do with Yun Sung Bin

Hiking, walking, and hanging out with my dog

Lately I've been getting back into tennis 🎾

Cooking recipes from shredhappens. Very much recommended.

Someday I will learn Rust and become a full-fledged engineer, but I've been struggling to find the time.