<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>All Posts - Sandesh Damkondwar</title><link>https://sandesh.work/posts/</link><description>All Posts | Sandesh Damkondwar</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</managingEditor><webMaster>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</webMaster><lastBuildDate>Wed, 21 Dec 2022 00:00:00 +0530</lastBuildDate><atom:link href="https://sandesh.work/posts/" rel="self" type="application/rss+xml"/><item><title>How we redesigned and rearchitected our Merchant Experience</title><link>https://sandesh.work/redesigning-rearchitecting-merchant-experience/</link><pubDate>Wed, 21 Dec 2022 00:00:00 +0530</pubDate><author>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</author><guid>https://sandesh.work/redesigning-rearchitecting-merchant-experience/</guid><description><![CDATA[<p><em>Originally published on <a href="https://engineering.razorpay.com/redesigning-rearchitecting-the-merchant-experience-d788bb44e526" target="_blank" rel="noopener noreffer ">Razorpay Engineering</a></em></p>
<p>Journey on how we made the merchant experience better — Part 1: Engineering Process</p>
<p></p>
<h2 id="tldr">TL;DR</h2>
<p>At Razorpay, we were experiencing user dropouts for a variety of reasons, particularly during the onboarding process, which resulted in an 89% user dropout.</p>
<p>Because of the architecture limitations, it was hard and challenging for us to give merchants a better experience that was fast, consistent, and had few dropouts.</p>]]></description></item><item><title>High Availability on Razorpay Payments Dashboard</title><link>https://sandesh.work/high-availability-razorpay-payments-dashboard/</link><pubDate>Mon, 14 Mar 2022 00:00:00 +0530</pubDate><author>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</author><guid>https://sandesh.work/high-availability-razorpay-payments-dashboard/</guid><description><![CDATA[<p><em>Originally published on <a href="https://engineering.razorpay.com/high-availability-on-razorpay-payments-dashboard-c4a09f66aa61" target="_blank" rel="noopener noreffer ">Razorpay Engineering</a></em></p>
<p>Our journey of delivering a product with the least downtime.</p>
<p></p>
<p>The Payments Dashboard is the face of Razorpay business, which every merchant uses to check the order, payment, settlements, and do many other everyday activities. Hence, it is essential to provide a seamless, crash-free experience to our merchants on the Payments Dashboard.</p>
<h2 id="the-problem-was-serious">The Problem Was Serious</h2>
<ul>
<li>The crash-free session rate (percentage of sessions with no UI crashes) at times was as low as ~50%</li>
<li>At times, there were around 7000 crashes per hour on average — the majority of these were false alerts which impacted MTTD of real issues</li>
<li>The MTTA (Mean Time to Acknowledge) of the incidents was more than 2 hours</li>
<li>There were no proper checks on the build and deployment pipelines</li>
</ul>
<p>These crashes were hindering the day-to-day operations of our merchants. Solving this problem was critical for our business.</p>]]></description></item><item><title>How to Use Middlewares in Node</title><link>https://sandesh.work/how-to-use-middlewares-in-node/</link><pubDate>Wed, 19 Feb 2020 01:19:07 +0530</pubDate><author>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</author><guid>https://sandesh.work/how-to-use-middlewares-in-node/</guid><description><![CDATA[<p>In this article, we would be seeing middlewares in NodeJS and how we would use them in our application.</p>
<h2 id="what-are-middlewares-in-nodejs"><strong>What are middlewares in Node.Js?</strong></h2>
<p>Middlewares are functions used in connecting a bunch of isolated systems to interact and perform certain tasks. For example, think of a switch as a component and bulb as another independent component where a wire acts as a middleware to connect these both and give us the required output (In this case, electricity to light the bulb).</p>]]></description></item><item><title>Generate a NodeJS Flamechart</title><link>https://sandesh.work/node-js-flamechart/</link><pubDate>Fri, 11 Jan 2019 00:30:48 +0530</pubDate><author>sandeshdamkondwar@gmail.com (Sandesh Damkondwar)</author><guid>https://sandesh.work/node-js-flamechart/</guid><description><![CDATA[<p>Here’s how you can generate a Node <a href="http://www.brendangregg.com/flamegraphs.html" target="_blank" rel="noopener noreffer ">flame graph</a>  with linux perf(1). Note that perf(1) needs to run as root, but the perf.map file node generates might be owned by a different user. If that’s the case, you’ll need to change its ownership to root as well — otherwise perf(1) will not be able to use it to translate JS stack frames.</p>
<pre><code>$ uname -a
</code></pre>
<p>Linux demo 3.2.0-74-virtual #109-Ubuntu SMP Tue Dec 9 17:04:48 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux</p>]]></description></item></channel></rss>