Hey there! I hope everyone has had a great past six months. Life comes at you fast and when the weather got warm I found it harder to keep the routine of writing every week. It’s getting cold again, I’m back in my coffee shop, and will still be aspirationally calling this series “weekly” to try and keep myself motivated to write.

Anyways, I’ve got less than I expected saved up in my Pinboard, but it’s enough for a Weekly, so let’s get to it!

Learning in Software

  • Doing is normally distributed, learning is log-normal (Andrew Quinn): An attempt to answer “why is estimation so hard in software engineering”? The insight that any substantial task probably requires some time to stop and learn something new made a lot of sense to me.
  • Confusion is a muse (Phil Eaton): Be curious! This feels kind of like a corrolary to the Andrew’s post. Stopping to learn might slow you down in finishing a task, but it’s going to pay dividends for the rest of your career.

Programming Languages

Scaling Systems

  • The Practical Guide to Scaling Django: I couldn’t agree more with the framing of this article — “Real scaling isn’t about handling hypothetical millions of users - it’s about systematically eliminating bottlenecks as you grow.” I’ve spent my fair share of time scaling Django, and this blog post would have been invaluable. While its examples are Django-based, its lessons really apply to most database-backed web apps.
  • Heroku on two standard dynos? (Brandur): Discussions around effeciency among different programming languages often gets reduced to raw speed of code execution, but your runtime bottlenecks will often lay in the I/O operations you have to do. This post was a good reminder of how important memory efficiency and concurrency support can be in determining your system requirements.
Liked this post? Get future weekly posts in your inbox!

Powered by Buttondown.