[{"data":1,"prerenderedAt":890},["ShallowReactive",2],{"blog-notes-obviously-awesome":3,"blog-all-for-related":392},{"id":4,"title":5,"author":6,"body":7,"cardAlt":5,"categories":376,"description":379,"draft":380,"extension":381,"headerImage":382,"keywords":383,"meta":384,"name":385,"navigation":386,"path":387,"seo":388,"series":6,"stem":389,"updated":6,"year":390,"__hash__":391},"blog\u002Fblog\u002Fnotes-obviously-awesome.md","Book Notes : Obviously Awesome",null,{"type":8,"value":9,"toc":371},"minimark",[10,22,30],[11,12,13,14,21],"p",{},"These are highlights\u002Fnotes from book ",[15,16,20],"a",{"href":17,"rel":18},"https:\u002F\u002Famzn.to\u002F3dzyB3f",[19],"nofollow","\"Obviously Awesome\""," by April Dunford. These are personal notes, would recommend reading the book, but in case you are short on time - just skim through these notes 😊",[11,23,24,25],{},"In case you are looking for book recommendations! Check ",[15,26,29],{"href":27,"rel":28},"https:\u002F\u002Flearnshots.netlify.app\u002Fbooks\u002F",[19],"Learnshots",[31,32,33,36,283,285,290,334,342,351,353,356,365],"ads",{},[34,35],"hr",{},[37,38,39,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,211,214,217,220,223,226,229,232,235,238,241,244,247,250,253,256,259,262,265,268,271,274,277,280],"ul",{},[40,41,42],"li",{},"Positioning is the act of deliberately defining how you are the best at something that a defined market cares a lot about.",[40,44,45],{},"If we fail at positioning, we fail at marketing and sales. If we fail at marketing and sales, the entire business fails.",[40,47,48],{},"Weak positioning diminishes the results of everything we do in marketing and sales. It’s a wind in our face, constantly slowing us down, making the effort required to meet our business targets just that much more difficult. It’s like trying to make an omelet with rotten eggs",[40,50,51],{},"The first step to optimizing positioning is to really understand what it is.",[40,53,54],{},"Strategy is about making choices,",[40,56,57],{},"Customers need to be able to easily understand what your product is, why it’s special and why it matters to them",[40,59,60],{},"Your current customers love you, but new prospects can’t figure out what you’re selling",[40,62,63],{},"Even a world-class product, poorly positioned, can fail.",[40,65,66],{},"Trap 1: You are stuck on the idea of what you intended to build, and you don’t realize thatyour product has become something else",[40,68,69],{},"As product creators, we need to understand that the choices we make in positioning and context can have a massive impact on our businesses—for better or worse.",[40,71,72],{},"Trap 2: You carefully designed your product for a market, but that market has changed",[40,74,75],{},"We generally fail to consider other—potentially better—ways to position our products because we simply aren’t positioning them deliberately.",[40,77,78],{},"Find out who you are and do it on purpose.”",[40,80,81],{},"The customer’s point of view on the problem you solve and the alternative ways of solving that problem.",[40,83,84],{},"The ways you are uniquely different from those alternatives and why that’s meaningful for customers.",[40,86,87],{},"The characteristics of a potential customer that really values what you can uniquely deliver.",[40,89,90],{},"The best market context for your product that makes your unique value obvious to those customers who are best suited to your product.",[40,92,93],{},"Competitive alternatives. What customers would do if your solution didn’t exist.",[40,95,96],{},"Unique attributes. The features and capabilities that you have and the alternatives lack.",[40,98,99],{},"Value (and proof). The benefit that those features enable for customers.",[40,101,102],{},"Target market characteristics. The characteristics of a group of buyers that lead them to really care a lot about the value you deliver.",[40,104,105],{},"Market category. The market you describe yourself as being part of, to help customers understand your value.",[40,107,108],{},"(Bonus) Relevant trends. Trends that your target customers understand and\u002For are interested in that can help make your product more relevant right now.",[40,110,111],{},"Your unique attributes are your secret sauce, the things you can do that the alternatives can’t.",[40,113,114],{},"Value is the benefit you can deliver to customers because of your unique attributes.",[40,116,117],{},"If unique attributes are your secret sauce, then value is the reason why someone might care about your secret sauce.",[40,119,120],{},"Value should be as fact-based as possible",[40,122,123],{},"Your target market is the customers who buy quickly, rarely ask for discounts and tell their friends about your offerings",[40,125,126],{},"Sit, walk or run, but don’t wobble.",[40,128,129],{},"Trends can help customers understand why a product is important right now",[40,131,132],{},"Attributes of your product are only “unique” when compared with competitive alternatives. Those attributes drive the value, which determines who the best target customers are, which in turn highlights which market frame of reference is the best one to highlight your value.",[40,134,135],{},"Understand the Customers Who Love Your Product -",[40,137,138],{},"Your best-fit customers hold the key to understanding what your product is.",[40,140,141],{},"The first step in the positioning exercise is to make a short list of your best customers",[40,143,144],{},"If the company mainly sells a group of products together, I would position the company first",[40,146,147],{},"\"It’s no use of talking unless people understand what you say.\"",[40,149,150],{},"You want engagement from every group because you need buy-in from every group.",[40,152,153],{},"For your team to develop a new position, they need a common understanding of the goal and expected outcomes.",[40,155,156],{},"Freeing your mind from patterns of the past isn’t always easy.",[40,158,159],{},"he features of our product and the value they provide are only unique, interesting and valuable when a customer perceives them in relation to alternatives.",[40,161,162],{},"Focus on your best customers and what they would identify as alternative solutions.",[40,164,165],{},"isolate what makes you different and better than those alternatives.",[40,167,168],{},"Concentrate on “consideration” rather than “retention” attributes.",[40,170,171],{},"Focus on capturing the broader set without trying to decide what’s really important and what isn’t.",[40,173,174],{},"Map the Attributes to Value “Themes”",[40,176,177],{},"Attributes or features are a starting point, but what customers care about is what those features can do for them",[40,179,180],{},"Moving from “features” to “benefits” and then to “value”",[40,182,183],{},"” Taking the question further, What does that mean for customers? What can they do with a faster response time that they couldn’t with a slower response? The answer might be that they can use the system to respond to their own customers while a customer is on the phone, rather than having to call them back, thereby decreasing support response times and increasing their customers’ satisfaction.",[40,185,186],{},"In positioning a product, we’re taking the most critical things that make us special and worth considering",[40,188,189],{},"Think about the difference between your best-fit customers and your other customers. Your other customers think your product is OK for the price, but they will jump ship if a different company offers a cheaper or better version. These customers are harder to close business with—they take their time making a purchase decision and frequently ask for a discount. In short, they like your product but they just don’t love it. You can target your marketing and sales programs at them, but selling to them and keeping them happy isn’t going to be easy.",[40,191,192],{},"Target as narrowly as you can to meet your near-term sales objectives.",[40,194,195],{},"the segment needs to meet at least two criteria to be worthy of focus: (1) it needs to be big enough that it’s possible to meet the goals of your business, and (2) it needs to have important, specific, unmet needs that are common to the segment",[40,197,198],{},"pick a market frame of reference that makes your value obvious to the segments who care the most about that value.",[40,200,201],{},"Use abductive reasoning. The adage “if it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck”",[40,203,204],{},"The “style” of positioning you choose will depend on a set of factors including the competitive landscape and your business goals.",[40,206,207],{},"Head to Head: Positioning to win an existing mark",[40,209,210],{},"Big Fish, Small Pond: Positioning to win a subsegment of an existing market",[40,212,213],{},"Create a New Game: Positioning to win a market you create",[40,215,216],{},"The advantage of positioning in an existing market category is that you don’t have to convince people the category needs to exis",[40,218,219],{},"In marketing, the process of splitting up an existing market is called subsegmenting. A market can be subsegmented by industry (manufacturing vs. retail), by geographic region (North America vs. South America), company size and a myriad of other criteria.",[40,221,222],{},"The goal of the Big Fish, Small Pond style of positioning is to carve off a piece of the market where the rules are a little bit different—just enough to give your product an edge over the category leader.",[40,224,225],{},"Your focus is showing that there is a subsegment of the overall category with a specific set of needs that the current category leaders are not addressing.",[40,227,228],{},"Dominating a small piece of the market is generally much easier than attempting to directly take on a larger leader.",[40,230,231],{},"Word-of-mouth marketing happens most naturally in tight market subsegments.",[40,233,234],{},"You have the ability to meet the special needs of the subsegment much better than the category leader.",[40,236,237],{},"If you are trying to dominate a subsegment, be careful that the market leader doesn’t turn their attention to the subsegment and try to offer a “good enough” solution with some features that at least partially meet the buyers’ needs.",[40,239,240],{},"When to use the Create a New Game style",[40,242,243],{},"You aren’t simply capturing demand that already exists; you have to spark some demand first.",[40,245,246],{},"In the other positioning styles, you’re leveraging what folks already know about a category and building on that to create a position in the mind of customers. In this style, you are starting with a blank canvas.",[40,248,249],{},"Customers need to first understand why the category deserves to exist. Why is the problem unique? Why do existing solutions in other categories fall short of solving that problem?",[40,251,252],{},"Category creation is about selling the market on the problem first, rather than on your solution",[40,254,255],{},"Create a New Game allows you to create a market that is perfectly tailored to your strengths and weaknesses.",[40,257,258],{},"If you change the way you look at things, the things you look at change.",[40,260,261],{},"Trends can only be used when they have a clear link to your product. Start",[40,263,264],{},"capturing your positioning in a document with enough detail that it can be used by marketing, sales and product creation. This document should break down each individual component of the position, give enough detail for each to be understood and show how they interact with one another.",[40,266,267],{},"I will give you just one tip that I think is important: write a messaging document. Every campaign you create or new piece of material you build is going to have a slightly different purpose and slightly different messaging",[40,269,270],{},"Any product can be positioned in multiple markets. Your product is not doomed to languish in a market where nobody understands how awesome it is.",[40,272,273],{},"Great positioning rarely comes by default. If you want to succeed, you have to determine the best way to position your product. Deliberate, try, fail, test and try again",[40,275,276],{},"Understanding what your best customers see as true alternatives to your solution will lead you to your differentiators.",[40,278,279],{},"Position yourself in a market that makes your strengths obvious to the folks you want to sell to.",[40,281,282],{},"Use trends to make your product more interesting to customers right now, but be very cautious. Don’t layer on a trend just for the sake of being trendy—it’s better to be successful and boring, rather than fashionable and bewildering.",[34,284],{},[286,287,289],"h2",{"id":288},"more-book-summaries","More book summaries",[37,291,292,299,306,313,320,327],{},[40,293,294],{},[15,295,298],{"href":296,"rel":297},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-refactoring-ui\u002F",[19],"Refactoring UI",[40,300,301],{},[15,302,305],{"href":303,"rel":304},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-rework\u002F",[19],"Rework",[40,307,308],{},[15,309,312],{"href":310,"rel":311},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-lets-talk-money\u002F",[19],"Let's Talk Money",[40,314,315],{},[15,316,319],{"href":317,"rel":318},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-hell-yeah-or-no\u002F",[19],"Hell Yeah or No",[40,321,322],{},[15,323,326],{"href":324,"rel":325},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-almanack-naval\u002F",[19],"Almanack of Naval Ravikant",[40,328,329],{},[15,330,333],{"href":331,"rel":332},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-getting-real\u002F",[19],"Getting Real",[11,335,336,337,341],{},"Follow my reading list on ",[15,338,340],{"href":339},"goodreads.com\u002Fuser\u002Fshow\u002F90352684-mohit-khare","Goodreads",". Share your favourite reads in the comment section. Do drop a 👍 and share it with your friends.",[11,343,344,345,350],{},"Liked the article? Consider ",[15,346,349],{"href":347,"rel":348},"https:\u002F\u002Fwww.buymeacoffee.com\u002FchHAzigTb",[19],"supporting me"," ☕️",[34,352],{},[11,354,355],{},"I hope you learned something new. Feel free to suggest improvements ✔️",[11,357,358,359,364],{},"I share regular updates and resources on ",[15,360,363],{"href":361,"rel":362},"https:\u002F\u002Ftwitter.com\u002Fmkfeuhrer",[19],"Twitter",". Let's connect!",[11,366,367],{},[368,369,370],"strong",{},"Keep exploring 🔎 Keep learning 🚀",{"title":372,"searchDepth":373,"depth":373,"links":374},"",2,[375],{"id":288,"depth":373,"text":289},[377,378],"Books","Startups","My notes and highlights from Obviously Awesome by April Dunford on product positioning and marketing strategy.",false,"md","blog\u002Fnotes-obviously-awesome\u002Fnotes-obviously-awesome-card.webp","book summary, obviously awesome, obviously awesome book summary",{},"notes-obviously-awesome",true,"\u002Fblog\u002Fnotes-obviously-awesome",{"title":5,"description":379},"blog\u002Fnotes-obviously-awesome","2020-04-26","atwdytGfX5KAkhlVPaCVetwpPB_yp02qHsUBmUQt5DA",[393,401,408,415,424,431,438,445,451,457,463,469,475,486,493,500,508,516,522,529,535,541,547,553,559,565,571,577,584,591,597,603,609,615,621,627,633,639,645,651,657,663,669,676,682,688,694,700,706,712,719,726,728,735,741,748,754,761,767,773,779,785,791,797,803,809,815,821,827,833,840,846,853,859,865,871,878,884],{"path":394,"title":395,"description":396,"categories":397,"draft":386,"year":400,"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.",[398,399],"Productivity","Programming","2026-08-26",{"path":402,"title":403,"description":404,"categories":405,"draft":380,"year":407,"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",[406,399],"Golang","2020-01-12",{"path":409,"title":410,"description":411,"categories":412,"draft":380,"year":414,"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.",[377,413],"Life","2021-12-26",{"path":416,"title":417,"description":418,"categories":419,"draft":380,"year":423,"series":6},"\u002Fblog\u002Fbuilding-acrons","Building Acrons 🚀","Building Acrons, a one-stop tool to decode everyday acronyms like DIY, FOMO, and BRB without losing your flow.",[420,421,422],"Side Projects","Web","Tools","2020-05-26",{"path":425,"title":426,"description":427,"categories":428,"draft":380,"year":430,"series":6},"\u002Fblog\u002Fcap-theorem","CAP Theorem Explained","Learn the concept and misconceptions around popular CAP theorem in system design.",[429,399],"System Design","2021-07-26",{"path":432,"title":433,"description":434,"categories":435,"draft":380,"year":437,"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.",[436],"Engineering Principles","2020-07-20",{"path":439,"title":440,"description":441,"categories":442,"draft":380,"year":444,"series":6},"\u002Fblog\u002Fdark-mode","Add Dark mode to websites","Dark mode is ❤️️ Add it to your websites with little CSS and JS",[443,421],"Javascript","2020-07-04",{"path":446,"title":447,"description":448,"categories":449,"draft":380,"year":450,"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.",[406,399],"2020-10-09",{"path":452,"title":453,"description":454,"categories":455,"draft":380,"year":456,"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.",[406,399],"2021-05-05",{"path":458,"title":459,"description":460,"categories":461,"draft":380,"year":462,"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.",[406,399],"2021-12-18",{"path":464,"title":465,"description":466,"categories":467,"draft":380,"year":468,"series":6},"\u002Fblog\u002Fenvironment-variable-golang","Guide to Environment variables in Go","Learn what are environment variables and how to use them in Go",[406,399],"2020-08-14",{"path":470,"title":471,"description":472,"categories":473,"draft":380,"year":474,"series":6},"\u002Fblog\u002Ferror-handling-golang","Handle errors the right way — Golang","How to handle errors in golang to make your life easy",[406,399],"2020-01-30",{"path":476,"title":477,"description":478,"categories":479,"draft":386,"year":482,"series":483},"\u002Fblog\u002Ffile-attack-document-macros","File Attack Deep Dives, Part 3: Document Macros","How malicious VBA hides in vbaProject.bin, which AutoOpen entry points fire it, and the sandbox signals that catch it.",[480,481],"Security","Systems","2026-09-17",{"name":484,"part":485},"File Attack Deep Dives",3,{"path":487,"title":488,"description":489,"categories":490,"draft":380,"year":400,"series":491},"\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.",[480,481],{"name":484,"part":492},1,{"path":494,"title":495,"description":496,"categories":497,"draft":386,"year":498,"series":499},"\u002Fblog\u002Ffile-attack-html-smuggling","File Attack Deep Dives, Part 2: HTML Smuggling","How attackers assemble malware inside the browser with Blob URLs, and the URL and script tells that catch it.",[480,481],"2026-09-10",{"name":484,"part":373},{"path":501,"title":502,"description":503,"categories":504,"draft":386,"year":505,"series":506},"\u002Fblog\u002Ffile-attack-lnk-iso","File Attack Deep Dives, Part 5: LNK and ISO Smuggling","How ISO containers and weaponized shortcuts bypass Mark of the Web, and the forensic fields that catch them.",[480,481],"2026-10-01",{"name":484,"part":507},5,{"path":509,"title":510,"description":511,"categories":512,"draft":386,"year":513,"series":514},"\u002Fblog\u002Ffile-attack-pdf-url-actions","File Attack Deep Dives, Part 4: PDF URL Actions","How PDF OpenAction, Launch, and URI actions turn opening a document into a phishing click, and the action audit that catches them.",[480,481],"2026-09-24",{"name":484,"part":515},4,{"path":517,"title":518,"description":519,"categories":520,"draft":380,"year":521,"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.",[406,399],"2021-03-13",{"path":523,"title":524,"description":525,"categories":526,"draft":380,"year":528,"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.",[527,399],"Git","2022-03-20",{"path":530,"title":531,"description":532,"categories":533,"draft":380,"year":534,"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",[527,399],"2023-08-24",{"path":536,"title":537,"description":538,"categories":539,"draft":380,"year":540,"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.",[527,399],"2023-10-16",{"path":542,"title":543,"description":544,"categories":545,"draft":380,"year":546,"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.",[527,399],"2020-06-18",{"path":548,"title":549,"description":550,"categories":551,"draft":380,"year":552,"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",[406,399],"2022-11-26",{"path":554,"title":555,"description":556,"categories":557,"draft":380,"year":558,"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.",[406,399],"2022-11-27",{"path":560,"title":561,"description":562,"categories":563,"draft":380,"year":564,"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).",[406,399],"2024-03-28",{"path":566,"title":567,"description":568,"categories":569,"draft":380,"year":570,"series":6},"\u002Fblog\u002Fgo-makefile","Ultimate Makefile for Golang","Boost your productivity and save time with ultimate Makefile for Golang projects.",[406,399],"2024-06-10",{"path":572,"title":573,"description":574,"categories":575,"draft":380,"year":576,"series":6},"\u002Fblog\u002Fgo-middleware","Mastering Middlewares in Golang","Learn about middlewares, their use cases and how to implement them in Golang applications",[406,399],"2022-03-13",{"path":578,"title":579,"description":580,"categories":581,"draft":380,"year":583,"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.",[406,399,582],"Code Quality","2023-05-19",{"path":585,"title":586,"description":587,"categories":588,"draft":380,"year":590,"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.",[406,589,399],"Database","2020-05-03",{"path":592,"title":593,"description":594,"categories":595,"draft":380,"year":596,"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.",[406,399],"2020-09-10",{"path":598,"title":599,"description":600,"categories":601,"draft":380,"year":602,"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.",[429,399],"2022-01-23",{"path":604,"title":605,"description":606,"categories":607,"draft":380,"year":608,"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",[406,399],"2022-09-12",{"path":610,"title":611,"description":612,"categories":613,"draft":380,"year":614,"series":6},"\u002Fblog\u002Fhexagonal-architecture","Guide to Hexagonal Architecture","Learn how to design efficient application with hexagonal architecture with practical example",[429,399],"2020-12-13",{"path":616,"title":617,"description":618,"categories":619,"draft":380,"year":620,"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.",[421,399],"2020-07-30",{"path":622,"title":623,"description":624,"categories":625,"draft":380,"year":626,"series":6},"\u002Fblog\u002Fintroduction-to-goroutines","Introduction to Goroutines","Understand the basics of concurrency and learn how to work with Goroutines in golang.",[406,399],"2021-04-10",{"path":628,"title":629,"description":630,"categories":631,"draft":380,"year":632,"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.",[399,589,406],"2021-02-13",{"path":634,"title":635,"description":636,"categories":637,"draft":380,"year":638,"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.",[399,421],"2021-11-20",{"path":640,"title":641,"description":642,"categories":643,"draft":380,"year":644,"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",[413,377],"2022-04-09",{"path":646,"title":647,"description":648,"categories":649,"draft":380,"year":650,"series":6},"\u002Fblog\u002Flearn-unlearn-relearn","Learn - Unlearn - Relearn","Unlearning things to learn new is the way to grow. Discover how to do that!",[398,413],"2020-09-25",{"path":652,"title":653,"description":654,"categories":655,"draft":380,"year":656,"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.",[406,399],"2021-07-07",{"path":658,"title":659,"description":660,"categories":661,"draft":380,"year":662,"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.",[429,399],"2021-05-29",{"path":664,"title":665,"description":666,"categories":667,"draft":380,"year":668,"series":6},"\u002Fblog\u002Fmaking-decisions-the-right-way","Making Decisions: The right way","Decisions are hard! Learn how to make the right decisions always",[398,413],"2020-06-07",{"path":670,"title":671,"description":672,"categories":673,"draft":380,"year":675,"series":6},"\u002Fblog\u002Fmanage-logs-with-logrotate","Using Logrotate to manage logs","Learn how to use logrotate system utility to manage logs with example",[674,399],"Linux","2020-09-08",{"path":677,"title":678,"description":679,"categories":680,"draft":380,"year":681,"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.",[406,399],"2020-03-31",{"path":683,"title":684,"description":685,"categories":686,"draft":380,"year":687,"series":6},"\u002Fblog\u002Fnotes-almanack-naval","Book Notes : Almanack of Naval Ravikant","My notes\u002Fhighlights from Almanack of Naval Ravikant book by Eric Jorgenson",[377,413],"2020-10-17",{"path":689,"title":690,"description":691,"categories":692,"draft":380,"year":693,"series":6},"\u002Fblog\u002Fnotes-anything-you-want","Book Notes : Anything you want","My notes\u002Fhighlights from Anything you want book by Derek Sivers",[377,413],"2021-09-25",{"path":695,"title":696,"description":697,"categories":698,"draft":380,"year":699,"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.",[377,378],"2020-11-03",{"path":701,"title":702,"description":703,"categories":704,"draft":380,"year":705,"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",[377,413],"2020-09-16",{"path":707,"title":708,"description":709,"categories":710,"draft":380,"year":711,"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",[377,378],"2020-01-07",{"path":713,"title":714,"description":715,"categories":716,"draft":380,"year":718,"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.",[377,717],"Entrepreneurship","2022-07-02",{"path":720,"title":721,"description":722,"categories":723,"draft":380,"year":725,"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.",[377,724],"Personal Finance","2021-02-26",{"path":387,"title":5,"description":379,"categories":727,"draft":380,"year":390,"series":6},[377,378],{"path":729,"title":730,"description":731,"categories":732,"draft":380,"year":734,"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.",[377,733],"Design","2020-05-09",{"path":736,"title":737,"description":738,"categories":739,"draft":380,"year":740,"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.",[377,378],"2021-04-14",{"path":742,"title":743,"description":744,"categories":745,"draft":380,"year":747,"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.",[746,398],"Career","2023-03-05",{"path":749,"title":750,"description":751,"categories":752,"draft":380,"year":753,"series":6},"\u002Fblog\u002Fpersonal-okrs","Personal OKRs for Success","Why one should set personal OKRs and how to achieve success with them",[398,413],"2020-06-27",{"path":755,"title":756,"description":757,"categories":758,"draft":380,"year":760,"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.",[413,759],"Poker","2020-06-13",{"path":762,"title":763,"description":764,"categories":765,"draft":380,"year":766,"series":6},"\u002Fblog\u002Fpomodoro","Get work done: The Pomo Way","Learn to focus and get productive by following the Pomodoro Technique",[398],"2020-10-24",{"path":768,"title":769,"description":770,"categories":771,"draft":380,"year":772,"series":6},"\u002Fblog\u002Fpostgres-constraints","Postgres Constraints","Constraints are line of defense for database. Explore various types of constrainsts in postgres",[589,399],"2020-11-07",{"path":774,"title":775,"description":776,"categories":777,"draft":380,"year":778,"series":6},"\u002Fblog\u002Fppf-explained","PPF Explained","Learn basics about Public Provident Fund and why you should invest",[413,724],"2020-12-24",{"path":780,"title":781,"description":782,"categories":783,"draft":380,"year":784,"series":6},"\u002Fblog\u002Fproductivity-chrome-extensions","Boost Productivity with Chrome Extensions","Utitizing chrome extensions to boost your productivity!",[398,422,421],"2020-04-24",{"path":786,"title":787,"description":788,"categories":789,"draft":380,"year":790,"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.",[398,399],"2020-03-12",{"path":792,"title":793,"description":794,"categories":795,"draft":380,"year":796,"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.",[377,413],"2020-04-04",{"path":798,"title":799,"description":800,"categories":801,"draft":380,"year":802,"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.",[429,399],"2021-10-03",{"path":804,"title":805,"description":806,"categories":807,"draft":380,"year":808,"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.",[406,399],"2019-11-21",{"path":810,"title":811,"description":812,"categories":813,"draft":380,"year":814,"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.",[406,589,399],"2020-02-25",{"path":816,"title":817,"description":818,"categories":819,"draft":380,"year":820,"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.",[436],"2020-07-17",{"path":822,"title":823,"description":824,"categories":825,"draft":380,"year":826,"series":6},"\u002Fblog\u002Fstack-in-golang","Implement Stack in Golang","Learn how to implement stack data structure in Golang (Full code)",[406,399],"2020-09-14",{"path":828,"title":829,"description":830,"categories":831,"draft":380,"year":832,"series":6},"\u002Fblog\u002Fstart-oss-today","Start your Open Source journey today","Start your OSS journey with intro to GIT. Participate in Hacktoberfest!",[527,399],"2020-09-19",{"path":834,"title":835,"description":836,"categories":837,"draft":380,"year":839,"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.",[399,838],"Frontend","2021-02-05",{"path":841,"title":842,"description":843,"categories":844,"draft":380,"year":845,"series":6},"\u002Fblog\u002Fterm-insurance","Term insurance Simplified","Everything you need to know before you buy a term insurance.",[413,724],"2020-11-29",{"path":847,"title":848,"description":849,"categories":850,"draft":380,"year":852,"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",[674,851,399],"Terminal","2020-09-06",{"path":854,"title":855,"description":856,"categories":857,"draft":380,"year":858,"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.",[377,413],"2020-05-19",{"path":860,"title":861,"description":862,"categories":863,"draft":380,"year":864,"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.",[406,589,399],"2020-03-18",{"path":866,"title":867,"description":868,"categories":869,"draft":380,"year":870,"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.",[406,399],"2022-05-31",{"path":872,"title":873,"description":874,"categories":875,"draft":380,"year":877,"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",[413,876],"Tech","2024-06-01",{"path":879,"title":880,"description":881,"categories":882,"draft":380,"year":883,"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!",[413],"2020-12-31",{"path":885,"title":886,"description":887,"categories":888,"draft":380,"year":889,"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!",[413],"2021-12-31",1788610586963]