Field Notes
Zach's Blog
Learnability is the single most important non-functional aspect of code
and more than ever in the age of AI
#software#ai#opinionYou, yes you, yep YOU, you need a password manager.
Yes I am talking to YOU.
#password#security#password-managerTypeScript config files with type-aware ESLint
How to keep *.config.ts files in TypeScript without breaking your lint setup
#typescript#eslint#tooling#vite"This is what AI said" needs to stop
Stop forwarding raw AI output
#ai#team#communication5 Intermediate React Mistakes
Mistakes that block the jump from intermediate to senior
#react#jsOKLCH colors are better for designers and developers
Warning: this is going to make you want to go update all your colors
#css#colorHow to install corepack
For deterministic dependency installation
#utility#npm#javascriptPostman is Dead. Long live Bruno
Integrate example requests into your normal development workflow
#utility#testing#javascriptYour IDs need better DX
They can be sortable, selectable, distinguishable, and type safe.
#utility#typescript#dbHow to Suck Less at Git
Part 1 - The Git Graph
#gitHow to Suck Less at Git
Part 2 - Editing Git History
#gitHow to Suck Less at Git
Part 3 - Other Useful Git Tools
#gitWhy software doesn't work anymore
We deserve better Results
#errors#typescript#rust#react#fastifyFrom the web: The Copilot Delusion
A counterpoint to the hype
#aiFNM: a better node version manager
It automatically changes node versions as you move between projects
#node#terminal#utility#tooling7 Slack Habits That Make You a Better Person
If you ever find yourself at some pearly gates, you'll thank me
#opinion#team#communicationFull-stack Engineering is a Lie
A case for engineering specialization
#opinion#engineering#teamA smarter cd command
A tool called zoxide will improve your whole terminal experience
#terminal#utility#toolingYou should version control your dot files
You know the ones, all those config files sitting in your home directory
#utility#organization#tutorialFilling out the same form over & over again
With a Chrome extension called Autofill
#utility#tutorialHow to stop using so many optional properties in your React TypeScript props
Using TypeScript unions to define relationships between props
#typescript#react#tutorialHow to interactively rebase git merge commits
The easiest way to rearrange merge-commit pull requests
#gitDeath to Default Exports!
Why you should go right now and delete every "default" from your codebase
#javascript#typescript#exports#react#opinionI recreated my blog with Astro.js
About the ups and downs of switching my Next.js blog over to Astro
#macWhen to use each JavaScript iteration method
And a practical guide to the reduce() function
#javascript#typescript#reactHow to make your app faster with React's key prop
A puppy dies every time you set key={index}
#react#tutorialHow to test TypeScript type definitions with Jest
You can add tests for your static TS types right next to your regular Jest tests
#typescript#jest#testing#tutorialTo squash or not to squash?
Which merge strategy should your team use for PRs?
#gitStrongly typing a React "component" prop
Allowing customization of the root node of a React component & maintaining correct prop typing
#react#typescriptWhat I learned from publishing a Svelte library
The highs, the lows, the lessons learned
#svelte#js#npmWhat does the isolation CSS property do?
A little CSS magic that will improve your use of z-index
#css#z-indexDeploying a Node.js server that uses websockets
Websockets are really cool for instances when you need real time communication between your users
#nodejs#websockets#svelte#express#tutorialWhy you should stop using git pull
...in its default form
#gitMake Rebasing Faster...unix style
An update to an old post that only worked on Windows
#git#terminal#utility8 JavaScript Testing Mistakes to Avoid
In no particular order
#javascript#typescript#react#unit#testing#jestBetter Next.js SSR with React Query
How to use React Query to server side render in Next.js without code duplication
#react#react-query#ssr#tutorialHow to write better commit messages
You writing "fixed" is hurting your whole team
#git#communicationWhy you should stop using Git's default text editor
Use the text editor you're most comfortable with
#git#terminal#utilityNew git commands to replace 'checkout'
Git somewhat recently introduced two new commands, switch and restore
#git#utilityHow to get started with Azure Functions in Node.js
What I've learned from my confusing initial experience setting up Azure Functions in JavaScript
#azure#nodejs#javascript#typescript#tutorialGit 101 - The Log
This post is the first installment of what I hope to be a comprehensive explanation of the most effective git strategies and workflows
#gitBuilding an IoC container in C#
The design and implementation of an Inversion of Control container in C#
#csharp#ioc#mvvm#tutorialMaking rebasing faster
Do you find yourself running "git rebase -i head~N" a lot?
#git#efficiency#utilityA Shortcut For Git (on Windows)
What are the three most common letters you type when using git? 'g-i-t'. What if you could reduce that by two thirds?
#git#terminal#utilityMoving a branch pointer in Git
My struggles with a seemingly simple task
#gitiOS View Controller Variable Initialization
Inside of a view controller, how do I initialize one variable to the value of another?
#ios#uiiOS UI Popover Controller
What is a UIPopoverController and when should you use it?
#ios#uiiOS Nav Controllers
When a navigation controller is used to transition the user to a different view where they need to make a selection, how can this selection data be transferred back to the main view?
#ios#uiiOS Data Storage
What is the preferred way to store static data when building an iOS application?
#iosThe Modern Switch Statement
Why do most languages still require breaks in a switch statement? Is Swift the beginning of the end for these break statements?
#iosWhat's the best way to create a UI in iOS?
There are at least three completely different ways to create a UI for an iOS app.
#ios#ui