James Porter's Tech Blog
Click a post title below to jump to that post.
- Designing UX using AI
I enjoy building quality user interfaces which are usable and attractive, and it's great having AI tools to assist with this. My main approach for designing UX is to use the integrated AI agent within my IDE to generate lots of UX options which can be displayed within the app using dummy data. [...]
- Why Don't Kilograms Exist in TypeScript?
I've often wanted to represent custom data types within TypeScript such as kilograms, postcodes and email addresses. If possible, this would prevent devs from accidentally passing a user's age into a function to sum two weights and from passing an email address into a function that fetches the lat/lng position of a postcode. Such things don't logically make sense, but they're possible in TypeScript if we only use the standard types available to us. [...]
- Build an app to level up fast
In a typical programming job, you often are working in a team on an existing project. You can excel at your part of the project but rarely will you get an appreciation for the entire company's tech stack. [...]
- The Case for Writing the Same Logic Twice
I love DRY-ing (Don't Repeat Yourself) repetitive code into reusable chunks. In many cases, the codebase becomes easier to read and maintain as changes only need to be made in one place. However, there are instances where the keen developer's urge to DRY up the code can result in overly complicated logic. [...]
- Tables don't fit in your pocket
Got lots of data to display? Use a table! It looks great on your machine and clearly lays out all the information for your users. Problem is, your users mainly use mobile devices, and tables don't fit well in your pocket. [...]
- Why I use object params
Remember that time you were working on a shared codebase and came across a function you'd not seen before: [...]