The Hacker News Stack
If you want to build a web app The Hacker News Way, here's the stack you should use.
No Best Tool For The Job
How do you choose the best tool for the job?
Opening Mail
First make the change easy, then make the easy change.
Who's watching the watchdog?
Making reliable systems that expect things to go wrong
A side project story: Hacker Gifts
This is a story about a side project that I started in 2018, and the reasons I'm shuting it down.
Story Behind Hackathon Photo
How a random stream of events ended up creating a picture with 57 million views
JavaScript Gom Jabbar
What's inside that package.json? Pain.
Shuhari
Follow the rules, break the rules, transcend the rules
Disposable Software
Questioning the status quo of software maintenance
What were you trying to achieve?
A senior engineer joins a team. Before long, they start noticing weird quirks in the codebase…
Replacing Jekyll for my blog
How I replaced Jekyll with 200 lines of JavaScript
On Leaving Facebook
After 8.5 years at Facebook I joined a small startup called Replit. Leaving wasn't easy, and during the process I've talked to half a dozen friends who were in the similar situation.
React API evolution
From React.createClass to hooks: why React is at odds with JavaScript
A side project story: Octave Cloud
A story about my attempt at SaaS
Moving my serverless project to Ruby on Rails
Serverless is like a black hole. It promised exciting adventures, but the gravity sucked me in and I spend most of my efforts dealing with its complexity, instead of focusing on my product.
TODO apps are meant for robots
What if I'm a left-handed person in the world of right-handed tools?
Optimize Your Meetings for Engagement
Imagine you meet a bunch of old friends that you haven’t seen in a while. Everybody’s sharing their stories, and everybody else is actively listening, asking questions, and are fully immersed.
Things that are not strings
As programmers, we have a collective delusion that anything that can be represented as a string, is a string. This thinking causes a whole bunch of problems.
TODO file for personal projects
In most of my personal projects I have a file called TODO. I use it like this…
Debugging home internet connection
Overengineered way of measuring your internet connectivity.
Reconsidering the way I explain programming
Successful communication is so much about understanding the context and the people on the receiving end
How not to use Flux: SET actions
Actions that are named `SET_*` is anti-pattern. It usually means that the code that should be in the reducer lives inside React component instead. This makes apps harder to reason about, debug and test.
Digital Typewriter
What if you could use your favorite keyboard away from your computer? In this side project I'm building an old-fashioned typewriter from modern IoT parts.
Improving end to end tests reliability
End-to-end tests are not flaky, if you cook them right.
How to convince your boss to use React Native
How to adopt React Native incrementally with little risk inside an existing native application and a team full of native engineers.
React Conf 2018 Recap
My favorite announcements from React Conf 2018
How not to use Flux: mini cycles
I'm a Tomorrowman
Better way to switch between apps on macOS
(+ video tutorial!) ⌘-tab sucks when you have more than two apps running. In this blog post I explore how we can make switching between apps more efficient.
No constraints, no fun
Work vs Hackathon vs Competition vs Side Projects
Why side projects are hard
Fun, misery and yak shaving expeditions
The Very First React Native App On the AppStore
A little known story about the first React Native app that was published on the AppStore.
React-flavored JavaScript in 5 minutes
This document is for experienced software engineers who already know several other programming languages and just want a TL;DR summary on JavaScript in the context of React, Flow and the new ES6+ hotness.
Understanding "Taming the Meta Language"
I think I *finally* understood it
cdtmp
Create a temp directory and cd into it, and how it changed the way I try new things
Plotting ideas
Errors with extra information can help locate and fix the problems faster.
Good errors leave trace
Errors with extra informaton can help locate and fix the problems faster.
Geek's guide to making decent slides
Using the 80/20 rule to make your slide deck better
Test Plan
On why test plan is useful when making changes to large codebases.
Provide Context When Writing Blog Posts
One practical tip that will make your technical blog posts more useful.
Show OSX notification when long running command finishes and your terminal is not in focus
Fighting lack of attention span with some advanced tooling hacks
My favorite shell shortcut
CTRL+R → search history
Using Redux with Flow
How to use Flow to add type annotation to your Redux-powered app.