RSSAmplifier

Blog

simst.im

simst.imRSS feed ↗22 posts

Latest posts

How to get recruited

As both an IC and executive, I’ve been recruiting for software roles for about 10 years, off and on. I’m starting to recruit again for my new role , and I find myself giving the same advice over and over so I thought I’d write it down. This post is about the mechanics of recruiting. It’s about how to make it smooth and easy for the recruiter, how to give hiring signals, and how to avoid red flags.…

Why I Joined Figma

A few months ago I left my role as CTO of Dylibso. After lots of conversations with dozens of companies, I’ve decided to take a staff engineering role at Figma . I wanted to take a moment to write about why I chose Figma and what may come next. First, I’ve admired Figma’s engineering culture for a long time. Figma was an early innovator in WebAssembly and extensibility . Both of these bets on Wasm…

How Extism Built SDKs for Dozens of Languages in Months, Not Years

When we started the Extism ecosystem in 2022, the main challenge we had was the scale of SDK languages we needed to support. The goal for 1.0 was to run Wasm plug-ins from inside any application written in any language. Since the core of Extism is a rust library , that means writing and maintaining a bindings SDK for every language out there. Without some kind of unified approach, each SDK…

The AI Coding Rorschach Test

“Today, more than a quarter of all new code at Google is generated by AI, then reviewed and accepted by engineers. This helps our engineers do more and move faster.” — Sundar Pichai, Forbes If you work as a software engineer, you’ve probably seen many statements like this recently. They’re vague enough to be interpreted in a hundred different ways, and may even be saying nothing at all. But I’ve…

I Am Unemployed

I left my role as CTO of Dylibso at the end of August. I’m not really doing anything with the exception of a few short term contracts for fun. I’m talking to lots of founders and engineering leaders about what’s next but I’m not in a hurry to take a job. I went to a meetup and someone asked me what I do and I said “I am unemployed”. I’ve never really done nothing before. I’ve been between jobs,…

One Year of Good Sleep

About one year ago, I wrote about getting control of my sleep . Anecdotally, it feels like it’s working. I’ve been feeling much better, but there are a lot of confounding variables that may be effecting my feelings. I’m also not sure if my quality of sleep is actually improving or if I’m just feeling like it is. I decided to pull out pandas and look at some data from my fitbit. Deep Sleep and REM…

We Already Tried That

Early in my career, I had a bad habit. When someone new to the team verbalized a recognizable idea, I’d gleefully say: “yeah, we already tried that and failed” Naturally, they’d trash the idea and ask what they should do instead. I justified it to myself that I was using my experience to guide the team and protect them from wasting time or publicly failing. One day a new junior engineer decided…

Running Wasm in Elixir & Erlang

I think someone is going to need to write a native Elixir or Erlang Wasm runtime. Let me explain why. Background One of the first projects I took on with Extism was to build an Elixir Host SDK . The architecture is fairly simple. I use Rustler to create a NIF in Rust. The NIF depends directly on the Extism runtime, which is itself written in Rust. So when you pull down and compile the Extism…

On Wasm Use Cases

The goal of Extism was to show that Wasm could be the “Last Plug-In System We Need” as Steve likes to say. I think we have made a good case to developers in the know, but simultaneously, I have had difficulty explaining to developers what a plug-in system is and why you need one . I think part of the problem is that we forgot how and why to build plug-in systems when we moved to the web . Another…

Consistent Sleep

I never slept consistently well. My primary issue is not being able to fall asleep. I tried to get it under control in my 20s, but once I would get into a rhythm, it would be destroyed by a bad night. The COVID pandemic gave me a newfound dedication to fix some of these problems that affect my health. Finally, now in my mid 30s, I’m consistently hitting my sleep goals. When I do have an off night,…

Why WebAssembly

I’ve done many disparate things in the first decade of my career. For the next decade, I want to narrow my focus on one domain. I believe WebAssembly is this domain. I’m writing this post to explain my thoughts to those who’ve been asking me and for my future self. There are two perspectives to this question of “Why Wasm?” . Why does the industry need it? And why is this problem well suited for…

Cracker Barrel Data Science

As a kid growing up in South-West Louisiana, my family spent a few weeks every winter in West Texas camping and hunting deer. A regular occurrence of these trips was eating at Cracker Barrel. Having spent the whole morning sitting in the woods alone and missing my N64, I got obsessed with the “jump all but one” game present on every table. The the game begins by placing a tee in every hole except…

Avoiding race conditions in GenServer

Suppose we are making a multi-player game. We are choosing to store the state of the game in a struct ( Game ). The game will start without any players and players will individually choose to join the game. We’ve determined that there must be a maximum number of players ( @max_players ) and the players will be represented by a list of strings (player nicknames). defmodule Game do @max_players 4…

How I have avoided "javascript fatigue"

I keep hearing about “javascript fatigue” on Hacker News and amongst my friends and I wanted to write something about an exercise anyone can do to avoid it. What is javascript fatigue? The idea behind “javascript fatigue” is that all of the available tools and libraries have somehow made frontend web development a more difficult and frustrating thing to do than in the past. At first, I thought it…

Visualizing Walkability in New Orleans

I read this article on Geoff Boeing’s blog on using network analysis with OSM data to visualize the walkability of Berklee, CA. I thought it would be interesting to run it on data from New Orleans. Since it’s based on OSM data (which is probably incomplete here), it may not be the most complete picture.

Improving a Visualization of Housing Prices in New Orleans

Last week I read an article in the New Orleans Advocate on the increase of the price of housing since Katrina . The article was fine, but they linked a visualization of the data that I really had trouble interpreting. The idea is clear enough, the price per square foot values are displayed hovering over each respective zip code. The article was titled “ Why New Orleans-area home prices are…

Generating Bitcoin Keys From Scratch With Ruby

I’ve recently been looking into some newer features in the bitcoin protocol and feeling a little overwhelmed. I’ve only ever worked with higher level abstractions of the protocol via libraries. In order to get a better understanding of the fundamentals I started reading as much as I could. I found a lot of articles but I felt like each one was missing pieces that helped me understand what was…

Visualizing Absenteeism in Congress

Since I left New Orleans, I’ve continued to watch Cedric Richmond’s absenteeism climb. I started wondering what the data on attendance looked like in the House and the Senate. Collecting Data I let my computer run last night pulling down all the vote data I could capture from 1989 to present day. I loaded it up into a large pandas DataFrame this morning (about 2 Gigs) and started splitting some…

Precisely Delaying Jobs With Dead-Letter Exchanges in RabbitMQ

Everyone who is familiar with RabbitMQ knows it’s a great tool to execute jobs that may happen out of band of some normal user process. Typically you want to execute these jobs right away, such as sending some kind of notification email, but there may be times in which you want the execution of these jobs to be delayed by specific times set by the client. RabbitMQ does not support this directly,…

Adding Bluetooth Support to an FM Transmitter

A few years ago I wanted to build an FM transmitter from a kit. I settled on the FM25B from Ramsey. It’s delivers really nice stereo quality for the price. I did a few experiments with it for a while and when I got tired of that I started using it as a way to broadcast music around my house. My main stereo system has a radio and I also have a shower radio . It’s really nice to play music or…

An Analysis of Crosswalk Lights in New Orleans

I think one thing that noticeably separates other major cities from New Orleans are well thought-out and well maintained infrastructures for pedestrians. When you visit a city like San Francisco or Washington DC, there is hardly a crosswalk without a pedestrian light (even in residential zones). They usually do nice things like count downs and make clicking noises for the visually impaired. I’ve…

Proving the answer to the Monty Hall problem with a simulation

The Monty Hall Problem is a well known statistical paradox. Even knowing the mathematics behind it, it can be difficult to accept that switching doors will change your odds from 33.3% to 66.6%. There are plenty of ways to prove it mathematically but why not see it in action? We could play out the game with 2 people, say n times. We could do one round where the player does not switch their choice,…