<\>)Paul Singh

Code Based Solutions for Real World Problems

Just another guy with a passion for all things code related

Me standing on a beach

Hey there,
I‘m Paul Singh

👋

I‘m just another person who loves to write code and travel this glorious planet. I‘ve been building on the web since the days of dial up (jeez, I sound old) and have seen a bucket load of changes along the way

My Tools

Below is a list of the tools which I use on a regular basis and am most comfortable using.

That being said, there is a bunch of tools I use on a regular basis which are not listed below because... you know... space n‘that

Filter Tools

    • Typescript

      TypeScript is by far my preferred language to code with. It provides the utility of JavaScript and the safety of a statically compiled language. Generally speaking, if I am starting a greenfield project it will be with Typescript.
      language
    • Official icon for Official logo for Javascript

      Javascript

      Javascript is a language which I have been using since my early teens. It is one which I like to think I have a wealth of experience in using. Its benefits can also rear their heads as a weakness, however, the majority of these are solved with TypeScript.
      language
    • Official icon for Official logo for Next JS

      Next JS

      Next JS is most definitely my preferred micro framework for React solely due to the fact that I have been using it for many years, thus am most proficient with it. While a controversial topic, I have actually grown to love the new (ish) app router and its implementation of React Server Components
      framework
      frontend
    • Official icon for Official logo for React JS

      React JS

      What can I say about React that hasn't already been said? If I am not making a static page/site using vanilla, the chances are I will be using React. I have grown to love its ease of use and plethora of communal tools. As with everything, it has its nuances but that is where the mantra "right tool for the right job" comes in
      library
      frontend
    • Official icon for Official logo for ShadCN/UI

      ShadCN/UI

      ShadCN/UI is essentially what made me grow to love Tailwind CSS. I used to avoid UI frameworks in order to keep dependencies low but I have found that ShadCN/UI provides the perfect middle-ground between a component library and doing it yourself.
      library
      frontend
    • Tailwind CSS

      Initially I was not a fan of Tailwind CSS due to the pollution of the HTML class attribute. However, as I have been using it regularly for larger projects at work, I have grown to love it. The extensibility of its config and the consistency it provides are second to none.
      framework
      frontend
    • Official icon for Official logo for NodeJS

      NodeJS

      I have a wealth of experience building with the Node JS framework. During my career I have built everything from RESTful APIs to CLI apps and bespoke development frameworks. One thing I love about NodeJS is the fact that it utilises the automatic garbage collection of the JS engine, removing a lot of room for the nastiest of errors when working with the filesystem.
      framework
      backend
    • Official icon for Official logo for Vitest

      Vitest

      Vitest has become my defacto unit testing solution over the past year or so. I used to opt for Jest but a series of wonky updates (breaking changes on a patch release) have lead me here. From my experience it seems to have a near 1:1 implementation match but without all the faffing around with config files.
      framework
      testing
    • icon

      Webpack

      I've been using webpack for a hot minute and generally will opt for it if there is a need for a complex bundling system. Its extensive list of community built and managed plugins makes it second to none and its flexibility with filetypes means I can do things like import an SCSS file into a JS project then have it processed into a string of CSS without any second thought.
      bundler
      dev tool
    • ESLint

      ESLint configurations have become somewhat of a knack of mine. As a result of my career path I have been required to create multiple custom configs, plugins and implementations of this bug catching beauty. I dread to think of how many stupid errors I would have shipped if it weren't for that little squiggly red line which pops up when a variable has been misspelled.
      dev tool
    • Official icon for Official logo for Git

      Git

      I don't know what the state of software engineering would be like if it weren't for Git. Its version control system enables me to keep track of my changes and roll back if needed. It is a life saver. It also provides the grounds for fearless collaboration between team members by preventing conflicting branches from being auto merged.
      dev tool
    • GitHub Actions

      Implementing Github actions on a number of greenfield projects in which I have been involved has been proven to an absolute game changer, especially when combined with branch protection rules to stop dodgy pushes to main.
      dev tool
      automation
    • Figma

      Since switching over to Figma from Adobe XD I have found that my productivity and wire-framing abilities have both drastically improved. Using Figma allows me to get mockups made for clients without spending hours writing code.
      design
      dev tool
    • Playwright

      I've been using Playwright to scrape websites for quite some time and have used it to make everything from a Webpack plugin which injects code on live websites with auto reloading, to scraping data from a given source.
      testing
      dev tool
    • Mongo DB

      Mongo DB is a great database solution which I often use when I am in need of a non-relational, dynamic and flexible storage solution. The fact that is stores documents as plain JSON objects makes it a perfect candidate for JS based apps.
      database
      no sql
    • MySQL

      I've been using MySQL for some time, even before I fully understood it (thanks, WordPress). Its relational structure adheres to a strictly defined schema, which enforces a high level of data integrity. While powerful, using it without an ORM can be cumbersome at times.
      database
      sql
    • PostgreSQL

      Postgres is the database I've recently started exploring as a result of trying out Supabase. It offers the same strong data integrity as MySQL but adds functionalities like Row Level Security and the ability to run functions on data Update.
      database
      sql
    • Prisma

      I've found Prisma to be a great solution when interacting with relational databases such as MySQL, SQLite and PostgreSQL. It provides a type-safe environment in which I can interact with strict data structures thus limiting room for error.
      orm
      dev tool
    • Vanilla

      This is essentially the stack I grew up with. I have more experience writing vanilla code than anything else. During my time building A/B tests I really honed my skills in writing with a more traditional stack using standard HTML, CSS and JS.
      frontend
      backend