Building keyboards. 1/n

My first time building a keyboard, I didn’t have a mental map of how a keyboard worked beyond “well it sends a signal and boom, things happen”. I had been using a Corsair k60 mechanical keyboard for nearly decade, but for the most part I just enjoyed it and didn’t dig very deep into how…More

Teaching my nephew how to code – the basics.

This isn’t a serious post. Just a personal story/recap of what I’m doing to teach my 11yo nephew the basics. We started with Scratch last year, but both of us got tired of that environment pretty soon. We had a ton of fun making little games, but both of us are low on patience, so…More

Your manager can’t read your mind.

Here we go again. Stash my work. Create new branch. Understand what has to be done. Do it all over again once this one is done. Get asked why the ticket I had to drop isn’t finished yet. Well, because you gave me a different task, that’s why!More

Your team wants you to succeed. Don’t stay stuck.

It was Monday morning, and I’d been thinking about it through my weekend. A developer in my team wasn’t making any progress and now a ticket was delayed. They weren’t asking for help, and our offers to help them were not being received as we hoped. Instead of accepting the team’s help, they kept saying…More

Leaving a job – reflections & timelines

I gave my notice, we agreed on 3 months, and we set to work. The first month was about setting things in motion, and creating the right environment for a transition. We made an offer to someone on the team to take over my role as CTO, answered all questions that came up, and worked…More

FunEmployment log #1 – Gather Town

Gather provides virtual spaces where people can hang out. Similar to the old Guild houses in MMORPGs, Gather provides a customizable virtual world for you and your friends, teams, or any other group you can think to meet online. They provide a limited HTTP API, and are planning to add Web Sockets at some point.…More

More thoughts about management.

I wrote this as my answer to an application question for a remote company a few years back. It’s a bit outdated, but I thought I’d share it anyway. In a broad sense, to me management is about people and the things that stop them from achieving what’s important at an individual, team and company…More

Ensuring new tech leads get a chance to succeed

When assigning technical leads, take care to put them in a situation where they will succeed easily, especially if this is their first time with a tech lead role. The tech lead role is one of the most challenging roles to go into because you live in a sort of limbo where you are still…More

Engineering Management feels slow sometimes.

The rewards come slowly compared to individual contributor work, but they tend to be more interesting to me because I can see the impact of my work on people and projects in a more global way. It can be someone finally getting that promotion they have been working hard to get, features shipping with a…More

Pragmatic engineering management.

I tend to approach engineering management decisions as I do software development: small adjustments most of the time, big refactors only when the potential long term rewards are worth the risks and there’s no other viable solution. Like in software engineering, the context in which we make decisions matters. The strategies that make sense in…More

Technical debt – where the value hides.

[this is a short, not fully developed blog post – consider it “in development”] I’m getting into the habit of learning in the open, and I think part of letting go of the idea that I need to do everything right is allowing my incomplete ideas to be in the wild. I think a lot…More

The fallacy of the brilliant jerk.

Early days The signals were there from day one. One of your direct reports asked a question, and Adrian answered with a mocking tone. You told yourself you’d have a chat with him before the day was over, but by the time your meeting is over, they are all cracking jokes together. You shrug it…More

Some newbie thoughts about Roadmaps

TLDR: from my perspective as a CTO-doing-product-manager-stuff, the key part of building a roadmap is not what the document says, but what I learn and the connections I make through building it and maintaining it. If I just throw a bunch of features in a planner with no clear alignment to the org’s goals and…More

Remote work is not a catch-all excuse for bad team communications.

When you have offices, a lot of your communication happens face to face, and most of those interactions aren’t documented anywhere. Jeff said “paint the walls red”, and Anna’s team did exactly that. If this happened in a hallway chat, there is no documentation of why they decided to do it, or when. If there…More

Building product development processes.

Early in my career, I used to think process was something people introduced because they were bored and had nothing better to do apart from bothering us, the productive,  bread winning devs that built the thing. Years later I found myself working with a team that had all the elements of a process and none…More

Engineering Management is like Debugging

Engineering management is a lot like debugging and bug-fixing at times. Sometimes you don’t know much about a failure except that it happened. Sometimes the solution is clear but risky in some way, and sometimes you just know what needs to be done and wonder why you didn’t do it earlier. More often than not,…More

Challenges of remote work

I’m a huge fan of remote work. It’d be hard to convince me to take a role where I need to go to an office every day. Even as a remote work believer, there are still days when I wish we could get everyone in the same room for an hour without it being a…More

Open offices are not for everyone.

“Remote isn’t for everyone.” is something I heard many times over the years. While I believe that’s absolutely true, I also believe that shared offices are not for everyone. Even offices with doors that close aren’t for everyone. Open offices are considered the “one size fits all” of work environments. They’re advertised as a good…More

My personal hiring principles.

We expect to create inclusive, diverse, high performing teams that help the organization reach their goals. How we do it may change, but the goal never moves too far from the above.More

Remote developers need to grow in remote organizations

Most companies and teams know the benefits and the need to hire junior engineers; after all, that’s where seniors come from. While that’s true for many companies, for many remote leaders or folks who are considering a remote job, the idea of hiring early career engineers seems to trigger an automatic NO reaction. I’ve talked…More