Hear me out: developers cannot and should not solve big problems. Every time they try to mastermind some brilliant solution to a complex quandary, the endeavor collapses, crushing the sanity of those poor souls who must interpret and maintain the code.

It’s like watching a toddler try to shove too much sandwich into their little mouths: most of it ends up on their face or on the floor and it’s left to the responsible adults to do the messy cleanup.

The thing that developers need to do very well is divide and conquer. They must be adept at breaking up…

The last article I wrote about Dotenvy didn’t leave much room for demonstrating specific use-cases. So in this article I wanted to take one on: using Dotenvy with Elixir releases.

When you create an Elixir release, you create a self-contained directory that consists of your application code, all of its dependencies, plus the whole Erlang Virtual Machine (VM) and runtime. Releases are frequently used when you are deploying production code to a server. The trick is ensuring that they can still read the configuration on the environment where they are running (and not from the environment where they were built).

Elixir makes it crazy easy to document your code. Documentation really is a first class citizen in Elixir-land: just add your @moduledoc or @doc blocks and you’re on your way. You can even test the examples in your documentation to verify that they are accurate: no bad examples allowed! Add the ex_doc package and then running mix docs will generate beautifully formatted HTML pages (or an epub eBook) all about your app. I have not once felt the need to scratch out some add-on readthedocs.org-esque solution when the native documentation was already so presentable.

Add beautiful Mermaid Charts to your Elixir Docs!

Except for charts. Because OTP applications…

The last meandering text exchange I had with my father took a surreal turn when he interjected “there’s a tornado warning now. I can see it.” The thread went eerily silent, but after a tense hour, he sent me this photo:

Tornado roping out over Weld County, Colorado

Having grown up in the most tornado-prone county in the United States, I videotaped my first tornado on a bulky VHS camcorder for a Denver TV station when I was 12. In graduate school in Kansas, I photographed a twister for the Lawrence Journal World as it neared town, and I witnessed a handful of others left unphotographed from…

This is one of the phrases I find myself perpetually muttering because it is so patently true. I gained newfound respect for one of the titans of software development, Martin Fowler, when I rediscovered his famous quote:

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

There are so many things about writing code that I wish someone had told me when I was coming up through the trenches. Maybe they tried, and maybe the words were lost on my youthful arrogance or my ears had not yet…

This is not a post about how you can make passive income as a developer while you sleep, or a listicle about the 10 best Python packages you simply must incorporate into your project to find dev-nirvana. This is just a fun little shout out to some old technology that lets you turn regular text into giant ASCII streams of text, like this:

The awesome power of Figlets

This is cool the way that tractor-feed dot matrix printers were cool. It’s an homage to the nerds on whose shoulders we all stand. I like this kind of thing the same way some people like art…

As you have seen from the tweets, newsletters, and banner ads, the annual StackOverflow developer survey is coming up soon. I’m sure you are as excited for it as I am, as our developer communities are rivals and have been for some time. Your confidence in your technology is high, but rest assured, you will suffer humiliation when the programming language I prefer outranks the programming language you prefer.

On numerous occasions, you have expressed the conviction that your programming language will be victorious. Every time I hear you make this proclamation, I shake my head in disbelief. “Ha!” I…

Bad documentation can send me into a ranting tailspin because it wastes inconceivable amounts of time, costs real money, and makes us developers unproductive and miserable. Documentation might be bad because it is flat-out wrong (typos, references to an older version, etc.), but more often documentation is bad when it fails to tell us what we need to know. You will see that this is not entirely subjective.

What Documentation Requires

It’s an insidiously simple question, but there seems to be no “official” agreement on what constitutes required fare when it comes to writing documentation. It’s no wonder our software is unusable! …

I don’t know what happened to LinkedIn. I used to get maybe a handful of messages from recruiters every month, but now I have days where I get dozens of inquiries. Then again, LinkedIn used to be all about professional networking and now I’m just as likely to see it used to propagate baseless political narratives. Delusional former coworkers may be a lost cause, but recruiters could save us all some time if they could make a few simple adjustments to their messages. …

If you have been fortunate enough to have written Elixir code, then you can understand its appeal: the straightforward beauty of functional programming, the ubiquitous ease of pattern matching, built-in testing and documentation, and all delivered with an elegant syntax that makes it a joy to work with.

However, one of most confusing things about Elixir applications is ironically one of the most fundamental: configuration. Because Elixir offers runtime flexibility like dynamic dispatching and duck typing, it can be easy to forget the nuances that exist because it is a compiled language, and compilation can make configuration more difficult.


Everett Griffiths

Code person.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store