Blog

  • Deciding on Technology

    Deciding what type of technical solution to use is always shaped by three main constraints: the limits of technology, the capabilities of the team, and the long-term needs of the organization. Each introduces uncertainty, and understanding their role is critical. For most application and web development, technology isn’t the limiting factor. Nearly every problem has multiple viable solutions already available. Real limits usually appear in fields like AI, game development, physical sciences, med...

  • Managing Time with Todoist and AI

    Like many engineering managers, my responsibilities shift from week to week. Tasks rarely line up neatly, and constant context switching can be exhausting. The only way I keep from drowning in it is by regrouping every week. Without that reset, the buildup of concerns can get overwhelming fast. Since my memory isn’t exactly reliable, I lean on tools to keep me organized. Todoist is my external brain. It’s simple to use, backed by an intuitive API, and perfect for both quick capture and easy retr...

  • Complexity and Context

    I was recently thinking about why we get such different reports about the benefits of AI in software development. One person’s transcendent experience is another person’s waste of time. I think there are lots of reasons but one of them that seems particularly relevant in the work that I do has to do with the relationship between the code being written and how close it is to the consumer. The closer we get to the consumer when developing code (think “frontend”), the more commonality there ten...

  • Burnout and Me

    I recently listened to  One of his suggestions that resonated with me—and this is my interpretation—is using self-imposed micro time constraints for work. I've been experimenting with this myself, and it’s been surprisingly effective. Lately, I’ve started setting up mini work sessions, usually 30 to 60 minutes, focused on a single task (I’m a die-hard Todoist user). The challenge, I’ve discovered, isn’t starting these sessions but stopping when the time is up. The urge to keep going because yo...

  • Progress

    Even though Trump has won the election, I believe we are about to witness an incredible groundswell of support for progressive policies. The next four years may be difficult and, at times, deeply frustrating for those of us who care about social justice, climate action, and equity. But in the cycle of history, this had to happen for the champions of logic, empathy and fairness to wake up and recognize that those things require constant vigilance and upkeep. We will see firsthand the impact of p...

  • Publish with Github

    Something I want to do on most of my versioned projects is handle the versioning and committing as part of the merge/push to the main branch. So I’m putting this here as a reminder to myself and help to anyone else who is doing this with github actions. First, you’ll need the script to do the work. Mine looks like this: The important parts of this are the configuration changes that ensure that git and npm have permission to alter upstream state. The So that my npm run deploy If your branc...

  • Single-Threaded

    The ability to juggle multiple tasks simultaneously is often celebrated as a hallmark of productivity. We pride ourselves on our capacity to switch rapidly between emails, phone calls, meetings, and projects, believing that this constant state of flux maximizes our efficiency. I think that approach is lowering the quality of output and adding stress to our lives. Enter the concept of "single-threaded work." This approach, a computer-ese term, suggests that we operate most effectively when we fo...

  • Things To Watch Out For When Interviewing at a Company

    I was inspired to talk a little bit about this question on HackerNews: I had some thoughts about some of the points that were mentioned in the conversation. Some of them are good things to look out for while others may not be indicative of much. Unorganized or disjointed interview process. Lack of responsiveness or clear communication. Excessive number of interview rounds. Disorganized interview process is definitely a huge concern. This is often an indication that there are some foundation...

  • Guilds

    In a large corporate environment, the decisions that are made at the highest levels can be bewildering, seemingly inconsistent and out of touch with operations on the ground. That’s not to say they’re bad decisions, just that it can be hard to make sense of them when you don’t have access to all the factors that led to them. Trying to make sense of it is an exercise in frustration. If you have made your case for what you believe to be an ideal structure and made no headway, your next course...

  • Organic Engineering

    In the realm of engineering team organization, a one-size-fits-all approach simply doesn't suffice. Team dynamics are complex, influenced by the individuals comprising the team and the evolving nature of their work. I advocate for an approach I like to call Experience in engineering spans a spectrum, from seasoned veterans to fresh faces eager to make their mark. While experience brings valuable insights and a seasoned perspective, it can also breed complacency and a reluctance to embrace new ...

  • Group Decisions

    People are complicated. Really complicated. Navigating people in an environment where their motivations (and your own) are subject to a wide variety of ever-changing stimuli and thoughts makes for an exhausting experience. But if you can observe and identify what’s happening, you'll be able to rise above the chaos and find your way to a productive outcome. Meetings are where most conversations about problems that require decisions are discussed. But they are interpersonal communication puzzles ...

  • Cataloging Conflict

    I spend a good bit of time in conflict resolution - either my own, people on my team or between groups. I’ve noticed that one of the most helpful things to do in these situations - aside from empathy, which is absolutely crucial - is understanding the type(s) of conflict being had. A lot of time is spent debating decisions. Each of these decisions has consequences but the nature of those consequences should be clearly understood to better assign value to the conflict. Technical conflict h...