Whether you’re using React to build a web app or a React Native mobile application, chances are your app has a handful of initialization tasks: things that always need to happen before the main application mounts and runs. Some examples of these responsibilities include: Deciding on the runtime environment (e.g. staging or production) Loading previously-saved settings. Creating global-ish objects, like a single shared API_CLIENT instance. Deciding whether the user is logged in, and fetching...| hoho.com
Engineers writing public postmortems must remember their audience| hoho.com
Production is simplest when everything is captured by a commit SHA.| hoho.com
There are few habits on a high-quality, fast-shipping software team that are more important than one: writing good technical design docs. Give me a few minutes and I’ll tell you about the many benefits, and how to get started. Why write design docs? While there are many benefits to writing a design doc, my personal north star goes something like this: Make sure we’re building the right thing, and before it gets expensive to do something else.| hoho.com
The gizmo I built because I lost my keys| hoho.com
Build vs buy| hoho.com
I’ve spent a lot of time building “normal” software: Web apps and dashboards, mobile apps, B2B, B2C. But I also had the fortune of being on the critical path for several hardware projects early in my career, and the sum of these experiences has left me with an indelible belief: Every engineer and product person should do at least one stint building hardware. Here’s why. You cannot be wishy-washy about features and requirements You have to take deadlines and schedules seriously You may...| hoho.com
Advice for those going through layoffs| hoho.com
My cheat sheet for being a good interviewer| hoho.com
Effective leadership can leverage this concept, too| hoho.com
Why are layoff announcements usually so crappy?| hoho.com
Values shouldn't just make you feel good; they must make a difference.| hoho.com
Values shouldn't just make you feel good; they must make a difference.| hoho.com
Every engineer knows this situation well: You’re coding up a solution to some problem, and you discover there’s a different way to do it — an alternative that you just can’t complete right now. Typically, your solution is “good enough” today. The alternative seems better on its merits, but it would take far more time and disruption today. Or maybe it has a cost that isn’t justified by our understanding of the problem today.| hoho.com
Is Fly.io a Heroku killer? Not exactly, but you might like it anyway.| hoho.com
Google in the 2000’s was a great teacher to me in many ways. Having said that, Google made plenty of mistakes, and there was plenty to “unlearn” after I left for startups. One of the most important lessons I unlearned came from hiring: “Don’t give rejected candidates specific interview feedback.” The problem (or so we were told) Everyone at Google interviewed, and so everyone at Google went through interview training. It was here that “the rule” was taught. It went something l...| hoho.com
Pride of creation is one of, if not the, biggest motivator for me as an engineer. I like seeing the lights blink. Code as craft Many hobbies and occupations are performed in a way where it’s easy to see a craftsperson at work: The carpenter measures, cuts, and sands. The knitter looms. The painter pants. Software engineers get into every bit as much state of flow. Except the way our craft looks isn’t sexy. It’s staring into a screen.| hoho.com
Example 1: The linux kernel Example 2: A rate limiter Example 3: Measurement and interpretation| hoho.com
Goals of a good hiring process Attract the best candidates Stand out among the competition Represent ourselves well Adapt as you go Early stage Growth stage Mature stage Things to watch for Poor interview technique Over-exerted interviewers Bad job descriptions Deceleration Process maintenance| hoho.com
Questions you should be comfortable asking your manager, and which you can start asking today.| hoho.com
This is for anyone struggling with writing something. It is certainly for me. Write to be critiqued If you want to write, embrace imperfection. Your ideas will be critiqued, sometimes by those less ready to lead with their own. If you want to write something, don’t get hung up on the “what ifs”. Do you have an opinion? Good, share it. What makes it an opinion and not a fact is that it can be flawed.| hoho.com
When building and scaling a technology team, it’s vital to set a few overarching principles and values that guide how problems are solved. After all, there are an infinite number of ways computers can be instructed to “do the work”. A team of 10 where everybody is freestyling is not much of a team at all. One value my last team got a ton of mileage out of was, “Boring technology is cool.”| hoho.com
read ewaschucks blog - dave b rec Journal as you go Observe and orient first (OODA loop) Change the environment carefully, explicitly, minimally Keep your cool Ask for help as soon as you need it| hoho.com
You’re dreading, or half-assing, your most important conversation When you’re responsible for interviewing new hires, sooner or later—maybe immediately—you look an impending interview on your calendar with a certain sense of resigned, dejected dread. Ach, damnit. My whole afternoon was free, except for this stupid interview. We’re probably gonna reject them anyway. Maybe you even start thinking of what you could be doing with the time instead. An uninterrupted afternoon is priceless...| hoho.com
First-time CTO Mistakes| hoho.com
Building an awesome hiring program takes a lot of time, effort, and maintenance. But if you only have time for one task, it should be: write a good job description. Just like one of the most basic rules in software engineering – only deploy code that is checked-in – a well-written job description is the first and most essential thing to do. Why? Good job descriptions will achieve several goals:| hoho.com
To some people, I am living the dream. But if they knew a little bit more, I think most of them would find it anything but.| hoho.com
Talking to stably-employed people about my soloprenuer business, now comfortably above $100k ARR & still averaging ~5hr of work a week, the default reaction is by far, “wow thats what I should be doing”. But there are so many subtle things about your stable job you probably aren’t thinking about, and which you would missing. For example: Do you like working with people? The gratification of mentoring someone? The excitement of learning something new and cross-disciplinary, from an in-ho...| hoho.com
mystery-free prod Boring tech by default. Good interfaces, strong isolation. Trained, calm oncall team. Postmortems, and time for their followups.| hoho.com
Advice for taking a career break The two big challenges you will encounter Lack of cash flow Career anxiety Fear or regret you shouldn’t have stopped Fear you should have parlayed into something “Am I relevant”| hoho.com
You have, no doubt, worked with alphas in tech whose faces sour at any mention of “soft” topics, like empathy, vulnerability, and trust. Trust is at the core strong teams. Reviewing the many different kinds of trust: Inter-team trust. I’m putting in a strong effort and I believe my colleages are too. Nobody is coasting or taking advantage of me. Managerial trust (upward). I believe my manager sees my work and will have my back when needed.| hoho.com
Elements of well-run teams Leadership Someone must oversee the team. Clear goals The reason a team exists – its goals, its mission – must be clear at all times. Clear values Rules don’t matter: The best teams will be rewriting the rules constantly, of their industry and how they grow. What matters is the cultural bedrock. Culture ensures the “right” thing happens when you’re in uncharted waters. Accountability The absence of accountability is a step away from the absence of trust.| hoho.com
To be good at failing fast, look out for things that slow down failure.| hoho.com
A simple, no-excuses-allowed reporting system for managers and leads.| hoho.com
Advice for the technology lead who decides it's time for a VP of Engineering.| hoho.com
Early stage technology decisions must be, uncomfortably, a means to an end.| hoho.com