<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Didy</title>
    <description>The latest articles on DEV Community by Didy (@didy-kpn).</description>
    <link>https://dev.to/didy-kpn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1028086%2F56a8de73-49ec-4e74-bf0f-fcd6445647f2.png</url>
      <title>DEV Community: Didy</title>
      <link>https://dev.to/didy-kpn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/didy-kpn"/>
    <language>en</language>
    <item>
      <title>Thinking about my future career</title>
      <dc:creator>Didy</dc:creator>
      <pubDate>Mon, 24 Mar 2025 05:44:29 +0000</pubDate>
      <link>https://dev.to/didy-kpn/thinking-about-my-future-career-2g3f</link>
      <guid>https://dev.to/didy-kpn/thinking-about-my-future-career-2g3f</guid>
      <description>&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I'm a software developer specializing in backend development, and I’ve been writing code professionally for about ten years now. Programming has been a passion of mine since my student days, and I’ve kept it as a long-term hobby. Besides that, I love watching anime and movies.&lt;/p&gt;

&lt;p&gt;However, over the past few years, life has been busy with marriage, home responsibilities, and raising kids, leaving me with little time for hobbies. Of course, that’s just part of life, but I do miss the freedom I once had. For example, I used to enjoy tweaking my Vim and terminal settings, but I rarely touch them now. I also don’t attend study groups or conferences as often as I used to.&lt;/p&gt;

&lt;p&gt;That being said, I’m not completely out of time. I still squeeze in some coding here and there—though at the cost of completely giving up my Netflix movie nights.&lt;/p&gt;

&lt;p&gt;At the same time, having less hobby time means I’m spending more quality time with my family. The moments I spend with my wife and kids are precious, and I genuinely enjoy them. I feel happy and fulfilled.&lt;/p&gt;

&lt;p&gt;But alongside that happiness, I also feel a growing sense of uncertainty about the future. I can’t clearly picture where I’ll be in five or ten years, or what exactly I want to pursue.&lt;/p&gt;

&lt;p&gt;At work, I want to contribute to my company and help drive projects to success. I have things I can do and things I want to do to make that happen. Even if I were to switch jobs in the future, I’d be able to explain my value, my role in a new company, and my long-term goals without hesitation.&lt;/p&gt;

&lt;p&gt;Software engineers are problem solvers through engineering. That’s why I want to find at least one problem I truly care about solving, focus on it, and turn it into a tangible project or business. I want to be known for something—to have a clear identity in my field.&lt;/p&gt;

&lt;p&gt;To achieve that, I need to stay up to date and continuously reflect on my progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  A New Programming Style: Vibe Coding
&lt;/h2&gt;

&lt;p&gt;Programming is one of my hobbies. While I have less time for it now, my productivity has actually increased. The reason? Vibe Coding.&lt;/p&gt;

&lt;p&gt;Vibe Coding is a new programming style where AI acts as the driver, and humans focus on design and instructions. In traditional programming, humans had to write every line of code. But now, with just a few natural language instructions, AI can generate the necessary code in seconds.&lt;/p&gt;

&lt;p&gt;AI has advanced at an incredible pace. Since the start of this year, I’ve barely written code myself. Instead, I give instructions in plain English, and within minutes, AI generates dozens or even hundreds of lines of code. This is all thanks to powerful LLM like Claude, ChatGPT, and Gemini, which continue to evolve rapidly.&lt;/p&gt;

&lt;p&gt;Thinking back, until around last November, I was still the one in the driver’s seat, coding manually. But this year, I’ve handed over that seat to AI. In other words, I’ve become the navigator.&lt;/p&gt;

&lt;p&gt;This shift in programming style is inevitable. As software engineers, our focus should now be on how to coexist with AI and how to become better navigators.&lt;/p&gt;

&lt;p&gt;We’re in the middle of a paradigm shift. By embracing new technologies and methods, we can discover opportunities and insights that weren’t visible before—ones that might even shape what we truly want to do. That’s why I see this change as a chance and want to actively explore it.&lt;/p&gt;

&lt;p&gt;I’ll keep learning this new programming style from scratch, always staying aware of what I want to achieve. And to do that, I’ll make constant learning and reflection a daily habit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using LLM-Powered AI Coding Tools
&lt;/h2&gt;

&lt;p&gt;To make AI-assisted coding efficient, mastering LLM-powered AI coding tools is key. Some of the top tools available today include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cursor, Windsurf, Cline, Claude Code, Devin, Manus&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which tool to use depends on your setup and preferences. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cline is great if you use VSCode.&lt;/li&gt;
&lt;li&gt;Cursor or Windsurf are solid choices for exploring next-gen AI editors.&lt;/li&gt;
&lt;li&gt;Claude Code is a good option for terminal-based workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important thing is getting used to vibe coding. The AI coding tool space is evolving rapidly, with new tools emerging constantly. Instead of trying to keep up with everything, it’s best to start with one or two tools and get comfortable with them.&lt;/p&gt;

&lt;p&gt;Right now, Claude 3.7 (or 3.5) Sonnet is the best LLM model available. Other good options include Gemini 2.0 and o3-mini. However, given the pace of AI advancement, even better tools and models will emerge soon, so I don’t think it’s necessary to stick to just one.&lt;/p&gt;

&lt;p&gt;For my own AI coding workflow, I use Aider and Goose.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aider isn’t a fully automated tool—it requires detailed instructions. But in return, it’s extremely fast and cost-efficient.&lt;/li&gt;
&lt;li&gt;Goose is a fully automated tool with MCP client capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each has its strengths and weaknesses, so I switch between them depending on the use case.&lt;/p&gt;

&lt;p&gt;Once you’re familiar with AI coding tools, it’s a good idea to set up configuration files to help AI understand your project better. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goose uses .goosehint&lt;/li&gt;
&lt;li&gt;Aider uses CONVENTIONS.md&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These files contain project guidelines, coding conventions, test strategies, and commit message formats. Providing this context significantly improves AI’s output quality. In fact, even these configuration files should be AI-generated. Start by asking AI to create a project overview, then gradually refine and update it as new tasks arise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Essential Skills for AI-Assisted Coding
&lt;/h2&gt;

&lt;p&gt;As you get used to AI coding, you’ll notice a dramatic reduction in how much you type.&lt;br&gt;
Instead, architectural and abstraction skills become far more important. Here are the key skills needed in this new era:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problem comprehension – Understanding and structuring requirements effectively.&lt;/li&gt;
&lt;li&gt;Abstraction &amp;amp; simplification – Breaking down complex specifications into reusable patterns.&lt;/li&gt;
&lt;li&gt;System design – Architecting systems with a high-level perspective.&lt;/li&gt;
&lt;li&gt;Precise communication – Giving AI clear and structured instructions.&lt;/li&gt;
&lt;li&gt;AI output review – Ensuring AI-generated code meets quality standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, Test-Driven Development (TDD) using mocks is now easier with AI support, making it an approach worth embracing.&lt;/p&gt;

&lt;p&gt;Ultimately, programming remains the same at its core. Tools like &lt;a href="https://x.com/cline/status/1899551660898480206" rel="noopener noreferrer"&gt;Cline&lt;/a&gt; say, "Developers are firing themselves as programmers and becoming software architects instead." I completely agree.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;To wrap things up, here’s what I plan to work on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indie Develop using Vibe Coding

&lt;ul&gt;
&lt;li&gt;Let AI handle specification discussions, implementation, testing, documentation, and knowledge management.&lt;/li&gt;
&lt;li&gt;I’m currently implementing one project and discussing specifications for two others.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Revisit software architecture fundamentals

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/software-architect" rel="noopener noreferrer"&gt;Software Architect&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/system-design" rel="noopener noreferrer"&gt;System Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/software-design-architecture" rel="noopener noreferrer"&gt;Software Design and Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ashishps1/awesome-low-level-design" rel="noopener noreferrer"&gt;Awesome Low-Level Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/donnemartin/system-design-primer" rel="noopener noreferrer"&gt;System Design Primer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Discover new interests

&lt;ul&gt;
&lt;li&gt;Keep up with Reddit, Hacker News, daily.dev, and Product Hunt for emerging tech trends.&lt;/li&gt;
&lt;li&gt;Follow Bloomberg and France 24 to stay updated on global economic and financial news.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Write weekly reports as output

&lt;ul&gt;
&lt;li&gt;Summarize what I did, what’s next, and what I’m curious about to reflect on my progress.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>vibecoding</category>
      <category>career</category>
      <category>softwarearchitect</category>
    </item>
    <item>
      <title>My first step in AI-driven indie development</title>
      <dc:creator>Didy</dc:creator>
      <pubDate>Sun, 02 Feb 2025 01:22:19 +0000</pubDate>
      <link>https://dev.to/didy-kpn/my-first-step-in-ai-driven-indie-development-4b46</link>
      <guid>https://dev.to/didy-kpn/my-first-step-in-ai-driven-indie-development-4b46</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I recently developed a task management module called &lt;a href="https://github.com/didy-kpn/task-orchestrator" rel="noopener noreferrer"&gt;task-orchestrator&lt;/a&gt;. I created this module as a base for building an algorithmic trading framework. It can manage two types of tasks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Continuous tasks that run in the background.&lt;/li&gt;
&lt;li&gt;Event-triggered tasks that start when a specific event happens.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During the development process, I used AI tools for planning, coding, testing, and writing documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning
&lt;/h2&gt;

&lt;p&gt;At the beginning, I was not sure which architecture to use for the framework. I considered the actor model and the event-driven model. I asked ChatGPT, Claude, and DeepSeek for advice. They suggested a hybrid approach, combining both models. Based on this idea, I wrote the specifications and improved them through discussions with AI. Finally, I asked Claude to generate a basic code structure using my final specifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding
&lt;/h2&gt;

&lt;p&gt;During implementation, I used Claude's code as a base. I also used aider to make necessary changes and add features. Some specific tasks I did:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making small adjustments&lt;/li&gt;
&lt;li&gt;Renaming the project&lt;/li&gt;
&lt;li&gt;Creating unit tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For documentation, aider generated most of it, so I only needed to make small edits, like removing unnecessary links.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Through this process, I realized how useful AI tools are. They helped me write test code and documentation efficiently.&lt;/p&gt;

&lt;p&gt;Here are the tools I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Editor: Helix (with lsp-ai)&lt;/li&gt;
&lt;li&gt;AI tools: Aider (for coding, testing, documentation) and DeepSeek API&lt;/li&gt;
&lt;li&gt;Specification discussions: ChatGPT, Claude, and DeepSeek (Web-based)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aider</category>
      <category>eventdriven</category>
      <category>development</category>
      <category>ai</category>
    </item>
    <item>
      <title>Setup Remote Dev Environment (memo)</title>
      <dc:creator>Didy</dc:creator>
      <pubDate>Mon, 27 Jan 2025 03:12:25 +0000</pubDate>
      <link>https://dev.to/didy-kpn/setup-remote-dev-environment-memo-3elp</link>
      <guid>https://dev.to/didy-kpn/setup-remote-dev-environment-memo-3elp</guid>
      <description>&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;This article is a memo summarizing the steps I followed to set up a remote dev environment on AWS EC2.&lt;/p&gt;

&lt;p&gt;First, create a VPC and enable the "Auto assign public IPv4 address" option.&lt;/p&gt;

&lt;p&gt;Next, create a security group. Set up the port and IP address for SSH access.&lt;/p&gt;

&lt;p&gt;For the EC2 instance, I used a persistent spot instance to reduce costs. If the instance is no longer needed, you can cancel the spot request to terminate it. Be careful, as deleting the instance without canceling the spot request will create a new instance.&lt;/p&gt;

&lt;p&gt;I chose Ubuntu as the OS for EC2, thinking about the possibility of moving to other cloud services, VPS, or my own PC.&lt;/p&gt;

&lt;p&gt;Once the instance is running, connect via SSH and update the packages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set the local timezone. Since I live in Japan, I changed the timezone to Tokyo. I made sure to check, change, and re-check the timezone to ensure it was correct.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# check&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;timedatectl

&lt;span class="c"&gt;# change&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;timedatectl list-timezones | &lt;span class="nb"&gt;grep &lt;/span&gt;Asia/Tokyo
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;timedatectl set-timezone Asia/Tokyo

&lt;span class="c"&gt;# re-check&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;timedatectl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To change the SSH port number, I updated &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; and the security group settings.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ hx /etc/ssh/sshd_config

#Port 22
↓
Port 2222
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this, the setup of the development environment is complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side Notes
&lt;/h2&gt;

&lt;p&gt;Initially, I configured the SSD as the root disk and the HDD as the home directory. However, I was unhappy with the slow disk access speed, so I eventually switched to an SSD-only setup.&lt;/p&gt;

&lt;p&gt;Currently, I am raising my children, so I can only work for 2–3 hours per day. To optimize costs, I stop the instance when it is not in use. After stopping the instance, I create an EBS snapshot and delete the volume to save more costs. The reason I am mindful of costs is that my allowance is small. As a result, I spend extra effort starting and stopping the instance to save money. And my remote dev environment does not have an Elastic IP, so I use the following alias to connect via SSH.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; .bashrc
ssh-dev-ec2&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"ubuntu"&lt;/span&gt;
  &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"~/.ssh/de_kp.pem"&lt;/span&gt;
  &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;2222

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Usage: ssh-dev-ec2 &amp;lt;IP_ADDRESS&amp;gt;"&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;1
  &lt;span class="k"&gt;fi

  &lt;/span&gt;ssh &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$key&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="s2"&gt;@&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="nv"&gt;$port&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the future, I want to use the AWS CLI to build a system that automates instance start and stop operations, and to connect a dev environment without specify IP address.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>development</category>
      <category>environment</category>
      <category>ec2</category>
    </item>
    <item>
      <title>My Dev Environment 2025</title>
      <dc:creator>Didy</dc:creator>
      <pubDate>Sat, 18 Jan 2025 15:32:25 +0000</pubDate>
      <link>https://dev.to/didy-kpn/my-dev-environment-2025-5eni</link>
      <guid>https://dev.to/didy-kpn/my-dev-environment-2025-5eni</guid>
      <description>&lt;p&gt;Starting this year, I have more flexibility in parenting, so I set up a dev environment on AWS EC2 to make use of my 2–3 hours of free time each day.&lt;/p&gt;

&lt;p&gt;To ensure quick access to this remote environment anytime and anywhere, I connect to it via SSH from my smartphone or tablet.&lt;/p&gt;

&lt;p&gt;Right now, I’ve only set up the bare minimum tools and configurations. As I dive into personal development projects, I’ll add more tools and settings as needed along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminal
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/termux/termux-app" rel="noopener noreferrer"&gt;termux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Machine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS EC2 t3.xlarge

&lt;ul&gt;
&lt;li&gt;I'm using spot instance.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Shell
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;zsh&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rossmacarthur/sheldon" rel="noopener noreferrer"&gt;sheldon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://starship.rs" rel="noopener noreferrer"&gt;starship&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cli Tool
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.rust-lang.org" rel="noopener noreferrer"&gt;rustup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mise.jdx.dev" rel="noopener noreferrer"&gt;mise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cli.github.com/" rel="noopener noreferrer"&gt;gh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/x-motemen/ghq" rel="noopener noreferrer"&gt;ghq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sharkdp/bat" rel="noopener noreferrer"&gt;bat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://junegunn.github.io/fzf/" rel="noopener noreferrer"&gt;fzf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Editor
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://helix-editor.com" rel="noopener noreferrer"&gt;Helix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  LSP
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rust-analyzer.github.io" rel="noopener noreferrer"&gt;rust-analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SilasMarvin/lsp-ai" rel="noopener noreferrer"&gt;lsp-ai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  AI Assistant
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aider.chat" rel="noopener noreferrer"&gt;aider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devjournal</category>
      <category>remote</category>
      <category>environment</category>
      <category>development</category>
    </item>
  </channel>
</rss>
