TL;DR - Recent advancements with LLMs are awesome, but also overhyped. I think too much money is after too few novel ideas. We’re fueled by “irrational exuberance” (thanks Alan Greenspan) again - and normal people will somehow get stuck with the bag. Though if you can get past the hype, maybe there are “this tech isn’t currently trendy” discounts to be had.
Disclaimer: I’ve been wrong before Still - I am aware that this could prove to be the most wrong thing I’ve ever posted.
It’s all over the place:
As a software engineer your job isn’t to write code, but to solve problems.
It’s BS. I don’t disagree with it, you can’t really disagree with something so uselessly broad. This quote is basically true of every role in any organization, especially on the product side. “As a firefighter, your job isn’t to put out fires but to solve problems.” Well, true… but specifically, the very particular problem of a house being on fire.
TL;DR: I saw a random dice game on social media with no satisfying solutions in the comments, so I played around with it using simulation to test my intuition and then worked out the optimal strategy using dynamic programming.
The game The game has $n$ rounds. You start with $0$ dollars and a 20 sided die (d20) showing the number $1$. Each round, you can take money equal to the number shown, or reroll.
TL;DR - Misc notes from the 2024 Advent of Code in Python and Ocaml and a little bit of Golang.
The repo with my solutions to the Advent of Code 2024 problems can be found here. This is a bunch of random notes from this year’s event, no full write-ups or anything for now just general notes and take-aways.
Languages Learned a bunch of Ocaml (even though I didn’t use it everyday as intended)
TL;DR: re-write the recursive function so that the 1st call doesn’t need to wait for the result from the remaining calls, all the way down to the base case, before returning.
Recursive functions continue calling themselves until the base case is hit - and then they return. The continued calls keep pushing frames onto the stack and can lead to a stack overflow for large inputs. Some languages include an optimization that cleans this up, provided that the function is written in a way that it doesn’t need to wait for the results for all the other recursive calls to resolve to return.