<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sherin Joseph Roy]]></title><description><![CDATA[Co-Founder & Head of Products at DeepMost AI. Building SEF & Lexeek]]></description><link>https://notesbysherin.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 10:31:22 GMT</lastBuildDate><atom:link href="https://notesbysherin.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Transitioning from JavaScript to Rust in 2025 – Here's Why It Could Benefit You]]></title><description><![CDATA[Hey folks, it's been a wild ride this year. Remember back in 2020 when everyone was scrambling to learn React like it was the holy grail? Fast-forward to 2025, and I'm sitting here, sipping my third coffee of the morning, staring at a codebase that's...]]></description><link>https://notesbysherin.hashnode.dev/transitioning-from-javascript-to-rust-in-2025-heres-why-it-could-benefit-you</link><guid isPermaLink="true">https://notesbysherin.hashnode.dev/transitioning-from-javascript-to-rust-in-2025-heres-why-it-could-benefit-you</guid><category><![CDATA[Rust]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Developer]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[SHERIN JOSEPH ROY]]></dc:creator><pubDate>Fri, 14 Nov 2025 13:19:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Im_cQ6hQo10/upload/6a2320f1d0f69829620123bd53ac5628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey folks, it's been a wild ride this year. Remember back in 2020 when everyone was scrambling to learn React like it was the holy grail? Fast-forward to 2025, and I'm sitting here, sipping my third coffee of the morning, staring at a codebase that's 90% safe, zero% "undefined is not a function" errors, and wondering why I didn't switch sooner. Yeah, you read that right – I bailed on JavaScript after nearly a decade of building everything from SPAs to Node backends. And no, this isn't some hot take for clout. It's a confession from a battle-scarred dev who's tired of debugging the same memory leaks at 2 AM.</p>
<p>Let me paint the picture. Last January, I was knee-deep in a freelance gig: a real-time dashboard for a fintech startup. JavaScript, TypeScript, the whole ecosystem – it was fine, until it wasn't. One rogue async function later, and my app was eating RAM like it was at an all-you-can-eat buffet. Crashes. Infinite loops. That sinking feeling when you realize your "quick prototype" is now a production nightmare. Sound familiar? If you're nodding, stick around. If you're a JS die-hard ready to flame me in the comments, hey, that's the point – let's talk.</p>
<h2 id="heading-the-breaking-point-when-js-finally-broke-me">The Breaking Point: When JS Finally Broke Me</h2>
<p>It wasn't one thing. It was the <em>everything</em>. Don't get me wrong – JavaScript's got its charms. It's forgiving (maybe too much), it's everywhere, and with tools like Vite and Bun, it's faster than ever. But here's the rub: in 2025, with AI copilots writing half our code and teams scaling to 20+ devs, "forgiving" turns into "fragile."</p>
<ul>
<li><p><strong>Memory Management? What's That?</strong> JS's garbage collector is like that friend who promises to clean up after the party but leaves you with a trashed apartment. Leaks sneak in, and boom – your app slows to a crawl under load.</p>
</li>
<li><p><strong>Concurrency Nightmares:</strong> Promises, async/await – they're great until you're threading multiple workers or dealing with WebSockets. One race condition, and you're chasing ghosts.</p>
</li>
<li><p><strong>Ecosystem Overload:</strong> npm's a jungle. Yesterday's hot lib is tomorrow's security hole. I spent a week auditing deps for one project. A <em>week</em>.</p>
</li>
</ul>
<p>Then I stumbled on Rust. Not the shiny new toy – the battle-tested beast that's powering everything from Discord's backend to AWS's Firecracker. I was skeptical. "Ownership? Borrowing? Sounds like homework," I thought. But I needed a side project: a CLI tool for scraping and analyzing GitHub trends. JS felt clunky for it. Rust? It compiled in seconds, ran like a dream, and... didn't segfault once.</p>
<p>That CLI turned into my MVP for a startup idea. Six months later, it's handling 10k requests a day without breaking a sweat. Coincidence? Nah.</p>
<h2 id="heading-rust-the-reluctant-hero-of-my-toolkit">Rust: The Reluctant Hero of My Toolkit</h2>
<p>Look, I'm not here to evangelize Rust as the One True Language. (Though, if we're being real, its type system is basically a therapist for your code – it catches your bad habits before they bite.) What hooked me was the <em>safety without sacrifice</em>. In JS land, you're always trading speed for reliability or vice versa. Rust? It gives you both.</p>
<p>Here's a quick before-and-after that still makes me chuckle:</p>
<p><strong>JS Version (The Pain):</strong></p>
<pre><code class="lang-javascript"><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fetchAndProcess</span>(<span class="hljs-params">urls</span>) </span>{
  <span class="hljs-keyword">const</span> results = [];
  <span class="hljs-keyword">for</span> (<span class="hljs-keyword">const</span> url <span class="hljs-keyword">of</span> urls) {
    <span class="hljs-keyword">try</span> {
      <span class="hljs-keyword">const</span> data = <span class="hljs-keyword">await</span> fetch(url).then(<span class="hljs-function"><span class="hljs-params">r</span> =&gt;</span> r.json());
      results.push(processData(data)); <span class="hljs-comment">// What if processData throws? Orphaned promises, anyone?</span>
    } <span class="hljs-keyword">catch</span> (e) {
      <span class="hljs-built_in">console</span>.error(<span class="hljs-string">'Oops:'</span>, e); <span class="hljs-comment">// Silent fail, app keeps chugging with half-baked data</span>
    }
  }
  <span class="hljs-keyword">return</span> results; <span class="hljs-comment">// Might have holes, might crash later</span>
}
</code></pre>
<p><strong>Rust Version (The Calm):</strong></p>
<pre><code class="lang-rust"><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">fn</span> <span class="hljs-title">fetch_and_process</span></span>(urls: <span class="hljs-built_in">Vec</span>&lt;<span class="hljs-built_in">String</span>&gt;) -&gt; <span class="hljs-built_in">Result</span>&lt;<span class="hljs-built_in">Vec</span>&lt;Data, <span class="hljs-built_in">Box</span>&lt;<span class="hljs-keyword">dyn</span> Error&gt;&gt; {
    <span class="hljs-keyword">let</span> <span class="hljs-keyword">mut</span> results = <span class="hljs-built_in">Vec</span>::new();
    <span class="hljs-keyword">for</span> url <span class="hljs-keyword">in</span> urls {
        <span class="hljs-keyword">match</span> fetch(url).<span class="hljs-keyword">await</span> {
            <span class="hljs-literal">Ok</span>(data) =&gt; results.push(process_data(data)?),
            <span class="hljs-literal">Err</span>(e) =&gt; {
                eprintln!(<span class="hljs-string">"Fetch failed for {}: {}"</span>, url, e);
                <span class="hljs-keyword">continue</span>; <span class="hljs-comment">// Graceful, no leaks</span>
            }
        }
    }
    <span class="hljs-literal">Ok</span>(results) <span class="hljs-comment">// Compiler ensures it's airtight</span>
}
</code></pre>
<p>See? No more "undefined" panics. The borrow checker yells at you <em>before</em> runtime, like a strict but loving mentor. And performance? My Rust binary clocks in at 1/10th the memory of its JS counterpart. For web stuff, I'm using it with WebAssembly now – Tauri for desktop apps, WASM for the browser. It's seamless.</p>
<p>But here's the kicker: Rust <em>feels</em> productive. Once you grok the rules (pun intended), it's liberating. No more guessing games with types. Your code just <em>works</em>.</p>
<h2 id="heading-okay-but-is-this-for-you-spoiler-maybe-not-and-thats-fine">Okay, But Is This for You? (Spoiler: Maybe Not – And That's Fine)</h2>
<p>I'm not blind to the downsides. Rust's learning curve is steeper than a cliff face. That first " lifetimes " error? It'll make you question your life choices. And if you're knee-deep in a JS-heavy stack (React Native? Next.js?), switching cold turkey is like quitting coffee – doable, but withdrawal hurts.</p>
<p>So, when <em>should</em> you dip a toe?</p>
<ul>
<li><p><strong>Systems or Performance-Critical Stuff:</strong> APIs, CLIs, anything touching hardware.</p>
</li>
<li><p><strong>When JS Starts Feeling Like QuickSand:</strong> If you're hitting walls with concurrency or scale.</p>
</li>
<li><p><strong>Curiosity Itch:</strong> Just build a small thing. My gateway drug was rewriting a regex parser. Took a weekend, saved my soul.</p>
</li>
</ul>
<p>If you're sticking with JS, cool – lean into Deno or Bun for that speed boost. But if you're building for the long haul in 2026's AI-fueled dev world, where reliability is king, give Rust a spin. Worst case, you learn something. Best case? You join the cult (kidding... mostly).</p>
<h2 id="heading-your-turn-flame-wars-welcome">Your Turn: Flame Wars Welcome</h2>
<p>What's your take? Have you ditched JS for something "safer" like Go or Zig? Or are you all-in on TypeScript saving the day? Spill in the comments – did Rust click for you, or is it overhyped? Bonus points for war stories from the JS trenches. Let's make this thread the place where devs air their grudges and swap battle-tested advice.</p>
<p>If this resonated (or made you rage-scroll), hit that ❤️ and share it with a friend who's one crash away from a breakdown. Follow for more "I survived this tech shift" rants. Catch you in the replies!</p>
<p><em>Posted on Hashnode – because blogging shouldn't be as painful as debugging.</em></p>
]]></content:encoded></item><item><title><![CDATA[Why I'm Building AI That Asks Questions Instead of Giving Answers]]></title><description><![CDATA[I still remember the moment we realized we were solving the wrong problem.
It was three months into building DeepMost AI. We had just finished a demo for a potential enterprise customer, a logistics company drowning in supply chain complexity. Our AI...]]></description><link>https://notesbysherin.hashnode.dev/why-im-building-ai-that-asks-questions-instead-of-giving-answers</link><guid isPermaLink="true">https://notesbysherin.hashnode.dev/why-im-building-ai-that-asks-questions-instead-of-giving-answers</guid><category><![CDATA[productbuilding]]></category><category><![CDATA[AI]]></category><category><![CDATA[Entrepreneurship]]></category><category><![CDATA[startup]]></category><dc:creator><![CDATA[SHERIN JOSEPH ROY]]></dc:creator><pubDate>Tue, 14 Oct 2025 08:18:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760429470577/9e78efc1-9263-44e1-af33-6f6b9d4c064f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I still remember the moment we realized we were solving the wrong problem.</p>
<p>It was three months into building DeepMost AI. We had just finished a demo for a potential enterprise customer, a logistics company drowning in supply chain complexity. Our AI system had analyzed their data and confidently presented fifteen recommendations for optimizing their operations. The presentation was polished. The insights were data-driven. The room was silent.</p>
<p>Then their VP of Operations asked a question that changed everything: "But does your system understand why we do things this way in the first place?"</p>
<p>We did not have a good answer. Our AI had patterns and predictions, but it had no curiosity. It offered solutions without understanding context. It spoke with certainty about situations it barely grasped. In that moment, I understood what was fundamentally broken about how we approach artificial intelligence in enterprise settings.</p>
<p>Most AI tools are built to be oracles. They are designed to know, to predict, to recommend, to decide. They present themselves as sources of certainty in an uncertain world. This sounds appealing until you realize that the most valuable intelligence in any organization is not about having answers—it is about asking the right questions.</p>
<h2 id="heading-the-oracle-problem">The Oracle Problem</h2>
<p>The dominant narrative around AI today is one of omniscience. Systems that can write anything, predict anything, automate anything. The promise is seductive: hand over your messy, complicated business problems to an algorithm, and receive back clean, confident answers.</p>
<p>This approach works remarkably well for certain tasks. If you need to categorize customer support tickets, transcribe meetings, or generate marketing copy variations, modern AI excels. These are pattern-matching problems with clear boundaries and well-defined success metrics.</p>
<p>But enterprise decision-making is rarely that straightforward. Real organizational challenges are tangled in context, history, politics, relationships, and incomplete information. They require judgment, not just computation. They demand understanding of why things are the way they are, not merely what the data currently shows.</p>
<p>When we treat AI as an oracle, we create systems that speak with false confidence. They make recommendations without understanding constraints. They optimize for metrics without grasping trade-offs. They answer questions without pausing to wonder if we are asking the right questions in the first place.</p>
<h2 id="heading-what-contextual-intelligence-actually-means">What Contextual Intelligence Actually Means</h2>
<p>After that humbling meeting with the logistics company, we went back and talked to dozens of enterprise teams. We asked them not about what they wanted AI to do, but about how they actually made decisions. The patterns that emerged surprised us.</p>
<p>The best decisions rarely came from having perfect information. They came from asking clarifying questions. From understanding hidden constraints. From recognizing when a problem statement itself needed to be challenged. The most valuable members of any team were not the ones with the most answers—they were the ones who asked questions that reframed how everyone else thought about the problem.</p>
<p>This is what we now call contextual intelligence. It is not about processing more data or running better algorithms. It is about building AI systems that understand the shape of what they do not know. Systems that recognize when their confidence should be lower. Systems that actively seek to understand the context before offering solutions.</p>
<p>At DeepMost AI, we started designing our products around a different principle: AI should think with people, not for them. This is not just a philosophical stance. It changes everything about how we build.</p>
<h2 id="heading-how-we-build-ai-that-asks-questions">How We Build AI That Asks Questions</h2>
<p>The technical shift required to build question-asking AI is more profound than it might seem. Traditional machine learning systems are trained to minimize uncertainty. They learn to be confident. Our approach requires training systems to recognize and articulate their uncertainty productively.</p>
<p>When our AI encounters a business problem, it does not immediately generate recommendations. Instead, it maps what it understands and what it does not. It identifies assumptions that need validation. It surfaces contradictions in the data that might indicate deeper issues. It asks users to clarify goals before optimizing for them.</p>
<p>This creates a different kind of interaction. Rather than presenting a dashboard of insights, our systems facilitate a conversation. The AI might notice that two departments are measuring success differently and ask which metric should take priority. It might identify that historical data comes from a period with different market conditions and question whether past patterns are still relevant. It might recognize that an obvious optimization would conflict with unstated organizational values and prompt discussion about trade-offs.</p>
<p>The result is not slower decision-making. Counterintuitively, it is faster and more confident decision-making, because the decisions are built on a foundation of shared understanding rather than algorithmic black boxes.</p>
<h2 id="heading-the-questions-that-changed-our-product">The Questions That Changed Our Product</h2>
<p>Building this way has forced us to confront uncomfortable questions about our own product. If our AI is supposed to ask good questions, what makes a question good? How do we train a system to recognize when it is missing critical context? How do we design interfaces that invite collaboration rather than passive consumption of AI-generated insights?</p>
<p>We have made mistakes. Early versions of our system asked too many questions, creating cognitive overload rather than clarity. We learned that good questions are not just about gathering information—they are about focusing attention on what matters most. The best questions are the ones that help teams see their problems differently, not just collect more data points.</p>
<p>We have also had to rethink how we measure success. Traditional AI metrics focus on accuracy, speed, and efficiency. How do you measure whether a system is asking good questions? We have developed new evaluation frameworks based on decision quality, organizational learning, and long-term outcomes rather than immediate task completion.</p>
<p>This is harder to build. It is harder to sell. It does not make for flashy demos where an AI produces instant answers. But it creates something more valuable: AI that makes organizations genuinely smarter over time, not just faster at executing potentially flawed strategies.</p>
<h2 id="heading-what-this-means-for-the-future-of-work">What This Means for the Future of Work</h2>
<p>I believe the next phase of AI adoption in enterprises will be defined not by which systems can automate the most tasks, but by which systems can elevate human judgment most effectively. The companies that thrive will be those that use AI to ask better questions, not just to answer existing questions faster.</p>
<p>This has implications for how we think about AI safety and alignment as well. The risks of AI are often framed around systems becoming too powerful or making decisions we cannot understand. But there is another risk that receives less attention: AI systems that make us intellectually lazy. Systems that discourage critical thinking because they offer the convenience of ready-made answers.</p>
<p>Building AI that asks questions is a form of alignment. It keeps humans in the loop not as a safety measure, but as the essential intelligence in the system. It creates AI that augments human capabilities rather than replacing human judgment.</p>
<h2 id="heading-why-this-matters-beyond-deepmost">Why This Matters Beyond DeepMost</h2>
<p>I am sharing this not to promote what we are building, but because I believe this shift in thinking is necessary for the AI industry as a whole. We are at a point where the technical capabilities of AI are advancing faster than our wisdom about how to deploy those capabilities responsibly.</p>
<p>The instinct to build AI that has all the answers is understandable. It fits our cultural narratives about intelligence and progress. It makes for compelling marketing. It promises to relieve us of the burden of uncertainty.</p>
<p>But the most important problems facing organizations and society are not ones where certainty is possible or even desirable. They are problems that require nuance, contextual understanding, competing values, and collective wisdom. For these problems, we need AI that makes us better thinkers, not AI that thinks for us.</p>
<h2 id="heading-building-in-public-learning-in-public">Building in Public, Learning in Public</h2>
<p>This is still early days for us at DeepMost AI. We are learning as we build, making mistakes, and constantly refining our understanding of what contextual intelligence really means in practice. Some days I wonder if we are making this too hard, if we should just build the thing that demos well and answers questions with confident certainty.</p>
<p>But then I remember that meeting with the logistics VP, and dozens of conversations since then with teams who are tired of AI tools that do not understand their reality. I remember why we started building this in the first place: not to create another AI that claims to have all the answers, but to build AI that helps people ask better questions.</p>
<p>If you are building products, leading teams, or thinking about how AI fits into your organization, I would encourage you to ask yourself: are you looking for AI that will tell you what to do, or AI that will help you think more clearly about what matters? The former is easier to build and sell. The latter is what will actually transform how your organization works.</p>
<p>The future of AI is not about perfect predictions. It is about better conversations. And better conversations start with better questions.</p>
<hr />
<p><strong>What questions is your organization still trying to answer? I would love to hear your thoughts in the comments below.</strong></p>
<p><strong>If you are interested in following our journey building contextual AI at</strong> <a target="_blank" href="https://www.deepmostai.com/"><strong>DeepMost</strong></a><strong>, you can connect with me on</strong> <a target="_blank" href="https://www.linkedin.com/in/sherin-roy-deepmost/"><strong>LinkedIn</strong></a> <strong>or follow Notes by Sherin for more reflections on building meaningful technology.</strong></p>
]]></content:encoded></item></channel></rss>