Roman Sorin

Blog

A collection of snippets, experiences, and longer content documenting my findings over time.

  • Feb 1, 2024

    Serializing OpenAI API Responses for Logging with Pydantic

    When working with external APIs, I lean heavily on logging as much information I can for requests and responses. Sometimes, the solution is obvious, but can still be easy to miss!

    Read more
  • Apr 5, 2022

    Using Django's JSONField? You probably don't need it. Here's why

    If you find yourself using JSONField in Django, you might not know that you're really using JSONB. How can this impact your application?

    Read more
  • Mar 5, 2022

    Deleting Git branches in bulk

    Deleting several Git branches at once with normal Git deletion commands can become a real headache. Thankfully, there's an easier alternative to this.

    Read more
  • Feb 1, 2022

    Disabling the Tailwind input ring

    If you've ever worked with Tailwind, you've probably come across an input ring – but it isn't always clear on how to remove this ring.

    Read more
  • Jan 27, 2022

    Cherry-picking done easy

    Have you ever needed to cherry-pick several commits between two branches, but ran into conflicts every time? I made this mistake myself – but cherry-picking doesn’t have to be hard.

    Read more
  • Dec 1, 2021

    The Impact of Layout on User Experience: A Study

    This paper documents a study that spanned over several months (September 2019 - April 2020), in which I performed a two-part analysis & experiment on the most popular site layouts and how user experience is affected.

    Read more
  • Nov 22, 2021

    Hiding primary keys and database IDs using Hashids

    We often don't want to show primary keys or model IDs to users, and doing so can be more harmful than you might think. As a solution, we can make "hashes" to mask IDs while still maintaining uniqueness.

    Read more
  • Nov 15, 2021

    Sticky Footers

    Sticky footers are really easy to do and only require about 10 lines of code. We start by making the actual page at least the height of the screen, and then we move the footer to the bottom of the page with auto margin if there isn't enough content to push it down.

    Read more
  • Oct 26, 2021

    Zillow's confusing keyword UX

    An exploration into Zillow's confusing keyword UX, and how listing sites can improve.

    Read more
  • Oct 16, 2021

    Design for your developers, not just your users

    Though it's impossible to be perfect, there are ways to improve developer productivity and establish a better foundation for how your apps are built. It starts by designing for your developers.

    Read more
  • Oct 9, 2021

    My experience of moving from Laravel to Django

    Before my current role, I spent most of my professional development career writing web apps in Laravel. I learned Laravel out of necessity after learning PHP and quickly grew fond of the framework, but later moved to using Django as my primary framework. Despite a simple transition, even some of the more basic concepts gave me trouble regarding terminology and patterns.

    Read more
  • Oct 6, 2021

    Handling bulk update or create on Django models through filters

    Recently, I came across a case where I needed to handle either bulk creates or bulk updates on a set of Django records within the same endpoint. Unfortunately, Django doesn't have a way of handling this "either-or" eloquently – but there's a feasible approach to this issue.

    Read more
  • Oct 3, 2021

    Setting up Supabase with Next.js and Vercel

    In this article, you'll learn how to connect your Supbabase project with your Next.js app hosted through Vercel. Within a matter of minutes, you'll have fully-fledged authentication, database, subscription support, and more.

    Read more
  • Sep 2, 2021

    Using Hotjar and Google Analytics with Next.js to track behavior

    As a developer, my go-to analytics tools are Hotjar and Google Analytics for both small, personal projects, and more complex applications. When I get a choice, Next.js is my favorite React framework – it offers server-side rendering (SSR), a growing and responsive community, and integrates easily with my favorite CSS framework, TailwindCSS.

    Read more
  • Nov 10, 2019

    Integrating Gatsby, Tailwind, and Storybook

    One of my current projects is dedicated to documenting and describing UX research that I’ll be conducting within the coming weeks. In building this project, I got the idea to use Tailwind, Gatsby, Firebase, and Storybook to get my hands dirty whilst still being able to build the app without too much effort.

    Read more