{"@attributes":{"version":"2.0"},"channel":{"title":"Dipto Mondal | CTO & Senior Software Engineer in Bangladesh","link":"https:\/\/diptomondal.me\/","description":"Recent content on Dipto Mondal | CTO & Senior Software Engineer in Bangladesh","generator":"Hugo","language":"en-us","lastBuildDate":"Sat, 31 Dec 2022 15:01:35 +0300","item":[{"title":"Boosting Go Performance - Understanding CPU Memory Access and Struct Padding","link":"https:\/\/diptomondal.me\/posts\/memory-optimisation-re-structuring-go-struct\/","pubDate":"Sat, 31 Dec 2022 15:01:35 +0300","guid":"https:\/\/diptomondal.me\/posts\/memory-optimisation-re-structuring-go-struct\/","description":"<h1 id=\"understanding-cpu-memory-access-and-optimizing-memory-structures-in-go\">Understanding CPU Memory Access and Optimizing Memory Structures in Go<\/h1>\n<p>In computer systems, CPU memory access is a critical aspect governed by alignment and padding principles. This article delves into the standard behavior of how CPUs access memory and the impact of struct padding, focusing on memory optimization techniques in the Go programming language.<\/p>\n<h2 id=\"the-challenge-aligned-access-and-padding\">The Challenge: Aligned Access and Padding<\/h2>\n<p>The CPU accesses memory by a single memory word at a time, aligning with the largest primitive data type. However, when the highest and lowest bytes of data are not in the same memory word, it triggers multiple operations, leading to complex coordination and performance challenges.<\/p>"},{"title":"Kubernetes NodePort vs TargetPort vs Port - Complete Guide","link":"https:\/\/diptomondal.me\/posts\/nodeport-targetport-and-port\/","pubDate":"Sat, 31 Dec 2022 15:01:35 +0300","guid":"https:\/\/diptomondal.me\/posts\/nodeport-targetport-and-port\/","description":"<p>Node port, target port, and port these terms and their use cases always make me confused.<\/p>\n<blockquote>\n<p>The longer I live, the more I realize that I am never wrong about anything, and that all the pains I have so humbly taken to verify my notions have only wasted my time!<\/p>\n<\/blockquote>\n<p><strong>Let\u2019s start with an example \u2013<\/strong><\/p>\n<p>Let\u2019s assume you have written a simple server in Golang which is running on port \u2013 <code>3000<\/code>.<\/p>"},{"title":"Let\u2019s Discuss STDIN, STDOUT and STDERR","link":"https:\/\/diptomondal.me\/posts\/lets-discuss-stdin-stdout-stderr\/","pubDate":"Tue, 27 Dec 2022 15:01:35 +0300","guid":"https:\/\/diptomondal.me\/posts\/lets-discuss-stdin-stdout-stderr\/","description":"<p>So what are stdin, stdout, and stderr in Linux or Unix bash?<\/p>\n<blockquote>\n<p>The longer I live, the more I realize that I am never wrong about anything, and that all the pains I have so humbly taken to verify my notions have only wasted my time!<\/p>\n<\/blockquote>\n<p>Whenever we run a command in the terminal, the terminal creates three data streams one for standard input, one for standard output, and one for standard error.<\/p>"},{"title":"About Dipto Mondal \u2014 CTO, Golang Expert & Backend Architect from Bangladesh","link":"https:\/\/diptomondal.me\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/diptomondal.me\/about\/","description":"<hr>\n<p>title: &ldquo;About Dipto Mondal \u2014 CTO, Golang Expert &amp; Backend Architect from Bangladesh&rdquo;\ndescription: &ldquo;Dipto Mondal is the CTO of Traders Connect and a senior backend engineer from Bangladesh. 7+ years shipping Go, Kubernetes and Rust systems \u2014 previously at Pathao.&rdquo;\nlayout: about\ntype: page\nkeywords:<\/p>\n<ul>\n<li>Dipto Mondal<\/li>\n<li>CTO Bangladesh<\/li>\n<li>Golang developer Bangladesh<\/li>\n<li>Kubernetes engineer<\/li>\n<li>backend architect Bangladesh<\/li>\n<li>Traders Connect CTO<\/li>\n<li>microservices expert<\/li>\n<li>system design<\/li>\n<li>Rust developer<\/li>\n<li>distributed systems<\/li>\n<\/ul>\n<p>intro:\nname: &ldquo;Dipto Mondal&rdquo;\nrole: &ldquo;CTO at Traders Connect&rdquo;\nlocation: &ldquo;Dhaka, Bangladesh&rdquo;\nheadline: &ldquo;I build backend systems that scale.&rdquo;\nbio: &ldquo;Seven years in, and I still get a kick out of making a slow service fast. I co-founded Traders Connect and led it from a blank repo to multi-million-dollar ARR. Before that I shipped 20+ Go microservices at Pathao. I write about what I learn \u2014 usually about Go, Kubernetes, and the unglamorous details of distributed systems.&rdquo;\nstats:\n- label: &ldquo;Years shipping&rdquo;\nvalue: &ldquo;7+&rdquo;\n- label: &ldquo;Microservices in prod&rdquo;\nvalue: &ldquo;20+&rdquo;\n- label: &ldquo;Primary stack&rdquo;\nvalue: &ldquo;Go \u00b7 K8s&rdquo;<\/p>"},{"title":"Contact","link":"https:\/\/diptomondal.me\/contact\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/diptomondal.me\/contact\/","description":"<h2 id=\"lets-connect-drop-me-a-message-and-ill-get-back-to-you-soon-your-thoughts-questions-or-just-a-friendly-hello-are-always-welcome\">Let&rsquo;s Connect! Drop me a message, and I&rsquo;ll get back to you soon. Your thoughts, questions, or just a friendly &lsquo;hello&rsquo; are always welcome.<\/h2>\n<h2 id=\"description-get-in-touch-with-dipto-mondal-for-backend-architecture-golang-and-kubernetes-consulting-or-just-a-conversation-based-in-dhaka-bangladesh\">layout: contact\ntitle: &ldquo;Contact Dipto Mondal \u2014 Backend Engineer &amp; CTO&rdquo;\ndescription: &ldquo;Get in touch with Dipto Mondal for backend architecture, Golang and Kubernetes consulting, or just a conversation. Based in Dhaka, Bangladesh.&rdquo;<\/h2>\n<p>Let&rsquo;s talk. Whether it&rsquo;s backend architecture, a Go\/Kubernetes deep-dive, or a technical co-founder conversation \u2014 drop a note below.<\/p>"},{"title":"Style Guide","link":"https:\/\/diptomondal.me\/styleguide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/diptomondal.me\/styleguide\/","description":"<p>A paragraph looks like this \u2014 dolor amet cray stumptown fingerstache neutra food truck seitan poke cardigan waistcoat VHS snackwave celiac hella. Godard seitan shoreditch flexitarian next level trust fund man braid vegan listicle keytar bitters. Disrupt cray fashion axe unicorn lomo shaman poke glossier keffiyeh snackwave austin tattooed seitan hexagon lo-fi. Lumbersexual irony vaporware, butcher shaman.<\/p>\n<hr>\n<h2 id=\"headings-by-default\">Headings by default:<\/h2>\n<h1 id=\"h1-default-styles-for-headings\">H1 Default styles for headings<\/h1>\n<h2 id=\"h2-default-styles-for-headings\">H2 Default styles for headings<\/h2>\n<h3 id=\"h3-default-styles-for-headings\">H3 Default styles for headings<\/h3>\n<h4 id=\"h4-default-styles-for-headings\">H4 Default styles for headings<\/h4>\n<h5 id=\"h5-default-styles-for-headings\">H5 Default styles for headings<\/h5>\n<h6 id=\"h6-default-styles-for-headings\">H6 Default styles for headings<\/h6>\n<hr>\n<h2 id=\"lists\">Lists<\/h2>\n<h4 id=\"ordered-list-example\">Ordered list example:<\/h4>\n<ol>\n<li>Poutine drinking vinegar bitters.<\/li>\n<li>Coloring book distillery fanny pack.<\/li>\n<li>Venmo biodiesel gentrify enamel pin meditation.<\/li>\n<li>Jean shorts shaman listicle pickled portland.<\/li>\n<li>Salvia mumblecore brunch iPhone migas.<\/li>\n<\/ol>\n<hr>\n<h4 id=\"unordered-list-example\">Unordered list example:<\/h4>\n<ul>\n<li>Bitters semiotics vice thundercats synth.<\/li>\n<li>Literally cred narwhal bitters wayfarers.<\/li>\n<li>Kale chips chartreuse paleo tbh street art marfa.<\/li>\n<li>Mlkshk polaroid sriracha brooklyn.<\/li>\n<li>Pug you probably haven&rsquo;t heard of them air plant man bun.<\/li>\n<\/ul>\n<hr>\n<h3 id=\"table\">Table<\/h3>\n<div class=\"table-container\">\n  <table>\n    <tr><th>Header 1<\/th><th>Header 2<\/th><th>Header 3<\/th><th>Header 4<\/th><th>Header 5<\/th><\/tr>\n    <tr><td>Row:1 Cell:1<\/td><td>Row:1 Cell:2<\/td><td>Row:1 Cell:3<\/td><td>Row:1 Cell:4<\/td><td>Row:1 Cell:5<\/td><\/tr>\n    <tr><td>Row:2 Cell:1<\/td><td>Row:2 Cell:2<\/td><td>Row:2 Cell:3<\/td><td>Row:2 Cell:4<\/td><td>Row:2 Cell:5<\/td><\/tr>\n    <tr><td>Row:3 Cell:1<\/td><td>Row:3 Cell:2<\/td><td>Row:3 Cell:3<\/td><td>Row:3 Cell:4<\/td><td>Row:3 Cell:5<\/td><\/tr>\n    <tr><td>Row:4 Cell:1<\/td><td>Row:4 Cell:2<\/td><td>Row:4 Cell:3<\/td><td>Row:4 Cell:4<\/td><td>Row:4 Cell:5<\/td><\/tr>\n    <tr><td>Row:5 Cell:1<\/td><td>Row:5 Cell:2<\/td><td>Row:5 Cell:3<\/td><td>Row:5 Cell:4<\/td><td>Row:5 Cell:5<\/td><\/tr>\n    <tr><td>Row:6 Cell:1<\/td><td>Row:6 Cell:2<\/td><td>Row:6 Cell:3<\/td><td>Row:6 Cell:4<\/td><td>Row:6 Cell:5<\/td><\/tr>\n  <\/table>\n<\/div>\n<hr>\n<h2 id=\"quotes\">Quotes<\/h2>\n<h4 id=\"a-quote-looks-like-this\">A quote looks like this:<\/h4>\n<blockquote>\n<p>The longer I live, the more I realize that I am never wrong about anything, and that all the pains I have so humbly taken to verify my notions have only wasted my time!<\/p>"}]}}