[{"data":1,"prerenderedAt":1170},["ShallowReactive",2],{"blog-building-acrons":3,"blog-all-for-related":705},{"id":4,"title":5,"author":6,"body":7,"cardAlt":5,"categories":689,"description":693,"draft":694,"extension":695,"headerImage":696,"keywords":697,"meta":698,"name":699,"navigation":319,"path":700,"seo":701,"series":6,"stem":702,"updated":6,"year":703,"__hash__":704},"blog\u002Fblog\u002Fbuilding-acrons.md","Building Acrons 🚀",null,{"type":8,"value":9,"toc":682},"minimark",[10,14,39,46,52,65,678],[11,12,13],"p",{},"Have you come across acronyms and got confused about what they mean. Wait! Do you know what these abbreviations mean?",[15,16,17,24,29,34],"ul",{},[18,19,20],"li",{},[21,22,23],"strong",{},"DIY",[18,25,26],{},[21,27,28],{},"FOMO",[18,30,31],{},[21,32,33],{},"BRB",[18,35,36],{},[21,37,38],{},"CMIIW",[11,40,41,42,45],{},"If ",[21,43,44],{},"Yes",", very well. You're super cool 😛",[11,47,41,48,51],{},[21,49,50],{},"No",", then you're facing the problem exactly what I faced!",[11,53,54,55,64],{},"In any case, you are missing on many acronyms. No worries, ",[21,56,57],{},[58,59,63],"a",{"href":60,"rel":61},"https:\u002F\u002Fmohitkhare.me\u002Facrons\u002F#\u002F",[62],"nofollow","Acrons"," is here for you.",[66,67,68,71,76,79,86,89,96,99,103,112,117,120,123,126,130,136,145,148,180,189,192,226,233,236,247,253,448,451,454,457,590,601,604,607,613,619,631,634,647,650,659,661,664,673],"ads",{},[69,70],"hr",{},[72,73,75],"h2",{"id":74},"problem","Problem",[11,77,78],{},"The terms above are some of the commonly used acronyms these days. People use it all the time, whether on Instagram, Facebook or Twitter. I used to search about them almost every time except the ones I was aware of (like ASAP).",[11,80,81,82,85],{},"This grew even more, when I found that at workplaces these acronyms are very common. Terms like ",[21,83,84],{},"CMIIW, AFK, RFC"," and what not 😱",[11,87,88],{},"I researched a bit about this. Reached out to few of my friends and colleagues.",[11,90,91,92,95],{},"Guess what, almost ",[21,93,94],{},"70% folks"," were not able to answer all 😅 Well, I knew it's not only me, but many people are facing this.",[11,97,98],{},"Well, now that I got a problem, why not build something to solve this 😈",[72,100,102],{"id":101},"solution","Solution",[11,104,105,106,111],{},"I had been exploring ",[58,107,110],{"href":108,"rel":109},"https:\u002F\u002Fvuejs.org\u002F",[62],"Vuejs"," for sometime now and was thinking to building something cool and useful. Well, I got the opportunity! Time to build ✅",[113,114,116],"h3",{"id":115},"data","Data",[11,118,119],{},"Well, finding data was one of the problems. Since, I wanted to make a dataset of such acronyms. I searched, found some, but that wasn't all useful.",[11,121,122],{},"I wrote some short scripts quickly to convert some of the data from the articles I found. About in an hour. I had this JSON file with around 60 acronyms.",[11,124,125],{},"Well, 60 is not a big number I know, but it's a start. Now, that I had the data, I started to setup my Vue app.",[113,127,129],{"id":128},"world-of-vue","World of Vue",[11,131,132,133,135],{},"I simply love ",[21,134,110],{},". I bet you'll fall in love with you once you start exploring it.",[11,137,138,139,144],{},"I used ",[58,140,143],{"href":141,"rel":142},"https:\u002F\u002Fcli.vuejs.org\u002F",[62],"Vue CLI"," to quickly create a basic Vuejs project.",[11,146,147],{},"Install Vuejs by running -",[149,150,155],"pre",{"className":151,"code":152,"language":153,"meta":154,"style":154},"language-javascript shiki shiki-themes github-light github-dark","npm install -g @vue\u002Fcli\n","javascript","",[156,157,158],"code",{"__ignoreMap":154},[159,160,163,167,171,174,177],"span",{"class":161,"line":162},"line",1,[159,164,166],{"class":165},"sVt8B","npm install ",[159,168,170],{"class":169},"szBVR","-",[159,172,173],{"class":165},"g @vue",[159,175,176],{"class":169},"\u002F",[159,178,179],{"class":165},"cli\n",[11,181,182,183,188],{},"In case, you don't have NPM, follow instructions ",[58,184,187],{"href":185,"rel":186},"https:\u002F\u002Fwww.npmjs.com\u002Fget-npm",[62],"here",".",[11,190,191],{},"Let's setup our basic Vue App -",[149,193,195],{"className":151,"code":194,"language":153,"meta":154,"style":154},"vue create \u003Cyour-awesome-project-name>\n",[156,196,197],{"__ignoreMap":154},[159,198,199,202,205,208,210,213,215,218,220,223],{"class":161,"line":162},[159,200,201],{"class":165},"vue create ",[159,203,204],{"class":169},"\u003C",[159,206,207],{"class":165},"your",[159,209,170],{"class":169},[159,211,212],{"class":165},"awesome",[159,214,170],{"class":169},[159,216,217],{"class":165},"project",[159,219,170],{"class":169},[159,221,222],{"class":165},"name",[159,224,225],{"class":169},">\n",[11,227,228,229,188],{},"You can choose custom setup or go with the default Babel\u002FEslint one. If you want to use webpack or others, check ",[58,230,187],{"href":231,"rel":232},"https:\u002F\u002Fcli.vuejs.org\u002Fguide\u002Fcreating-a-project.html#vue-create",[62],[11,234,235],{},"Now, I just had to show this JSON on the screen somehow.",[11,237,238,239,242,243,246],{},"I decided to build a simple table view which would be divided into two components ",[156,240,241],{},"popular"," and ",[156,244,245],{},"filtered"," lists. Now, Just looping through the data component lists and bang!",[11,248,249,250,252],{},"Below is the code for adding acronyms in ",[156,251,241],{}," data list!",[149,254,256],{"className":151,"code":255,"language":153,"meta":154,"style":154},"\u003Cdiv\n  v-show=\"!popular\"\n  class=\"searchResult\"\n  v-for=\"(value, index) in filteredList\"\n  :key=\"index\"\n>\n\n    \u003Cdiv class=\"grid\">\n      \u003Cdiv class=\"left\" :class=\"{'grayHighlight': index % 2 !== 0 }\">{{ value.acronym }}\u003C\u002Fdiv>\n      \u003Cdiv\n        class=\"right\"\n        :class=\"{'grayHighlight': index % 2 !== 0 }\"\n      >{{ value.expanded_version}}\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n",[156,257,258,266,280,291,302,309,314,321,340,382,388,399,418,428,438],{"__ignoreMap":154},[159,259,260,262],{"class":161,"line":162},[159,261,204],{"class":165},[159,263,265],{"class":264},"s9eBZ","div\n",[159,267,269,273,276],{"class":161,"line":268},2,[159,270,272],{"class":271},"sScJk","  v-show",[159,274,275],{"class":169},"=",[159,277,279],{"class":278},"sZZnC","\"!popular\"\n",[159,281,283,286,288],{"class":161,"line":282},3,[159,284,285],{"class":271},"  class",[159,287,275],{"class":169},[159,289,290],{"class":278},"\"searchResult\"\n",[159,292,294,297,299],{"class":161,"line":293},4,[159,295,296],{"class":271},"  v-for",[159,298,275],{"class":169},[159,300,301],{"class":278},"\"(value, index) in filteredList\"\n",[159,303,305],{"class":161,"line":304},5,[159,306,308],{"class":307},"s7hpK","  :key=\"index\"\n",[159,310,312],{"class":161,"line":311},6,[159,313,225],{"class":165},[159,315,317],{"class":161,"line":316},7,[159,318,320],{"emptyLinePlaceholder":319},true,"\n",[159,322,324,327,330,333,335,338],{"class":161,"line":323},8,[159,325,326],{"class":165},"    \u003C",[159,328,329],{"class":264},"div",[159,331,332],{"class":271}," class",[159,334,275],{"class":169},[159,336,337],{"class":278},"\"grid\"",[159,339,225],{"class":165},[159,341,343,346,348,350,352,355,358,361,364,367,370,373,376,379],{"class":161,"line":342},9,[159,344,345],{"class":165},"      \u003C",[159,347,329],{"class":264},[159,349,332],{"class":271},[159,351,275],{"class":169},[159,353,354],{"class":278},"\"left\"",[159,356,357],{"class":307}," :class=\"{'grayHighlight':",[159,359,360],{"class":271}," index",[159,362,363],{"class":307}," %",[159,365,366],{"class":307}," 2",[159,368,369],{"class":307}," !==",[159,371,372],{"class":307}," 0",[159,374,375],{"class":307}," }\">{{",[159,377,378],{"class":307}," value.acronym",[159,380,381],{"class":307}," }}\u003C\u002Fdiv>\n",[159,383,385],{"class":161,"line":384},10,[159,386,387],{"class":307},"      \u003Cdiv\n",[159,389,391,394,396],{"class":161,"line":390},11,[159,392,393],{"class":271},"        class",[159,395,275],{"class":169},[159,397,398],{"class":278},"\"right\"\n",[159,400,402,405,407,409,411,413,415],{"class":161,"line":401},12,[159,403,404],{"class":307},"        :class=\"{'grayHighlight':",[159,406,360],{"class":271},[159,408,363],{"class":307},[159,410,366],{"class":307},[159,412,369],{"class":307},[159,414,372],{"class":307},[159,416,417],{"class":307}," }\"\n",[159,419,421,424,426],{"class":161,"line":420},13,[159,422,423],{"class":165},"      >{{ value.expanded_version}}\u003C\u002F",[159,425,329],{"class":264},[159,427,225],{"class":165},[159,429,431,434,436],{"class":161,"line":430},14,[159,432,433],{"class":165},"    \u003C\u002F",[159,435,329],{"class":264},[159,437,225],{"class":165},[159,439,441,444,446],{"class":161,"line":440},15,[159,442,443],{"class":165},"  \u003C\u002F",[159,445,329],{"class":264},[159,447,225],{"class":165},[11,449,450],{},"But, scrolling through 60 items would be a pain. I found it annoying. Search feature was the solution. I wrote a simple function which returned filtered list of acronyms if the searched characters are present in the acronyms.",[11,452,453],{},"I even sorted the list in alphabetical order!",[11,455,456],{},"Here is the JS function -",[149,458,460],{"className":151,"code":459,"language":153,"meta":154,"style":154},"filteredList() {\n    return this.acronymList.filter(obj  => {\n        return obj.acronym.toLowerCase().includes(this.search.toLowerCase());\n    })\n    .sort((a, b) => (a.acronym > b.acronym ?  1  :  -1));\n}\n",[156,461,462,470,498,528,533,585],{"__ignoreMap":154},[159,463,464,467],{"class":161,"line":162},[159,465,466],{"class":271},"filteredList",[159,468,469],{"class":165},"() {\n",[159,471,472,475,479,482,485,488,492,495],{"class":161,"line":268},[159,473,474],{"class":169},"    return",[159,476,478],{"class":477},"sj4cs"," this",[159,480,481],{"class":165},".acronymList.",[159,483,484],{"class":271},"filter",[159,486,487],{"class":165},"(",[159,489,491],{"class":490},"s4XuR","obj",[159,493,494],{"class":169},"  =>",[159,496,497],{"class":165}," {\n",[159,499,500,503,506,509,512,515,517,520,523,525],{"class":161,"line":282},[159,501,502],{"class":169},"        return",[159,504,505],{"class":165}," obj.acronym.",[159,507,508],{"class":271},"toLowerCase",[159,510,511],{"class":165},"().",[159,513,514],{"class":271},"includes",[159,516,487],{"class":165},[159,518,519],{"class":477},"this",[159,521,522],{"class":165},".search.",[159,524,508],{"class":271},[159,526,527],{"class":165},"());\n",[159,529,530],{"class":161,"line":293},[159,531,532],{"class":165},"    })\n",[159,534,535,538,541,544,546,549,552,555,558,561,564,567,570,573,576,579,582],{"class":161,"line":304},[159,536,537],{"class":165},"    .",[159,539,540],{"class":271},"sort",[159,542,543],{"class":165},"((",[159,545,58],{"class":490},[159,547,548],{"class":165},", ",[159,550,551],{"class":490},"b",[159,553,554],{"class":165},") ",[159,556,557],{"class":169},"=>",[159,559,560],{"class":165}," (a.acronym ",[159,562,563],{"class":169},">",[159,565,566],{"class":165}," b.acronym ",[159,568,569],{"class":169},"?",[159,571,572],{"class":477},"  1",[159,574,575],{"class":169},"  :",[159,577,578],{"class":169},"  -",[159,580,581],{"class":477},"1",[159,583,584],{"class":165},"));\n",[159,586,587],{"class":161,"line":311},[159,588,589],{"class":165},"}\n",[11,591,592,593,596,597],{},"I had to put this as ",[156,594,595],{},"computed"," property since it had to call this function on every search character and update component with new list. Learn more about computed properties ",[58,598,187],{"href":599,"rel":600},"https:\u002F\u002Fvuejs.org\u002Fv2\u002Fguide\u002Fcomputed.html",[62],[11,602,603],{},"Finally, since everything was working well now. I tweaked the UI a bit to make it usable 😛\nI was happy with this result after sometime. LMK how it looks",[11,605,606],{},"Wait, LMK - Let me Know (told you, try Acrons now 😉)",[11,608,609,610],{},"Checkout the final product - ",[58,611,63],{"href":60,"rel":612},[62],[11,614,615],{},[616,617],"img",{"alt":63,"src":618},"https:\u002F\u002Fraw.githubusercontent.com\u002Fmkfeuhrer\u002Facrons\u002Fmaster\u002Facrons-demo.png",[11,620,621,622,625,626,188],{},"Acrons is ",[21,623,624],{},"Open-source"," ❤️️ Do suggest and add acronyms you use daily. Find acrons on ",[58,627,630],{"href":628,"rel":629},"https:\u002F\u002Fgithub.com\u002Fmkfeuhrer\u002Facrons",[62],"Github",[11,632,633],{},"Do upvote it on Product hunt 😁",[11,635,636],{},[58,637,640],{"href":638,"target":639},"https:\u002F\u002Fwww.producthunt.com\u002Fposts\u002Facrons?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-acrons","_blank",[616,641],{"src":642,"alt":643,"style":644,"width":645,"height":646},"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=200817&theme=light","Acrons - One stop solution for finding cool, crazy & popular acronyms | Product Hunt Embed","width: 250px; height: 54px;","250px","54px",[11,648,649],{},"Also, do share your awesome projects in the comment section.",[11,651,652,653,658],{},"Liked the article? Consider ",[58,654,657],{"href":655,"rel":656},"https:\u002F\u002Fwww.buymeacoffee.com\u002FchHAzigTb",[62],"supporting me"," ☕️",[69,660],{},[11,662,663],{},"I hope you learned something new. Feel free to suggest improvements ✔️",[11,665,666,667,672],{},"I share regular updates and resources on ",[58,668,671],{"href":669,"rel":670},"https:\u002F\u002Ftwitter.com\u002Fmkfeuhrer",[62],"Twitter",". Let's connect!",[11,674,675],{},[21,676,677],{},"Keep exploring 🔎 Keep learning 🚀",[679,680,681],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":154,"searchDepth":268,"depth":268,"links":683},[684,685],{"id":74,"depth":268,"text":75},{"id":101,"depth":268,"text":102,"children":686},[687,688],{"id":115,"depth":282,"text":116},{"id":128,"depth":282,"text":129},[690,691,692],"Side Projects","Web","Tools","Building Acrons, a one-stop tool to decode everyday acronyms like DIY, FOMO, and BRB without losing your flow.",false,"md","blog\u002Fbuilding-acrons\u002Fbuilding-acrons-card.webp","acronyms, abbrevations, web-app, acronym finder",{},"building-acrons","\u002Fblog\u002Fbuilding-acrons",{"title":5,"description":693},"blog\u002Fbuilding-acrons","2020-05-26","01wQWjqzemwRUqKvRl8A8xm6EHmLMlvLawvOVvr93sw",[706,714,721,729,731,738,745,752,758,764,770,776,782,791,797,804,810,816,822,828,834,840,846,852,859,866,872,878,884,890,896,902,908,914,920,926,932,938,944,951,957,963,969,976,982,988,995,1002,1008,1015,1021,1028,1034,1041,1047,1053,1059,1065,1071,1077,1083,1089,1095,1101,1107,1113,1120,1126,1133,1139,1145,1151,1158,1164],{"path":707,"title":708,"description":709,"categories":710,"draft":319,"year":713,"series":6},"\u002Fblog\u002Fai-assisted-workstation","Building an AI-Assisted Personal Workstation","How I built a personal AI workstation: markdown knowledge base, portable agent skills, handoff-driven sessions. What worked, what broke, what I would change.",[711,712],"Productivity","Programming","2026-08-26",{"path":715,"title":716,"description":717,"categories":718,"draft":694,"year":720,"series":6},"\u002Fblog\u002Faws-s3-golang","Uploading images to AWS S3 in Golang","In this tutorial I cover how to upload, fetch and manage other operations for objects on AWS S3 in Golang",[719,712],"Golang","2020-01-12",{"path":722,"title":723,"description":724,"categories":725,"draft":694,"year":728,"series":6},"\u002Fblog\u002Fbooks-for-engineers","Best Books for Software Engineers","Best Books to help you build you software engineering career - ranging from fundamentats, interview prep to productivity.",[726,727],"Books","Life","2021-12-26",{"path":700,"title":5,"description":693,"categories":730,"draft":694,"year":703,"series":6},[690,691,692],{"path":732,"title":733,"description":734,"categories":735,"draft":694,"year":737,"series":6},"\u002Fblog\u002Fcap-theorem","CAP Theorem Explained","Learn the concept and misconceptions around popular CAP theorem in system design.",[736,712],"System Design","2021-07-26",{"path":739,"title":740,"description":741,"categories":742,"draft":694,"year":744,"series":6},"\u002Fblog\u002Fcode-reviews","Code Review Checklist","Why code reviews matter, and best practices that catch bugs early and keep code quality high before merge.",[743],"Engineering Principles","2020-07-20",{"path":746,"title":747,"description":748,"categories":749,"draft":694,"year":751,"series":6},"\u002Fblog\u002Fdark-mode","Add Dark mode to websites","Dark mode is ❤️️ Add it to your websites with little CSS and JS",[750,691],"Javascript","2020-07-04",{"path":753,"title":754,"description":755,"categories":756,"draft":694,"year":757,"series":6},"\u002Fblog\u002Fdate-time-golang","Working with Date and Time in Go","Learn how to use time in Golang - Multiple formats, locations and using date.",[719,712],"2020-10-09",{"path":759,"title":760,"description":761,"categories":762,"draft":694,"year":763,"series":6},"\u002Fblog\u002Fdefer-in-golang","Understanding Defer In Golang","Learn about defer keyword in golang and how it can help you avoid panics due to bugs.",[719,712],"2021-05-05",{"path":765,"title":766,"description":767,"categories":768,"draft":694,"year":769,"series":6},"\u002Fblog\u002Fenums-golang","Implementing Enums in Golang","Enums are a way to defined set of constant values. Learn how to implement enums in Go using iota with examples.",[719,712],"2021-12-18",{"path":771,"title":772,"description":773,"categories":774,"draft":694,"year":775,"series":6},"\u002Fblog\u002Fenvironment-variable-golang","Guide to Environment variables in Go","Learn what are environment variables and how to use them in Go",[719,712],"2020-08-14",{"path":777,"title":778,"description":779,"categories":780,"draft":694,"year":781,"series":6},"\u002Fblog\u002Ferror-handling-golang","Handle errors the right way — Golang","How to handle errors in golang to make your life easy",[719,712],"2020-01-30",{"path":783,"title":784,"description":785,"categories":786,"draft":694,"year":713,"series":789},"\u002Fblog\u002Ffile-attack-field-guide","How File-Based Attacks Land: A Detection Engineer's Field Guide","A practical taxonomy of how malware and phishing arrive as files, why classic controls miss them, and how detection should think.",[787,788],"Security","Systems",{"name":790,"part":162},"File Attack Deep Dives",{"path":792,"title":793,"description":794,"categories":795,"draft":694,"year":796,"series":6},"\u002Fblog\u002Ffile-upload-golang","Uploading Files in Golang with Multipart Request","Learn how to upload files from your client to server as a multipart request in Golang.",[719,712],"2021-03-13",{"path":798,"title":799,"description":800,"categories":801,"draft":694,"year":803,"series":6},"\u002Fblog\u002Fgit-branch","Git Branch 101","Branching is a new path of development that makes it a lot easier to build features. Learn why and how to use branching in git.",[802,712],"Git","2022-03-20",{"path":805,"title":806,"description":807,"categories":808,"draft":694,"year":809,"series":6},"\u002Fblog\u002Fgit-pull-request-template","Guide to Pull Request Templates","Improve collaboration and code reviews with pull request templates. Blog include PR template and how to create one on github\u002Fgitlab",[802,712],"2023-08-24",{"path":811,"title":812,"description":813,"categories":814,"draft":694,"year":815,"series":6},"\u002Fblog\u002Fgit-remove-sensitive-info","Securing Git: Remove Sensitive Information","Protect your code from security breaches by using BFG tool to remove sensitive information from Git history. Learn how to do it in this comprehensive guide.",[802,712],"2023-10-16",{"path":817,"title":818,"description":819,"categories":820,"draft":694,"year":821,"series":6},"\u002Fblog\u002Fgit-tags-explained","Git tags : Explained","What Git tags are, why and when to use them, and how to start tagging releases in your own projects.",[802,712],"2020-06-18",{"path":823,"title":824,"description":825,"categories":826,"draft":694,"year":827,"series":6},"\u002Fblog\u002Fgo-dependency-injection","Dependency Injection in Go using Wire","Learn about dependency injection, its benefits and how to implement it in Go services using wire",[719,712],"2022-11-26",{"path":829,"title":830,"description":831,"categories":832,"draft":694,"year":833,"series":6},"\u002Fblog\u002Fgo-generics","Introduction to Generics in Go","Learn about generics in Golang, it's benefits and how to implement it in applications.",[719,712],"2022-11-27",{"path":835,"title":836,"description":837,"categories":838,"draft":694,"year":839,"series":6},"\u002Fblog\u002Fgo-in-memory-cache","Building In-Memory Cache in Go","Learn about in-memory caching in Golang, it's benefits and how to implement it with and without generics with a TTL(expiry).",[719,712],"2024-03-28",{"path":841,"title":842,"description":843,"categories":844,"draft":694,"year":845,"series":6},"\u002Fblog\u002Fgo-makefile","Ultimate Makefile for Golang","Boost your productivity and save time with ultimate Makefile for Golang projects.",[719,712],"2024-06-10",{"path":847,"title":848,"description":849,"categories":850,"draft":694,"year":851,"series":6},"\u002Fblog\u002Fgo-middleware","Mastering Middlewares in Golang","Learn about middlewares, their use cases and how to implement them in Golang applications",[719,712],"2022-03-13",{"path":853,"title":854,"description":855,"categories":856,"draft":694,"year":858,"series":6},"\u002Fblog\u002Fgo-naming-conventions","Naming Conventions in Golang","Why naming conventions matter in Go, with best practices and practical examples for clear, readable, maintainable code.",[719,712,857],"Code Quality","2023-05-19",{"path":860,"title":861,"description":862,"categories":863,"draft":694,"year":865,"series":6},"\u002Fblog\u002Fgo-with-redis","Go with Redis","A practical introduction to using Redis with Golang to make your applications faster with in-memory data storage.",[719,864,712],"Database","2020-05-03",{"path":867,"title":868,"description":869,"categories":870,"draft":694,"year":871,"series":6},"\u002Fblog\u002Fgolang-maps","Learn Maps in Golang (with examples)","A complete guide to maps in Golang: creating maps, adding and removing items, iterating, and how map equality works.",[719,712],"2020-09-10",{"path":873,"title":874,"description":875,"categories":876,"draft":694,"year":877,"series":6},"\u002Fblog\u002Fguide-to-cdn","Guide to Content Delivery Network","CDN is one of the backbone of modern world internet infrastructure. Learn about Content Delivery Network, it's working, types and benefits.",[736,712],"2022-01-23",{"path":879,"title":880,"description":881,"categories":882,"draft":694,"year":883,"series":6},"\u002Fblog\u002Fguide-to-rule-engines","Guide to Rule Engines","Rule Engines help in solving changing business requirements with ease. Learn all about Rule engines, it's working, benefits and how to implement one in Golang",[719,712],"2022-09-12",{"path":885,"title":886,"description":887,"categories":888,"draft":694,"year":889,"series":6},"\u002Fblog\u002Fhexagonal-architecture","Guide to Hexagonal Architecture","Learn how to design efficient application with hexagonal architecture with practical example",[736,712],"2020-12-13",{"path":891,"title":892,"description":893,"categories":894,"draft":694,"year":895,"series":6},"\u002Fblog\u002Fhttp-status-codes","Learn HTTP Status Codes","A tour of HTTP response status codes, what each class means, and when to use which code in your applications.",[691,712],"2020-07-30",{"path":897,"title":898,"description":899,"categories":900,"draft":694,"year":901,"series":6},"\u002Fblog\u002Fintroduction-to-goroutines","Introduction to Goroutines","Understand the basics of concurrency and learn how to work with Goroutines in golang.",[719,712],"2021-04-10",{"path":903,"title":904,"description":905,"categories":906,"draft":694,"year":907,"series":6},"\u002Fblog\u002Fjson-in-postgres-with-golang","Storing JSON in Postgres with Golang","Learn how to store JSON objects in Postgres and how to implement it in Golang.",[712,864,719],"2021-02-13",{"path":909,"title":910,"description":911,"categories":912,"draft":694,"year":913,"series":6},"\u002Fblog\u002Fjson-web-token","Complete Guide to JWT","JSON Web Tokens are a very compact way to carry information. Learn about JWTs in depth, from its structure to when to use it.",[712,691],"2021-11-20",{"path":915,"title":916,"description":917,"categories":918,"draft":694,"year":919,"series":6},"\u002Fblog\u002Flearn-to-say-no","Learning to say No","Learn why it's important to say 'NO'. How it helps in increasing productivity and explore strategies for saying No",[727,726],"2022-04-09",{"path":921,"title":922,"description":923,"categories":924,"draft":694,"year":925,"series":6},"\u002Fblog\u002Flearn-unlearn-relearn","Learn - Unlearn - Relearn","Unlearning things to learn new is the way to grow. Discover how to do that!",[711,727],"2020-09-25",{"path":927,"title":928,"description":929,"categories":930,"draft":694,"year":931,"series":6},"\u002Fblog\u002Flinting-in-golang","Introduction to Linting in Go","Introduction to improving code quality using linting. Learn how to add linting in your Go projects.",[719,712],"2021-07-07",{"path":933,"title":934,"description":935,"categories":936,"draft":694,"year":937,"series":6},"\u002Fblog\u002Fload-balancing","Load Balancing 101","Complete guide on load balancers explaining the internal working and how does it help in making applications efficient.",[736,712],"2021-05-29",{"path":939,"title":940,"description":941,"categories":942,"draft":694,"year":943,"series":6},"\u002Fblog\u002Fmaking-decisions-the-right-way","Making Decisions: The right way","Decisions are hard! Learn how to make the right decisions always",[711,727],"2020-06-07",{"path":945,"title":946,"description":947,"categories":948,"draft":694,"year":950,"series":6},"\u002Fblog\u002Fmanage-logs-with-logrotate","Using Logrotate to manage logs","Learn how to use logrotate system utility to manage logs with example",[949,712],"Linux","2020-09-08",{"path":952,"title":953,"description":954,"categories":955,"draft":694,"year":956,"series":6},"\u002Fblog\u002Fmarshal-structs-golang","Marshal structs the right way: Golang","Why Golang marshals empty structs into your JSON instead of null, and how to marshal structs the right way.",[719,712],"2020-03-31",{"path":958,"title":959,"description":960,"categories":961,"draft":694,"year":962,"series":6},"\u002Fblog\u002Fnotes-almanack-naval","Book Notes : Almanack of Naval Ravikant","My notes\u002Fhighlights from Almanack of Naval Ravikant book by Eric Jorgenson",[726,727],"2020-10-17",{"path":964,"title":965,"description":966,"categories":967,"draft":694,"year":968,"series":6},"\u002Fblog\u002Fnotes-anything-you-want","Book Notes : Anything you want","My notes\u002Fhighlights from Anything you want book by Derek Sivers",[726,727],"2021-09-25",{"path":970,"title":971,"description":972,"categories":973,"draft":694,"year":975,"series":6},"\u002Fblog\u002Fnotes-getting-real","Book Notes : Getting Real","My notes and highlights from Getting Real by Jason Fried and David Heinemeier Hansson on building web applications.",[726,974],"Startups","2020-11-03",{"path":977,"title":978,"description":979,"categories":980,"draft":694,"year":981,"series":6},"\u002Fblog\u002Fnotes-hell-yeah-or-no","Book Notes : Hell Yeah or No","My notes\u002Fhighlights from Hell Yeah or No book by Derek Sivers",[726,727],"2020-09-16",{"path":983,"title":984,"description":985,"categories":986,"draft":694,"year":987,"series":6},"\u002Fblog\u002Fnotes-how-to-be-a-capitalist","Book Notes : How to Be a Capitalist Without Any Capital","My notes\u002Fhighlights from How to Be a Capitalist Without Any Capital by Nathan Latka",[726,974],"2020-01-07",{"path":989,"title":990,"description":991,"categories":992,"draft":694,"year":994,"series":6},"\u002Fblog\u002Fnotes-lean-b2b","Book Notes : Lean B2B","My notes and highlights from Lean B2B by Étienne Garbugli on assessing markets, building MVPs, and selling to businesses.",[726,993],"Entrepreneurship","2022-07-02",{"path":996,"title":997,"description":998,"categories":999,"draft":694,"year":1001,"series":6},"\u002Fblog\u002Fnotes-lets-talk-money","Book Notes : Let's Talk Money","My notes and highlights from Let's Talk Money by Monica Halan on managing personal finances and savings.",[726,1000],"Personal Finance","2021-02-26",{"path":1003,"title":1004,"description":1005,"categories":1006,"draft":694,"year":1007,"series":6},"\u002Fblog\u002Fnotes-obviously-awesome","Book Notes : Obviously Awesome","My notes and highlights from Obviously Awesome by April Dunford on product positioning and marketing strategy.",[726,974],"2020-04-26",{"path":1009,"title":1010,"description":1011,"categories":1012,"draft":694,"year":1014,"series":6},"\u002Fblog\u002Fnotes-refactoring-ui","Book Notes: Refactoring UI","My notes and highlights from Refactoring UI by Adam Wathan and Steve Schoger, full of practical design tips for engineers.",[726,1013],"Design","2020-05-09",{"path":1016,"title":1017,"description":1018,"categories":1019,"draft":694,"year":1020,"series":6},"\u002Fblog\u002Fnotes-rework","Book Notes: Rework","My notes and highlights from Rework by Jason Fried and David Heinemeier Hansson on a better way to succeed in business.",[726,974],"2021-04-14",{"path":1022,"title":1023,"description":1024,"categories":1025,"draft":694,"year":1027,"series":6},"\u002Fblog\u002Fone-on-one-meetings","Guide to Effective 1:1 Meetings","One on One meetings are important for your personal & professional growth. Learn how to master 1:1s with your manager and peers.",[1026,711],"Career","2023-03-05",{"path":1029,"title":1030,"description":1031,"categories":1032,"draft":694,"year":1033,"series":6},"\u002Fblog\u002Fpersonal-okrs","Personal OKRs for Success","Why one should set personal OKRs and how to achieve success with them",[711,727],"2020-06-27",{"path":1035,"title":1036,"description":1037,"categories":1038,"draft":694,"year":1040,"series":6},"\u002Fblog\u002Fpoker-tips","Poker Tips: Johns Hopkins Poker Class","Notes from Johns Hopkins poker course. This guide will help you improve in Poker and win some large pots.",[727,1039],"Poker","2020-06-13",{"path":1042,"title":1043,"description":1044,"categories":1045,"draft":694,"year":1046,"series":6},"\u002Fblog\u002Fpomodoro","Get work done: The Pomo Way","Learn to focus and get productive by following the Pomodoro Technique",[711],"2020-10-24",{"path":1048,"title":1049,"description":1050,"categories":1051,"draft":694,"year":1052,"series":6},"\u002Fblog\u002Fpostgres-constraints","Postgres Constraints","Constraints are line of defense for database. Explore various types of constrainsts in postgres",[864,712],"2020-11-07",{"path":1054,"title":1055,"description":1056,"categories":1057,"draft":694,"year":1058,"series":6},"\u002Fblog\u002Fppf-explained","PPF Explained","Learn basics about Public Provident Fund and why you should invest",[727,1000],"2020-12-24",{"path":1060,"title":1061,"description":1062,"categories":1063,"draft":694,"year":1064,"series":6},"\u002Fblog\u002Fproductivity-chrome-extensions","Boost Productivity with Chrome Extensions","Utitizing chrome extensions to boost your productivity!",[711,692,691],"2020-04-24",{"path":1066,"title":1067,"description":1068,"categories":1069,"draft":694,"year":1070,"series":6},"\u002Fblog\u002Fproductivity-in-vscode","Improve your productivity with VS Code","Key VS Code features like the integrated terminal, shortcuts, and extensions that improved my everyday productivity.",[711,712],"2020-03-12",{"path":1072,"title":1073,"description":1074,"categories":1075,"draft":694,"year":1076,"series":6},"\u002Fblog\u002Freading-101","Improving Reading 101","Why reading matters, how to build a reading habit, and what to read next - from my own journey into books.",[726,727],"2020-04-04",{"path":1078,"title":1079,"description":1080,"categories":1081,"draft":694,"year":1082,"series":6},"\u002Fblog\u002Freverse-proxy","Understanding Reverse Proxy","Learn about reverse proxy, how it is different from forward proxy and explore advantages of using it in system design.",[736,712],"2021-10-03",{"path":1084,"title":1085,"description":1086,"categories":1087,"draft":694,"year":1088,"series":6},"\u002Fblog\u002Frunning-periodic-background-task-golang","Running periodic background tasks in Golang","How to run periodic background tasks in Golang by combining cron-style scheduling with background execution.",[719,712],"2019-11-21",{"path":1090,"title":1091,"description":1092,"categories":1093,"draft":694,"year":1094,"series":6},"\u002Fblog\u002Fsessions-in-golang","Sessions using Golang and Redis","How cookies and sessions work, and how to implement persistent login sessions in Golang using Redis.",[719,864,712],"2020-02-25",{"path":1096,"title":1097,"description":1098,"categories":1099,"draft":694,"year":1100,"series":6},"\u002Fblog\u002Fsolid-dry-kiss-yagni","Solid Dry Kiss Yagni","An introduction to the SOLID, DRY, KISS, and YAGNI principles and how they help you write cleaner, robust code.",[743],"2020-07-17",{"path":1102,"title":1103,"description":1104,"categories":1105,"draft":694,"year":1106,"series":6},"\u002Fblog\u002Fstack-in-golang","Implement Stack in Golang","Learn how to implement stack data structure in Golang (Full code)",[719,712],"2020-09-14",{"path":1108,"title":1109,"description":1110,"categories":1111,"draft":694,"year":1112,"series":6},"\u002Fblog\u002Fstart-oss-today","Start your Open Source journey today","Start your OSS journey with intro to GIT. Participate in Hacktoberfest!",[802,712],"2020-09-19",{"path":1114,"title":1115,"description":1116,"categories":1117,"draft":694,"year":1119,"series":6},"\u002Fblog\u002Fsticky-social-bar","Sticky social share component in HTML","Learn how to build a social media sharing component in HTML and add it to your website.",[712,1118],"Frontend","2021-02-05",{"path":1121,"title":1122,"description":1123,"categories":1124,"draft":694,"year":1125,"series":6},"\u002Fblog\u002Fterm-insurance","Term insurance Simplified","Everything you need to know before you buy a term insurance.",[727,1000],"2020-11-29",{"path":1127,"title":1128,"description":1129,"categories":1130,"draft":694,"year":1132,"series":6},"\u002Fblog\u002Fterminal-output-with-redirection","Handling terminal outputs with Redirection","Learn how to handle terminal outputs with Redirection and saving it to files",[949,1131,712],"Terminal","2020-09-06",{"path":1134,"title":1135,"description":1136,"categories":1137,"draft":694,"year":1138,"series":6},"\u002Fblog\u002Fthink-and-grow-rich","Book Notes: Think and Grow Rich","My notes and highlights from Think and Grow Rich by Napoleon Hill, covering its process for building wealth.",[726,727],"2020-05-19",{"path":1140,"title":1141,"description":1142,"categories":1143,"draft":694,"year":1144,"series":6},"\u002Fblog\u002Ftransactions-postgres-golang","Transactions on Postgres with Golang","Performing Postgres database operations in Golang with GORM, from basic queries to full transaction support.",[719,864,712],"2020-03-18",{"path":1146,"title":1147,"description":1148,"categories":1149,"draft":694,"year":1150,"series":6},"\u002Fblog\u002Fwaitgroups-in-golang","WaitGroups in Golang","Learn about WaitGroups in golang and how to use them to perform concurrent operations without blocking the main thread.",[719,712],"2022-05-31",{"path":1152,"title":1153,"description":1154,"categories":1155,"draft":694,"year":1157,"series":6},"\u002Fblog\u002Fwhat-i-use","What I Use: Products and Softwares","List of what I use in my day to day life ranging from terminal, editors, softwares, devices to accessories",[727,1156],"Tech","2024-06-01",{"path":1159,"title":1160,"description":1161,"categories":1162,"draft":694,"year":1163,"series":6},"\u002Fblog\u002Fyear-in-review-2020","Year in Review: 2020","It's a wrap! 2020 was a crazy year, See how my year went!",[727],"2020-12-31",{"path":1165,"title":1166,"description":1167,"categories":1168,"draft":694,"year":1169,"series":6},"\u002Fblog\u002Fyear-in-review-2021","Year in Review: 2021","It's a wrap! 2021 was a mixed bag, full of ups and downs. Key Goal for 2022: Start now!",[727],"2021-12-31",1788272170490]