Results: 56
-
The Creative Act
2025-07-23 22:40
- 202507232251 Creativity is everywhere
- 202507232308 To everything there is a season
- 202507232318 Creative work takes place in the imagination and in reality
- 202508102224 Fuel for creative thought is everywhere
- 202508102235 Submerge yourself in great works
- Both 202109091123 Flow state and 202109091124 Anti-flow state are important for the creative process
- 202110212231 Differentiate between self-doubt and idea-doubt
- Don’t underestimate the power of 202109090947 Idea gardening (pp. 143–154)
- There’s a long blog post in here somewhere about the tangibility of the effort, intention, and energy that creating something imbues in the final product. Is this true or possible? A thought experiment might not bear this out, but there’s something human about feeling that e.g., dinner tastes better after a hard day of work. (pp. 93–94) #thread
- 202508112241 Try to have a beginner’s mind
- 202508112254 When flowing, keep going
- 202407232030 The way you do some things is the way you do all things
- 202508192313 You must test an idea to know if it works
- 202512232233 Develop the habit of finishing
- 202512232251 The ecstatic is a North Star
-
Advent of Code 2024
A season of code
2024-11-30 23:59
#tech #structure #blog #project
We're back for another year or saving Christmas through the power of programming.
-
Ownership
2024-08-18 22:08
Notes on the meaning, implementation, and outcomes of ownership of our work.
The global network of capital essentially functions to separate the workers from the means of production.
Philosophically
- 202403131332 Techno-bourgeoisie
- 202112291821 The things we own end up owning us
In Engineering
- 202407081040 If you can't cancel the project you're not the product owner
- 202408060133 Caution and perfectionism hurt progress
- 202312091511 There is no such thing as sacred code
- 202206171206 Delivery Performance vs Value Delivery
-
The Myth of Sisyphus
2024-06-13 17:15
The fundamental subject of The Myth of Sisyphus is this: it is legitimate and necessary to wonder whether life has a meaning; therefore it is legitimate to meet the problem of suicide face to face. The answer, underlying and appearing through the paradoxes which cover it, is this: even one does not believe in God, suicide is not legitimate. Written fifteen years ago, in 1940, amid the French and European disaster, this book declares that even within the limits of nihilism it is possible to find the means to proceed beyond nihilism.
– Albert Camus, Paris, March 19551
One must imagine Sisyphus happy.1 (pp. 123)
-
Stir Trek 2024
2024-04-30 10:34
Selected Sessions
time room rank speaker track session 08:45 could not attend -
Thinking in Systems
2024-01-29 14:11
Donella Meadows lays out a concise, thoughtful, and thorough introduction to systems theory in Thinking in Systems.[^meadows2011]
Chapter 1 - The Basics
- 202401291425 Definition of system
- 202401291441 Systems thinking benefits all thought
- 202401291458 The purpose of the parts may not be the purpose of the whole
- 202401291554 All systems thinking is a simplification
- 202308281423 Ship of Theseus
- 202205021252 Stock and flow
- 202110231515 Feedback loop
Chapter 2 - A Brief Visit to the Systems Zoo
- One Stock Systems
- 202402171439 One stock with two competing balancing loops
- 202402171455 Feedback can only affect future behavior
- 202402171507 A stock with one reinforcing loop and one balancing loop
- 202402171512 The principle of shifting dominance
- 202402171520 Ask questions to assess the validity of a model
- 202402241530 One stock with delays
- Two Stock Systems
Chapter 3 - Why Systems Work So Well
-
The Software Craftsman
2023-12-09 13:23
Chapter 2 - Agile
- 202312161343 You don’t do Agile
- 202411261417 There can never be an agile process
- (18 discussion) “Focusing purely on the process and treating software development like a production line leads to average 9-to-5 developers doing what they are told — they become factory workers.” This is what we do here with mobbing
- (19 discussion) bad faith argument in paragraph 2
Chapter 3 - Software Craftsmanship
-
The Principles of Product Development Flow
2023-08-24 17:43
- 202309011312 The primary goal in product development is to make good economic decisions
- 202309011322 We need more information for complex decision making
- 202309011327 Define metric to value transfer functions using sensitivity analysis
- 202309011333 Quantify your cost of delay
- 202309011342 Measure output instead of activity
- 202309021620 Important trade-offs have u-curve optimizations
-
The Pragmatic Programmer
2023-07-24 10:42
Preface to the Second Edition
- 202308141544 Make the future less painful
- 202308281423 Ship of Theseus
- What makes a pragmatic programmer?
- 202308271610 Quarry workers' creed
Chapter 1 - A Pragmatic Philosophy
- 202308282340 No broken windows
- 202312091400 Be the exemplar of change
- 202312091413 Know what's good enough
- Think critically
Chapter 2 - A Pragmatic Approach
- Good design is easier to change than bad design. Almost all other patterns boil down to "easier to change" or ETC or 202205031449 Optimize for change or 202204262114 Write code that's easy to delete, not extend.
- This is a value (spectrum) not a rule.
- This is why I don't like frameworks that lift a lot (tailwind style string classes everywhere in code) or rails magic. It's everywhere and pervasive and not good. Or things w/lots of non-standard tooling (bit or graphql)
-
Compounding Interest
2023-04-10 20:48
There is a quote attributed to Einstein that's probably made up but still good.
Compound interest is the eighth wonder of the world. He who understands it, earns it; he who doesn't, pays it.
Or sometimes in a different phrasing,
Compound interest is the most powerful force in the universe.
Both of these sentiments strike at the heart of the power of compound interest. Unfettered exponential growth can make even the smallest changes today, radically valuable in the future.
- 202304102024 Great people have a great deal of drive to do great things
- 202304112152 Intellectual investment is like compound interest
- 202109060836 Knowledge should accumulate
- 202106221146 Leverage
- 202109121530 Maturity of interdependence
- 202109251140 Play long term-games
- 202308271610 Quarry workers' creed
-
A Life
2023-04-03 13:17
What does it take to have a long and prosperous life? What is success? What is happiness? What is meaning? What is a good life?
Inspiration
Praxis
- 202205231312 A Career
- 202308141518 Be a pack rat for little facts
- 202308141534 Be able to have a conversation about anything
- 202106221744 Begin with the end in mind
- 202411161434 Children are the greatest force of change
- 202304041047 Do significant things with your life
- 202109060816 Do your own thinking
- 202112180923 Don't fear failing, fear failing to try
- 202110181231 Don't tacitly endorse bad behaviors
- 202109251152 How much is enough
- 202109090947 Idea gardening
- 202308141538 It's your life
- 202304041619 Keep the whole in mind
- 202203231647 Leading from vision
- 202304041100 Learn, don't memorize
- 202109121530 Maturity of interdependence
- 202112221953 My bucket list
- 202104291947 Our purpose as leaders is to serve others
- 202109251140 Play long term-games
- 202106241524 Sharpen the saw and grow
- The joy in our humanity
- 202112291821 The things we own end up owning us
- 202109071223 The unexamined life is not worth living
-
Authorization
2022-08-28 12:53
Approaches and learnings about authorization and authentication in software engineering.
-
Microblog
2022-08-27 00:00
This page serves as a simple index of all my microblog posts. This list should be roughly equivalent to searching for the #microblog tag.
If you're looking for my longer #blog posts see 201610270000 Tech — Work — Ramblings.
- 202605291959 But it happened
- 202602232010 Speedrunning good docs, architecture, and tech
- 202602222043 Read Locks and Cache Line Ping Pong
- 202602211224 Two great articles
- 202602132031 No, LLMs are not the new compiler
- 202510261326 Tokio tasks vs kernel thread switching
- 202509290850 Do I need to finish that
- 202507211443 Good riddance Chrome
- 202506112001 You can’t spell Gell-Mann amnesia without LLM
- 202504202032 The joys of photography
- 202504191056 Writing consistently
- 202501030111 To emacs or not to emacs
- 202412311812 Ice cream resolution
- 202412191631 Bluesky
- 202412181227 Bartosz Ciechanowski and the promise of the web
- 202411192241 Two cool tools
- 202410220101 The Final Edition of Embedded Muse
- 202410201110 Engineering Multi-classing
- 202409141244 A Cool Use of Rust Iterators
- 202408250920 1BRC in rust in depth
- 202408220939 Go is not worth it
-
Poetry and quotes
2022-08-22 13:05
- 202208221306 In the Desert
- 202210141736 Ozymandias
- 202307282003 An Ode
- 202308271554 This be the verse
- 202603271426 The Second Coming
- People (society) plant trees under whose shade they will never lie
Literature Quotes
- 202208221635 Beauty will save the world *
- 202208221321 I claim them all *
- 202209201414 Science can only amplify
- 202209121025 The world wants new men
- 202211021054 Yearn for the vast and endless sea
- 202304041631 The end of all things
- 202308271610 Quarry workers' creed
- 202408221254 Ten thousand times the spider would rebuild
- 202408221304 Desolation tries to colonize you
- 202408232359 The abyss gazes back
- 202501172019 We ever-smaller humans
- 202501151828 Without the Earth we are all finished
- 202503211334 The fish trap exists because of the fish
- 202507231613 Where lies the strangling fruit
- 202510041119 Walden *
Quotes
- 202408222021 Have fun and be terrified
- 202411161349 As if I've deliberately come back to this one day
- 202504111451 A moments thought
- "An investment in knowledge always pays the best returns" - Benjamin Franklin
- 202508112254 When flowing, keep going
-
Zero to engineer
2022-08-10 19:44
202406201458 I've lost the knowledge of how I learned what I know so it was hard to help other people start learning all of this. This note was an attempt at 202206282018 Curriculum design for software engineering, but the person I was working on this with went a different direction. I'm going to leave this note, but it's incomplete and probably won't be worked on again.
How do get into 202109061338 Software Engineering?
Let's go at this from a specific angle.
What would it take for me to get an entry level job as a programmer?
- Get past the résumé screen
- Get past the recruiter screen
- Get past the coding exercise
- Get past the onsite interviews
Preparing for these takes different amounts of time and require different skillsets. If we include the dependencies between each step and sort them by preparation time, we get a new ordering.
- Getting past the coding exercise — is the basis for 2 and 3, so it must be solid and come first.
- Getting past the résumé screening — requires things like example projects and raw time spent coding.
- Getting past the onsite interviews — definitely the point where not knowing your shit can bite you, but it's also possible to be great at interviewing and compensate for your rough patches with things like work ethic and initiative.
-
Information and intelligence
2022-08-10 10:13
Information and intelligence are subtle concepts. Subterfuge, espionage, propaganda, mis-information, and narrative intent are just some of the areas that can cloud the truthfulness or usefulness of information and intelligence.
More than ever it's important that 202109060835 Knowledge is constructed in the receiver, but authors and gatherers of information and intelligence can work to induce an intended construction.
It's important to use tools like 202203210833 Systems thinking to try and understand things. It's vital to cut through what we would like to be true to the base facts of reality (202109251155 Desire vs expected outcome in decision making and 202203210830 When your model and reality conflict, reality is always right).
Thoughts on the topic
-
Computer Science
2022-06-19 13:00
The nitty-gritty of computation and technology. Contrasted with 202109061338 Software Engineering which is more about the practice of writing software and careers or organizations in that field.
Curriculum
- 202208101944 Zero to engineer
- 202206282018 Curriculum design for software engineering
- Maybe start here?: MIT OpenCourseWare for Computer Science
- Maybe I should make this yet another structure note that lays out the whole process and what order and how things are connected? Probably just start doing that in this note and maybe split it out later.
Programming Languages
- 202107272307 Data-first pipe design
- 202107272306 Data-last pipe design
- Go kind of sucks?
- 202405170938 Pratt parsing
Asynchronous computing
- 202111091028 Task scheduling is a fuzzy process
- How does asynchronous stuff really work in JS? Promises, async/await, under the hood etc. #thread answer: JS spec requires implementations of JS to implement an event queue which JS processes fifo. Could be fun to implement a JavaScript runtime in Rust or something. (Might already exist from Mozilla, V8 is written in C++)
-
Senior engineer
2022-06-11 22:36
Defining what makes an engineer a “senior engineer” is a murky task. There will always be differences from one company to another, but there are some general patterns that most people agree on.
Skill
- Achieved mostly independent ability to solve any task given.
- Knows when they need to involve others for things that they don’t have the skills for or believe should be group efforts
Responsibilities
-
Staff-plus engineer
2022-06-11 22:33
Staff engineering is a complex topic. As nebulous as it can be to get promoted to a 202206112236 Senior engineer role, it’s considerably harder to move into staff-plus roles. Whereas the definition varies a bit from company to company for senior engineering, the definition or even existence of staff-plus roles is completely irregular across the industry. Will Larson wrote an excellent book, Staff Engineer: Leadership Beyond the Management Track[^larson2021staff] on what it means to be a staff-plus engineer. This structure note and its children mostly come from that resource, but also other citations where noted. That book is also (mostly) publicly available at staffeng.com.
[!important] Being a staff engineer is not just a role. It’s the intersection of the role, your behaviors, your impact, and the organization’s recognition of all those things.
The value of the title
- Bypass informal gauges of seniority (especially useful for underrepresented groups)
- Facilitating access to “the room”
- Increase current and career earnings
- Access to interesting work
- Different rather than better
Archetypes
-
Zen in the face of programming
2022-06-11 21:25
There's a hill that we climb through our career as programmers.
We start at the bottom where everything is difficult, foreign, and new. We have all the energy, enthusiasm, and patience in the world.
We climb, learn, and grow strong. We enjoy climbing. We get better at it. We ascend at an increasing pace.
But then, we start to lose steam. We no longer have the enthusiasm for the climb that we once did. We want to get to the top at long last. We want the code to be good, complete, perfect. If only we could do that rewrite. If only everyone could write less buggy code.
I know best, I've been climbing for years, let me get to the top already!
We lose faith. We stumble. We despair at the infinitude of the climb in front of us. Surely there is no end. Surely there's no point to it all. The climb breaks us.
And yet, when we're broken, we find the truth — there is no top — there's always one more step. We find that the climb is the purpose. With revelation comes renewed joy and a peaceful, sustainable way to continue the climb.
We find joy in sending other climbers lifelines. We find joy in looking around and coming to know the people below, next to, and above us on the climb.
-
Moral Philosophy
2022-06-05 15:28
One of the big questions of all human kind that has been prevalent in 202109071211 Philosophy since ancient times. What it means to be moral, and similarly but slightly differently, what it means to act ethically.
There are 3 main schools of thought in the western tradition of moral philosophy:1
202206052202 Moral desert is a related concept of "what people deserve".
-
Schur, M. (2022). How to be perfect: A foolproof guide to making the correct moral decision in every situation you ever encounter anywhere on earth, forever. ↩
-
-
Utilitarianism
2022-06-05 15:26
A more specific subset of 202206051524 Consequentialism, though frequently used interchangeably with that term1. Classic utilitarians are x202206111658 Jeremy Bentham and x202206111659 John Stuart Mills. Utilitarianism differs from consequentialism as a whole by selecting "utility" — defined classically as human goodness and well-being — as the desired consequence to maximize.
-
Schur, M. (2022). How to be perfect: A foolproof guide to making the correct moral decision in every situation you ever encounter anywhere on earth, forever. ↩
-
-
Consequentialism
2022-06-05 15:24
Nearly identical but more precisely a superset of 202206051526 Utilitarianism. These are often used interchangeably in lay terms. One of the three main western schools of thought in 202206051528 Moral Philosophy, consequentialism defines right action in terms of its consequences.1 The saying "the ends justify the means" can be interpreted in a consequentialist way.
Prominent classical consequentialists (and more specifically utilitarians) are x202206111658 Jeremy Bentham and x202206111659 John Stuart Mills.
-
Schur, M. (2022). How to be perfect: A foolproof guide to making the correct moral decision in every situation you ever encounter anywhere on earth, forever. ↩
-
-
Aristotle
2022-06-05 07:54
Ancient Greek natural-philosopher and intellectual father of nearly all western civilization and thought.
Philosophy
-
A Career
2022-05-23 13:12
What does it take to have a long and prosperous career? What is success? What is happiness?
Entire careers in themselves
Strategy
- 202304041047 Do significant things with your life
- 202304041619 Keep the whole in mind
- 202205231130 Knowing when to leave
- 202304041100 Learn, don't memorize
- 202109060825 My next level
- 202206122047 Career checkup template
- 202109251140 Play long term-games
- 202106221713 Seven habits of highly effective people
- 202206112312 Stop chasing ghosts
- 202206112313 Stop preening
- 202110231433 Think week
- 202109081301 You'll never get what you don't ask for
- 202206112310 Work on what matters
Philosophy
- 202110212231 Differentiate between self-doubt and idea-doubt
- 202109060816 Do your own thinking
- 202112180923 Don't fear failing, fear failing to try
- 202109251152 How much is enough
- 202112291821 The things we own end up owning us
-
The Art of Doing Science and Engineering
2022-05-09 21:34
An excellent book by Richard Hamming on doing science, 202203210833 Systems thinking, 202208131327 System design, and having 202205231312 A Career.[^hamming2020]
- 202207271527 An order of magnitude of change produces new effects
- To the extent you can choose, work on the problems that you think will be important (202206112310 Work on what matters).
- 202207271530 Expertise is required to create useful simulations
- 202207271958 Stability or instability dominates a system
- 202207272000 Garbage in, garbage out
- 202208211340 Users can affect the validity of simulations
- 202208211331 Simpson's paradox
- 202208211352 There is no shortcut to learning
- 202208211358 Hawthorne effect
- 202208211404 Learning to follow and learning to lead
- 202208211426 Work with people who know they don't know
- 202211031026 The unreasonable effectiveness of mathematics
- 202211030958 Creative accomplishments happen over time
- 202110251122 Analogy is a highly effective communication method
- 202304031221 Breadth of knowledge fuels analogy
- 202308271108 Construct hooks for future knowledge
-
Write code that's easy to delete, not extend
2022-04-26 21:14
Instead of building re-usable software we should try to build disposable software.[^figg2016]
Writing code comes at the cost of maintaining and changing that code. After all, 202204272219 The fastest code is no code and if we don’t have any code to begin with, we don’t have to maintain, extend, or delete code. The actual cost of maintaining that code can be astronomical (202204031033 Abstractions and future-coding are actively harmful)
We should be striving to minimize our code which includes deleting code that is no longer serving its purpose or has had so many requirement changes that it’s no longer recognizable as what it set out to be.
We should be writing code that’s disposable and cheap to replace. It’s easier to replace code than sort through dependencies and modify systems.
It’s usually easier to delete one big mess of code than to try and delete multiple smaller interleaved mistakes. It’s especially true that we don’t know how to split our code before building it and that it’s easier to deploy one mistake than 20 smaller ones.
In order to write easily disposable code, we need to repeat ourselves over adding dependencies (202204262054 Prefer duplication over the wrong abstraction). We need to layer our code so that APIs don’t cause sweeping changes (202204272256 Create internal APIs on top of dependencies). We need to isolate hard to write or likely to change (202204272307 Code that changes together should live together) parts from the rest of the code and each other. We need to allow some changes at runtime and swappable implementations. We need to be able to write new code next to old code without modifying it (202204272242 Open-closed).
-
Affecting long-term change
2022-03-23 16:46
Affecting long-term change is one of the most challenging things that a leader can do.
For one, the feedback loop about a long-term change comes at a glacial pace (202104291528 Leaders have to accept a slower feedback loop).
Next, there's a constant need to 202104291529 Repeat the message in order to be heard. For long-term changes, this can literally span years of repeating the same message. In practice, this repetition requires vision and extreme conviction. We must be visionaries to see the goal and keep it in sight even when the going gets tough. We must have conviction that the goal is worth it; that the view from the mountain top will be worth the climb. Having this 202107240951 Visionary leadership style and 202203231647 Leading from vision requires us to be comfortable with 202112201317 The solitude of leadership.
So how can we persevere?
- We need to 202104291527 Live in the ambiguity and allow these slower loops.
- We must be patient with our communication, re-communication, and re-re-communications ad nauseam.
- We need to remove obstacles to make the path as clear as possible (202106241548 Leaders work to remove obstacles).
- We need to 202104292040 Eat the losses.
-
Systems thinking
2022-03-21 08:33
Thinking of stocks and flows is one of the core tenets of systems thinking.
- 202205021252 Stock and flow
- A knock-on effect of systems thinking with stocks and flows is to find causal chains and be able to do 202110220853 Second-order thinking
- 202205092134 The Art of Doing Science and Engineering discusses systems thinking without using the term.
- 202401291411 Thinking in Systems
Safety measures for systems thinking
- 202203210832 Models are necessarily incomplete
- 202203210831 Models are immutable but reality isn't
- 202203210830 When your model and reality conflict, reality is always right
-
My bucket list
2021-12-22 19:53
- Sky dive
- Ski the Alps
- Ski Tahoe
- Travel to
- Switzerland
- Germany
- Carribbean
- Scandinavia / Iceland
- British Isles
- France
- Italy
- Lake Como
- Greece
- Mexico
- Egypt
- Bhutan
- Australia
- New Zealand
- South Pacific Islands
- Hawaii
- Alaska
- Patagonia
- Africa
- China
- Japan
- India
- Tibet
- Cities
- DC
- NYC
- Amsterdam
- London
- Tokyo
- Paris
- Madrid/Barcelona
- Rio de Janeiro
- Cancun
- San Francisco
- Seattle
- LA
- Honolulu
- Rome
- Athens
- Alexandria/Cairo
- Venice
- Dubai
- Vegas
- Jerusalem
- Space
- LEO
- Moon
- Mars
- Saturn
- National Parks
- Banff
- Denali
- Yosemite
- Redwood
- Grand Canyon
- Zion
- Bryce Canyon
- Yellowstone
- Grand Tetons
- Badlands
- Mount Rushmore
- Ha long bay
- See the northern (southern) lights
-
The solitude of leadership
2021-12-20 13:17
People think leaders are individuals with others looking to them for direction. People think solitude is something like Thoreau, alone at Walden Pond. What could solitude have to do with leadership?
Leadership is the qualities of character and mind that will make you fit to command a platoon or a company, a battalion or a corporation, a foundation, a department, a government.
Solitude is the ability to be alone with your thoughts.
Solitude is therefore one of the most important necessities of true leadership.
On the mistaken idea of making it to the top means you're a leader
Many people can be energetic, accomplished, smart, or ferociously ambitious, but is that enough to make them leaders? No. These types of things are encouraged and developed in our generation of world-class hoop jumpers — they're "excellent sheep". Many institutions that talk about leadership are really talking about this. They're talking about educating people to make big names for themselves with impressive titles that they can brag about. They're talking about training people to climb the greasy pole of whatever hierarchy they decide to attach themselves to. But this idea is wrong and dangerous.
-
Bloom's taxonomy
2021-10-26 09:23
Benjamin Bloom created a system for classifying educational objectives across a series of conferences from 1949 to 1953.1 His system includes three sections:
- 202107282144 Bloom's taxonomy of knowledge
- 202110260924 Bloom's taxonomy of emotion
- 202110260925 Bloom's taxonomy of actions
-
Wikipedia contributors. (2021). Bloom’s taxonomy. In Wikipedia. https://en.wikipedia.org/w/index.php?title=Bloom%27s_taxonomy&oldid=1048998186 ↩
-
Protein folding
2021-10-22 09:37
Protein folding is the process of determining the 3D shape of a protein from its amino-acid sequence. The 3D shape determines the protein's function and linking the amino acid sequence to the structure therefore links the sequence to the function. This has long been regarded as one of if not the hardest problem known to humanity due in part to 202110221009 Levinthal's paradox.
DeepMind's Breakthrough
DeepMind's program for determining the 3D shapes of proteins stands to transform biology[^callaway2020]
The Google owned AI company DeepMind made a massive leap in 2020 in our ability to predict how protein folding works. DeepMind's AlphaFold outperformed all the competitors by a wide range in the biennial Critical Assessment of Structure Prediction (CASP) contest. One scientist even went so far as to say, "in some sense the problem is solved."
It's a game changer. This will change medicine. It will change research. It will change bioengineering. It will change everything.
— Andrei Lupas, Max Planck Intitute for Development in Biology[^callaway2020]
In many cases, the structure predicted by DeepMind was indistinguishable from the state of the art experimental methods of directly measuring protein shapes.
-
Remote team management
2021-10-22 08:45
This structure note records my learnings from taking the Coursera How to Manage a Remote Team course.[^murph2020] These notes come from a time before my Zettelkasten and are longer, more verbose, and less atomic than I'd normally like, but I'm just going to leave them as they are. That way, I can link to them and search for their contents without investing the time in breaking them down more.
Managing a team of remote workers presents unique challenges and opportunities:
Communication is Crucial
Embracing Asynchronous Communication
In a world dictated by calendars and schedules, people are conditioned to operate in synchronicity — meaning that they inhabit the same physical or virtual space at the same time. Asynchronous communication is the art of communicating and moving projects forward without the need for collaborators or stakeholders to be available at the same time your message is sent.
In an all-remote setting, mastering asynchronous workflows is vital to avoiding dysfunction and increasing efficiency. The benefits include enabling your team to work effectively across time zones, reducing meetings, and enabling team members to work on a flexible schedule — all of which raise morale and productivity. However, shifting to this way of working requires a lot of large and small adjustments.
-
Coaching underperformers
2021-10-18 11:58
Underperformers may not realize that they have an inflated sense of their performance. Managers should figure out the cause of their lack of awareness. In the process, they will either uncover what support the underperformer needs or confirm that they just might not be able to do the job and that they should reset expectations accordingly.
This situation is very draining on time and emotions for everyone involved. It's better to fix it right away.
Another insidious risk is that by allowing this to go on, a manager may be tacitly endorsing substandard performance, causing other employees to become demotivated, disengaged, or angry about the situation. (202110181231 Don't tacitly endorse bad behaviors)
Possibilities for alleviating the issue:[^kislik2020]
- 202110181203 Be clear about expectations — This can seem painful, but it's better for everyone in the long run. You have to be super clear on expectations.
- Provide employees with resources and support — If their natural skills are insufficient, they may not even perceive their deficits. It's important to coach, mentor, and get them in a position where they can grow and succeed.
- Determine whether you're willing to continue investing in the individual — If you're not, it's much more practical to reduce your expectations. Do not abandon them, but do not spend more time on then than is required. You should spend your discretionary time on your top performers (202110181205 Invest discretionary time in top performers). This also includes deciding whether they are below the acceptable line or above it.
Good -> greatcan be abandoned, butfailing -> okcannot. If they're failing and can't improve, it's time to let them go.
-
Reclaiming software systems
2021-09-25 11:02
Software systems are organic entities. They take on a life of their own over the passage of time under the pressure of external forces. They slowly transition from 202109251124 Golden age software to 202109251125 Post-apocalyptic software.[^larson2019reclaim]
How do we get from golden age software to post-apocalyptic then? At some point we find an elegant extension to the golden system. It's looked at as proof of the system's power and flexibility. But in reality, it's the beginning of the end. It causes the system to be harder to reason about, and eventually becomes impossible. It's better to build systems for the problems they solve and keep them running with simplicity.
Each company is allowed to rewrite exactly once, but afterwards you have to learn how to reclaim your software instead.[^larson2019reclaim]
One option is to rewrite the system. This is expensive, time consuming, and may actually cause problems by losing years worth of sweat and knowledge that's been put into the system.[^spolsky2000] The good news is that rewrites aren't inevitable here, and we can reclaim the system instead.
Reclaiming the system is the project of evolving beliefs into behaviors and properties (202109251100 Verify behaviors and assert properties). We start off by believing that something works like it does. This might be a specific property of "all the DB calls come from ActiveRecord" or something. We turn that belief into a behavior or property that can be tracked and verified or asserted.
-
High performing teams
2021-09-25 10:35
A common term in the current 202104291523 Leadership zeitgeist is "High performing team". What that means exactly is hard to pin down. There are as many definitions as there are managers in the world.
Defining when a team is high performing
- They 202106241525 Synergize. The team works in a way that complements each others efforts.
- The team works on high 202106221146 Leverage projects to compound their returns over time.
- The team has...
- A common purpose (202108191025 Teams exist for a reason)
- Clear roles
- An accepted leadership structure
- Excellent communication
- Solid relationships
- An effective process in place for getting work done well (202104291524 Execution is the priority of team management) and understanding if that work is effective and valuable (202108191029 Measure what you do.
- Participative leadership – using a democratic leadership style that involves and engages team members
- Effective decision-making – using a blend of rational and intuitive decision making methods, depending on that nature of the decision task
- Open and clear communication – ensuring that the team mutually constructs shared meaning, using effective communication methods and channels
-
Evergreen notes
2021-09-09 11:29
Valuable notes are written and organized to evolve, contribute, and accumulate over time, across projects (202109060836 Knowledge should accumulate). This is different than taking transient notes because 202209091140 Transient notes don't create knowledge.[^khoe2016] 202209091141 The goal of note-taking is not to be better at taking notes, it's to be better at thinking. In order to make notes valuable we need them to be timeless.1
We can make our notes timeless by making sure that they adhere to a few key principles:
- 202209091130 Notes should be atomic
- 202109091131 Notes should surprise us
- 202109091132 Notes should be densely linked
- 202109091133 Notes should associate organically
- 202109091134 Notes should be concept-oriented
202209091142 Notes are the fundamental unit of knowledge work. This practice is similar and different to Niklas Luhmann's 202107272242 The Art of using a Zettelkasten.[^luhmann2021]
-
Matuschak, A. (2017). Evergreen notes. Andyʼs Working Notes. https://notes.andymatuschak.org/z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C ↩
-
As We May Think
2021-09-08 08:47
#thread #structure #source #wip #new
A seminal essay on machine augmented thinking written by Vannevar Bush in 1945.[^bush1945]
He urges that men of science should turn to the massive task of making more accessibly our bewildering store of knowledge. For years inventions have extended man's physical powers rather than the powers of his mind. [These inventions] are new results, but not the end results, of modern science. Instruments are at hand which will give man access to and command over the inherited knowledge of the ages. The perfection of these pacific instruments should be the first objective of our scientists as they emerge from their war work. Like Emerson's famous address of 1837 on The American Scholar this paper calls for a new relationship between thinking man and the sum of our knowledge.
Consider a future device [...] in which an individual stores all his books, records, and communications, and which is mechanized so that it may be consulted with exceeding speed and flexibility. It is an enlarged intimate supplement to his memory.
Knowledge evolves and endures throughout the life of a race rather than that of an individual
Publication of research has been extended far beyond our present (1945) ability to make real use of the record.
-
Late Modern Philosophy
2021-09-07 13:30
Usually considered to begin in 1781 when Gotthold Ephraim Lessing died and 202109071212 Immanuel Kant's Critique of Pure Reason appeared. This continued through the 19th century and saw a divide between Continental (interested in general frameworks of metaphysics) and analytic (focused on issues of epistemology, ethics, law, and politics) philosophic traditions.1
Philosophers
-
Wikipedia contributors. (2022). Western philosophy. In Wikipedia. https://en.wikipedia.org/w/index.php?title=Western_philosophy&oldid=1098280762 ↩
-
-
Ancient Philosophy
2021-09-07 12:29
In the tradition of Western Philosophy, ancient philosophy refers to almost exclusively ancient Greek philosophy. Beginning in the 6th century BC, marking the end of the Greek Dark Ages, Greek philosophy continued through the Hellenistic period and later the period of Roman Greece, ending with the rise Roman Christianity and the transition to the period of Medieval philosophy.1
Periods
- Pre-Socratic
- Classical
- Hellenistic and Roman
Philosophers
Thought Experiments
-
Wikipedia contributors. (2022). Ancient Greek philosophy. In Wikipedia. https://en.wikipedia.org/w/index.php?title=Ancient_Greek_philosophy&oldid=1094833012 ↩
-
Socrates
2021-09-07 12:25
Socrates was a Greek philosopher who lived from 470–399 BCE in Athens. He's credited as the founder of western philosophy and is among the first recorded moral philosophers of the ethical tradition of thought. Though he wrote no texts himself, his teachings were passed down to us through his students — primarily Plato and Xenophon — as dialogues in a question and answer style.
Works
- N/A
Influence
- Western Philosophy
- 202109071229 Ancient Philosophy
- 202206051528 Moral Philosophy
-
Age of Enlightenment
2021-09-07 12:19
The age of enlightenment — or simply The Enlightenment — was an intellectual movement that dominated Europe in the 17th and 18th centuries. The enlightenment included a range of ideas centered on the value of human happiness, the pursuit of knowledge obtained by means of reason and the evidence of the senses, and ideals such as liberty, progress, toleration, fraternity, constitutional government, and separation of church and state.1
Philosophers
-
Wikipedia contributors. (2022). Age of Enlightenment. In Wikipedia. https://en.wikipedia.org/w/index.php?title=Age_of_Enlightenment&oldid=1104162837 ↩
-
-
Immanuel Kant
2021-09-07 12:12
A German philosopher, central thinker of the 202109071219 Age of Enlightenment, and one of the most influential philosophers in all of western philosophy.1
Works
- Critique of Pure Reason
- Groundwork of the Metaphysics of Morals
- Metaphysics of Morals
- Critique of Practical Reason
- Critique of the Power of Judgement
Influence
- Kant popularized the phrase 202109060833 Sapere Aude as a motto for the 202109071219 Age of Enlightenment.
- Kant is most famous for his work in 202206051530 Deontology, the Critique of Pure Reason, and his 3 formulations of the x202206051544 Categorical imperative.
-
Immanuel Kant. (2023). In Wikipedia. https://en.wikipedia.org/w/index.php?title=Immanuel_Kant&oldid=1172510977 ↩
-
Philosophy
2021-09-07 12:11
- 202109071229 Ancient Philosophy
- Medieval Philosophy
- Renaissance
- Early Modern, 202109071219 Age of Enlightenment, 17th and 18th century
- 202109071330 Late Modern Philosophy, 19th century
- Contemporary
- Absurdism - Camus and 202406131715 The Myth of Sisyphus
- Postmodernism
- New Sincerity
Major areas of philosophy
-
Software Engineering
2021-09-06 13:38
Maybe this should be a structure note of structure notes only since this is a huge topic that I'd like to really dive deep on. There is also the 202206191300 Computer Science structure note that I’ve split out to dig in to the more technical, theoretical stuff in order to keep this one focused more on the practice of writing software and careers or organizations in this field.
Topics
Documentation
- Co-locate tech docs with the code
- C4 Modeling
Abstraction
- 202602211049 Abstractions
- You aren't gonna need it (YAGNI)
- 202204031033 Abstractions and future-coding are actively harmful
- 202406282245 Locality of Behavior
- 202204262054 Prefer duplication over the wrong abstraction
- On the spectrum of abstraction[^lou2016]
- Open for extension closed for modification O in SOLID. Means you can add new behavior without modifying any existing code. Always green, always confident in lack of side effects.[^metz2013]
Measurement
- 202304231046 List of SDLC metrics
- 202204272219 The fastest code is no code
- 202109251100 Verify behaviors and assert properties
- 202606021226 Fitness functions
- Thought experiment. Coding as function, what do the derivative and integral represent? Related to 202107291950 Optimizing requirements and implementations and 202110111901 Run to change ratio of a program.
-
Knowledge is constructed
2021-09-06 08:35
Constructivism and also Constructionism are theories of knowledge that requires there to be a learner for knowledge to exist. Until someone learns information, connects it to things they already know, and internalizes the information in a personal context, knowledge cannot exist.
Supporting arguments
- Having a text or reference at hand does nothing to increase knowledge, we have to create something, do the work, wrestle with the ideas, and engage effortfully to create our own knowledge.
- Research works better one thing at a time. Find a source, process it to completion, then use your newfound knowledge to find another source. If we don't, we run the risk of picking sources that are useless by the time we get around to reading them. Processing to completion includes writing about what you've read. This is where these notes come in. We take transient notes as we're reading and then write our thoughts here or in drafts of actual writing. (Iterative accumulative approach to writing #thread and writing is important #thread)
- Consider that data patterns and descriptions mean nothing on their own. For instance, strongly correlated but spurious patterns may be obviously meaningless.[^vigen2013] Instead, we require a pattern or description (what), an interpretation of that pattern (why), and — critically — to synthesize multiple interpretations, hypotheses, theories, or models into a bigger picture and create something useful or interesting (why why or higher level why). Patterns and interpretations are the main work of our knowledge management system here. Synthesis happens when we write about (or just read and string together all the knowledge we accumulate in the system).
-
The Art of using a Zettelkasten
2021-07-27 22:42
Using a Zettelkasten is more of an art than a science. It's a personal relationship with an extension of your knowledge. Above all, it's important to just consistently work and think in this system to get the most out of it.
Personal preferences
- 202109091129 Evergreen notes
- 202107272238 When to write a new Zettel
- 202107292312 Project structure notes should answer a question
- 202107292136 The context of a link should give you a reason to follow it
- 202109091133 Notes should associate organically
- 202109091131 Notes should surprise us
- 202109090947 Idea gardening
- Use a reference manager. The references in the manager should only be ones that have been read and processed, ready to be cited in Zettel as I write them as the last step to processing a source. Don't clutter the reference manager with things I would like to read some day.
- Use a plain text editor and files. This makes everything much more cross-compatible and future proof.
Workflow
There are categories of things that I do regularly, and my Zettelkasten has a specific single place in a broader workflow. It's important to understand how we think and how the processes we use to do that thinking and synthesizing affect your ultimate knowledge (202109080847 As We May Think).
-
Seven habits of highly effective people
2021-06-22 17:13
The seven habits of highly effective people are described in the eponymous book by Stephen R. Covey.[^covey2004] Covey discusses how people can see the same things and have different perspectives. He also discusses how maturity is a continuum that can be describes as moving from dependence to independence to interdependence.
An observation: 202109251019 Highly effective people are leaders.
Circles of Influence
Maturity Continuum
- 202109121550 Maturity of dependence
- 202109121536 Maturity of independence
- 202109121530 Maturity of interdependence
The Seven Habits
Habits for building independence
- 202106241529 Be proactive
- 202106221744 Begin with the end in mind
- 202106241528 First things first (Covey uses the 202106241531 Eisenhower matrix of task value as an example of how to define what should be put first)
Habits for interdependence
- 202106241527 Think win-win
- 202106241526 Seek first to understand, then to be understood
- 202106241525 Synergize
Habits for continual improvement
-
The four types of leaders
2021-06-22 17:12
There's a theory that categorizes leaders into at least one of four archetypes.1 There can be overlap among these and we can work at being better in areas that aren't natural for us, but we all have at least one of them that comes without as much effort as the others.
As with other personality categorization frameworks, the value of putting ourselves in these categories is not to define what we will or must do, rather to give us insight into our behaviors. We can augment our strengths and mitigate our weaknesses only if we're aware of them.
Which of these types do I fall most naturally into?
I think I’m most naturally a visionary style leader with a need to improve my operator skills.
The Four Types
- 202107240951 Visionary leadership style
- 202107240952 Operator leadership style
- 202107240953 Processor leadership style
- 202107240954 Synergist leadership style
-
McKeown, L. (2017, June 27). What’s Your Leadership Style? The Do Book Company. https://medium.com/do-book-company/whats-your-leadership-style-fdc8bad45fe0 ↩
-
Leverage
2021-06-22 11:46
- 202106221150 Procrastination kills leverage by keeping our actions focused on easy, small tasks instead of challenging meaningful ones.
- 202304102048 Compounding Interest/returns are some of the highest leverage things that we can interact with. #thread
-
Emergence
2021-04-29 15:40
The combining of data, events, or constituent parts can produce effects that are not in the details. The sum of the parts is not equal to the whole.
A similar but opposite effect is when the combining of data obscures effects in the details. This and emergence are illustrated by 202208211331 Simpson's paradox.
Prerequisite conditions for emergence
- Group dynamics and sociological phenomena are sufficiently complex to create emergent properties of the whole compared to the individual parts. (202104291527 Live in the ambiguity)
- 202107292108 Simple primitives don't guarantee simple constructs, so complexity of primitives can't be used as a bell-weather for identifying emergent systems.
- 202110231515 Feedback loop, 202110231516 Feedforward loop, and 202110231517 Self-reference are common sources of emergence.
Outcomes of emergence
- Sometimes 202402201204 Resilient, self-organizing systems will generate hierarchies and furthermore 202402241722 Hierarchies enable iterative progress. This property is emergent from simple laws.
-
Leadership
2021-04-29 15:23
- 202203231646 Affecting long-term change
- 202203241152 Ask for more from your people
- 202110181203 Be clear about expectations
- 202109072035 Closing calls
- 202110181158 Coaching underperformers
- 202109090909 Decision paralysis
- 202203241428 Do more with less
- 202110181231 Don't tacitly endorse bad behaviors
- 202104292040 Eat the losses
- 202104291524 Execution is the priority of team management
- 202205021956 Feedback is for changing behavior
- 202407010952 Freedom and Responsibility
- 202208211358 Hawthorne effect
- 202110181205 Invest discretionary time in top performers
- 202411302328 Intrinsic vs extrinsic motivation
- 202104291527 Live in the ambiguity
- 202104291528 Leaders have to accept a slower feedback loop
- 202106241548 Leaders work to remove obstacles
- 202203231647 Leading from vision
- 202504211525 Make it easy to do your best work (where “your” is your team and its members)
- 202104291526 Make the hard decisions
- 202602160957 Managers tell you where you are and leaders tell you where you are going
- 202309011342 Measure output instead of activity
- 202108191029 Measure what you do
-
The Entry Point
2021-04-29 15:22
#structure #source #wip #thread #new
This is the main entry point into my knowledge graph. At the risk of being prescriptive about categories and connections, a single top-level entry point is useful to maximize discoverability. If you're looking for other things I do, check out my home page.
The lofty goal of this project is to contain all of my knowledge. I hope this will be a lifelong project where I can learn, collect, and create a record of my thoughts in a simple, plain-text format that should never become obsolete.
Workflow
This will change drastically over time, but in an effort to keep myself organized, here's my process.
- Find a source of information
- Create a #source note with solid citations (managed in Zotero) for taking notes while consuming the source.
- Create, link, and manage the Zettel and my Zettelkasten.
For more information on the why and how of using a Zettelkasten, see 202107272242 The Art of using a Zettelkasten.
Tags
- The #structure tag is used for structure notes. These are hubs of Zettel that are connected under some sort of idea. They help with discoverability and maintenance of the Zettelkasten as a whole.
- The #source tag is a single Zettel to organize the notes I take while working through some source material. Each Zettel that's a #source is also a #structure Zettel. For example, I take notes while reading a book in a Zettel that's named for the book's title and tag it with the #source tag. These notes aren't technically needed if we do a good job citing sources, but it's helpful during the initial reading and note taking for long-form content that requires multiple sessions.
-
Tech — Work — Ramblings
2016-10-27 00:00
#tech #ramblings #microblog #structure #work #blog
This page serves as a simple index of all my blog posts. This list should be roughly equivalent to searching for the #blog tag.
If you're looking for my shorter #microblog posts, see 202208270000 Microblog.
- 202604301616 Figure out if non-blockers are still important
- 202512081102 Adding incoming and outgoing links to my site
- 202511072054 Adding a random note link to my site
- 202507221111 Two types of TODO comments
- 202411302359 Advent of Code 2024
- 202403111123 Burnout
- 202208010000 Making a Rust Roguelike
- 202206171206 Delivery Performance vs Value Delivery
- 202205150000 Learning Rust
- 202205010000 Making a Fitbit Sense Watch Face
- 202109090947 Idea gardening
- 202109010000 Prototype Expand Consolidate
- 202108010000 Designing for Big Screens
- 202107150000 Working in Public
- 202107010000 Unifying My Domain
- 202106010000 Rewrites Are (Almost) Never the Answer
- 202105010000 The Silent Majority of Engineering
- 202009010000 The Only Correct Way to Organize Code
- 202007010000 2019 Work Reads
- 202006150000 Gestalt Principles of Design
- 202006010000 Revamping My Blog
- 202004010000 CodeMash 2020 - Review