Notes
Notes on what I’ve learned from building products, working independently, learning, training, and trying to live an intentional life.
Building Products
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.
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.
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.
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.
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.
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.
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.
Working with AI
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.
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.
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.
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.
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.
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.
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.
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.
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.
Business and Independent Work
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.
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.
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.
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.
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.
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.
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.
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.
Learning and Research
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.
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.
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.
Writing and Communication
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.
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.
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.
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.
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.
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.
Life Philosophy
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.
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.
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.
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.
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.
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.
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.
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.
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.
