/Austin Henley

Optimizing A Bignum Library For Fun tl;dr: I'm down a rabbit hole of learning how bignums work. In this post, I improve how the numbers are stored, implement a faster multiplication algorithm, and benchmark the time improvements.

featured in #533


The Pain Points Of Building A Copilot tl;dr: What are the pain points, and what are the opportunities for tools. ”We conducted semi-structured interviews with 26 developers from a variety of companies that are working on copilots. We analyzed their responses to identify themes. Then we conducted two focus group sessions with tool builders that involved reviewing our interview findings and brainstorming possible solutions.” Austin shares the results here. 

featured in #486


Stopping At 90% tl;dr: It’s common to stop at 90% of a project’s completion since the project has concrete deliverables that can be measured. The remaining 10% is more difficult to track. Austin discusses common activities to get from 90% to 100%: (1) Present the work to other teams. (2) Broadcast an email with the takeaways so that the rest of your organization knows about it. (3) Put the code somewhere that your coworkers can make use of later. (4) Write a blog post about it. Post it on Twitter, HN, and Reddit. (5) Sketch out a next-steps document, even if you have no plans to continue, that explains what you would do next and why. (6) Look for adjacent projects that could benefit. (7) Find someone that can poke holes in your work, then go address them.

featured in #436


My First Superoptimizer tl;dr: Austin builds a superoptimizer, a tool that finds the optimal code for any given code snippet. “It generates every possible permutation of code instructions and tests each generated program for equivalence to the original program.”

featured in #419


The Future Of Programming: Research At CHI 2023 tl;dr: “The esteemed CHI conference is happening this week, and I'm jealous that I can't be there. Instead, I'm going through the proceedings and reading all of the papers related to programming, of which many involve AI.”  

featured in #410


Challenging Algorithms And Data Structures Every Programmer Should Try tl;dr: "Not only have they come up during job interviews, but learning them changed how I think about problems." Austin's explains the following algorithms and data structures: (1) Topological sort. (2) Recursive descent parsing. (3) Myers string difference. (4) Bloom filter. (5) Piece table. (6) Splay tree.

featured in #376


Learning HTML Was Too Hard So I Made A Compiler Instead tl;dr: "I was struggling to learn how to design web pages with HTML in 5th grade so I set off to make my own language. Yep. But that meant I first had to learn how to code and then learn how to make a compiler. It took about 10 years! Fun ensues."

featured in #330


The Project With A Single 11,000-line Code File tl;dr: "Something I found hilarious is that a variable might be used on lines 200-210 and then again on line 8544. No where else."

featured in #305


"This Project Will Only Take 2 Hours" tl;dr: "Whenever I think something is extremely simple, I walk through it step by step to uncover the complexities, design decisions, use cases, and potential features that I missed." Austin gives an example, here.

featured in #268


When Users Never Use The Features They Asked For tl;dr: Austin concludes his story with what he learnt as a product minded engineer, including: (1) Always keep your users in the loop. Do not go build in isolation. (2) Don't underestimate engineering challenges that you have an external view of. (3) Voice your concerns to your team regularly and often. They might be to solve them far more quickly or identify a future roadblock. And more.

featured in #256