<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Zarar&apos;s blog</title><description>Elixir, AI-assisted engineering and the system around the code.</description><link>https://zarar.dev/</link><item><title>The system around the code</title><link>https://zarar.dev/the-system-around-the-code/</link><guid isPermaLink="true">https://zarar.dev/the-system-around-the-code/</guid><description>You&apos;ve seen the demos. Someone spent an afternoon romancing Claude and built the thing the business has been asking about for years. Everyone is impressed and can feel the possibilities unlock, looks are exchanged, this feels like a game-changer and that we&apos;re now living in a […]</description><pubDate>Fri, 02 Oct 2026 15:34:00 GMT</pubDate></item><item><title>Just learned the NOT VALID keyword</title><link>https://zarar.dev/just-learned-the-not-valid-keyword/</link><guid isPermaLink="true">https://zarar.dev/just-learned-the-not-valid-keyword/</guid><description>After decades of working with databases I didn&apos;t know that NOT VALID was a thing:</description><pubDate>Thu, 24 Sep 2026 11:34:00 GMT</pubDate></item><item><title>Jump Design Improvements</title><link>https://zarar.dev/jump-design-improvements/</link><guid isPermaLink="true">https://zarar.dev/jump-design-improvements/</guid><description>Started a blog over at jumpcomedy.com and the first post tackled improvements that were made to reduce customer support emails.</description><pubDate>Mon, 07 Sep 2026 23:38:00 GMT</pubDate></item><item><title>Replacing prompts with loops: an example</title><link>https://zarar.dev/replacing-prompts-with-loops-an-example/</link><guid isPermaLink="true">https://zarar.dev/replacing-prompts-with-loops-an-example/</guid><description>Claude Code creator Boris Cherny made a bit of a stir when he said:</description><pubDate>Fri, 04 Sep 2026 21:08:00 GMT</pubDate></item><item><title>Speeding up Elixir test suites</title><link>https://zarar.dev/speeding-up-elixir-test-suites/</link><guid isPermaLink="true">https://zarar.dev/speeding-up-elixir-test-suites/</guid><description>Last week I took our Elixir/Phoenix suite (13,000 tests, 940 files) from 313 seconds to 64 seconds. Below is what was done with most impactful listed first. These are Elixir specific but I think the learnings apply to non-Elixir stacks. Your mileage will vary.</description><pubDate>Wed, 02 Sep 2026 06:10:00 GMT</pubDate></item><item><title>How LLMs Figure Out What You Mean - No Math Degree Required</title><link>https://zarar.dev/how-ai-figures-out-what-you-mean-no-math-required/</link><guid isPermaLink="true">https://zarar.dev/how-ai-figures-out-what-you-mean-no-math-required/</guid><description>When you type a sentence into an AI, how does it figure out what you mean? In &quot;Do lions roar?&quot;, how does it know that &quot;roar&quot; goes with &quot;lions&quot; and not with &quot;Do&quot;?</description><pubDate>Fri, 03 Jul 2026 00:06:00 GMT</pubDate></item><item><title>Anthropic&apos;s Steganography Controversy Explained in Non-Technical Terms</title><link>https://zarar.dev/anthropics-steganography-controversy-explained-in-non-technical-terms/</link><guid isPermaLink="true">https://zarar.dev/anthropics-steganography-controversy-explained-in-non-technical-terms/</guid><description>You may have heard that Anthropic was caught doing something sneaky which I want to explain without any of the technical stuff because the lesson is for everyone, especially if you&apos;re paying for AI tools or deciding whether your team should use them.</description><pubDate>Wed, 01 Jul 2026 16:24:00 GMT</pubDate></item><item><title>Enforcing Invariants in AI-Generated Code with ADRs and Contracts</title><link>https://zarar.dev/enforcing-invariants-in-ai-generated-code-with-adrs-and-contracts/</link><guid isPermaLink="true">https://zarar.dev/enforcing-invariants-in-ai-generated-code-with-adrs-and-contracts/</guid><description>I had earlier written about using Hooks to enforce certain rules in AI-generated code. The idea was to use deterministic checks rather than prose-based guidance which can&apos;t be enforced at time of generation. A hook here is just a script that runs at a point in the agent&apos;s […]</description><pubDate>Tue, 30 Jun 2026 17:20:00 GMT</pubDate></item><item><title>Four Ways to Plan Agent Work, and When to Switch</title><link>https://zarar.dev/how-much-should-you-plan-before-prompting-an-agent/</link><guid isPermaLink="true">https://zarar.dev/how-much-should-you-plan-before-prompting-an-agent/</guid><description>This post is for developers who want to learn about the different planning approaches to take during agentic software development. This is my experience, and all of this could be wrong, but it does work for me.</description><pubDate>Mon, 22 Jun 2026 18:27:00 GMT</pubDate></item><item><title>Don&apos;t rely on instructions, use Agent Hooks to enforce guardrails</title><link>https://zarar.dev/agent-hooks-deterministic-guardrails-for-ai-generated-code/</link><guid isPermaLink="true">https://zarar.dev/agent-hooks-deterministic-guardrails-for-ai-generated-code/</guid><description>This post is for developers who use AGENTS.md or CLAUDE.md to provide guardrails for agent-generated code, but find that the agent sometimes ignores rules. if you want a deterministic check that will work 100% of the time, read on about agent hooks.</description><pubDate>Sat, 20 Jun 2026 02:35:00 GMT</pubDate></item><item><title>Run a local coding model with pi and LM Studio</title><link>https://zarar.dev/run-a-local-coding-model-with-pi-and-lm-studio/</link><guid isPermaLink="true">https://zarar.dev/run-a-local-coding-model-with-pi-and-lm-studio/</guid><description>This post is for people who generally use Claude, Codex, or Gemini but have heard you can run open-source models locally for free. The goal is to get you set up in no time so you can play around with the power of local models.</description><pubDate>Wed, 17 Jun 2026 16:04:00 GMT</pubDate></item><item><title>I&apos;m done with cross-browser testing</title><link>https://zarar.dev/cross-browser-testing-died-and-nobody-told-us/</link><guid isPermaLink="true">https://zarar.dev/cross-browser-testing-died-and-nobody-told-us/</guid><description>I have completely stopped testing in anything other than Chrome on Mac and it hasn&apos;t affected me at all. I don&apos;t test in Edge, Safari or Firefox and have not encountered any notable issues by not doing so.</description><pubDate>Sat, 23 May 2026 16:04:00 GMT</pubDate></item><item><title>PayPal Has No Undo Button and It Cost Me $687.75</title><link>https://zarar.dev/paypal-has-no-undo-button-and-it-cost-me-68775/</link><guid isPermaLink="true">https://zarar.dev/paypal-has-no-undo-button-and-it-cost-me-68775/</guid><description>AAAAAARRRGGHHH!!!!!!</description><pubDate>Fri, 22 May 2026 19:34:00 GMT</pubDate></item><item><title>God bless AI, I hate AI</title><link>https://zarar.dev/god-bless-ai-i-hate-ai/</link><guid isPermaLink="true">https://zarar.dev/god-bless-ai-i-hate-ai/</guid><description>I had to rewrite an app which used the exchangelib Python library to Go. All was going smooth until I started manual testing and kept getting a 401. It turned out that the asmx Exchange URL was returning a domain which was being hashed during auth checks by the ntlm GO lib. The […]</description><pubDate>Thu, 21 May 2026 22:09:00 GMT</pubDate></item><item><title>Commit-based Progress Report</title><link>https://zarar.dev/commit-based-progress-report/</link><guid isPermaLink="true">https://zarar.dev/commit-based-progress-report/</guid><description>I had to give someone an update on what&apos;s new with the app over the last couple months, what value was added and what, if any, technical improvements were made. Took an agent 2 minutes using a common-sense prompt to produce the below. I asked it to scan git log and based on that […]</description><pubDate>Sun, 29 Mar 2026 20:15:00 GMT</pubDate></item><item><title>Spec-Driven Development: From Vibe Coding to Structured Development</title><link>https://zarar.dev/spec-driven-development-from-vibe-coding-to-structured-development/</link><guid isPermaLink="true">https://zarar.dev/spec-driven-development-from-vibe-coding-to-structured-development/</guid><description>Note: I currently work with a Payments Engineering team and wrote this as we are introducing spec-driven development into our development workflow.</description><pubDate>Wed, 25 Feb 2026 00:46:00 GMT</pubDate></item><item><title>Podcast: New Age Development Workflows</title><link>https://zarar.dev/podcast-new-age-development-workflows/</link><guid isPermaLink="true">https://zarar.dev/podcast-new-age-development-workflows/</guid><description>With Cheezy and Csaba. Topics include:</description><pubDate>Thu, 15 Jan 2026 13:43:00 GMT</pubDate></item><item><title>It&apos;s a Great Time to be a Software Engineer</title><link>https://zarar.dev/its-a-great-time-to-be-a-software-engineer/</link><guid isPermaLink="true">https://zarar.dev/its-a-great-time-to-be-a-software-engineer/</guid><description>Here are some thoughts on AI development based on my experience of the last two years. As with any list, these are in no particular order.</description><pubDate>Wed, 07 Jan 2026 02:00:00 GMT</pubDate></item><item><title>How to Setup a New WordPress Site on Digital Ocean Droplet</title><link>https://zarar.dev/how-to-setup-a-new-wordpress-site-on-digital-ocean-droplet/</link><guid isPermaLink="true">https://zarar.dev/how-to-setup-a-new-wordpress-site-on-digital-ocean-droplet/</guid><description>I had setup a Wordpress site a while back on Digital Ocean using their One-Click Installer. That installer sets it up for exactly one site with no direction on how to add additional sites. Months later I had to setup another one, and after some fiddling around, figured out all […]</description><pubDate>Sun, 04 Jan 2026 18:14:00 GMT</pubDate></item><item><title>Struct Updates Now Require Pattern Matching in Elixir 1.19</title><link>https://zarar.dev/struct-updates-now-require-pattern-matching-in-elixir-119/</link><guid isPermaLink="true">https://zarar.dev/struct-updates-now-require-pattern-matching-in-elixir-119/</guid><description>After upgrading to Elixir 1.19, you might see warnings like this:</description><pubDate>Fri, 02 Jan 2026 17:36:00 GMT</pubDate></item><item><title>Why Regex Serialization Changed in Elixir 1.19/OTP 28</title><link>https://zarar.dev/regex-serialization-has-changes-in-elixir-119-otp-28/</link><guid isPermaLink="true">https://zarar.dev/regex-serialization-has-changes-in-elixir-119-otp-28/</guid><description>When upgrading to Elixir 1.19 with Erlang/OTP 28, the deployment failed with a cryptic error:</description><pubDate>Fri, 02 Jan 2026 03:13:00 GMT</pubDate></item><item><title>Trade-offs in Aggregate Design when implementing CQRS in Elixir</title><link>https://zarar.dev/elixir-cqrs-commanded/</link><guid isPermaLink="true">https://zarar.dev/elixir-cqrs-commanded/</guid><description>Event sourcing with CQRS is a powerful feature, but it presents difficult design decisions which can challenge dogmatic Domain Driven Design theory. Ultimately as with all software engineering trade-offs, the business need dictates whether the complexity is worth it.</description><pubDate>Mon, 29 Dec 2025 16:27:00 GMT</pubDate></item><item><title>Building a Double-Entry Payment System in Elixir</title><link>https://zarar.dev/building-a-double-entry-payment-system-in-elixir/</link><guid isPermaLink="true">https://zarar.dev/building-a-double-entry-payment-system-in-elixir/</guid><description>Multi-tenant platforms which facilitate e-commerce transactions hold people&apos;s money. Getting that money to the right people, in the right amounts, at the right time, is the core trust contract with your partners. This is the most critical and sensitive component in our system as […]</description><pubDate>Sat, 27 Dec 2025 22:16:00 GMT</pubDate></item><item><title>Building Embeddable Widgets with Phoenix Channels</title><link>https://zarar.dev/building-embeddable-widgets-with-phoenix-channels/</link><guid isPermaLink="true">https://zarar.dev/building-embeddable-widgets-with-phoenix-channels/</guid><description>When you&apos;re selling stuff, every click away from your website is a potential lost sale. Customers kept asking us to allow people to buy tickets without leaving their branded site. They loved the service, but wanted to retain brand presence and coherence.</description><pubDate>Wed, 24 Dec 2025 19:03:00 GMT</pubDate></item><item><title>Scope discipline when AI makes building fast</title><link>https://zarar.dev/scope-discipline-when-ai-makes-building-fast/</link><guid isPermaLink="true">https://zarar.dev/scope-discipline-when-ai-makes-building-fast/</guid><description>I needed to show users contextual messages, e.g., banners for announcements, modals for important actions, tours for onboarding. I already use PostHog for analytics and PostHog allows the user to create apps which can provide this functionality while being tightly integrated […]</description><pubDate>Tue, 23 Dec 2025 15:53:00 GMT</pubDate></item><item><title>Embedding-Based Tool Selection for AI Agents</title><link>https://zarar.dev/embedding-based-tool-selection-for-ai-agents/</link><guid isPermaLink="true">https://zarar.dev/embedding-based-tool-selection-for-ai-agents/</guid><description>When I first built our AI assistant, it had five tools. Look up an order. Process a refund. Check ticket availability. Simple stuff. Fast forward six months and we&apos;re at nearly 40 tools spanning orders, events, marketing campaigns, contests, and customer management.</description><pubDate>Sun, 21 Dec 2025 17:35:00 GMT</pubDate></item><item><title>React2Shell serves as good reminder why JavaScript is no fun</title><link>https://zarar.dev/react2shell-serves-as-good-reminder-why-javascript-is-no-fun/</link><guid isPermaLink="true">https://zarar.dev/react2shell-serves-as-good-reminder-why-javascript-is-no-fun/</guid><description>Got this email from Vercel after the JavaScript ecosystem had another moment.</description><pubDate>Sun, 07 Dec 2025 20:47:00 GMT</pubDate></item><item><title>Why are dark deployments a good idea even if no features are being shipped?</title><link>https://zarar.dev/why-are-dark-deployments-a-good-idea-even-if-no-features-are-being-shipped/</link><guid isPermaLink="true">https://zarar.dev/why-are-dark-deployments-a-good-idea-even-if-no-features-are-being-shipped/</guid><pubDate>Wed, 03 Dec 2025 19:29:00 GMT</pubDate></item><item><title>Granting read only access to a Postgres database on DigitalOcean</title><link>https://zarar.dev/granting-read-only-access-to-a-postgres-database-on-digitalocean/</link><guid isPermaLink="true">https://zarar.dev/granting-read-only-access-to-a-postgres-database-on-digitalocean/</guid><description>The docs may say this:</description><pubDate>Mon, 24 Nov 2025 21:02:00 GMT</pubDate></item><item><title>TTC USB Outlets are Already Obsolete</title><link>https://zarar.dev/ttc-usb-outlets-are-already-obsolete/</link><guid isPermaLink="true">https://zarar.dev/ttc-usb-outlets-are-already-obsolete/</guid><description>Making decisions on hardware installations is tricky, because unlike software you can&apos;t just fire over an update. This is why I was very skeptical seven years ago when the TTC&apos;s electric buses started installing USB-A ports (the one everyone&apos;s used to) for charging.</description><pubDate>Sat, 22 Nov 2025 17:50:00 GMT</pubDate></item><item><title>Good riddance to Auth0 and social logins</title><link>https://zarar.dev/good-riddance-to-social-logins/</link><guid isPermaLink="true">https://zarar.dev/good-riddance-to-social-logins/</guid><description>Three months ago I got rid of social logins, fired Auth0 and made the decision to use Magic Links (easy in Phoenix - hello mix phx.gen.auth).</description><pubDate>Fri, 21 Nov 2025 16:35:00 GMT</pubDate></item><item><title>Has AI made the Agile Manifesto obsolete?</title><link>https://zarar.dev/has-ai-made-the-agile-manifesto-obsolete/</link><guid isPermaLink="true">https://zarar.dev/has-ai-made-the-agile-manifesto-obsolete/</guid><description>Was joined by Cheezy and Csaba to talk how AI doesn&apos;t require you to make the &quot;over&quot; compromises that the agile manifesto expounded. Subscribe to the YouTube channel or find the Continuous Delivery Podcaast wherever you listen to podcasts.</description><pubDate>Fri, 21 Nov 2025 14:26:00 GMT</pubDate></item><item><title>NY Times Fade Text CSS Effect</title><link>https://zarar.dev/ny-times-fade-text-css-effect/</link><guid isPermaLink="true">https://zarar.dev/ny-times-fade-text-css-effect/</guid><description>Example:</description><pubDate>Wed, 19 Nov 2025 18:07:00 GMT</pubDate></item><item><title>Pushing events back to Live View or Live Component from Hooks</title><link>https://zarar.dev/pushing-events-back-to-live-view-or-live-component-from-hooks/</link><guid isPermaLink="true">https://zarar.dev/pushing-events-back-to-live-view-or-live-component-from-hooks/</guid><description>When writing hooks in Phoenix LiveView the pattern of pushing events from the JavaScript hook back to the Live View or Live Component is a little different.</description><pubDate>Wed, 05 Nov 2025 01:34:00 GMT</pubDate></item><item><title>Pass on polymorphic tables</title><link>https://zarar.dev/the-temptation-of-polymorphic-tables/</link><guid isPermaLink="true">https://zarar.dev/the-temptation-of-polymorphic-tables/</guid><description>A decision I often have to make when designing databases is whether to create a polymorphic table or not. Let me give an example. I have:</description><pubDate>Fri, 31 Oct 2025 18:59:00 GMT</pubDate></item><item><title>Stop Worrying and Love the Bomb</title><link>https://zarar.dev/stop-worrying-and-love-the-bomb/</link><guid isPermaLink="true">https://zarar.dev/stop-worrying-and-love-the-bomb/</guid><description>A variant of this comment on HN is something I&apos;ve heard too often:</description><pubDate>Sat, 11 Oct 2025 14:27:00 GMT</pubDate></item><item><title>Everything that&apos;s wrong with Google Search in one image</title><link>https://zarar.dev/everything-thats-wrong-with-google--search-in-one-image/</link><guid isPermaLink="true">https://zarar.dev/everything-thats-wrong-with-google--search-in-one-image/</guid><description>I typed in Midjourney to search for Midjourney because I wanted to use Midjourney. Here&apos;s what I got instead. It&apos;s the fifth result down on the page. So if you want to rank high on Google, not only do you need to build a great product to have enough backlinks but also pay Google […]</description><pubDate>Wed, 24 Sep 2025 22:05:00 GMT</pubDate></item><item><title>Iqbal on the West</title><link>https://zarar.dev/iqbal-on-the-west/</link><guid isPermaLink="true">https://zarar.dev/iqbal-on-the-west/</guid><description>Whenever my dad throws out a poetic verse, chances are it&apos;s going to be from Iqbal. This one right here is one of my favourites as it directly confronts the rampant materialism of the West, and calls it out as a mirage that will crumble. Here&apos;s the original.</description><pubDate>Thu, 11 Sep 2025 16:54:00 GMT</pubDate></item><item><title>The Other Girl in Red</title><link>https://zarar.dev/the-other-girl-in-red/</link><guid isPermaLink="true">https://zarar.dev/the-other-girl-in-red/</guid><description>I watched Schindlers List on February 23, 1997 when NBC aired the film uninterrupted and commercial-free, a rare event in network television. I remember being motionless as the final credits rolled—Holocaust survivors honouring Oscar Schindler&apos;s resting place with flowers, as […]</description><pubDate>Tue, 20 May 2025 20:20:00 GMT</pubDate></item><item><title>I&apos;m rejuvenated by the Elixir EU Conference</title><link>https://zarar.dev/im-rejuvenated-by-the-elixir-eu-conference/</link><guid isPermaLink="true">https://zarar.dev/im-rejuvenated-by-the-elixir-eu-conference/</guid><description>Finished my first ever Elixir conference and it feels great for three reasons:</description><pubDate>Fri, 16 May 2025 20:00:00 GMT</pubDate></item><item><title>Getting Kanban Right (podcast with Fernando Cuenca)</title><link>https://zarar.dev/getting-kanban-right-podcast-with-fernando-cuenca/</link><guid isPermaLink="true">https://zarar.dev/getting-kanban-right-podcast-with-fernando-cuenca/</guid><description>Had a chance to dive keep into Kanban with Fernando Cuenca for the Continuous Delivery Podcast, check it out there:</description><pubDate>Tue, 04 Feb 2025 18:31:00 GMT</pubDate></item><item><title>How RTO Created the Strongest Team Building Exercise Ever</title><link>https://zarar.dev/new-post-new-new-new/</link><guid isPermaLink="true">https://zarar.dev/new-post-new-new-new/</guid><description>When companies announced their return-to-office mandates, they promised enhanced collaboration, stronger team bonds, and improved company culture. In one Bangalore tech company, they got exactly what they wished for – just not quite how they imagined it.</description><pubDate>Sat, 18 Jan 2025 06:29:00 GMT</pubDate></item><item><title>No Lie Logs</title><link>https://zarar.dev/no-lie-logs/</link><guid isPermaLink="true">https://zarar.dev/no-lie-logs/</guid><description>My new year&apos;s resolution is that I want better alerts. I&apos;m using Better Stack for log storage and want to live in a world where every time there&apos;s a worthy error, I get pinged. I only want the word &quot;error&quot; to appear in the logs if it&apos;s actually something that needs attention. So […]</description><pubDate>Wed, 25 Dec 2024 01:46:00 GMT</pubDate></item><item><title>Penny Game Debrief</title><link>https://zarar.dev/penny-game-debrief/</link><guid isPermaLink="true">https://zarar.dev/penny-game-debrief/</guid><description>This is a debrief of the popular penny game which demonstrates flow. The questions a facilitator can ask during a debrief are varied. Some examples are below:</description><pubDate>Wed, 18 Dec 2024 14:17:00 GMT</pubDate></item><item><title>Painless widget development using Web Components</title><link>https://zarar.dev/web-components-make-widget-development-much-easier/</link><guid isPermaLink="true">https://zarar.dev/web-components-make-widget-development-much-easier/</guid><description>I&apos;ve been trying to find a good solution for having responsive widgets which people can use to embed show listings, sign-up forms and the like on their websites, and have finally come to a good solution: Web Components (with Stencil to make things easier). It&apos;s got an acceptable […]</description><pubDate>Wed, 04 Dec 2024 14:46:00 GMT</pubDate></item><item><title>DORA: AI boosting productivity, hindering delivery</title><link>https://zarar.dev/dora-ai-boosting-productivity-hindering-delivery/</link><guid isPermaLink="true">https://zarar.dev/dora-ai-boosting-productivity-hindering-delivery/</guid><description>The new DORA report got released and has 30 pages dedicated to AI adoption. One particular finding stuck out to me: an increase in AI adoption was correlated with an increase in code quality, quicker code reviews, decrease in code complexity, decrease in technical debt and […]</description><pubDate>Thu, 21 Nov 2024 15:26:00 GMT</pubDate></item><item><title>How I Lost $210 to a Stripe Dispute Despite Proof</title><link>https://zarar.dev/how-i-lost-210-to-a-stripe-dispute-despite-proof/</link><guid isPermaLink="true">https://zarar.dev/how-i-lost-210-to-a-stripe-dispute-despite-proof/</guid><description>Note: This one has an HN thread.</description><pubDate>Tue, 12 Nov 2024 15:01:00 GMT</pubDate></item><item><title>The Wealth Transfer Nobody Talks About</title><link>https://zarar.dev/the-wealth-transfer-nobody-talks-about/</link><guid isPermaLink="true">https://zarar.dev/the-wealth-transfer-nobody-talks-about/</guid><description>American people don’t seem to see what’s right in front of them. In this short post I’ll tackle one glaring phenomenon that gets zero air time from any of the Western media, be it the traditional propagandists like CNN, Fox and MSNBC to the more progressive style of outlets. It […]</description><pubDate>Sun, 10 Nov 2024 22:27:00 GMT</pubDate></item><item><title>Closing the Raptors Republic chapter of my life</title><link>https://zarar.dev/closing-the-raptors-republic-chapter-of-my-life/</link><guid isPermaLink="true">https://zarar.dev/closing-the-raptors-republic-chapter-of-my-life/</guid><description>Raptors Republic was acquired by Better Collective last week marking an end to my involvement with the company I founded in 2008 alongside Sam Holako, Brandon Larabie, Scott Phillips (rest in peace) and Josh Budd.</description><pubDate>Wed, 30 Oct 2024 13:28:00 GMT</pubDate></item><item><title>Working around Postgres forcing DISTINCT fields to also be ORDER BY fields</title><link>https://zarar.dev/working-around-ectopostgres-forcing-a-distinct-clause-to-also-be-the-first-order-by-clause/</link><guid isPermaLink="true">https://zarar.dev/working-around-ectopostgres-forcing-a-distinct-clause-to-also-be-the-first-order-by-clause/</guid><description>I&apos;ve been using Flop for pagination in my Elixir app and learned that anytime a DISTINCT clause is used in Ecto when using Postgres, the columns in the clause are prepended to any ORDER BY clauses in the query. This was causing a lot of problems for Flop since it uses specific […]</description><pubDate>Mon, 21 Oct 2024 20:57:00 GMT</pubDate></item><item><title>Excited about Zero Sync</title><link>https://zarar.dev/excited-about-zero-sync/</link><guid isPermaLink="true">https://zarar.dev/excited-about-zero-sync/</guid><description>I followed the announcement of onestack.dev which is embracing what I think of as the idea of a &quot;complete stack&quot;, a singular project for all your data services, iOS/Android apps, and web. It&apos;s an ambitious project which uses Tamagui for styling and zerosync.dev for data […]</description><pubDate>Sat, 12 Oct 2024 15:09:00 GMT</pubDate></item><item><title>Early thoughts on React Native/Expo decision</title><link>https://zarar.dev/early-thoughts-on-react-native-expo-decision/</link><guid isPermaLink="true">https://zarar.dev/early-thoughts-on-react-native-expo-decision/</guid><description>I have to make an iPhone app for ticket scanning at the door and chose React Native/Expo as the stack. I had implemented this feature on the web using QR Code scanning libraries and things more or less worked fine. The main issues were the camera feeling a little clunky, […]</description><pubDate>Wed, 02 Oct 2024 15:21:00 GMT</pubDate></item><item><title>Good software development habits</title><link>https://zarar.dev/good-software-development-habits/</link><guid isPermaLink="true">https://zarar.dev/good-software-development-habits/</guid><description>Note: This got posted on HN and got some attention.</description><pubDate>Thu, 05 Sep 2024 13:00:00 GMT</pubDate></item><item><title>Symptoms of a System in Stasis</title><link>https://zarar.dev/symptoms-of-a-system-in-stasis/</link><guid isPermaLink="true">https://zarar.dev/symptoms-of-a-system-in-stasis/</guid><description>Here&apos;s an unordered list of symptoms that might indicate more profound issues with an organizational culture - one that&apos;s preventing it from delivering on its true potential.</description><pubDate>Mon, 26 Aug 2024 13:07:00 GMT</pubDate></item><item><title>Tailwind balances abstraction and transparency</title><link>https://zarar.dev/tailwind-balances-abstraction-and-transparency/</link><guid isPermaLink="true">https://zarar.dev/tailwind-balances-abstraction-and-transparency/</guid><description>I remember writing my first CSS file in Dreamweaver (still around) and it blew my mind that I no longer needed to use font, center, b, i, s, u and blink. The idea of separation of concerns between content and design was revolutionary (or at least novel) and thinning out your […]</description><pubDate>Wed, 21 Aug 2024 16:43:00 GMT</pubDate></item><item><title>The anatomy of a 2AM mental breakdown</title><link>https://zarar.dev/anatomy-of-a-mental-breakdown/</link><guid isPermaLink="true">https://zarar.dev/anatomy-of-a-mental-breakdown/</guid><description>Note: this made it on HN somehow.</description><pubDate>Tue, 20 Aug 2024 13:15:00 GMT</pubDate></item><item><title>Take a guess at what this icon in Confluence means</title><link>https://zarar.dev/take-a-guess-at-what-this-icon-in-confluence-means/</link><guid isPermaLink="true">https://zarar.dev/take-a-guess-at-what-this-icon-in-confluence-means/</guid><description>Scroll down for the answer.</description><pubDate>Wed, 14 Aug 2024 13:57:00 GMT</pubDate></item><item><title>Row Embedded Cache: KISS at its finest</title><link>https://zarar.dev/row-embedded-cache/</link><guid isPermaLink="true">https://zarar.dev/row-embedded-cache/</guid><description>Note: Hacker News thread crushing this pattern.</description><pubDate>Thu, 08 Aug 2024 04:03:00 GMT</pubDate></item><item><title>SCQA for Problem Definition</title><link>https://zarar.dev/scqa-problem-definition/</link><guid isPermaLink="true">https://zarar.dev/scqa-problem-definition/</guid><description>This post adapts Barbara Minto&apos;s SCQA to apply to a situation where there is less emphasis on providing specific answers but instead emphasis is given to collaborative problem solving.</description><pubDate>Wed, 07 Aug 2024 04:03:00 GMT</pubDate></item><item><title>Small Batch Thinking in UX Improves Usability and Code Quality</title><link>https://zarar.dev/small-batch-thinking-in-ux-improves-usability-and-code-quality/</link><guid isPermaLink="true">https://zarar.dev/small-batch-thinking-in-ux-improves-usability-and-code-quality/</guid><description>UX is hard but it becomes easier if you eat enough of your own dogfood. For the last few months I&apos;ve had most of my forms look like the one below, i.e., present all the fields for editing and have one big submit button at the bottom:</description><pubDate>Tue, 06 Aug 2024 07:32:00 GMT</pubDate></item><item><title>Prefer optional objects to optional arguments</title><link>https://zarar.dev/prefer-optional-objects-to-optional-arguments/</link><guid isPermaLink="true">https://zarar.dev/prefer-optional-objects-to-optional-arguments/</guid><description>Every time I make a function with this type of signature, I end up regretting it:</description><pubDate>Fri, 02 Aug 2024 16:06:00 GMT</pubDate></item><item><title>Bit by falsy truths again</title><link>https://zarar.dev/bit-by-falsy-truths-again/</link><guid isPermaLink="true">https://zarar.dev/bit-by-falsy-truths-again/</guid><description>Spent about 3 hours figuring out why my PayPal integration wasn&apos;t working. I had followed the directions but still was getting weird responses from PayPal:</description><pubDate>Wed, 24 Jul 2024 17:30:00 GMT</pubDate></item><item><title>Using DORA metrics to coach teams</title><link>https://zarar.dev/using-dora-metrics-to-coach-teams/</link><guid isPermaLink="true">https://zarar.dev/using-dora-metrics-to-coach-teams/</guid><description>Related Hacker News thread.</description><pubDate>Sat, 20 Jul 2024 14:03:00 GMT</pubDate></item><item><title>DeckString</title><link>https://zarar.dev/deckstring/</link><guid isPermaLink="true">https://zarar.dev/deckstring/</guid><description>function createDeck() { const suits = \[&apos;S&apos;, &apos;H&apos;, &apos;D&apos;, &apos;C&apos;\]; const deck = \[\]; for (let suit of suits) { for (let num = 1; num &lt;= 13; num++) { const cardNumber = num.toString().padStart(2, &apos;0&apos;); deck.push(cardNumber + suit); } } return deck; } function shuffleDeck(deck) { for […]</description><pubDate>Fri, 19 Jul 2024 16:33:00 GMT</pubDate></item><item><title>SNRD</title><link>https://zarar.dev/snrd/</link><guid isPermaLink="true">https://zarar.dev/snrd/</guid><description>I paid a TON of money to do an MBA at Rotman. I think of it as an early(ish) mid-life crisis where I had serious FOMO about a formal management education. It turns out that you can learn most of that stuff on YouTube and by reading a few books. However, YouTube won&apos;t give you […]</description><pubDate>Thu, 18 Jul 2024 20:29:00 GMT</pubDate></item><item><title>How Function Sequence in Elixir Can Trip You Up</title><link>https://zarar.dev/elixir-function-definition-sequence-gotcha/</link><guid isPermaLink="true">https://zarar.dev/elixir-function-definition-sequence-gotcha/</guid><description>I&apos;ve been getting into Elixir over the last year and have loved the experience. One thing that has bitten me is the order in which functions are defined. In most language that makes no difference but for languages that use pattern-matching this makes or breaks things, and […]</description><pubDate>Mon, 15 Jul 2024 01:52:00 GMT</pubDate></item><item><title>Time to start from scratch</title><link>https://zarar.dev/time-to-start-from-scratch/</link><guid isPermaLink="true">https://zarar.dev/time-to-start-from-scratch/</guid><description>I&apos;ve been writing on the web since 2001 and liked it when all my stuff used to be on one site: arsenalist.com. That got split into raptorsrepublic.com, depressedprogrammer.wordpress.com, arsenalist.wordpress.com, bitbytebit.substack.com, ijtihad.substack.com, dev.to/arsenalist, […]</description><pubDate>Sat, 13 Jul 2024 21:36:00 GMT</pubDate></item></channel></rss>