Artificial Intelligence Models
- LLMs build internal Knowledge Graphs in their network layers.
- LLMs shine in the kinds of situations where “good enough is good enough”.
- LLMs are compressed information stores.
- Classic ML systems where humans are designing how the information is organized (feature engineering, linking, graph building) scale poorly (the bitter lesson). LLMs are able to learn how to organize the information from the data itself.
- LLMs may not yet have human-level depth, but they already have vastly superhuman breadth.
- Learning to prompt is similar to learning to search in a search engine (you have to develop a sense of how and what to search for).
- LLMs have encyclopedic knowledge but suffer from hallucinations, jagged intelligence, and “amnesia” (no persistent memory).
- AI tools amplify existing expertise. The more skills and experience you have on a topic, the faster and better the results you can get from working with LLMs on that topic.
- LLMs are useful when exploiting the asymmetry between coming up with an answer and verifying the answer (similar to how a sudoku is difficult to solve, but it’s easy to verify that a solution is correct).
- Software 2.0 automates what we can verify. If a task/job is verifiable, then it is optimizable directly or via reinforcement learning, and a neural net can be trained to work extremely well.
- LLMs are good at the things that computers are bad at, and bad at the things that computers are good at. Also good at things that don’t have wrong answers.
- The use of LLMs and agents can be successful on tasks that are; verifiable, brute forceable, automation-like, PoC friendly.
- Context is king. Managing the context window effectively is crucial for getting good results.
- Add websites as context with jina.ai or pure.md
- Context is easy to mess up: context poisoning, context distraction, context confusion, context clash, …
- Context Engineering is the discipline of designing and building dynamic systems that provide the right information and tools, in the right format, at the right time, to give an LLM everything it needs to accomplish a task.
- LLMs amplify existing expertise rather than replacing it.
- AI speeds up generation, not necessarily throughput. Bottleneck 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
- “AIs” can be dangerous in under-specified environments (e.g: pausing games to last longer in the level) but those are the places where we will use them most. If something is well specified, there might be better solutions/optimizations (maths, code, …).
- When AI is “right”, people become less skilled. When AI is “wrong”, you need skilled people to catch and fix the errors.
- 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.
- LLMs are helpful when you want the output/result and don’t need to do the work yourself (e.g: going to the gym doesn’t work if the weights are automatically lifted).
- 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.
- For now, AI generated content should be consumed by you, not shared with others. This applies to code, bug reports, emails, and so on.
- Don’t send LLM-generated content. Send a human the prompt and let them run their own LLM. If your prompt is too embarrassing to send, reconsider your communication.
- 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.
- LLMs as “stateless functions”. Fixed weights, no updating. LLMs are in-context learners.
- LLMs are a lot better at fill in the blanks (the micro) than grand strategy (the macro). 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.
- Knowing how the style is named makes prompting easier.
- Understand benchmarking and what it really represents.
Use Cases
- Naming things.
- A nice thesaurus.
- Brainstorm (ask many things and then add constraints).
- What’s the name of the “thing” that does “something”?
- I want to accomplish X. I think I will try doing Y. Is there a better way?
- Convert code from one language to another.
- Generate YAMLs or other DSLs (translate between them).
- Improve existing code (typing, tests, making it async, …).
- Write basic CLIs.
- Write small scripts.
- Generate structured data from text.
- Make API requests to SQL Semantic Layers (less prone to errors or hallucinating metric definitions).
- Use different LLM agents to generate predictions into prediction markets and then spot-check some of them with human juries. Apply evolutionary algorithms to improve the agents’ performance in prediction markets.
- Generate podcasts with LLMs talking about a topic. Some great prompts:
- Focus on the details. Don’t stay high level. Explain concisely.
- Focus on overall themes and principles across all the sources.
- Relate concepts together. Map out all the interconnected ideas around.
Design Styles
Some spells styles to try when designing dashboards, UIs, or anything else.
- Datasheet
- High-contrast
- Monospaced fonts
- Minimal and utilitarian layout
- Retro control-panel vibe
- NeoTech
- Industrial retrofuture
- Techno brutalism
- Neo-Brutalism
- Editorial Minimalism
- Swiss / International Typographic Style
- Text-first, code-adjacent feel
- Sharp rectangles, thin borders
- Terminal-inspired developer minimalism
- Fieldset + legend pattern
More skills at the impeccable repo.