Conversations with Robots: The Abstraction Ladder

This is an entry in Conversations with Robots, a series of prompts and responses from conversations with large language models. Prompt: I’ve been thinking about milestones in AI adoption lately, and one axis along which I’m seeing my own growth is Writing instructions for an agent Writing instructions for multiple agents and how they coordinate Writing instructions for an agent for it to interrogate me on how to write instructions for multiple agents Writing instructions for an agent to create instructions for other agents based on a set of guidelines and directions What are your thoughts? ...

Conversations with Robots: Smart Sensor Naming

This is the first entry in Conversations with Robots, a series of prompts and responses from conversations with large language models. Prompt: I’m annoyed when naming smart sensors because it has a name (e.g., thermometer) and a room (e.g. bedroom) but on the display screen it just shows a bunch of devices with the name “thermometer” on the all devices list which doesn’t tell me what room they’re in. But naming them Bedroom Thermometer is redundant and like how is this supposed to work I feel like I’m doing something wrong. ...

Do You Have a Board of Directors?

One of the best pieces of advice I ever received came from a friend who spent time in the navy: “Always have a board of directors.” In a corporate setting, a board’s role is to guide the organization, providing strategic direction based on experience, and offering access to resources through their personal and professional networks. You can (and should) have the same thing in your personal life. 2-3 people in your life you deeply trust and respect that can weigh in on the challenges you’re going through, be they in your career, relationships, or finances. ...

Exploring Engineering Team Maturity

One of the most difficult challenges when running an engineering org is understanding if a team is functioning well or not. Lines of code don’t work. Story points don’t work. It’d be so nice if there was just a speedometer, right? That doesn’t really exist. Teams are more than just groups of people, with the connections between individuals and connections across the org playing a huge role in how effective any give team can be. Teams also have lifecycles. They are formed, grow, and mature. They evolve as people come and go. And then one day, they stop existing. ...

How I Did It: Managing and Leading Software Engineering Teams

Welcome to the first post in what will be a series of explorations into managing and leading product development and platform teams. In this series, I want to share some of the lessons learned and insights gained over my time in engineering leadership across tech startups from the very small to the very medium. This isn’t about claiming a “perfect” way to do things. Instead, it’s about reflecting on the practical strategies I’ve participated in—what’s worked, what hasn’t, and why context matters. ...

The Dangers of Implicit Communication

The online chatroom has become a pretty standard fixture for many software development teams: distributed, remote, and colocated. They’re really fantastic tools that allow a persistent conversation to take place even as people’s attention switches in and out of the chatroom throughout the day. However, a source of frustration I have experienced is a reliance on implicit communication. For example, if I ask a question in the chatroom, “Does anyone know why the cache server is down?” and nobody answers, I’m left with little information to act on. Did anybody see my question? Did someone see my question and just not know? Did someone see my question and just not care? ...