- AI tools amplify existing expertise rather than replacing it. Start with a concrete problem, not an AI initiative.
- AI is a tool, not the strategy.
- AI projects inherit ordinary software-project risks and add model and data uncertainty.
- Domain expertise is an important prompting skill. It helps you spot suspicious output, ask codebase-specific questions, suggest better approaches, and push the agent toward simpler solutions.
- AI speeds up generation, not necessarily throughput. Bottlenecks are often upstream: unclear scope, missing context, legal/product/domain ambiguity.
- Typing faster was never the main software bottleneck. Software is mostly decisions, tradeoffs, and understanding.
- Use AI to reduce friction around the bottleneck, but first identify the real bottleneck.
- Measure actual adoption and complete outcomes. Demos, license purchases, token use, and generated output are not evidence of value.
- As models become more capable, the bottleneck shifts toward knowing what we want and knowing how to verify that we got it.
- In a world of abundant, near-unlimited coding capacity, human taste becomes most of the game.
- Generalists might increasingly outperform specialists.
- The skill you want to build is the ability to understand problems and have some concept of how to solve them.
- Using AI as a team is very different than using AI for you.
- Ultimately, we are the agents. Use these tools to amplify your own abilities. Give them direction, not simple questions. Engineer feedback loops to make them more reliable. Build systems that let you focus on what matters.
- Don’t delegate thinking, delegate work. Don’t outsource thinking. That means tasks that:
- Build complex tacit knowledge you’ll need for navigating the world in the future.
- Are an expression of care and presence for someone else.
- Are a valuable experience on its own.
- Are deceptive to fake.
- When AI is “right”, people become less skilled. When AI is “wrong”, you need skilled people to catch and fix the errors.
- Technical capability does not erase ethical obligations around consent, privacy, and hidden human labor, licensing and creators’ rights, professional responsibility, and the consequences of failure.
- When the main purpose of writing is to demonstrate your thinking (building trust, applying for a job), don’t use LLM output. Use LLMs when you need to communicate info, or do admin stuff, where the person really just wants info and doesn’t need to be convinced “how you think”. LLMs are good at writing but bad at thinking.
- Personal communication and writing as trust and self-expression. Rewriting with LLMs changes meaning, blurs authorship, erodes voice.
- What you send should take more effort to produce than it takes the recipient to read. Raw, unread, unrequested AI output (sloppypasta) pushes the cost of reading, verifying, and distilling onto everyone else.
- If you do share AI output, disclose it and ideally link the chat. The conversation is more reusable than the transcript, and others can fork your context instead of re-reading your output.
- If I can have a robot say something, so can you. It reads as inconsiderate to post un-digested AI output as though it’s your own writing.
- If you are requesting human attention, demonstrate human effort.
- AI won’t solve Governance. Don’t delegate decisions to it that impact other humans.
- For now, AI generated content should be consumed by you, not shared with others. This applies to code, bug reports, emails, and so on.