Notes

Notes on what I’ve learned from building products, working independently, learning, training, and trying to live an intentional life.

  1. Let the outcome define the product

    Name the exact outcome before deciding what the product should do. A specific outcome makes it easier to decide which features belong, which ones you can remove, and where the product's boundary should be.

  2. High-stakes decisions need visible choices

    The amount of choice a product gives people should match the stakes of the decision. One recommendation and a couple of backups may be enough for a small decision, but someone about to spend a lot of time or money will usually want several good options to compare.

  3. Let actual use overturn the original design

    When several people expose the same mistaken assumption in a product, change the design. The original idea matters less than how people understand the product and what they need from it.

  4. Choose the workflow defaults

    Understand the work well enough to choose the workflow stages and default views. Users can control settings that vary from person to person, but good defaults give them a useful starting point and show that you understand the job.

  5. Explain what is happening during a wait

    A wait feels longer when someone doesn't know whether anything is happening or what comes next. Make the same delay easier to tolerate by showing that the work has started, explaining its current state, and telling the user what will happen next.

  6. Product ownership teaches through continuity

    Long-term product ownership shows you how decisions age, how relationships develop, and whether an improvement survives everyday use. Consulting gives you breadth; working with the same product and people gives you lessons that only appear over time.

  7. Visible effort raises expectations for the result

    Showing the work behind a result can make a wait feel more valuable, but it also makes a poor result more disappointing. Operational transparency helps only when the outcome justifies the attention it draws.

  1. Constrain the parts handled by AI

    Use code for the structure and relationships the product already knows. Use AI where generation or language judgment is useful. Reliability improves when the model has fewer relationships and decisions to maintain on its own.

  2. Use simulations to practice judgment

    AI simulations can give you repeated practice making the kinds of decisions a job requires before you have to make them at work. The exercise needs a realistic situation, a clear decision or output, and a rubric based on the job so the feedback can point out weak assumptions, missing questions, and consequences you overlooked.

  3. Give agents context and a procedure

    An agent needs the right context and a procedure for working through it. Context determines what the agent can see and which distinctions matter. The procedure stops it from inventing a new process every time. Start with a temporary procedure, use it, and turn the failures that recur into rules.

  4. The human remains the executive

    Agents can carry out tasks and return information, but you still set the goals, choose the direction, and make the decisions. The agent can be software, another person, or you working in a different role. What matters is the distinction between setting direction and carrying out the work.

  5. Leave judgment in the loop

    Turn the parts of a workflow with predictable answers into fixed rules. Leave judgment in the parts where the right answer depends on the goal and the situation. Trying to force that judgment into selectors and simple rules makes the workflow brittle.

  6. Evaluate the result and trace how it happened

    An evaluation tells you whether an AI result was good. A trace shows how the system produced it by connecting the context, output, and time taken at each stage. You need both because they answer different questions. Early tests can start with pass or fail and one main category for the first important failure.

  7. Give agents small tools with clear jobs

    Give agents simple tools for repetitive work so they can spend their attention on decisions. One tool might save structured information, crawl a site, or collect source material. The same small tool can serve several workflows without trying to encode every decision inside it.

  8. Give each workflow one job

    Agents become less reliable when one workflow runs for too long or tries to do too many jobs. Separate tasks that happen near each other but require different responsibilities, such as drafting a post and creating its image. Each workflow should be small enough to finish without holding the whole system in mind.

  9. Understand the workflow before automating it

    Write down a workflow and use it enough to understand the steps, handoffs, and decisions before you build tools for it. Repeating the process shows which parts recur, which parts can become code, and which decisions still need judgment. Starting with the tool can lock you into the wrong structure before you understand the job.

  1. Work on what changes the outcome

    The work you find comfortable isn't always the work most likely to change your situation. Improving a product may be useful, but sometimes finding clients, applying for work, or delivering for the people already paying you matters more.

  2. Use free audits to help and learn

    A small free audit can help someone while giving you practice finding and explaining problems. It also gives people an example of how you think and may uncover implementation work they want help with.

  3. A narrow customer group creates knowledge that compounds

    When you focus on one kind of buyer, every conversation teaches you something you can use in the next one. Over time, you develop better questions, examples, content, offers, and a clearer sense of the problems that recur.

  4. Give consulting a smaller first step

    A paid diagnostic can make consulting easier to buy because the client pays for a clear first decision instead of committing to a large implementation. They get a map of the current system, its expensive bottlenecks, the risks, and the choices for what to do next. You learn enough about their situation to propose a larger project responsibly.

  5. Use specialization as a way into the wider operation

    Specializing in one platform can give a buyer a concrete reason to start working with you. The first project may be about that platform, but it can also show you the surrounding processes and the other problems worth solving.

  6. Learn the market's language from practitioner communities

    Practitioner communities show you how people describe their problems, which constraints they face, and which practical resources they look for or make themselves. Repeated complaints can suggest a useful tool or resource you can create.

  7. Answer “What are you working on?” specifically

    A specific answer gives the other person something they can connect to a problem, a person, or a reason to follow up. A vague category may sound flexible, but it gives them very little to work with.

  8. Use small public tools to show how you think

    A small public tool can solve a real problem and show how you think. People can inspect the job it handles, the limits you chose, and your explanation of when it is useful. They can try the result instead of relying on a description of your abilities.

  1. Start with the capability, not the reading list

    Choose what to study after you name what you want to be able to do. That might be understanding a business process, running a better client conversation, designing an AI workflow, or delivering a particular kind of project. The capability gives the reading list a reason to exist.

  2. Learn technical work through projects

    Learn technical work by using it in a project. A real problem gives you a reason to study a tool or concept, and building with it forces you to deal with the parts you could skim past in a general explanation.

  3. Compare models against an independent reference

    If you want to compare two models fairly, the reference answer can't come from either one. A model-made reference can catch obvious failures, but it will favor the model that made it. Use a human-checked reference before drawing conclusions about which model is more accurate.

  1. Speak before judging the thought

    Get the thought out before you decide whether it is worth saving. Editing too early can stop an idea before it has a chance to become something useful. You may be rejecting thoughts before they have time to develop.

  2. Use voice notes as rehearsal

    Walking and talking gives you a way to think out loud, catch ideas, and work through them before you turn them into writing, plans, or video. Speaking without stopping is also practice. It helps you become more fluent and develop a thought instead of filtering it out too early.

  3. Separate creating, editing, and implementing

    Separate creating, editing, and implementing into different modes. Create mode is for catching ideas. Edit mode is for reviewing and organizing them. Implement mode turns the edited idea into code, notes, content, outreach, or a plan. The separation gives an idea time to develop before you judge it.

  4. Test ideas in short form before expanding them

    Short posts let you test an idea before it becomes an article or video. A strong response gives you a reason to spend more time developing it. A weak response costs very little. The short post helps you decide which ideas deserve the larger investment.

  5. Use interviews when the note is too thin

    An atomic note can hold the main idea without enough detail for a post or essay. Read the note, its sources, and related notes first. If the examples, boundaries, or meaning are still missing, use a short interview to collect them instead of asking AI to fill the gaps.

  6. Express yourself through both an outlet and a skill

    You need a way to express what is happening inside you, but an outlet alone is not enough. Develop the skill to put thoughts and feelings into a form that accurately portrays what you feel, or important parts of you may remain trapped or misunderstood.

  1. Fear can hide opportunities with a lot of upside

    Content and outreach can lead somewhere useful, but they also create the possibility of being ignored or rejected. A failed attempt usually changes very little. The fear often comes from being seen trying, not from the cost of failure.

  2. Money is a tool for expressing values

    Money can support the life you choose, but it can't decide what that life should serve. Treating money as the highest value distorts that relationship. You still have to decide what the money is for.

  3. A larger life requires a wider range of experience

    Your life expands when the range of your experiences expands. Try new things, pay attention to what you think and feel, and develop your own opinions instead of living inside the same narrow set of interests, people, and assumptions.

  4. Good help leads people toward their own conclusions

    Helping someone does not mean deciding for them or solving the problem on their behalf. Ask questions and listen carefully so they can understand what they think and reach a conclusion they can own.

  5. Learning to deal with people is a high-leverage life skill

    Your ability to deal with people affects friendships, relationships, work, and the opportunities you notice or create. Better social skills are among the most valuable abilities you can develop.

  6. Recognition can precede articulation

    You may know that you want something or want to become a certain kind of person before you can explain it. Someone who gives the idea clear language can feel like recognition rather than discovery.

  7. A relationship ending does not make it a failure

    A relationship does not lose its value when it ends. Good and difficult experiences still shape both people, and ending may be the right response when the relationship stops working.

  8. Responsibility includes present, future, and shared consequences

    A responsible choice accounts for more than what benefits you now. Consider how it will affect your future and the people who may carry part of its cost. Ignoring any of those perspectives makes the decision easier, but less complete.

  9. People committed to growth recognize each other

    A desire to learn and change can make another person stand out quickly. When growth matters to you, meeting someone who approaches life the same way creates recognition because that orientation is both important and uncommon.

  10. Supporting someone does not require preferring their decision

    You can prefer one option while recognizing that the choice belongs to the other person. Support means respecting their authority over their own life and remaining caring regardless of which option they choose.