I maintain 50+ open source repositories. Every one has documentation, tests, examples, and clear architecture.
People ask: “Why spend so much time on free software when you have stage 4 cancer?”
The question misunderstands what I’m doing. This isn’t charity. It’s value imprinting at scale.
First: Reproducible Science
Science requires reproducibility. If you publish computational results without releasing code, you’ve made unverifiable claims.
Every paper I publish includes:
- Open source implementation
- Documented dependencies
- Reproducible examples
- Test suites
- Clear installation instructions
This isn’t optional. It’s methodological rigor.
When someone reads my reliability analysis paper and wants to verify my results, they can:
- Clone the repo
- Install dependencies
- Run the code
- Reproduce the figures
That’s how science should work.
Second: Continuability
With stage 4 cancer, I think explicitly: what if I’m not here to maintain this?
For work to be continuable:
Clear architecture: Someone else must understand design decisions
Comprehensive docs: Explain not just what but why
Test suites: Demonstrate usage and validate correctness
Clean dependencies: No fragile, undocumented requirements
Examples: Show intent through working code
Open license: Remove legal barriers to continuation
I’m not building for myself. I’m building for whoever comes next.
Third: Value Imprinting
Code embodies values. Every API decision reflects beliefs:
- What should be easy vs. hard?
- What should be explicit vs. implicit?
- What should be safe by default?
- What complexity is worth exposing?
My libraries encode:
- Transparency over magic: No hidden behavior
- Composition over monoliths: Small pieces, flexibly combined
- Clarity over cleverness: Obvious beats impressive
- Safety by default: The easy path is the safe path
These values propagate. Someone uses my library → internalizes its principles → applies them elsewhere.
Code is how values scale beyond individual lifetimes.
Fourth: Usefulness to Others
I’ve benefited enormously from open source:
- Libraries that solved problems I couldn’t
- Documentation that taught me techniques
- Examples that clarified concepts
- Tools that accelerated my research
Contributing back isn’t obligation—it’s participating in a gift economy.
When you solve a problem well and publish it, thousands don’t have to solve it again. That’s massive leverage.
Fifth: Aesthetic Satisfaction
Well-crafted code is intrinsically beautiful:
- Clean abstractions that feel inevitable
- APIs that make complex operations simple
- Documentation explaining why not just what
- Tests that serve as executable specifications
- Code structured for human comprehension
I maintain libraries obsessively because craftsmanship is rewarding.
The cancer doesn’t change this. If anything, it intensifies it—do work worth doing while you can.
Why “Comprehensive”?
Why not just throw code over the wall?
Because incomplete open source often wastes more time than it saves:
- Undocumented code: Users spend hours figuring out what you could have explained in minutes
- Untested code: Breaks in production, creates technical debt
- Unclear dependencies: Installation becomes archaeological excavation
- No examples: Users can’t tell if they’re using it correctly
- Ambiguous licensing: Legal uncertainty blocks adoption
Comprehensive open source respects users’ time.
When I publish:
- Installation works first try
- Examples run without modification
- API is documented with clear examples
- Tests demonstrate usage patterns
- Architecture is explained
- License is unambiguous
- Dependencies are specified
- Contribution guidelines are clear
This takes effort. But it’s the difference between publishing code and publishing tools.
The Cost
Comprehensive open source is expensive:
Time: Documenting takes longer than coding Energy: Examples and tests require effort Focus: Polish competes with new features
But these costs buy:
- Reproducibility (scientific rigor)
- Continuability (legacy beyond yourself)
- Usefulness (others can actually use it)
- Value propagation (principles spread)
- Quality (craftsmanship matters)
For work I want to outlive me, this is the right tradeoff.
Stage 4 Changes the Calculation
With uncertain time horizons:
Every project gets filtered: “If this is my last contribution to this domain, is it worth it?”
Documentation becomes critical: I might not be here to explain
Completeness matters more: Half-finished work helps no one
Open source is essential: Proprietary work dies with me
Cancer doesn’t make me publish less. It makes me publish more carefully.
Examples From My Work
Statistical libraries in R: Every function documented with mathematical background, examples, and tests. Someone can pick this up and understand both the code and the theory.
Cryptographic tools: Type systems enforce security properties. Documentation explains threat models. Tests demonstrate correct usage. Someone can audit and continue this work.
Network analysis code: Abstracts over graph representations. Works on any structure satisfying the graph interface. Examples show how to extend it. Someone can build on this foundation.
All structured for continuation without me.
The Long View
Well-documented, clearly-architected, thoroughly-tested open source has staying power.
Someone in 2030 might use a library I published in 2024—if it’s:
- Well-designed enough to remain relevant
- Well-documented enough to understand
- Well-tested enough to trust
- Well-licensed enough to modify
That’s the goal: work that remains useful after I’m gone.
What This Means Practically
Every commit I make asks:
- Is this design decision explained?
- Are the tests comprehensive?
- Is the documentation current?
- Can someone else continue this?
- Does this encode the values I want to propagate?
This discipline is expensive. But legacy is about what persists, not what’s easiest.
The Paradox
Cancer gives you less time but clarifies what that time is for.
I’m more productive now than before diagnosis. Not because I work longer hours (I don’t—treatment limits that).
Because I waste less time on things that don’t matter:
- Code without docs? Not worth publishing
- Projects I’ll abandon? Don’t start them
- Work I can’t explain? Figure it out or skip it
- Tools no one can use? Not worth building
The filter is simple: will this remain useful and usable after I’m gone?
Most things fail that test. The few that pass get everything I have.
Open Source as Archive
My comprehensive open source work is fundamentally an archival project:
- Document my reasoning
- Encode my values
- Share my tools
- Make my work reproducible
- Enable continuation
Not memorial. Functional archive.
If someone in 2030 wants to:
- Reproduce my reliability analysis results
- Understand my cryptographic designs
- Build on my network analysis methods
- Continue my statistical computing work
They can. The code exists. The documentation explains it. The tests validate it. The license permits it.
That’s what I’m building toward.
For Other Researchers
If you’re doing computational work:
Publish your code. Not someday. Now.
Document it properly. Explain why, not just what.
Test it thoroughly. Tests are specification and validation.
License it clearly. MIT or Apache 2.0 removes barriers.
Make it reproducible. Someone should be able to run your code and get your results.
This isn’t extra work. It’s the minimum standard for computational science.
The Bottom Line
I build comprehensively in open source because:
- Science demands reproducibility
- Legacy requires continuability
- Values propagate through code
- Others benefit from shared tools
- Craftsmanship is intrinsically rewarding
- Cancer makes priorities clear
Every repository is an attempt to build something that outlasts me.
Not for immortality. For usefulness.
Check the repos. Every commit encodes: this is how I think problems should be solved.
Discussion