<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Darshan KC — Articles</title>
    <link>https://darshanchhetri.com.np</link>
    <description>Portfolio of Darshan KC, a Laravel and PHP backend engineer focused on scalable architecture, API design, database reliability, and community-led mentorship. Open to remote backend roles.</description>
    <language>en</language>
    <lastBuildDate>Sun, 20 Sep 2026 15:19:52 GMT</lastBuildDate>
    <atom:link href="https://darshanchhetri.com.np/rss.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://darshanchhetri.com.np/images/profile.jpg</url>
      <title>Darshan KC</title>
      <link>https://darshanchhetri.com.np</link>
    </image>
    
        <item>
          <title>Architecture, Reliability, and the Developer Experience</title>
          <link>https://darshanchhetri.com.np/articles/architecture-reliability-devx</link>
          <guid isPermaLink="true">https://darshanchhetri.com.np/articles/architecture-reliability-devx</guid>
          <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[Good architecture is not about adding more layers or following every pattern. It is about making systems easier to understand, change, debug, and trust as they grow.]]></description>
          <content:encoded><![CDATA[<p>When we talk about software architecture, the conversation often becomes focused on patterns, technologies, and diagrams. We talk about microservices, repositories, service classes, queues, event-driven systems, caching, and all the other tools available to us as developers.</p><p>But after working on real applications, I have started to think about architecture a little differently.</p><p><strong>Good architecture is not the architecture with the most abstractions. It is the architecture that makes the system easier to understand, change, and maintain.</strong></p><h2>Architecture is a developer experience problem</h2><p>We usually think about developer experience in terms of documentation, tooling, onboarding, or how quickly someone can get a project running locally. Architecture is rarely included in that conversation, even though it has a huge impact on how developers experience a codebase.</p><p>When a developer needs to change one small feature and has to jump through ten different layers just to understand where the actual business logic lives, the architecture is creating friction.</p><p>On the other hand, when responsibilities are clear and a developer can quickly answer questions like <em>where does this logic belong?</em>, <em>which part of the system owns this data?</em>, and <em>what could this change affect?</em>, the codebase becomes much easier to work with.</p><h2>Simplicity becomes more valuable as a project grows</h2><p>One of the lessons I keep coming back to is that simple code is not the same thing as poorly designed code.</p><p>Sometimes a straightforward solution is exactly what a system needs. Introducing an abstraction just because a design pattern exists can actually make the application harder to understand.</p><blockquote><p>The best abstraction is often the one you introduce only after you understand the problem well enough to know that you actually need it.</p></blockquote><p>This is especially important in backend development. A clean controller, a focused service, a well-designed database relationship, and a clear API can often provide more long-term value than a complicated architecture built around hypothetical future requirements.</p><h2>Reliability starts with understandable systems</h2><p>Reliability is not only about uptime. It is also about predictability.</p><p>A reliable system should behave in ways that developers can reason about. When something fails, we should have a reasonable path toward discovering why it failed. When a feature changes, we should have confidence about what parts of the application might be affected.</p><p>This is where clear boundaries, meaningful naming, good logging, validation, and sensible data models become extremely important.</p><h2>Think about the next developer</h2><p>Every piece of code we write will eventually be read by someone else. Sometimes that person will be a teammate. Sometimes it will be someone joining the project months later. And sometimes it will be us six months from now, wondering why we made a particular decision.</p><p>That is why I try to think beyond <em>“Does this code work?”</em></p><p>I also ask:</p><ul><li>Can another developer understand this without asking me?</li><li>Is the responsibility of this component clear?</li><li>Will changing this feature unexpectedly affect something else?</li><li>Will debugging this system be reasonably straightforward?</li><li>Am I solving today's problem or inventing tomorrow's problems?</li></ul><h2>Architecture should serve the people building the product</h2><p>At the end of the day, architecture exists to help us build and maintain software. It should reduce unnecessary complexity rather than become complexity itself.</p><p>As I continue working on larger applications, I find myself appreciating boring solutions more and more. Clear code. Clear responsibilities. Predictable behavior. Good database design. Useful logs. Small, understandable components.</p><p>None of these things are particularly exciting on a diagram, but together they create something incredibly valuable: <strong>a system that developers can trust.</strong></p>]]></content:encoded>
        </item>
        <item>
          <title>What Workshops Taught Me About Learning, Mentorship, and Community</title>
          <link>https://darshanchhetri.com.np/articles/workshops-community-learning</link>
          <guid isPermaLink="true">https://darshanchhetri.com.np/articles/workshops-community-learning</guid>
          <pubDate>Mon, 10 Mar 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[Leading workshops and mentoring developers taught me that technical knowledge is only one part of teaching. Real learning happens when people feel comfortable asking questions, experimenting, and building things together.]]></description>
          <content:encoded><![CDATA[<p>When I started getting involved in workshops and community events, I thought my responsibility was mainly to teach technology.</p><p>Explain the concept. Show an example. Let people write some code. Answer questions. Move to the next topic.</p><p>But after spending more time mentoring and working with different groups of developers, I realized that teaching technology is only a small part of the job.</p><h2>People learn differently</h2><p>One of the first things you notice when leading a workshop is that everyone arrives with a different background.</p><p>Someone might already understand the fundamentals but struggle with a particular framework. Someone else might be completely new but surprisingly comfortable experimenting. Another person may understand the technical concept but hesitate to ask questions because they are worried that their question is too simple.</p><p>That makes teaching a very different challenge from simply preparing slides.</p><p><strong>You are not only explaining a concept. You are trying to create an environment where people can understand it in their own way.</strong></p><h2>The best workshops are not lectures</h2><p>I have gradually become more convinced that people learn technology best when they actually build something.</p><p>A slide explaining an API can be useful. A diagram showing how authentication works can be useful. But there is a different kind of understanding that happens when someone writes the request themselves, gets an error, searches for the reason, fixes it, and finally sees the expected response.</p><p>That moment of <em>“Oh, now I understand”</em> is difficult to create through theory alone.</p><h2>Questions are part of learning</h2><p>One of the biggest things I learned from mentoring is that a question is not necessarily a sign that someone is behind.</p><p>Sometimes it means they are thinking deeply about the problem.</p><p>A healthy learning environment should make people comfortable saying:</p><ul><li>“I don't understand this.”</li><li>“Why are we doing it this way?”</li><li>“What happens if we change this?”</li><li>“I tried this, but it didn't work.”</li></ul><p>Those questions often lead to better discussions than simply following the prepared material.</p><h2>Mentoring is also about confidence</h2><p>Technical skills matter, but confidence matters too.</p><p>I have seen developers understand a concept but hesitate to write the code because they are afraid of making a mistake. That is something a good mentor should actively work against.</p><p>Making mistakes is not an interruption to learning. <strong>Making mistakes is part of learning.</strong></p><p>Instead of immediately fixing someone's code, sometimes it is more useful to ask another question and let them discover the answer themselves. The goal is not just to solve today's problem. The goal is to help someone become better at solving the next problem without you.</p><h2>Community makes learning sustainable</h2><p>Workshops might only last a few hours or a few days, but the relationships created around them can last much longer.</p><p>When developers share what they know, help each other debug problems, talk about their experiences, and celebrate small wins, learning becomes a community activity instead of an individual struggle.</p><p>That is one of the things I value most about being involved in the developer community.</p><h2>What I take away from every workshop</h2><p>Every workshop has taught me something different. Sometimes it is a better way to explain a technical concept. Sometimes it is a reminder to slow down. Sometimes it is simply learning that the problem I thought would take five minutes actually needs thirty.</p><p>But the biggest lesson has been simple:</p><blockquote><p>Teaching is not about proving how much you know. It is about helping someone else discover what they are capable of learning.</p></blockquote><p>That mindset has changed the way I approach mentoring, workshops, and even everyday collaboration with other developers.</p><p>And honestly, some of the best lessons I have learned while teaching were lessons I did not expect to learn at all.</p>]]></content:encoded>
        </item>
        <item>
          <title>The Power of Naming Emotions: A Small Step Toward Emotional Intelligence</title>
          <link>https://darshanchhetri.com.np/articles/power-of-naming-emotions</link>
          <guid isPermaLink="true">https://darshanchhetri.com.np/articles/power-of-naming-emotions</guid>
          <pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[Understanding what we feel is not always easy. Learning to name our emotions can create a little distance between feeling and reacting, helping us become more self-aware and intentional.]]></description>
          <content:encoded><![CDATA[<p>For a long time, I thought understanding emotions meant simply knowing whether I was happy, sad, angry, or stressed.</p><p>But emotions are rarely that simple.</p><p>Sometimes what looks like anger is actually disappointment. Sometimes frustration is really exhaustion. Sometimes silence is not peace but uncertainty. And sometimes we react to something without fully understanding why it affected us in the first place.</p><h2>Learning to name what I feel</h2><p>One of the simplest things I have been trying to practice is putting a name to what I am feeling.</p><p>Instead of saying <em>“I feel bad,”</em> I try to ask myself a more specific question: <em>“What exactly am I feeling right now?”</em></p><p>Is it frustration? Disappointment? Anxiety? Embarrassment? Overwhelm? Loneliness? Excitement?</p><p>Sometimes finding the right word changes the way I look at the situation.</p><h2>Why naming an emotion helps</h2><p>When we cannot identify an emotion, it can be easy to react to it immediately.</p><p>We send the message we probably should have waited to send. We become unnecessarily defensive. We withdraw from a conversation. We assume someone else caused the feeling without taking a moment to understand what is actually happening inside us.</p><p>Naming the emotion creates a small pause.</p><blockquote><p>There is a difference between feeling an emotion and immediately becoming a reaction to that emotion.</p></blockquote><p>That pause can be valuable.</p><h2>Emotional intelligence starts with self-awareness</h2><p>We often talk about emotional intelligence as a skill that helps us communicate better with other people. But I think it begins much closer to home.</p><p>Before we can communicate what we need, we need to understand what we are experiencing ourselves.</p><p>Self-awareness helps us recognize patterns. Maybe certain situations consistently make us defensive. Maybe criticism affects us more than we realize. Maybe we become impatient when we are tired. Maybe we avoid difficult conversations because uncertainty makes us uncomfortable.</p><p>Recognizing those patterns does not immediately solve them, but it gives us something important: awareness.</p><h2>Understanding is not the same as judging</h2><p>Another thing I am learning is that understanding an emotion does not mean judging ourselves for having it.</p><p>Feeling angry does not automatically make us an angry person. Feeling jealous does not make us a bad person. Feeling insecure does not mean we are weak.</p><p>Emotions are information. They can tell us something about what matters to us, what we fear, what we need, or what has affected us.</p><h2>A small practice with a big impact</h2><p>I am still learning this myself.</p><p>Sometimes I notice an emotion only after I have already reacted. Sometimes I still struggle to explain exactly what I am feeling. But even noticing that has become part of the process.</p><p>Instead of trying to suppress every uncomfortable emotion, I am trying to become more curious about them.</p><p>What happened?</p><p>What am I feeling?</p><p>Why might I be feeling this way?</p><p>What do I actually need right now?</p><h2>We are all still learning ourselves</h2><p>As developers, we spend a lot of time learning how systems work. We study frameworks, databases, programming languages, architectures, and tools.</p><p>But understanding ourselves is a different kind of learning, and arguably just as important.</p><p>Learning to recognize and name our emotions will not magically make difficult situations disappear. But it can help us respond to those situations with a little more awareness and a little less impulse.</p><p><strong>Sometimes emotional intelligence begins with something as simple as finding the right words for what we feel.</strong></p>]]></content:encoded>
        </item>
        <item>
          <title>From Code to Community: What Leading Tech Workshops Taught Me About People</title>
          <link>https://darshanchhetri.com.np/articles/code-to-community</link>
          <guid isPermaLink="true">https://darshanchhetri.com.np/articles/code-to-community</guid>
          <pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[Leading technology workshops taught me that teaching is much more than explaining code. It is about communication, patience, confidence, and creating a space where people can learn together.]]></description>
          <content:encoded><![CDATA[<p>When I first started leading technical workshops, I was mostly thinking about the technology.</p><p>How should I explain the topic? Which examples should I use? How much code should I prepare? What should the participants build?</p><p>Those questions were important, but over time I discovered that the hardest and most rewarding part of a workshop had very little to do with the code itself.</p><p>It had to do with people.</p><h2>A room full of different learners</h2><p>Every workshop brings together people with different experiences, personalities, expectations, and levels of confidence.</p><p>Some participants ask questions constantly. Some prefer to observe before trying something themselves. Some are comfortable making mistakes publicly, while others need more time before they are willing to show their work.</p><p>A workshop becomes much more effective when you recognize those differences instead of expecting everyone to learn in exactly the same way.</p><h2>Explaining something is not the same as teaching it</h2><p>As developers, we sometimes assume that if we understand something clearly, we should be able to explain it easily.</p><p>That is not always true.</p><p>Teaching forces you to break your own understanding into smaller pieces. You have to identify what someone actually needs to know before they can understand the next concept.</p><p>And sometimes, when someone asks a question you did not expect, you discover that your own understanding was not as complete as you thought.</p><h2>The unexpected lessons of leadership</h2><p>Leading a workshop also taught me to become more comfortable with uncertainty.</p><p>Not every session goes exactly according to plan. A setup issue can consume half an hour. A participant can ask a question that takes the discussion in an unexpected direction. An example that worked perfectly on your machine might fail somewhere else.</p><p>At first, those situations can feel like problems.</p><p>Eventually, you realize that they are part of the experience.</p><h2>People remember how you made them feel</h2><p>A participant might forget a particular code example a few months after the workshop. They might forget the exact syntax you taught them.</p><p>But they may remember that they were encouraged to ask questions. They may remember someone patiently helping them debug their first project. They may remember that making a mistake did not make them feel stupid.</p><p>That is why creating a welcoming environment matters so much.</p><blockquote><p>A good workshop should leave people not only with more knowledge, but also with more confidence.</p></blockquote><h2>Community is bigger than technology</h2><p>One of the most rewarding parts of organizing and participating in technology communities is realizing that the community itself becomes a learning resource.</p><p>Developers learn from developers. Beginners learn from experienced people, but experienced developers also learn from beginners. Different perspectives often reveal problems or possibilities that one person would never have noticed alone.</p><p>That exchange is what makes a community valuable.</p><h2>What I learned</h2><p>Leading workshops changed the way I think about technical leadership.</p><p>Leadership is not always about having the answer. Sometimes it is about asking the right question. Sometimes it is about giving someone enough space to figure something out. And sometimes it is simply about being the person who tells someone, <em>“Yes, you can do this. Keep going.”</em></p><p>The more workshops I lead, the more I realize that I am not just teaching technology.</p><p><strong>I am learning how people learn, how communities grow, and how much better technology becomes when we build it together.</strong></p>]]></content:encoded>
        </item>
        <item>
          <title>When Learning Slows Down: How I Deal with Burnout as a Developer</title>
          <link>https://darshanchhetri.com.np/articles/when-learning-slows-down</link>
          <guid isPermaLink="true">https://darshanchhetri.com.np/articles/when-learning-slows-down</guid>
          <pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[There are periods when learning feels exciting and periods when even opening the documentation feels exhausting. This is my reflection on slowing down, recognizing burnout, and learning without constantly pushing myself.]]></description>
          <content:encoded><![CDATA[<p>There was a time when I thought being a good developer meant constantly learning.</p><p>New framework? Learn it. New library? Try it. New architecture pattern? Understand it. Someone built something impressive? Figure out how it works.</p><p>For a while, that mindset felt motivating.</p><p>Then eventually, it became exhausting.</p><h2>When learning stops feeling exciting</h2><p>One of the strange things about development is that there is always something else to learn. The industry changes quickly, frameworks evolve, tools appear overnight, and there is always another technology that seems important.</p><p>That can make you feel like you are falling behind even when you are actually making progress.</p><p>I have had periods where I would sit in front of my laptop knowing that I wanted to learn something new, but I simply could not concentrate. I would read the same documentation multiple times without actually absorbing it.</p><p>At first, I interpreted that as laziness.</p><p>Later, I realized that sometimes your brain is simply asking you to slow down.</p><h2>Burnout doesn't always look dramatic</h2><p>When people talk about burnout, we often imagine someone completely unable to work. But it can be much more subtle.</p><p>Sometimes it looks like losing curiosity. Sometimes it looks like constantly switching between tutorials without finishing anything. Sometimes it is opening a project and immediately feeling overwhelmed.</p><p>And sometimes it is realizing that something you normally enjoy has started feeling like an obligation.</p><h2>I started changing how I learn</h2><p>Instead of trying to learn everything at once, I started giving myself permission to focus.</p><p>One problem. One project. One concept.</p><p>Rather than watching five tutorials about a technology, I would try to build something small with it. Rather than trying to understand an entire framework, I would learn the part I actually needed for the problem in front of me.</p><p>This made learning feel much more practical and much less overwhelming.</p><h2>Rest is not wasted time</h2><p>This is probably one of the hardest lessons for developers who enjoy learning.</p><p>When you genuinely like technology, it can be difficult to tell yourself to stop.</p><p>But stepping away from the screen does not mean you are falling behind.</p><blockquote><p>You don't have to be learning every minute to be moving forward.</p></blockquote><p>Sometimes the best thing you can do for your development career is close the editor, go outside, talk to people, work on something completely unrelated, or simply get some rest.</p><h2>Progress is not always visible</h2><p>We tend to measure development progress through things we can see: commits, completed projects, new technologies, certificates, job titles, and shipped features.</p><p>But there is another kind of progress that is much harder to measure.</p><p>Understanding a problem better. Becoming more patient with yourself. Learning how to debug without panicking. Becoming comfortable admitting that you don't know something. Learning when to ask for help.</p><p>Those things matter too.</p><h2>Learning at a sustainable pace</h2><p>I still want to learn. I still get excited about new technologies. I still have a long list of things I want to build.</p><p>The difference is that I no longer believe I have to do all of them immediately.</p><p>Software development is a long journey. There will be periods of intense growth, periods where things feel slow, and periods where you simply need to recover.</p><p>And I am learning to be okay with that.</p><p><strong>Slowing down does not mean giving up. Sometimes it is exactly what allows you to keep going.</strong></p>]]></content:encoded>
        </item>
  </channel>
</rss>