Sign in

Jake Worth

@jakeworth.com
158 followers 332 following 387 posts

Software engineer in Maine. Organizer of the Maine JS Meetup. www.jakeworth.com Building and writing. 📦

PostsRepliesMedia
Reposted by Jake Worth
🎱 Josh Branchaud ✨ @jbranchaud.bsky.social · 25/09/2026
Starting today, direct to your RSS reader, you can get quotes and notes on the most interesting things I'm reading. Shoutout to @jakeworth.com for recommending that I get an RSS feed set up for these. still.visualmode.dev/blogmarks
Screenshot from NetNewsWire of the RSS feed for my blogmarks from VisualMode
161
Jake Worth @jakeworth.com · 23/09/2026
TIL: ChatGPT reminds me of this the `main()` scripting syntax I'll be using in future JavaScript work. www.jakeworth.com/tils/javascr...
jakeworth.com
JavaScripting on main()
I had ChatGPT write a JavaScript for me, and was surprised to see this arrangement: function main() { // Do work... } try { main(); } catch (error) { console.error(error); process.exitCode = 1; } I wo...
000
Jake Worth @jakeworth.com · 17/09/2026
Maine tech folks: join us on Tuesday, October 13 for a JavaScript-themed social at Novare Res! Recent discussions have centered on agentic AI, CSS, type-safety, and more. All experience levels are welcome. www.meetup.com/mainejs/even...
meetup.com
October Social at Novare Res!, Tue, Oct 13, 2026, 6:00 PM | Meetup
Join us at Novare Res in Portland for an evening of networking, socializing, and technical talk! We'll find a table inside or outside based on the weather. ⏰ Timeline 6:0
000
Jake Worth @jakeworth.com · 10/09/2026
I think whipping up a technical talk in 24 hours and then giving it, and not falling on my face, is a good skill to keep sharp.
010
Jake Worth @jakeworth.com · 08/09/2026
Giving a talk tonight on reflective programming in JS! Hoping to get a question or two, because I have a few of my own.
001
Jake Worth @jakeworth.com · 07/09/2026
Interested in learning or getting better at JavaScript? It's never been a better time! Please join us tomorrow at the Maine JS Meetup at Portland Webworks. We'll have some good talks, networking, and socializing afterward at Novare Res. www.meetup.com/mainejs/even...
meetup.com
JavaScript Lightning Talks!, Tue, Sep 8, 2026, 6:00 PM | Meetup
Join us for JavaScript Lightning Talks! ⚡️ Are you looking to deepen your understanding of JavaScript in a friendly environment? Look no further! We invite you to our upco
010
Jake Worth @jakeworth.com · 07/09/2026
Working today on a talk about JavaScript reflection (asking the language: "Where is this function defined?").
120
Jake Worth @jakeworth.com · 04/09/2026
Today's TIL: calling Git hooks on demand. www.jakeworth.com/tils/call-a-...
jakeworth.com
Call a Git Hook on Demand
Git hooks are scripts that run at key moments in the version-control lifecycle. And, they’re just scripts! So we can call them when we want. <shell> <hook> For me in this project (Zsh + Husky), this c...
000
Jake Worth @jakeworth.com · 02/09/2026
Linking to a local node module with npm-link: www.jakeworth.com/tils/link-to... #til #javascript
jakeworth.com
Link to Local Package With npm link
When developing a local Node module, we might want to point another project’s package.json at the local module. Here’s how you do that.
000
Jake Worth @jakeworth.com · 01/09/2026
Found a use for TypeScript's tsc --watch today. www.jakeworth.com/tils/tsc-wat...
jakeworth.com
tsc watch script
Today I learned what tsc --watch is really for. You put it into your package.json as a script. // package.json { "scripts": { "watch": "tsc --watch" } }
000
Jake Worth @jakeworth.com · 01/09/2026
Experimenting with building a React skeleton UI library today.
000
Jake Worth @jakeworth.com · 31/08/2026
Tech folk of Maine! Just over a week until our September Maine JS Meetup! Please RVSP now and join us for a fun evening of JavaScript lightning talks and networking in Portland, Maine. www.meetup.com/mainejs/even...
meetup.com
JavaScript Lightning Talks!, Tue, Sep 8, 2026, 6:00 PM | Meetup
Join us for JavaScript Lightning Talks! ⚡️ Are you looking to deepen your understanding of JavaScript in a friendly environment? Look no further! We invite you to our upco
000
Jake Worth @jakeworth.com · 31/08/2026
TIL: Reading your lpr configuration www.jakeworth.com/tils/read-lp...
jakeworth.com
Read lpr Configuration
I’ve written about lpr before; to me the ability to send a file to my printer from the command line is a magic trick. What if I want to know where the file is going to go before sending it? lpr’s docs...
000
Jake Worth @jakeworth.com · 31/08/2026
TIL: Hugo Markdown-Reading Shortcode www.jakeworth.com/tils/hugo-ma...
jakeworth.com
Hugo Markdown-Reading Shortcode
Today I built a system to read a markdown file from one location in my Hugo project into another.
000
Jake Worth @jakeworth.com · 31/08/2026
Today I'm writing a blog post about validating a problem exists before solving it.
000
Jake Worth @jakeworth.com · 26/08/2026
On my mind today: if you want an unusual outcome, do unusual things.
000
Jake Worth @jakeworth.com · 26/08/2026
Today, did some QA on an app I'm building. One learning: AI is good at generating content, but it benefits from a quick sanity-check before shipping to production.
000
Jake Worth @jakeworth.com · 25/08/2026
What's a technical book you've read and would recommend to any programmer?
000
Jake Worth @jakeworth.com · 24/08/2026
An important part of engineering is confirming that a problem is a problem, before trying to solve it.
010
Jake Worth @jakeworth.com · 14/08/2026
Engineers who are new to TypeScript may find its errors to be cryptic. This post will help you understand them better. www.typenotes.io/notes/why-ty...
typenotes.io
Why TypeScript error codes aren't documented - TypeNotes
How to pragmatically work with TypeScript errors
010
Jake Worth @jakeworth.com · 12/08/2026
Migrating to TypeScript is less about the technical details and more about picking a place to start. A technique that I've seen work well is to pick a seam: utility code. www.typenotes.io/notes/migrat...
typenotes.io
Migrate to TypeScript by typing a seam first - TypeNotes
How to tactically migrate from JavaScript to TypeScript
020
Jake Worth @jakeworth.com · 10/08/2026
In JavaScript, double equals is bad and triple equals is good, right? I'm breaking down the difference here: www.typenotes.io/notes/javasc...
typenotes.io
JavaScript loose equality (==) and type coercion - TypeNotes
Exploring the equality comparator, ==
010
Jake Worth @jakeworth.com · 07/08/2026
Generics are a TypeScript feature that some find confusing. Don't be confused anymore! The best way I know of to understand them is a concept from functional programming: identity. www.typenotes.io/notes/typesc... #TypeScript
typenotes.io
TypeScript generics via the identity function - TypeNotes
How a one-line identity function explains what generics are for
000
Jake Worth @jakeworth.com · 05/08/2026
The TypeScript handbook suggests these are equivalent: let state: string = 'maine' let state = 'maine' Have you ever wondered how you could prove that's true? A brief exploration of contextual typing: www.typenotes.io/notes/inspec... #TypeScript
typenotes.io
Inspecting TypeScript's inferred types - TypeNotes
How to inspect and understand TypeScript inferred types
020
Jake Worth @jakeworth.com · 03/08/2026
TSX is a tool I've been using in daily TypeScript exploration: $ npx tsx Install and run this program, and you'll enter a #TypeScript REPL! You'll need some additional techniques to get type-checking, though. My summary here: www.typenotes.io/notes/runnin...
typenotes.io
Running TypeScript in a REPL with tsx - TypeNotes
How to run TypeScript in a REPL
010
Jake Worth @jakeworth.com · 30/07/2026
“Be conservative in what you do, be liberal in what you accept from others.” Primary keys from an API are a great opportunity to practice this principle. #TypeScript www.typenotes.io/notes/typing...
typenotes.io
Typing liberal primary keys - TypeNotes
Applying the robustness principle to primary keys
020
Jake Worth @jakeworth.com · 29/07/2026
I often want the same #TypeScript string list in three places: runtime values, a state type, and function parameters. Duplicating a union by hand drifts out of sync quickly. Here's a solution I've found: `as const` combined with an indexed access type. www.typenotes.io/notes/union-...
typenotes.io
Union type from array in TypeScript
How to turn a JavaScript array into a TypeScript union type
000
Jake Worth @jakeworth.com · 28/07/2026
Are you looking to get better at TypeScript / JavaScript, in small daily doses? 🚀 I'm building TypeNotes to take the real-world lessons I'm learning every day building TypeScript apps and distill them into short actionable tips and tricks. #TypeScript www.typenotes.io
typenotes.io
TypeNotes
Practical notes for TypeScript devs
152
Jake Worth @jakeworth.com · 27/07/2026
Relative imports in #TypeScript can be useful. This relative import tells me these two files are located in same dir and meaningful to each other. More on this and my preferred alternative, path aliases, here: www.typenotes.io/notes/path-a...
Demonstrating relative imports in TypeScript/JavaScript
000
Jake Worth @jakeworth.com · 10/07/2026
Just finished "How to Open Source" by @schneems.bsky.social. Fantastic! Gave me the push to comment on an open issue. github.com/lodash/lodas... howtoopensource.dev
github.com
Added whitespace · Issue #5977 · lodash/lodash
Something like startCase("3d") seems to return 3 D instead of 3D
011
Jake Worth @jakeworth.com · 22/04/2026
A small thing that's worked well for me in code reviews: commenting and approving at the same time when nothing is blocking. www.jakeworth.com/posts/on-com...
jakeworth.com
On commenting and approving pull requests
After reviewing a lot of pull requests, I’ve settled on a simple default: if my comments are all nitpicks, suggestions, questions, or non-blocking issues, I leave them and approve the PR at the same t...
010
Jake Worth @jakeworth.com · 26/03/2026
I’m thinking about a weekly newsletter for SaaS CTOs (teams ~10–100 engineers): “3 tech trends you should care about (and what to do about them)” Format: - Act on this - Watch this - Ignore this Would you read that? If yes, reply or like this post, and I’ll send a first issue to a small group.
010
Jake Worth @jakeworth.com · 06/01/2026
This is an enviable quality of great software engineers I've observed. If you're trying to level up, it might help. www.jakeworth.com/posts/gettin...
jakeworth.com
Getting It Right the First Time
There’s an enviable quality of great engineers I’ve known: they seem to get things right the first time. When you ask them to do something, and they say “It’s done”, it is, almost always. How?
010
Jake Worth @jakeworth.com · 30/12/2025
Today I Learned: Rebuilds on Write With Nodemon #til jakeworth.com/tils/rebuilds-on-writ…
010
Jake Worth @jakeworth.com · 30/12/2025
Today I Learned: MCP Stdio and Stdout #til jakeworth.com/tils/mcp-stdio-and-st…
000
Jake Worth @jakeworth.com · 29/12/2025
Today I Learned: TSC Watch #til jakeworth.com/tils/tsc-watch
000
Jake Worth @jakeworth.com · 17/12/2025
Testing exception capturing, without crashing your app (Sentry example): www.jakeworth.com/tils/observa... #til #javascript
jakeworth.com
Observable Exceptions That Don't Crash
Throwing a JavaScript Error test to your observability tool? There’s a better way.
020
Jake Worth @jakeworth.com · 16/12/2025
Today I learned that locally, the engines key of package.json is an advisory. But, we can change that! #til #javascript www.jakeworth.com/tils/npm-ins...
jakeworth.com
NPM Install "Engine Strict"
Suppose your package.json specifies a Node engine of <= 24. Will all engineers on your team use Node 24? Not necessarily, unless you use this one weird trick!
020
Jake Worth @jakeworth.com · 12/12/2025
A very short blog post, generated from MCP. #mcp #til www.jakeworth.com/tils/hello-w...
jakeworth.com
Hello World from MCP!
Hello World! Today I’m posting a TIL using MCP (Model Context Protocol).
020
Jake Worth @jakeworth.com · 08/12/2025
Today I learned about the input redirection operator. "my knowledge" < "this cool operator" 😎 www.jakeworth.com/tils/input-r...
jakeworth.com
Input Redirection Operator
I’ve been known to cat README.md | pbcopy a file. There’s a better way: the input redirection operator!
000
Jake Worth @jakeworth.com · 05/12/2025
Two more TILs from me to close out the week! "Disable DRF Browsable API" 🐍 www.jakeworth.com/tils/disable...
jakeworth.com
Disable DRF Browsable API
Django Rest Framework includes a UI for interacting with your API. Here’s how to turn it off.
100
Jake Worth @jakeworth.com · 02/12/2025
📈 Exciting TIL from yesterday! React 17 JSX transform lets you use JSX without explicitly importing React. www.jakeworth.com/tils/import-...
jakeworth.com
Import React and React 17 JSX Transform
I’ve written before about the two competing ways to import React, but after React 17, you don’t need either.
010
Jake Worth @jakeworth.com · 02/12/2025
This year I’ve run over 25 Backlog Refinement meetings; here’s what I’ve learned. #scrum #agile www.jakeworth.com/posts/runnin...
jakeworth.com
Running Great Refinement Meetings
This year I’ve run over 25 Scrum refinement meetings; here’s what I’ve learned.
000
Jake Worth @jakeworth.com · 14/11/2025
I used to be like: "I'm a Rails dev, so my blog *has* to be a Rails app!" Nowadays, I'd pick whatever is the absolute easiest tool for me to write, edit, and deploy.
020
Jake Worth @jakeworth.com · 12/11/2025
This week I shipped something new on the website: a user manual for working with me. Have you ever made one of these? Was it useful? Share in the replies! www.jakeworth.com/user-manual/
jakeworth.com
User Manual
Working with me? Awesome! I built this user manual to share my working style and communication preferences. For those interested in building their own user manual, here’s the guide that helped me. 🧭 W...
020
Jake Worth @jakeworth.com · 11/11/2025
Tonight is the Maine JS Meetup! Join us at Novare Res in Portland for an evening of ECMAScript-compliant conversation and socializing. 🍻 www.meetup.com/mainejs/even...
meetup.com
November Social at Novare Res!, Tue, Nov 11, 2025, 6:00 PM | Meetup
Join us at Novare Res in Portland for an evening of networking, socializing, and JavaScript! ⏰ Timeline 6:00 - 8:00 PM: Refreshments / networking 8:00 PM: Depart (or not;
110
Jake Worth @jakeworth.com · 07/11/2025
It's the Hashrocket Starter Pack! "Follow all" for insights from some of the smartest, most interesting folks to ever walk the streets of Jax Beach. 🏝️ go.bsky.app/ArMALD4
001
Jake Worth @jakeworth.com · 07/11/2025
🎉 Tuesday night, join us in the Old Port, Portland, Maine for an evening of socializing and JavaScript! Always a great group, and great conversation. www.meetup.com/mainejs/even...
meetup.com
November Social at Novare Res!, Tue, Nov 11, 2025, 6:00 PM | Meetup
Join us at Novare Res in Portland for an evening of networking, socializing, and JavaScript! ⏰ Timeline 6:00 - 8:00 PM: Refreshments / networking 8:00 PM: Depart (or not;
010
Jake Worth @jakeworth.com · 07/11/2025
This week, we ran an experiment: entire team voting on tickets to be included in an upcoming release! It was interesting. Has anyone done this? What would you call it; participatory software planning?
000
Jake Worth @jakeworth.com · 02/11/2025
🌲 I made a Bluesky Starter Pack of devs in Maine! We're a small community, and growing. Click that follow button, and let's get a conversation going! go.bsky.app/6WrdHtm
053