Coming back to typed 100% AWS Lambda API’s, I’m convinced the config module is an anti-pattern if you’re using TypeScript.
I feel like those using Middy, and enjoying it, missed the whole “Promises were invented” thing. Nowadays you can just chain functions together. There is no need for all of this side-effects everywhere, global variables like process.env being passed around, and bizarre “thing piece | void” return values. Just have your handler being a Promise […]
Jesse: "Yo Copilot, if you were going to write a soundly typed language with managed effects that compiles to JavaScript, which language would you choose to write the compiler in?"
Side-effects (aka I/O) can make your code hard to test, understand, and change. In web dev, you have 3 options:
Functional Programmers learn pretty early that Maybe/Optional should be avoided if possible.
Dave Farley calls it the Mockery. Jason Gorman has a video calling it Mock Abuse and Mock Hell. Both are true. I’m dealing with it at work and trying to gather various resources to help teach why this is a bad thing. I think Jason'ss video has the best summary I've ever seen on it.
Finally got around to reading Domain Modeling Made Functional, Tackle Software Complexity with Domain-Driven Design and F#, by Scott Wlaschin. Book basically covers:
Quick commentary on the ThoughtWorks 2025 Tech Radar; they’re yearly report on things to try, adopt, and avoid (they call it “hold”, meaning proceed with caution whereas I’m like “yeah, no, avoid the noid”). I only cover the ones I find interesting, so if you want to read the whole thing, PDF is downloadable here: […]
The following covers the unique aspects of TypeScript’s gradual typing, and how this can lead to types that are not accurate and can lead to bugs and runtime exceptions. We also cover ways to utilize the gradual feature of TypeScript to improve those types in an iterative fashion.
Good video on front-end career path. These guys have done some bangers on the nuance around AI for coders. Yes, their titles are click baity, but they have the intelligence, experience, communication skills to produce good content. Three things I want to point out they don’t cover in this video.
Error Handling for fetch in TypeScript The following post describes why and how you do error handling for fetch. Why Care? When you write code that does not handle errors, the code may break at runtime and when deployed to production. Getting PagerDuty calls at 3am are not fun, and are hard to debug because […]
Encoding Encoding in our context means converting a type to a string so we can save it to the web browser’s local storage. In soundly typed languages, this operation will never fail, but that is not true in JavaScript which TypeScript compiles to.
After 11 months, I got my 1st UI story. I've been doing Back-End for the Front-End stories since...
It's been 10 months since I went from Elm to TypeScript Angular, and I still struggle with the...
Reminder to be nice to yourself right now if you're trying and failing to learn new things after work...
Noticed a disturbing trend the past 3 years that I’ll often end up with too many/overly verbose types. TDD has helped remove them, but I wonder if there is a TDD you can apply to Type Driven Development?
Seeing these Python projects being worked on by junior devs with decent test coverage, but zero types amongst code that’s doing a lot of data transformation is… disappointing. I worry for those teams. If you’re tech lead has not told you, Python has optional, gradual types.
The ThoughtWorks 2024 Radar was released (you can download the PDF with 1 click, no annoying sign up required). Below are 2 things: If you just wanna learn about the cool new stuff to look at, skip my component testing rant.
Random thoughts on TypeScript. I've noticed 2 things working on a larger Angular project
In the mocks vs. no mocks debate, I’ve seen a complete ignoring of nuance which I think causes...
I've learned 4 things this past 6 months doing peer reviews on many teams'; code in a large Angular code base.
There are a few options, and strategies. We've listed from easiest to most thorough.
A habit I made in JavaScript, and later TypeScript, was to have Promises never fail, and instead...
I dissect these 3 statements and hopefully give you insight as to where devs are coming from that say that, a different perspective on using tests to design, and what you can do if you hate updating tests.
I gave a talk last Tuesday at the local JavaScript user group, RVA.js, about Continuous Delivery. I recorded the talk and put online for those who couldn't make it. Description and supporting links below the video.
tl;dr; AWS Cognito, highly recommend to UI folks. I’ve heard some people complain about AWS...
Choice quotes from this Copilot research on GitHub: using Copilot is strongly correlated with...
CodeScene’s latest whitepaper, Refactoring vs Refuctoring, has some interesting findings, quotes, and improvements for AI / LLM assisted coding.
You don't negotiate with Product Owners on time on technical debt vs. time on features. You refactor...
Interesting points here about Scrum assumed you had good software engineering practices, the perhaps the guide should be updated to have that point. Also neat to see the definitions of things be extremes and why they were originally called “Extreme Programming”. An article I wished I had access to 12 years ago.