Austin Z. Henley
I build tools for people
The blog posts I haven't written (yet)
7/21/2024
It surprises me when I hear people say they want to write more but never know what to write about. I have the opposite problem! Whenever an idea keeps popping into my head, I add it to a note on my phone. Currently, it has over 120 ideas for blog posts that I would like to write someday, though at this rate, I probably won't.
In the essence of working in public, I'm sharing my list, much like I shared my career rejections and my app ideas. The list is unordered and quite vague, but a rough idea is how all my blog posts start. If you'd like me to prioritize writing one soon, please let me know!
- Porting llm.c to Visual Basic
- A deep dive into the Hedy programming language
- Academia vs big tech vs startup
- Lessons my students taught me
- Active documentation
- The projects that taught me programming
- Excel as a general purpose language
- Zero-progress days
- Where is the proactive AI?
- How I write
- My students are smarter than me
- Python's AST package
- Techniques for autograding student code
- How getting lost in code can be beneficial
- You have to express intent somehow
- Making my own web language
- Lessons learned integrating B2B software
- The paradox of self-service products
- Parsing numbers
- Book summaries (series):
- The programmer's brain
- A field guide to understanding human error
- The design of everyday things
- My model of group software projects
- A framework for writing tool papers
- The idea garden
- Reactive vs proactive
- Simulating board games in code
- Parsing for $1 a day
- Advice for new faculty
- "Fostering" innovation
- "Incremental" research
- "Boring" tech
- Looking back at 100 blog posts
- Innovation amongst bureaucracy
- Beyond chat: Pointing, annotating, and interrupting
- Mentoring PhD students
- Bottom-up versus top-down design: Research, products, games
- Timeless programming [projects]
- Grad school or startup?
- Personifying compiler error messages
- Esoteric programming language on top of ChatGPT
- Quiet AI: So good you don't notice it
- 20 small fixes for XCode
- Embed your own DSL into Python
- Laziest compiler ever
- How does Pandas defy Python?
- Writing is thinking is procrastinating
- Undo redo literature review
- The economics of being a professor, time and money
- Personal GUI tools, a response
- Revolutionizing the code editor, one micro step at a time
- Why we will fail: A pre-mortem exercise
- Using nudges to accelerate code reviews at scale
- The evolution of type hints in Python
- Gulfs of programming environments
- My oversimplified guide to technical writing
- The pendulum between innovation and execution
- Learn to be a user researcher in 5 minutes
- The imagination gap
- Premature commitment
- Why can't I code in Excel like this?
- Copilot for code golf
- Is user error a myth?
- Explain it like I'm 5: Program synthesis
- Self-explanation literature review
- 30 days to make $1 from a product
- The future of programming by example
- Storytelling in academic papers
- Industry job search as an academic
- Talking to software engineers
- Why is documentation so hard?
- A tale of three todo list apps
- Are we inventing on principle yet?
- Git has usability problems
- The value of "it just works"
- Every possible limitation of programmer user studies
- Resilience engineering the classroom
- Programming pitfalls we all hit eventually
- The challenges of studying COBOL programmers
- The four levels of research prototypes
- Usability problems with Copilot
- A gentle introduction to type systems
- Lessons from teaching software engineering
- The best code editor features in the last 10 years
- Software engineering versus software engineering research
- A dream job: Skunkworks
- A dream job: Teaching
- Strategies for prototyping really fast
- Type inference still has usability problems
- My experiment with a everything-explicit language
- The problem I have with software engineering books
- Muscles for coding? Timed repetition of coding exercises
- What to do next on your personal project
- Everything you would ever want to know about random numbers
- Literature review on code navigation
- Let's expand the Teeny Tiny compiler (series):
- Abstract syntax tree
- Type checking
- Functions
- Standard library
- Optimizations
- Error messages
- Unintended consequences in design
- Exploding a recursive descent parser
- Why do I make so many compilers?
- Abstractions on top of C
- Make it real: Add polish to your prototype
- Minimalist learning theory and production bias
- My favorite leetcode problems
- Transferability of PL skills
- Absurd language comparisons (series):
- Swift vs Intel assembly
- OCaml vs Visual Basic
- Zig vs PHP
- Every possible error handling pattern
- Problems I faced learning Rust
- Let's build a teeny database
- Let's build a teeny text editor
- Stories from disgruntled developers
- Exceptions have usability problems
- What I wish undergrads knew about software engineering
- Solo hackathons
- Visuals of game development (series): parallax, particle emitters, camera effects, smoothing functions
- The fun test for game prototypes
- Everything you would ever want to know about modulo
- I over-engineered a bloom filter
- The story of Patchworks
- Breaking the .net runtime
- Making an esoteric language and building something useful with it
- Peeking into CPython (series)