If I had any wisdom to teach younger devs it would be this:
1. Program against, consider, and handle the error path first and foremost. Include useful logging, telemetry, and error messages.
2. Utilize your type system, whatever that may be, to make as many invalid states
it breaks my heart to think of all the millions of cpus and petabytes of ram fully dedicated to running eslint in ci/cd
eslint has cost the world more than null
Woops! Despite doing everything by the books and not using any escape hatches ('as', 'any', or 'non-null assertions') TypeScript let us give a normal 'member' admin permissions! 💥
I was firmly in the merge > rebase camp for over a decade(!) and preached "why add complexity and risk!?"
I took an hour one day to really learn about rebase and I've completely flip flopped and actually find merge commits fundamentally more confusing and hard to work with.
🌶️ React/TS/JS Hot Take🌶️
One thing that drives me crazy about the React ecosystem, and more specifically "tech influencers" and "thought leaders" in the space, is the infantilization of the developers using and working in it.
I’m tired of reading takes like TypeScript
Ya know what’s way more important in being a great software engineer than having strong math skills?
Having great catalytic/soft skills.
You can be the smartest person on the planet, but if you can’t communicate your ideas, build consensus, and empathize with your stakeholders
"you don't need to know math to be good at programming"
WRONG!
You might be able to program without being good at maths but you certainly would be a better programmer if you were a better mathematician.
Fight me!
I can't think of a language where performing a req/resp cycle, including serializations and deserialization, looks this nice and is as simple as this.
Gleam is winning my heart
My hot take is that JS has the lowest bar of entry to building and being productive (a good thing) but one of the highest bars of any language and stack to building high quality, stable, and reliable software.
Very few devs have the expertise to pull off the latter
JS ecosystem is weirdly a high judgement required stack
- tons of garbage to dodge
- noise from the amount of VC funding pushing confusion
- infinite solutions for every micro problem tempting their way into your codebase
you really need to be good at finding clarity
That time I was trying to verify a JWT in OCaml and found a bug that I thought was in the JWT library, which then lead to thinking there was a bug in OCaml's main crypto library, which then lead to thinking there was a bug in the underlying C library, which then turned into the
Okay. I've given
@EffectTS_
a real shot and built the app below. It concurrently runs several services for communicating with Twitch and Spotify.
I can confidently say Effect is a joy to use and will be a core part of my stack going forward.
Take aways below 🧵👇
Introducing ts-error-translator.nvim 🚀
A Neovim port of
@mattpocockuk
's VSCode extension, ts-error-translator, that turns messy and confusing TypeScript errors into plain English.
Get it here!
Once again I will repeat: The value of tailwind is not inherently the inline utility classes (though, I am a huge fan), it's the underlying design system and API to access that design system in a common sense and predictable way. It makes doing the right thing easy.
if you want to learn about monads, please read this. seriously!
waders paper and "you could have invented monads" are literally the only good monad tutorials I know
We have contact ✨🚀
Successfully authenticated and made a request to Twitch's API with
@gleamlang
It really does feel like the Go of functional programming. I'm a huge fan so far.
the full video of Daniel seen in conversation with Mekies and Horner post race. Appears that Horner and Mekies walked off together afterwards.
#BelgianGP
I wrote a quick little lualine component for
@ThePrimeagen
's Harpoon plugin for
@Neovim
. It will display the current buffer's mark index if it is "harpooned"
A year ago I had little idea of what OCaml was. I had been writing JavaScript and subsequently TypeScript since I was 13 (17 years for those counting). I loved TypeScript, in fact, I still do - I will always choose it over its untyped predecessor.
That being said, OCaml (and
@daveddev
It is exceptionally incorrect to laud the identification and use of design patterns and best practices from the Gang of Four book, as they have led to significant misapplication and overuse, resulting in overly complex and rigid codebases. This "pattern obsession" has encouraged
I detest trump and most of his policies, didn't and won't vote for him, but if you're spouting "inside job" conspiracies or wishing this went worse, you can do ahead and unfollow me.
Violence and conspiracies are not the answer.
I often get asked about my
@Neovim
configuration and setup, so I decided to make a video walking through all of it. Check it out and let me know what ya think!
@thedevdad_
I got to the point where I felt like I was constantly pairing with a junior dev. I was spending more time reviewing bad suggestions from copilot and it distracted me from my flow of solving the real problem.
If I want AI's help for writing boilerplate I jut chuck it in Chatgpt 4
10/10 recommend 🦀
Cells are singled threaded Mutexes
RefCells are single threaded RWLocks
RC's (and their atomic counterpart, ARC) are way simpler (and cheaper to clone) than I thought.
They're all implemented from scratch and thoroughly explained 👇
My time writing OCaml professionally is coming to an end (for now). It is Very bittersweet to be leaving
@skolemlabs
, but I’m Extremely excited for what’s next. The past year has been incredibly Rewarding and I’m so thankful and grateful that I was introduced to OCaml, functional