Elixir ▷ Max @mxgrn.com · 25/08/2026In the AI era, a good developer's core job is _understanding_ what the AI wrote, down to the details when it matters. Understanding complex systems is a rare skill. It always has been. So demand for good developers isn't going anywhere. If anything, it's going up. 010
Elixir ▷ Max @mxgrn.com · 23/08/2026LLMs do improve the quality and correctness of *my* code, I dunno. 120
Elixir ▷ Max @mxgrn.com · 25/04/2026Presented my solution for integration testing of Telegram bots as a lightning talk at ElixirConf EU. #elixirlang 1112
Elixir ▷ Max @mxgrn.com · 10/03/2026A small TIL for Git lovers: `git merge-base HEAD main` gives you the nearest common commit between the current branch and main. That's the commit where those two parted ways. 2120
Elixir ▷ Max @mxgrn.com · 31/01/2026People have always been wary of computer viruses, and for good reason. Now, we have much smarter non-deterministic (!) systems running our VPSs and laptops, online, with increasing access to other services. What can go wrong? 030
Elixir ▷ Max @mxgrn.com · 23/01/2026So sad that Telegram has a bad reputation in the West. It's *by far* the best UI/UX messenger out there. WhatsApp doesn't even come close (although I love the fact that it runs on the BEAM). 340
Elixir ▷ Max @mxgrn.com · 22/12/2025For as long as I can remember, I thought these were equivalent: 1) if foo, do: bar, else: baz 2) foo && bar || baz Until the day bar was nil. #ElixirLang 1121
Elixir ▷ Max @mxgrn.com · 11/12/2025Whoever designed the Apple Watch Workout app, please leave for Meta. 040
Elixir ▷ Max @mxgrn.com · 10/12/2025My lexicorn.ai just sold its 10th paid subscription. On to the first 100! :)lexicorn.aiLexicorn · Telegram Vocabulary Builder 110
Elixir ▷ Max @mxgrn.com · 24/11/2025I don't know who needs to hear this, but this works in #ElixirLang (new line after :foo is key): if true, do: (:foo :bar) Can you guess what it returns? 440
Elixir ▷ Max @mxgrn.com · 02/11/2025Want a supervised task to finish (not get killed) during rolling #ElixirLang deployments? Simply trap the exit: Task.Supervisor.start_child( MyApp.TaskSupervisor, fn -> Process.flag(:trap_exit, true) do_work() end ) The task will have 5 seconds to finish. 180
Elixir ▷ Max @mxgrn.com · 29/10/2025Just downloaded ChatGPT Atlas, and I must say this direct browser-ChatGPT integration can be very useful. It just walked me through creating a free-form Google Analytics report, which I had no knowledge of. Previously, I'd need to send ChatGPT screenshots of where I was, and it was tedious. 000
Elixir ▷ Max @mxgrn.com · 26/10/2025Are you learning a foreign language by any chance? And what are the odds you use Telegram too? 🤔 I’ve been building a Telegram bot that finally makes vocabulary learning with spaced repetition fun for me, thanks to LLMs. Maybe it will for you, too. Give it a try: t.me/lexicornbot?... 140
Elixir ▷ Max @mxgrn.com · 21/10/2025TIL: If you append /rss to the link of any bsky profile, you'll get, well, an RSS feed. Handy if you really don't want to miss posts from a specific someone. 0258
Elixir ▷ Max @mxgrn.com · 05/10/2025Neovim geeks 🫶 — this helps me debug in #ElixirLang: With the cursor inside a function, :ElixirCopyFuncFqn copies its fully qualified name (FQN) to the clipboard — ready to paste into IEx, local or remote. github.com/mxgrn/dotfil... 290
Elixir ▷ Max @mxgrn.com · 04/10/2025My favorite application of AI? Sharpening my tools. Just vibe-coded this toggle for #ElixirLang maps in Neovim. 050
Elixir ▷ Max @mxgrn.com · 03/10/2025Want to disable all unmocked HTTP calls from Req at once during #ElixirLang tests? Simply add this to test/test_helper.exs: Req.default_options( adapter: fn req -> raise "Unmocked call to #{req.url}" end ) (replace `raise` with a log warning if that's more useful) 0241
Elixir ▷ Max @mxgrn.com · 23/09/2025It's easy to keep nudging the AI until it 'fixes' the tests, and it feels like achieving something, while the value of such tests may be plainly negative. Seeing too many false positives like that lately. 120
Elixir ▷ Max @mxgrn.com · 16/09/2025Isn’t it neat that Elixir’s AST is valid Elixir? What other languages besides Lisp can claim that? 232
Elixir ▷ Max @mxgrn.com · 30/08/2025It's beyond me why Quokka, the awesome Elixir formatter plugin, has so few stars on GitHub, I use it on every project: github.com/emkguts/quokkagithub.comGitHub - emkguts/quokka: A configurable Elixir stylerA configurable Elixir styler. Contribute to emkguts/quokka development by creating an account on GitHub. 3100
Elixir ▷ Max @mxgrn.com · 15/07/2025A very nice, concise, top-level introduction to Elixir and BEAM. Share it with anyone who's willing to understand why you're so lucky to work with the tech. youtu.be/_5B_B_IgtAgyoutu.bePractical Arguments for Erlang / Elixir - Shawn McCoolYouTube video by Shawn McCool 0154
Elixir ▷ Max @mxgrn.com · 23/06/2025I never miss a talk by Evan Czaplicki, and a fresh one just dropped: www.youtube.com/watch?v=YPAa...youtube.comKeynote: Rethinking our Adoption Strategy - Evan Czaplicki | Lambda Days 2025YouTube video by Code Sync 1246
Elixir ▷ Max @mxgrn.com · 17/05/2025Just something to casually mention to your next non-Elixir developer friend. 030
Elixir ▷ Max @mxgrn.com · 15/05/2025Me: What's your current favorite escape hatch when LiveView doesn't quite cut it? Chris McCord: Web components with Lit. #ElixirConfEU 0120
Elixir ▷ Max @mxgrn.com · 16/03/2025When to name your #ElixirLang function with a bang? Only if the function is *expected* to throw errors during normal execution. Do not simply 'inherit' bangs from what’s inside that function (`Repo.update!`) if those exceptions would signal a bug (that is, should never happen). 3264
Elixir ▷ Max @mxgrn.com · 15/03/2025AI won’t create anything fancy on its own. But it’s great at producing building blocks, with which you, human, can build the fancy. 160
Elixir ▷ Max @mxgrn.com · 15/03/2025Just published my first Hex package—one that no one else should even consider using. It was simply the easiest way to get its documentation into Dash. Am I doing it wrong? #ElixirLang 070
Elixir ▷ Max @mxgrn.com · 06/02/2025Hey @sasajuric.bsky.social, I would be very curious to hear about your experience teaching programming to non-developers. Would you consider bringing this up in your next interview or doing a conference talk about it? 240
Elixir ▷ Max @mxgrn.com · 06/02/2025Hey @peterullrich.com, in the context of programming, would you say that the effort-to-result ratio of writing blog posts is better than that of creating videos? 160
Elixir ▷ Max @mxgrn.com · 27/01/2025TIL: You can define fetch/2 in your struct-defining module and have it return anything you want for the [] operator: #ElixirLang 2171
Elixir ▷ Max @mxgrn.com · 27/12/2024Today is the day I, too, moved to Ghostty. Big thanks Alacritty, you’ve been a blast! Feel free to discover a cool trick or two from those I've collected in the last few hours: github.com/mxgrn/dotfil... 1150
Elixir ▷ Max @mxgrn.com · 26/12/2024#elixirlang and #neovim users, You're probably already using the vim-surround plugin. The following config line will allow you to press % in visual mode to wrap the selection in %{}: let g:surround_37 = "%{\r}" It's useful for converting keyword lists to maps, for example. 0182
Elixir ▷ Max @mxgrn.com · 25/12/2024Quick Neovim pro tip: Say, you’re adding a keymap and are torn between using a leader/space as a prefix or <C-somekey>. Choose Ctrl when pressing this combination repeatedly would make sense, such as for actions like moving around. Choose a prefix for stand-alone actions, like firing a command. 2121
Elixir ▷ Max @mxgrn.com · 09/12/2024Poor man's audit log for Postgres tables. Pure SQL, no Elixir required. Time-to-shelf: 1 minute. Run the final part for each table you want to audit. Use Postico as the UI. gist.github.com/mxgrn/9900c2... 192
Elixir ▷ Max @mxgrn.com · 07/12/2024Could you recommend an #ElixirLang library for tracking changes in the database, such as for audit purposes? I need it to work with Postgres and Ecto. 381
Elixir ▷ Max @mxgrn.com · 29/11/2024macOS lovers, just wanted to share a quick list of apps that, after trying a bunch of alternatives, I personally use daily — and absolutely adore: github.com/mxgrn/best-o... 1100
Elixir ▷ Max @mxgrn.com · 27/11/2024I no longer understand why merge commits are so demonized. If every commit is meaningful, why squash? If a PR contains multiple meaningful commits and rebasing guarantees multiple merge conflicts, why rebase? Just merge. Bonus: it preserves the exact history of changes. 220
Elixir ▷ Max @mxgrn.com · 26/11/2024TIL: You can put a LiveComponent *outside* of a LiveView render (e.g., in app.html.heex), and it will behave as a child of the currently mounted LiveView. Confusing. Fascinating. #ElixirLang. 180
Elixir ▷ Max @mxgrn.com · 25/11/2024A new talk by Saša Jurić, Against the Grain, has just been released on YouTube: www.youtube.com/watch?v=s6c4... Are you as excited as I am? #ElixirLangyoutube.comAgainst the Grain - Saša Jurić | Code BEAM America 2024YouTube video by Code Sync 1132
Reposted by Elixir ▷ MaxCarter Bryden 🇨🇦 @carterbryden.com · 24/11/2024If Elon was actually funny, he'd make a bluesky account and post "I'm sure you're all wondering why I've gathered you here" 072
Elixir ▷ Max @mxgrn.com · 21/11/2024Do I even need to "provide value" to gain followers on Bluesky this quickly? 🤔 210
Elixir ▷ Max @mxgrn.com · 19/11/2024TIL: When writing #ElixirLang tests, don’t rely on alphanumeric sorting in Postgres to be consistent. 020
Elixir ▷ Max @mxgrn.com · 13/11/2024Today, I joined @tylerayoung.com and other amazing engineers at jumpapp.com! Excited to tackle new challenges with Elixir 🚀 5191
Elixir ▷ Max @mxgrn.com · 11/11/2024You may know that `Phoenix.LiveView.mount/3` is called 2 times during the life-cycle of a LiveView: at its initial HTML render, and after client connects to server. I just realized it's also called from 2 different processes. The second process is actually spawned on client connecting to server. 3100