Working on a Fisheries Data Platform

TL;DR: A side project I’m working on is a web interface for the photos collected by a smart scale. The scale and its attached camera is deployed in remote areas and as the fish are caught they are weighed on the scale and their picture is taken. There is a mobile app that coordinates all of that and when the user is back in an area with service / wifi, the photos are sent up to a bucket.
Read more

Using Gflags Page Heap to Debug on Windows

TL;DR - It sets a global flag so that when the OS allocates memory in your application, it specifically sticks the allocated chunk at the end of the page, with a special no access page after each used page. Then any buffer overrun becomes immediately obvious! What happened We have a relatively simple standalone Windows MFC desktop app (old school) whose sole purpose is to take user inputs and call into a third party library with them.
Read more

It's a bubble folks: 'AI' is overhyped

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.
Read more

A Software Engineer's Job IS to write software

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.
Read more

Random dice game - sims and DP solution

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.
Read more