<?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: arm210402</title>
    <description>The latest articles on DEV Community by arm210402 (@arm210402).</description>
    <link>https://dev.to/arm210402</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F530882%2F5d49ff53-8946-458a-b002-190008da00e4.png</url>
      <title>DEV Community: arm210402</title>
      <link>https://dev.to/arm210402</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arm210402"/>
    <language>en</language>
    <item>
      <title>Kindred: A Private AI English Practice Partner Built for a Friend</title>
      <dc:creator>arm210402</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:01:21 +0000</pubDate>
      <link>https://dev.to/arm210402/kindred-a-private-ai-english-practice-partner-built-for-a-friend-4n6l</link>
      <guid>https://dev.to/arm210402/kindred-a-private-ai-english-practice-partner-built-for-a-friend-4n6l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Kindred&lt;/strong&gt;, a private English practice partner, for my friend to help her practice English for job interviews.&lt;/p&gt;

&lt;p&gt;The goal is to give her a space to rehearse answers, learn from corrections, and try again at her own pace.&lt;/p&gt;

&lt;p&gt;Kindred supports three practice scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Job interviews&lt;/li&gt;
&lt;li&gt;Everyday English conversations&lt;/li&gt;
&lt;li&gt;Presentations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The learner selects a scenario and types an answer. A local language model is prompted to respond with one positive observation, a gentle correction when useful, and a follow-up question.&lt;/p&gt;

&lt;p&gt;The app does not assign scores. Its coaching prompt focuses on encouragement and practical feedback.&lt;/p&gt;

&lt;p&gt;Learners can clear the conversation or download it as a text file to review later. Kindred currently supports typed practice; it does not provide voice input or evaluate pronunciation.&lt;/p&gt;

&lt;p&gt;There is also a clearly labeled scripted sample so visitors can explore the interface before installing a local model.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Kindred&lt;/strong&gt;, a private English practice partner, for my friend to help her practice English for job interviews.&lt;/p&gt;

&lt;p&gt;The goal is to give her a space to rehearse answers, learn from corrections, and try again at her own pace.&lt;/p&gt;

&lt;p&gt;Kindred supports three practice scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Job interviews&lt;/li&gt;
&lt;li&gt;Everyday English conversations&lt;/li&gt;
&lt;li&gt;Presentations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The learner selects a scenario and types an answer. A local language model is prompted to respond with one positive observation, a gentle correction when useful, and a follow-up question.&lt;/p&gt;

&lt;p&gt;The app does not assign scores. Its coaching prompt focuses on encouragement and practical feedback.&lt;/p&gt;

&lt;p&gt;Learners can clear the conversation or download it as a text file to review later. Kindred currently supports typed practice; it does not provide voice input or evaluate pronunciation.&lt;/p&gt;

&lt;p&gt;There is also a clearly labeled scripted sample so visitors can explore the interface before installing a local model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/11m28lsD_e2w4z1BG00_pCQ8AAxzUkOPC/view?usp=drive_link" rel="noopener noreferrer"&gt;Watch Kindred in action&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To run the project yourself, follow the setup instructions in the repository README. Live AI practice requires Ollama and a locally installed model.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Try sample&lt;/strong&gt; option uses scripted responses. The &lt;strong&gt;Start practicing&lt;/strong&gt; option uses the local AI model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/arm21-afk/kindred" rel="noopener noreferrer"&gt;View Kindred’s source code on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application source is MIT licensed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The frontend uses &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt;. A &lt;strong&gt;Node.js&lt;/strong&gt; server serves the interface and forwards validated conversation history to Ollama’s local chat API.&lt;/p&gt;

&lt;p&gt;The application has no third-party npm dependencies.&lt;/p&gt;

&lt;p&gt;For live feedback, Kindred uses &lt;strong&gt;Ollama&lt;/strong&gt; with the &lt;strong&gt;Qwen3 4B open-weight model&lt;/strong&gt;. The model runs on the same computer as the application.&lt;/p&gt;

&lt;p&gt;The coaching prompt asks the model to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notice one specific thing the learner did well.&lt;/li&gt;
&lt;li&gt;Offer one gentle correction and an improved sentence when useful.&lt;/li&gt;
&lt;li&gt;Ask one short follow-up question.&lt;/li&gt;
&lt;li&gt;Use plain English and avoid scores or shaming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Model responses are displayed as plain text. The app also limits message size and conversation length and reports connection errors when local inference is unavailable.&lt;/p&gt;

&lt;p&gt;Conversation history stays in memory. Reloading or clearing the session removes it from the app, while downloading lets the learner keep a copy.&lt;/p&gt;

&lt;p&gt;The repository includes automated server tests covering input validation, app serving, cross-origin rejection, and model failures using mocked responses. Those tests do not evaluate the quality of the model’s English coaching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;English interview practice can involve personal answers. Running an open-weight model locally allows the learner to practice without sending those answers to a hosted inference API.&lt;/p&gt;

&lt;p&gt;After Ollama and the model have been downloaded, the application can run without a cloud connection. It does not require a hosted AI account.&lt;/p&gt;

&lt;p&gt;Open technology also makes the coaching experience adjustable. The coaching prompt is visible in the source, and the model can be changed through configuration. This gives me a way to adapt the app’s tone and try different models for the learner’s needs and available hardware.&lt;/p&gt;

&lt;p&gt;Local inference still depends on the computer’s resources, and AI corrections can be imperfect. The benefit is control over the model, the coaching instructions, and where the conversation is processed.&lt;/p&gt;

&lt;p&gt;For Kindred, open innovation makes a private and customizable practice partner possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;The next step is to use my friend’s feedback to improve the practice experience, especially the interview questions and the clarity of corrections.&lt;/p&gt;

&lt;p&gt;I would also like to explore more specific interview scenarios while keeping the interface simple and the core practice experience local.&lt;/p&gt;




&lt;p&gt;To run the project yourself, follow the setup instructions in the repository README. Live AI practice requires Ollama and a locally installed model.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Try sample&lt;/strong&gt; option uses scripted responses. The &lt;strong&gt;Start practicing&lt;/strong&gt; option uses the local AI model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/arm21-afk/kindred" rel="noopener noreferrer"&gt;View Kindred’s source code on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application source is MIT licensed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The frontend uses &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt;. A &lt;strong&gt;Node.js&lt;/strong&gt; server serves the interface and forwards validated conversation history to Ollama’s local chat API.&lt;/p&gt;

&lt;p&gt;The application has no third-party npm dependencies.&lt;/p&gt;

&lt;p&gt;For live feedback, Kindred uses &lt;strong&gt;Ollama&lt;/strong&gt; with the &lt;strong&gt;Qwen3 4B open-weight model&lt;/strong&gt;. The model runs on the same computer as the application.&lt;/p&gt;

&lt;p&gt;The coaching prompt asks the model to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notice one specific thing the learner did well.&lt;/li&gt;
&lt;li&gt;Offer one gentle correction and an improved sentence when useful.&lt;/li&gt;
&lt;li&gt;Ask one short follow-up question.&lt;/li&gt;
&lt;li&gt;Use plain English and avoid scores or shaming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Model responses are displayed as plain text. The app also limits message size and conversation length and reports connection errors when local inference is unavailable.&lt;/p&gt;

&lt;p&gt;Conversation history stays in memory. Reloading or clearing the session removes it from the app, while downloading lets the learner keep a copy.&lt;/p&gt;

&lt;p&gt;The repository includes automated server tests covering input validation, app serving, cross-origin rejection, and model failures using mocked responses. Those tests do not evaluate the quality of the model’s English coaching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;English interview practice can involve personal answers. Running an open-weight model locally allows the learner to practice without sending those answers to a hosted inference API.&lt;/p&gt;

&lt;p&gt;After Ollama and the model have been downloaded, the application can run without a cloud connection. It does not require a hosted AI account.&lt;/p&gt;

&lt;p&gt;Open technology also makes the coaching experience adjustable. The coaching prompt is visible in the source, and the model can be changed through configuration. This gives me a way to adapt the app’s tone and try different models for the learner’s needs and available hardware.&lt;/p&gt;

&lt;p&gt;Local inference still depends on the computer’s resources, and AI corrections can be imperfect. The benefit is control over the model, the coaching instructions, and where the conversation is processed.&lt;/p&gt;

&lt;p&gt;For Kindred, open innovation makes a private and customizable practice partner possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;The next step is to use my friend’s feedback to improve the practice experience, especially the interview questions and the clarity of corrections.&lt;/p&gt;

&lt;p&gt;I would also like to explore more specific interview scenarios while keeping the interface simple and the core practice experience local.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
