<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dev Environment on Backend Engineering Strategy Tools</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/</link><description>Recent content in Dev Environment on Backend Engineering Strategy Tools</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 04 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/index.xml" rel="self" type="application/rss+xml"/><item><title>Obsidian</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/obsidian/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/obsidian/</guid><description>&lt;p&gt;Obsidian is a local-first Markdown note-taking and knowledge management tool. Notes are plain &lt;code&gt;.md&lt;/code&gt; files in a folder on disk — your vault. No proprietary format, no cloud lock-in, no account required. Open the folder in any text editor and the files are right there.&lt;/p&gt;
&lt;p&gt;The core feature is bidirectional linking: &lt;code&gt;[[note name]]&lt;/code&gt; creates a link between notes, and Obsidian builds a graph of all connections. This makes it useful for capturing ideas that relate to each other — architecture decisions, research, running notes on a project — without forcing a rigid folder hierarchy upfront.&lt;/p&gt;
&lt;p&gt;Plugins extend the core significantly. Community plugins cover daily notes, task management, canvas (spatial note layout), Dataview (query your vault like a database), Git sync, and more.&lt;/p&gt;
&lt;p&gt;For a dev workflow, a common setup is a vault in a Git repository — plain Markdown means diffs are readable, history is useful, and syncing across machines is standard Git push/pull.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://help.obsidian.md/" target="_blank" rel="noopener"
 &gt;Obsidian documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://obsidian.md/plugins" target="_blank" rel="noopener"
 &gt;Obsidian community plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Terminal Multiplexers</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/terminal-multiplexers/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/terminal-multiplexers/</guid><description>&lt;p&gt;This note explores the choice between &lt;code&gt;Zellij&lt;/code&gt; and &lt;code&gt;tmux&lt;/code&gt; for terminal multiplexing.&lt;/p&gt;
&lt;h2 id="why-use-a-terminal-multiplexer"&gt;Why use a terminal multiplexer?
&lt;/h2&gt;&lt;p&gt;Terminal multiplexers allow you to run multiple terminal sessions within a single window, detach from them, and reattach later. This is incredibly useful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Persistent sessions (e.g., long-running processes continue even if your SSH connection drops).&lt;/li&gt;
&lt;li&gt;Organizing multiple tasks (tabs, panes).&lt;/li&gt;
&lt;li&gt;Remote development.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tmux"&gt;Tmux
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/tmux/tmux" target="_blank" rel="noopener"
 &gt;https://github.com/tmux/tmux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; &lt;code&gt;tmux&lt;/code&gt; is a long-standing and extremely powerful terminal multiplexer. It&amp;rsquo;s highly configurable and has a vast user base.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mature and stable.&lt;/li&gt;
&lt;li&gt;Very flexible and customizable.&lt;/li&gt;
&lt;li&gt;Widely adopted, lots of resources and plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configuration can be complex and requires significant effort to set up to personal taste.&lt;/li&gt;
&lt;li&gt;Default keybindings can be arcane.&lt;/li&gt;
&lt;li&gt;Can feel a bit dated in terms of user experience compared to newer alternatives.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="zellij"&gt;Zellij
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://zellij.dev/" target="_blank" rel="noopener"
 &gt;https://zellij.dev/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; &lt;code&gt;Zellij&lt;/code&gt; is a newer, more modern terminal workspace and multiplexer, designed with a focus on good defaults and a more intuitive user experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modern design and user interface.&lt;/li&gt;
&lt;li&gt;Sensible defaults that often require less configuration out of the box.&lt;/li&gt;
&lt;li&gt;Built-in layout management.&lt;/li&gt;
&lt;li&gt;Rust-based, often praised for performance and safety.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Newer, so the ecosystem of plugins and community support is smaller than &lt;code&gt;tmux&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;May not have the sheer depth of customization options available in &lt;code&gt;tmux&lt;/code&gt; (though this is also a pro for simplicity).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="initial-thoughts--direction"&gt;Initial Thoughts / Direction
&lt;/h2&gt;&lt;p&gt;Given the preference for good defaults and minimal tinkering, &lt;code&gt;Zellij&lt;/code&gt; is the stronger contender — modern take on multiplexing without the configuration overhead of &lt;code&gt;tmux&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="current-status"&gt;Current status
&lt;/h2&gt;&lt;p&gt;Not using either. The setup cost hasn&amp;rsquo;t been worth it yet — plain terminal, one thing per tab works fine for now.&lt;/p&gt;
&lt;p&gt;The main argument for multiplexers is session persistence: if your connection drops or terminal closes, the session keeps running server-side. That matters most when SSHing into remote servers and running things interactively. That pattern is largely avoided here in favour of CI/CD pipelines — if something needs to run remotely, it runs in a pipeline, not in a terminal session.&lt;/p&gt;
&lt;p&gt;Working locally with a modern terminal (iTerm2, Wezterm, etc.) that has native tabs and split panes, the marginal gain is genuinely small day-to-day. Rational laziness — the cost-benefit only flips when remote work or session persistence becomes a real part of the workflow.&lt;/p&gt;
&lt;p&gt;Will revisit if that assumption changes.&lt;/p&gt;</description></item><item><title>Terminal Setup Notes (macOS): Kitty → Ghostty Exploration</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/terminal/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/terminal/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using &lt;strong&gt;kitty&lt;/strong&gt; as my main terminal for a while. It&amp;rsquo;s fast, stable, and very capable — but I&amp;rsquo;ve realized I don&amp;rsquo;t actually enjoy tweaking terminal configs or maintaining a highly customized setup.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m exploring simpler alternatives with good defaults.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="current-direction-ghostty"&gt;Current direction: Ghostty
&lt;/h2&gt;&lt;p&gt;Trying out: &lt;strong&gt;Ghostty&lt;/strong&gt;&lt;br&gt;
&lt;a class="link" href="https://ghostty.org/" target="_blank" rel="noopener"
 &gt;https://ghostty.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Why:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clean macOS-native feel&lt;/li&gt;
&lt;li&gt;GPU-accelerated and fast&lt;/li&gt;
&lt;li&gt;Tabs + splits built in&lt;/li&gt;
&lt;li&gt;Designed for sane defaults (low configuration overhead)&lt;/li&gt;
&lt;li&gt;Keyboard-first workflow works well out of the box&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;My only config change:&lt;/strong&gt; Remapped tab switching shortcut (default &lt;code&gt;][&lt;/code&gt; to &lt;code&gt;alt-[/]&lt;/code&gt; for easier access on a Swedish keyboard layout).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Goal:&lt;br&gt;
Less time configuring terminal → more time working.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="why-the-switch"&gt;Why the switch
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simplified setup:&lt;/strong&gt; I found myself spending less time tweaking and more time working.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Perceived responsiveness:&lt;/strong&gt; Both are fast, but Ghostty felt marginally snappier in heavy-usage scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean design:&lt;/strong&gt; The aesthetic and functional minimalism resonated more with my current preferences.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-im-moving-away-from-for-now"&gt;What I&amp;rsquo;m moving away from (for now)
&lt;/h2&gt;&lt;h2 id="kitty"&gt;kitty
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://sw.kovidgoyal.net/kitty/" target="_blank" rel="noopener"
 &gt;https://sw.kovidgoyal.net/kitty/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What I liked:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Very fast, GPU-accelerated rendering&lt;/li&gt;
&lt;li&gt;Highly configurable via a single &lt;code&gt;kitty.conf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Excellent font rendering — ligatures, custom fonts&lt;/li&gt;
&lt;li&gt;Extensible with Kitten modules (tabs, scrollback, multiplexing)&lt;/li&gt;
&lt;li&gt;Stable and mature&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why I&amp;rsquo;m moving on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Too much customization surface area&lt;/li&gt;
&lt;li&gt;I don&amp;rsquo;t actually enjoy tuning it&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="other-tools-ive-looked-at"&gt;Other tools I&amp;rsquo;ve looked at
&lt;/h2&gt;&lt;h2 id="warp"&gt;Warp
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://warp.dev/" target="_blank" rel="noopener"
 &gt;https://warp.dev/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Warp feels like a &amp;ldquo;terminal reinvented&amp;rdquo; (more IDE-like, block-based UI, AI features). It&amp;rsquo;s interesting, but feels a bit too opinionated and visually heavy for my taste.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="other-terminal-emulators-briefly-noted"&gt;Other Terminal Emulators (briefly noted)
&lt;/h2&gt;&lt;p&gt;While Kitty and Ghostty are modern GPU-accelerated terminals, it&amp;rsquo;s worth acknowledging other terminal emulators that have been foundational or offer different philosophies.&lt;/p&gt;
&lt;h3 id="xterm-and-related-ttys"&gt;xterm (and related TTYs)
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.x.org/releases/X11R7.6/doc/man/man1/xterm.1.xhtml" target="_blank" rel="noopener"
 &gt;https://www.x.org/releases/X11R7.6/doc/man/man1/xterm.1.xhtml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The classic X Window System terminal emulator. While not as feature-rich or graphically advanced as modern options, &lt;code&gt;xterm&lt;/code&gt; (and its derivatives like &lt;code&gt;urxvt&lt;/code&gt;, &lt;code&gt;st&lt;/code&gt;, etc.) represent the minimalist, highly customizable end of the spectrum. They often prioritize resource efficiency and adherence to traditional Unix principles. Good for when you need something simple and rock-solid, but usually requires more effort to get a pleasant default experience.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="current-philosophy"&gt;Current philosophy
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m optimizing for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;minimal clutter&lt;/li&gt;
&lt;li&gt;fast keyboard workflow&lt;/li&gt;
&lt;li&gt;good defaults (not deep config systems)&lt;/li&gt;
&lt;li&gt;fewer moving parts&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="current-setup-direction"&gt;Current setup direction
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Terminal: &lt;strong&gt;Ghostty&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Tabs: built-in (no extra tooling yet)&lt;/li&gt;
&lt;li&gt;Multiplexing: not using tmux/Zellij for now&lt;/li&gt;
&lt;li&gt;Keeping things intentionally simple&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="open-question"&gt;Open question
&lt;/h2&gt;&lt;p&gt;If Ghostty tabs feel too minimal in real use, I may revisit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zellij (for structured sessions)&lt;/li&gt;
&lt;li&gt;tmux (unlikely unless necessary)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For now, keeping it simple on purpose.&lt;/p&gt;</description></item></channel></rss>