[{"data":1,"prerenderedAt":1498},["ShallowReactive",2],{"blog-notes-lean-b2b":3,"blog-all-for-related":1001},{"id":4,"title":5,"author":6,"body":7,"cardAlt":5,"categories":985,"description":988,"draft":989,"extension":990,"headerImage":991,"keywords":992,"meta":993,"name":994,"navigation":995,"path":996,"seo":997,"series":6,"stem":998,"updated":6,"year":999,"__hash__":1000},"blog\u002Fblog\u002Fnotes-lean-b2b.md","Book Notes : Lean B2B",null,{"type":8,"value":9,"toc":970},"minimark",[10,22,25,33,36,41,62,68,127,129,133,248,255,280],[11,12,13,14,21],"p",{},"These are highlights\u002Fnotes from book ",[15,16,20],"a",{"href":17,"rel":18},"https:\u002F\u002Famzn.to\u002F3yCMuty",[19],"nofollow","\"Lean B2B: Build Products Businesses Want\""," by Étienne Garbugli. This book is a must read for all wanna be entreprenuers. It covers areas around building business in enterprise space - how to assess markets, build MVP, hiring the right team and selling your product. The author also explains major challenges faced by B2B entrepreneurs.",[11,23,24],{},"These are my personal notes\u002Fhighlights which I took while reading. I would recommend reading the book, but in case you are short on time - just skim through these notes 😊",[11,26,27,28],{},"In case you are looking for book recommendations! Check ",[15,29,32],{"href":30,"rel":31},"https:\u002F\u002Flearnshots.netlify.app\u002Fbooks\u002F",[19],"Learnshots",[34,35],"hr",{},[37,38,40],"h2",{"id":39},"the-b2b-opportunity-space","The B2B Opportunity Space",[42,43,44,48,56,59],"ul",{},[45,46,47],"li",{},"In B2B, you seek to understand the market before finding a product or a solution; the entrepreneur’s vision is second to his ability to understand the needs of the customers. Customers are driving the show; entrepreneurs need to focus entirely on what the business wants.",[45,49,50,51,55],{},"In B2B, if you can’t understand the ",[52,53,54],"strong",{},"inner workings"," of an organization you’ll never be able to sign large customers. You need relationships. Prospects buy from people they know and trust.",[45,57,58],{},"\"Clients will feel they have a relationship with you only when they believe that you understand their needs, their situation, their vision, their constraints, their corporate goals and their career goals. – Ken Morse”",[45,60,61],{},"Finding out what businesses want requires deep relationships.",[63,64,65],"blockquote",{},[11,66,67],{},"While the enterprise can be boring as hell, the whole thing is paved with gold.8 – Alex Williams",[42,69,70,88,105,108,115,118,121,124],{},[45,71,72,73,76,77],{},"There are three critical areas of ",[52,74,75],{},"differences between B2B and B2C"," customer development.\n",[42,78,79,82,85],{},[45,80,81],{},"Return on Investment (ROI)",[45,83,84],{},"Client Relationship",[45,86,87],{},"Decision-Making Process.",[45,89,90,91,94],{},"There are three main reasons ",[52,92,93],{},"why businesses buy technology",[42,95,96,99,102],{},[45,97,98],{},"To increase revenue",[45,100,101],{},"To decrease costs",[45,103,104],{},"To increase customer satisfaction.",[45,106,107],{},"A B2B transaction is, by definition, an investment; an investment in future profitability, cost reduction, timesaving, productivity or customer satisfaction.",[45,109,110,111,114],{},"To succeed in B2B, entrepreneurs need to ",[52,112,113],{},"build deep relationships"," with a relatively small number of companies.Trust and stability are essential factors.",[45,116,117],{},"it’s necessary to understand here that validation in B2B often requires winning over a group of buyers.",[45,119,120],{},"Paths through success are clearer for B2B startups. They’re not easier, but they’re clearer: solve a very painful problem and charge people money to do so.",[45,122,123],{},"Problems worth solving are typically invisible from the outside. Your task will be to get inside the enterprise, understand how the company thinks and find the real problems.",[45,125,126],{},"B2B founders are generally more pragmatic and process-driven. They appreciate predictability and are usually more risk-averse than their B2C counterparts.",[34,128],{},[37,130,132],{"id":131},"customer-acquisition","Customer Acquisition",[42,134,135,164,184,198,205,228,239,242],{},[45,136,137,138,141,142,159],{},"The ",[52,139,140],{},"ideal customer"," is someone that -",[42,143,144,147,150,153,156],{},[45,145,146],{},"Has a problem",[45,148,149],{},"Is aware of the existence of the problem",[45,151,152],{},"Has already tried to solve the problem",[45,154,155],{},"Is unhappy with the current solution to the problem",[45,157,158],{},"Has a budget to get the problem fixed",[63,160,161],{},[11,162,163],{},"\"People don’t know what they want until you show it to them” - Steve Jobs",[45,165,166,167],{},"The core theory behind Crossing the Chasm is that customers in any given market belong to one of five groups:",[42,168,169,172,175,178,181],{},[45,170,171],{},"Innovators",[45,173,174],{},"Early Adopters",[45,176,177],{},"Early Majority",[45,179,180],{},"Late Majority",[45,182,183],{},"Laggards",[45,185,186,187],{},"Finding a beachhead customer — a first customer segment — to get a foot in the market.",[42,188,189,192,195],{},[45,190,191],{},"The customer must not be friend or family.",[45,193,194],{},"Friends and family are a false measure of success; they blur your metrics.”",[45,196,197],{},"The best way to find early adopters is through your personal network at one degree of separation.",[45,199,200,201,204],{},"One of the big challenges for first-time entrepreneurs targeting a new industry is ",[52,202,203],{},"getting enough credibility and visibility"," to have true business discussions with stakeholders.",[45,206,207,208,211],{},"Early on, there are five things that entrepreneurs need to demonstrate to be ",[52,209,210],{},"perceived as credible",[42,212,213,216,219,222,225],{},[45,214,215],{},"Personal Credibility – Do you know what you’re talking about?",[45,217,218],{},"Commitment – Are you in it for the long haul?",[45,220,221],{},"Reliability – Are you doing what you say you’re going to do",[45,223,224],{},"Passion – Do you really care about solving our problem?",[45,226,227],{},"References – Who can vouch for you?",[45,229,230,231],{},"Initially, there are two ways to convince early adopters to meet with you:",[42,232,233,236],{},[45,234,235],{},"Create interest in your profile or the story of your founding team.",[45,237,238],{},"Create interest in the benefits of the contribution.",[45,240,241],{},"The moment that you’re talking about a person’s problems, they’re happy. If you’re there to solve that person’s problem then they’re willing to have that conversation. That’s how you get them to help.",[45,243,244,245],{},"The ideal value proposition is one sentence long - ",[52,246,247],{},"“Think benefits and value, not features.\"",[11,249,250],{},[251,252],"img",{"alt":253,"src":254},"Customer Discovery Hypothesis","https:\u002F\u002Fwww.mohitkhare.com\u002Fimages\u002Fblog\u002Fnotes-lean-b2b\u002Fcustomer-discovery-hypothesis-pyramid.png",[42,256,257,260,277],{},[45,258,259],{},"Your goal with any prospect or customer interaction is to move the relationship forward.",[45,261,262,263],{},"Prospects entering the sales funnel are called leads. Leads can become ‘qualified’ if:\n",[42,264,265,268,271,274],{},[45,266,267],{},"They see value in your offer",[45,269,270],{},"They have the budget to buy",[45,272,273],{},"You have access to a decision maker",[45,275,276],{},"There’s a timeline for the process.",[45,278,279],{},"If you are in a hurry to ship or commercialize a product, you will rush through product validation and settle for lower potential problems or opportunities.",[281,282,283,285,289,425,429,530,536,538,542,590,594,683,688,721,725,728,760,762,766,810,815],"ads",{},[34,284],{},[37,286,288],{"id":287},"identifying-problem","Identifying problem",[42,290,291,294,301,304,307,314,317,322,324,327,351,354,372,375,378,395,398,401,404],{},[45,292,293],{},"You should be looking for a big pain or a big gain that can be tied to a budget, a problem that will deliver a big ROI.",[45,295,296,297,300],{},"You ",[52,298,299],{},"can’t ask directly"," what customers want.",[45,302,303],{},"Identify the strongest pains and the most pressing needs.",[45,305,306],{},"Problems that matter have owners who have budgets and a willingness to use those budgets to remove the pain.",[45,308,309,310,313],{},"Our goal will be to ",[52,311,312],{},"seek the biggest rewards"," or largest budgets available and convince the economic influences to transfer spend to your solution.",[45,315,316],{},"Surveys and interviews don’t collect the same type of information. Surveys are good only when you know what questions to ask and what answers to suggest. Interviews are about exploration.",[45,318,319],{},[52,320,321],{},"Don’t rush problem discovery. Don’t settle for a low-impact problem.",[45,323,279],{},[45,325,326],{},"As you share back the information collected with the members of your team, it’s normal to have the urge to jump to conclusions and start thinking about solutions. Resist the temptation and take a step back. Be sure to put time between data collection and data analysis.",[45,328,329,330,333,334],{},"Five ways to ",[52,331,332],{},"prioritize"," (score) problems\n",[42,335,336,339,342,345,348],{},[45,337,338],{},"By frequency – Is that pain shared by a lot of early adopters?",[45,340,341],{},"By intensity of pain – Is this a painful problem? Are prospects actively trying to solve it?",[45,343,344],{},"By budget availability – Is this the pain of a buyer? Have budgets already been assigned?",[45,346,347],{},"By impact – What kind of ROI can you expect if you solve this problem? What impact will it have on the organization?",[45,349,350],{},"By market education – Is there competition? Would you need to create a completely new paradigm?",[45,352,353],{},"Choosing a problem to solve is one of the most critical decisions in the life of a startup.",[45,355,356,357,360,361],{},"We can tell that ",[52,358,359],{},"a problem is painful"," if -\n",[42,362,363,366,369],{},[45,364,365],{},"The same person repeats it frequently with passion during the interview.",[45,367,368],{},"The company is actively trying to solve the problem or has assigned a budget to solve the problem",[45,370,371],{},"The problem is frequently listed in the top five of your early adopters",[45,373,374],{},"You must understand the organizational impact of your solution. Will only one person be impacted? A whole department? The whole company? How much time can be saved? How much more value can be generated?",[45,376,377],{},"It’s really important not to create a product without any competition.",[45,379,137,380,383,384],{},[52,381,382],{},"first customers"," you seek should genuinely -\n",[42,385,386,389,392],{},[45,387,388],{},"Be willing to spend money for your product",[45,390,391],{},"Benefit from your solution",[45,393,394],{},"Agree to endorse your company with a case study.",[45,396,397],{},"Don’t start free if your goal is to make money.",[45,399,400],{},"Most successful B2B entrepreneurs ask to get paid up-front.",[45,402,403],{},"The only true way to validate a revenue model is by asking a prospect to sign a contract and pay money for a solution.",[45,405,406,407,410,411],{},"Always ",[52,408,409],{},"push for the highest form of endorsemen","t possible.\n",[42,412,413,416,419,422],{},[45,414,415],{},"Using the company name and logo on collateral",[45,417,418],{},"Writing a testimony",[45,420,421],{},"Publishing a press release about the deal",[45,423,424],{},"Writing a blog post or technical paper about the experience",[37,426,428],{"id":427},"building-a-mvp","Building a MVP",[42,430,431,434,441,444,458,464,467,470,473,476,479,486,500,503,506],{},[45,432,433],{},"An MVP is the quickest thing you can make to learn about your riskiest hypotheses; it can be anything from mockups, low-fi wireframes to a fully functional product.",[45,435,436,437,440],{},"With your early demo, you want to ",[52,438,439],{},"maximize impact",". For this reason, an MVP also has to be desirable",[45,442,443],{},"What is the smallest feature set prospects will pay for in the first release?",[45,445,446,447],{},"The three things that your MVP must say about your company are:",[42,448,449,452,455],{},[45,450,451],{},"You can solve this problem",[45,453,454],{},"You can provide the value they seek",[45,456,457],{},"You’re better than the current solution",[45,459,460,461],{},"With MVPs, ",[52,462,463],{},"less is more",[45,465,466],{},"The scope of your MVP should be no more than the two or three core features that will solve the customer pain.",[45,468,469],{},"A complete product is not required to start selling. You need just enough to communicate the vision and benefits of your solution.",[45,471,472],{},"Initially, you must be laser-focused on a single market, a single problem and a single customer profile.",[45,474,475],{},"Startups that solve real business problems always have to replace some kind of solution.",[45,477,478],{},"Think less about the direct competitors and more about how your solution can fit in their technology mix.",[45,480,481,482,485],{},"A startup should start ",[52,483,484],{},"answering the hardest questions"," and validating the riskiest parts of its product and business model first.",[45,487,488,489],{},"Three main types of features required to develop a product people want to use.",[42,490,491,494,497],{},[45,492,493],{},"Mandatory features are the must-haves of a new product like a login or a user profile.",[45,495,496],{},"Linear features are the core features of your product. They’re the two or three features that your customers really pay for.",[45,498,499],{},"Exciter features are those that are not expected by customers, but are perceived as adding value.",[45,501,502],{},"User buyers typically care about how your solution will be used in the day to day, and whom it will affect.",[45,504,505],{},"They want to know about specific use cases, features and processes.",[45,507,508,509,512,513],{},"A ",[52,510,511],{},"revenue model"," describes how a business generates revenue streams from its products and services. There are many alternate B2B revenue models to explore",[42,514,515,518,521,524,527],{},[45,516,517],{},"Commerce and retail",[45,519,520],{},"Subscriptions and usage fees",[45,522,523],{},"Data",[45,525,526],{},"Transactions\u002FIntermediation",[45,528,529],{},"Freemium",[11,531,532],{},[251,533],{"alt":534,"src":535},"Things that don't matter","https:\u002F\u002Fwww.mohitkhare.com\u002Fimages\u002Fblog\u002Fnotes-lean-b2b\u002Fthings-that-dont-matter.png",[34,537],{},[37,539,541],{"id":540},"solution-rule","Solution Rule",[42,543,544,551,557,560,563,587],{},[45,545,546,547,550],{},"Your solution must be at least ",[52,548,549],{},"two times faster, two times better and two times cheaper"," than the known alternatives.",[45,552,553],{},[554,555,556],"code",{},"Value (Actual or Perception of) – Risk (Perception of) = Implementation Score",[45,558,559],{},"As an entrepreneur, remember that discounts or added services are a marketing investment.",[45,561,562],{},"A better approach to discounting the price is usually to offer more services.",[45,564,565,566,569,570],{},"Provide ",[52,567,568],{},"extra service"," or free support\n",[42,571,572,575,578,581,584],{},[45,573,574],{},"Give early access to new functionalities",[45,576,577],{},"Give a full feature account without increasing the cost",[45,579,580],{},"Give custom features",[45,582,583],{},"Guarantee benefits by giving customers a 30- or 60-day risk-free trial",[45,585,586],{},"Introduce a money-back guarantee",[45,588,589],{},"If you offer discounts, make sure they’re in exchange for endorsements like case studies or testimonies. Discounts are recognition, not bribes.",[37,591,593],{"id":592},"designing-your-sales-pitch","Designing your sales pitch",[42,595,596,603,629,632,639,665],{},[45,597,598,599,602],{},"Your pitch deck should be ",[52,600,601],{},"no longer than ten slides"," with large font and bullet points.",[45,604,605,606],{},"It should contain following information\n",[42,607,608,611,614,617,620,623,626],{},[45,609,610],{},"A definition of the problem",[45,612,613],{},"A visual of the solution or a link to a demo",[45,615,616],{},"Benefits or a quantified expectation of ROI",[45,618,619],{},"Underlying magic",[45,621,622],{},"Team members and\u002For the company vision.",[45,624,625],{},"A rough idea of the pricing and the agreement",[45,627,628],{},"Call to action to provide ways to act beyond the pitch",[45,630,631],{},"Businesses are not just buying products and features, they’re also buying your philosophy and your approach to solving their problem. In other words, they’re buying your story.",[45,633,634,635,638],{},"Your plan is ",[52,636,637],{},"not to make money from the first clients",". Money will be there later, so being generous with your early clients is an excellent idea.",[45,640,641,642],{},"Getting your offer rejected is part of the learning process. The key thing with rejection is to understand why and to find a way to counter that objection.\n",[42,643,644,647,650,653,656,659,662],{},[45,645,646],{},"Was the price too high?",[45,648,649],{},"Is there a freeze on expenditures?",[45,651,652],{},"Was it not a business priority?",[45,654,655],{},"Is the product not enough?",[45,657,658],{},"Did the proposition not sell enough ROI?",[45,660,661],{},"Was it not the right time?",[45,663,664],{},"Are they committed with the competition?",[45,666,667,668,671,672],{},"Depending on your business type, ",[52,669,670],{},"Product Market fit"," will be a mix of:\n",[42,673,674,677,680],{},[45,675,676],{},"Revenue",[45,678,679],{},"Engagement",[45,681,682],{},"Growth",[684,685,687],"h3",{"id":686},"aarrr-model","AARRR model",[42,689,690,693,715,718],{},[45,691,692],{},"AARRR model (Startup Metrics for Pirates75) to help startups understand the customer lifecycle.",[45,694,695,696,699,700,703,704,707,708,711,712,714],{},"In his model, a customer is first ",[52,697,698],{},"Acquired",", then ",[52,701,702],{},"Activated",", ",[52,705,706],{},"Retained",", used for ",[52,709,710],{},"Referrals"," and converted into ",[52,713,676],{},".",[45,716,717],{},"Big part of P-M fit is covered by the activation and retention — also known as engagement of users.",[45,719,720],{},"Engagement (not revenue) is the greatest predictor of growth, the third P-M fit engine.",[684,722,724],{"id":723},"sean-ellis-test","Sean Ellis Test",[11,726,727],{},"Sean Ellis Test to validate that a company has Product-Market fit. In his model, a product that would leave more than 40% of its users disappointed if it disappeared has P-M fit.",[42,729,730,733,736,739,742,745,748,751,754,757],{},[45,731,732],{},"Validate the pilot or product metrics",[45,734,735],{},"Time to activation– How long does it take for end-users to start using your solution?",[45,737,738],{},"Frequency of use – How often do they use the solution? Are there periods of higher activity?",[45,740,741],{},"Length of use – How much time do they spend using the solution?",[45,743,744],{},"Productivity – How long does it take to complete the main tasks?",[45,746,747],{},"Enjoyment – Do users enjoy using the solution?",[45,749,750],{},"Support requests – How many email requests or support phone calls are being generated?",[45,752,753],{},"Feature requests – How many features are being requested?",[45,755,756],{},"Availability – Is the solution stable and available at all time?",[45,758,759],{},"Feature usage – Are there features that are not being used?",[34,761],{},[37,763,765],{"id":764},"pivoting","Pivoting",[42,767,768,771,774,804],{},[45,769,770],{},"A pivot is a structured course correction designed to test a new fundamental hypothesis about the product, strategy, and engine of growth.",[45,772,773],{},"To validate quickly, you must pivot fast and not get caught in a model that won’t allow you to build a business.",[45,775,776,777,780,781],{},"In The Lean Startup, Eric Ries highlights some of the following ",[52,778,779],{},"pivots"," as possibilities\n",[42,782,783,786,789,792,795,798,801],{},[45,784,785],{},"Zoom-in pivot: A feature of the product is so useful that it becomes the whole product.",[45,787,788],{},"Zoom-out pivot: In the reverse situation, the whole product is included in an even larger product or platform.",[45,790,791],{},"Product value pivot: The product benefits and ROI story did not catch the attention of the stakeholders.",[45,793,794],{},"Value capture pivot: The solution had value, but the revenue or business models were wrong for the customers.",[45,796,797],{},"Channel pivot: Changing the way the technology is brought to market.",[45,799,800],{},"Customer need pivot: The problem solved was not very significant, or money wasn’t available to buy.",[45,802,803],{},"Customer segment pivot: The product attracts real customers, but not the ones you were initially targeting.",[45,805,806,807,714],{},"The path to success is rarely a straight line. If you fail, your ",[52,808,809],{},"objective is to always fail forward, adapt and evolve",[63,811,812],{},[11,813,814],{},"When you stop failing you stop being a startup. – Fred Lalonde”",[281,816,817,819,823,887,892,902,905,910,912,916,953,956,965],{},[34,818],{},[37,820,822],{"id":821},"common-challenges-b2b-entrepreneurs-face","Common challenges B2B entrepreneurs face",[42,824,825,842,845,856,867,870],{},[45,826,827,828],{},"Being Everything\n",[42,829,830,833,836,839],{},[45,831,832],{},"As an entrepreneur, you must always think about your business focus. Lack of focus kills startups.",[45,834,835],{},"Start with less",[45,837,838],{},"You must find the core value of your solution to find your one or two main features",[45,840,841],{},"You have to think small. You must choose one or two concrete problems to solve and then solve them brilliantly",[45,843,844],{},"Pet Problems - Pet problems are, by definition, problems that only matter to one or a few stakeholders.",[45,846,847,848],{},"The Curse of Interesting\n",[42,849,850,853],{},[45,851,852],{},"Interesting was a false signal - a grey zone. With P-M validation, you want to avoid grey zones and get clear yes or no.",[45,854,855],{},"Explore a larger set of problems. Focus on the real pains and throw away the personal interests.",[45,857,858,859],{},"Long sales cycles\n",[42,860,861,864],{},[45,862,863],{},"As a rule of thumb, the bigger the sale amount, the longer the sales cycle",[45,865,866],{},"Sales cycles will be long no matter what. Focus on your early adopters, optimize and reduce the perception of length of your sales cycle.",[45,868,869],{},"Insufficient Credibility",[45,871,872,873],{},"Commited Budgets\n",[42,874,875,878,881,884],{},[45,876,877],{},"Company would love to buy, but unfortunately, the budgets are all committed for the year.",[45,879,880],{},"Do your due diligence. Make sure this is really a problem of budget availability",[45,882,883],{},"One of your objectives should be to shorten feedback loops and reduce dependencies on busy decision makers.",[45,885,886],{},"Remember - In B2B, proximity to customers is key",[63,888,889],{},[11,890,891],{},"You have to go where the customer is. – Michael Wolfe",[42,893,894],{},[45,895,896,897],{},"Recruiting key staff and advisors\n",[42,898,899],{},[45,900,901],{},"As a founder, you should always be asking yourself: Who in the industry already has the knowledge you seek? Who can you recruit as partner, advisor or employee that could help speed up P-M validation?",[11,903,904],{},"The real value of the Lean B2B methodology — if followed properly — is that it creates certainty. No more false positives. No more grey zones.",[63,906,907],{},[11,908,909],{},"Fail early, fail often, but always fail forward – John Maxwell",[34,911],{},[37,913,915],{"id":914},"more-book-summaries","More book summaries",[42,917,918,925,932,939,946],{},[45,919,920],{},[15,921,924],{"href":922,"rel":923},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-hell-yeah-or-no\u002F",[19],"Hell Yeah or No",[45,926,927],{},[15,928,931],{"href":929,"rel":930},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-rework\u002F",[19],"Rework",[45,933,934],{},[15,935,938],{"href":936,"rel":937},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-obviously-awesome\u002F",[19],"Obviously Awesome",[45,940,941],{},[15,942,945],{"href":943,"rel":944},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-almanack-naval\u002F",[19],"Almanack of Naval Ravikant",[45,947,948],{},[15,949,952],{"href":950,"rel":951},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-getting-real\u002F",[19],"Getting Real",[11,954,955],{},"I hope you learned something new. Feel free to suggest improvements ✔️",[11,957,958,959,964],{},"I share regular updates and resources on ",[15,960,963],{"href":961,"rel":962},"https:\u002F\u002Ftwitter.com\u002Fmkfeuhrer",[19],"Twitter",". Let's connect!",[11,966,967],{},[52,968,969],{},"Keep exploring 🔎 Keep learning 🚀",{"title":971,"searchDepth":972,"depth":972,"links":973},"",2,[974,975,976,977,978,979,984],{"id":39,"depth":972,"text":40},{"id":131,"depth":972,"text":132},{"id":287,"depth":972,"text":288},{"id":427,"depth":972,"text":428},{"id":540,"depth":972,"text":541},{"id":592,"depth":972,"text":593,"children":980},[981,983],{"id":686,"depth":982,"text":687},3,{"id":723,"depth":982,"text":724},{"id":764,"depth":972,"text":765},[986,987],"Books","Entrepreneurship","My notes and highlights from Lean B2B by Étienne Garbugli on assessing markets, building MVPs, and selling to businesses.",false,"md","blog\u002Fnotes-lean-b2b\u002Fnotes-lean-b2b-card.webp","book summary, lean b2b summary, lean b2b notes",{},"notes-lean-b2b",true,"\u002Fblog\u002Fnotes-lean-b2b",{"title":5,"description":988},"blog\u002Fnotes-lean-b2b","2022-07-02","vEnGWDHmJeRlNwWfJiauICZxP2pja4HS-icZvtVWLmY",[1002,1010,1017,1024,1033,1040,1047,1054,1060,1066,1072,1078,1084,1094,1101,1108,1116,1124,1130,1137,1143,1149,1155,1161,1167,1173,1179,1185,1192,1199,1205,1211,1217,1223,1229,1235,1241,1247,1253,1259,1265,1271,1277,1284,1290,1296,1302,1309,1315,1321,1323,1330,1336,1343,1349,1356,1362,1369,1375,1381,1387,1393,1399,1405,1411,1417,1423,1429,1435,1441,1448,1454,1461,1467,1473,1479,1486,1492],{"path":1003,"title":1004,"description":1005,"categories":1006,"draft":995,"year":1009,"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.",[1007,1008],"Productivity","Programming","2026-08-26",{"path":1011,"title":1012,"description":1013,"categories":1014,"draft":989,"year":1016,"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",[1015,1008],"Golang","2020-01-12",{"path":1018,"title":1019,"description":1020,"categories":1021,"draft":989,"year":1023,"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.",[986,1022],"Life","2021-12-26",{"path":1025,"title":1026,"description":1027,"categories":1028,"draft":989,"year":1032,"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.",[1029,1030,1031],"Side Projects","Web","Tools","2020-05-26",{"path":1034,"title":1035,"description":1036,"categories":1037,"draft":989,"year":1039,"series":6},"\u002Fblog\u002Fcap-theorem","CAP Theorem Explained","Learn the concept and misconceptions around popular CAP theorem in system design.",[1038,1008],"System Design","2021-07-26",{"path":1041,"title":1042,"description":1043,"categories":1044,"draft":989,"year":1046,"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.",[1045],"Engineering Principles","2020-07-20",{"path":1048,"title":1049,"description":1050,"categories":1051,"draft":989,"year":1053,"series":6},"\u002Fblog\u002Fdark-mode","Add Dark mode to websites","Dark mode is ❤️️ Add it to your websites with little CSS and JS",[1052,1030],"Javascript","2020-07-04",{"path":1055,"title":1056,"description":1057,"categories":1058,"draft":989,"year":1059,"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.",[1015,1008],"2020-10-09",{"path":1061,"title":1062,"description":1063,"categories":1064,"draft":989,"year":1065,"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.",[1015,1008],"2021-05-05",{"path":1067,"title":1068,"description":1069,"categories":1070,"draft":989,"year":1071,"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.",[1015,1008],"2021-12-18",{"path":1073,"title":1074,"description":1075,"categories":1076,"draft":989,"year":1077,"series":6},"\u002Fblog\u002Fenvironment-variable-golang","Guide to Environment variables in Go","Learn what are environment variables and how to use them in Go",[1015,1008],"2020-08-14",{"path":1079,"title":1080,"description":1081,"categories":1082,"draft":989,"year":1083,"series":6},"\u002Fblog\u002Ferror-handling-golang","Handle errors the right way — Golang","How to handle errors in golang to make your life easy",[1015,1008],"2020-01-30",{"path":1085,"title":1086,"description":1087,"categories":1088,"draft":995,"year":1091,"series":1092},"\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.",[1089,1090],"Security","Systems","2026-09-17",{"name":1093,"part":982},"File Attack Deep Dives",{"path":1095,"title":1096,"description":1097,"categories":1098,"draft":989,"year":1009,"series":1099},"\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.",[1089,1090],{"name":1093,"part":1100},1,{"path":1102,"title":1103,"description":1104,"categories":1105,"draft":995,"year":1106,"series":1107},"\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.",[1089,1090],"2026-09-10",{"name":1093,"part":972},{"path":1109,"title":1110,"description":1111,"categories":1112,"draft":995,"year":1113,"series":1114},"\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.",[1089,1090],"2026-10-01",{"name":1093,"part":1115},5,{"path":1117,"title":1118,"description":1119,"categories":1120,"draft":995,"year":1121,"series":1122},"\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.",[1089,1090],"2026-09-24",{"name":1093,"part":1123},4,{"path":1125,"title":1126,"description":1127,"categories":1128,"draft":989,"year":1129,"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.",[1015,1008],"2021-03-13",{"path":1131,"title":1132,"description":1133,"categories":1134,"draft":989,"year":1136,"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.",[1135,1008],"Git","2022-03-20",{"path":1138,"title":1139,"description":1140,"categories":1141,"draft":989,"year":1142,"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",[1135,1008],"2023-08-24",{"path":1144,"title":1145,"description":1146,"categories":1147,"draft":989,"year":1148,"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.",[1135,1008],"2023-10-16",{"path":1150,"title":1151,"description":1152,"categories":1153,"draft":989,"year":1154,"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.",[1135,1008],"2020-06-18",{"path":1156,"title":1157,"description":1158,"categories":1159,"draft":989,"year":1160,"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",[1015,1008],"2022-11-26",{"path":1162,"title":1163,"description":1164,"categories":1165,"draft":989,"year":1166,"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.",[1015,1008],"2022-11-27",{"path":1168,"title":1169,"description":1170,"categories":1171,"draft":989,"year":1172,"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).",[1015,1008],"2024-03-28",{"path":1174,"title":1175,"description":1176,"categories":1177,"draft":989,"year":1178,"series":6},"\u002Fblog\u002Fgo-makefile","Ultimate Makefile for Golang","Boost your productivity and save time with ultimate Makefile for Golang projects.",[1015,1008],"2024-06-10",{"path":1180,"title":1181,"description":1182,"categories":1183,"draft":989,"year":1184,"series":6},"\u002Fblog\u002Fgo-middleware","Mastering Middlewares in Golang","Learn about middlewares, their use cases and how to implement them in Golang applications",[1015,1008],"2022-03-13",{"path":1186,"title":1187,"description":1188,"categories":1189,"draft":989,"year":1191,"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.",[1015,1008,1190],"Code Quality","2023-05-19",{"path":1193,"title":1194,"description":1195,"categories":1196,"draft":989,"year":1198,"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.",[1015,1197,1008],"Database","2020-05-03",{"path":1200,"title":1201,"description":1202,"categories":1203,"draft":989,"year":1204,"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.",[1015,1008],"2020-09-10",{"path":1206,"title":1207,"description":1208,"categories":1209,"draft":989,"year":1210,"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.",[1038,1008],"2022-01-23",{"path":1212,"title":1213,"description":1214,"categories":1215,"draft":989,"year":1216,"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",[1015,1008],"2022-09-12",{"path":1218,"title":1219,"description":1220,"categories":1221,"draft":989,"year":1222,"series":6},"\u002Fblog\u002Fhexagonal-architecture","Guide to Hexagonal Architecture","Learn how to design efficient application with hexagonal architecture with practical example",[1038,1008],"2020-12-13",{"path":1224,"title":1225,"description":1226,"categories":1227,"draft":989,"year":1228,"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.",[1030,1008],"2020-07-30",{"path":1230,"title":1231,"description":1232,"categories":1233,"draft":989,"year":1234,"series":6},"\u002Fblog\u002Fintroduction-to-goroutines","Introduction to Goroutines","Understand the basics of concurrency and learn how to work with Goroutines in golang.",[1015,1008],"2021-04-10",{"path":1236,"title":1237,"description":1238,"categories":1239,"draft":989,"year":1240,"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.",[1008,1197,1015],"2021-02-13",{"path":1242,"title":1243,"description":1244,"categories":1245,"draft":989,"year":1246,"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.",[1008,1030],"2021-11-20",{"path":1248,"title":1249,"description":1250,"categories":1251,"draft":989,"year":1252,"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",[1022,986],"2022-04-09",{"path":1254,"title":1255,"description":1256,"categories":1257,"draft":989,"year":1258,"series":6},"\u002Fblog\u002Flearn-unlearn-relearn","Learn - Unlearn - Relearn","Unlearning things to learn new is the way to grow. Discover how to do that!",[1007,1022],"2020-09-25",{"path":1260,"title":1261,"description":1262,"categories":1263,"draft":989,"year":1264,"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.",[1015,1008],"2021-07-07",{"path":1266,"title":1267,"description":1268,"categories":1269,"draft":989,"year":1270,"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.",[1038,1008],"2021-05-29",{"path":1272,"title":1273,"description":1274,"categories":1275,"draft":989,"year":1276,"series":6},"\u002Fblog\u002Fmaking-decisions-the-right-way","Making Decisions: The right way","Decisions are hard! Learn how to make the right decisions always",[1007,1022],"2020-06-07",{"path":1278,"title":1279,"description":1280,"categories":1281,"draft":989,"year":1283,"series":6},"\u002Fblog\u002Fmanage-logs-with-logrotate","Using Logrotate to manage logs","Learn how to use logrotate system utility to manage logs with example",[1282,1008],"Linux","2020-09-08",{"path":1285,"title":1286,"description":1287,"categories":1288,"draft":989,"year":1289,"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.",[1015,1008],"2020-03-31",{"path":1291,"title":1292,"description":1293,"categories":1294,"draft":989,"year":1295,"series":6},"\u002Fblog\u002Fnotes-almanack-naval","Book Notes : Almanack of Naval Ravikant","My notes\u002Fhighlights from Almanack of Naval Ravikant book by Eric Jorgenson",[986,1022],"2020-10-17",{"path":1297,"title":1298,"description":1299,"categories":1300,"draft":989,"year":1301,"series":6},"\u002Fblog\u002Fnotes-anything-you-want","Book Notes : Anything you want","My notes\u002Fhighlights from Anything you want book by Derek Sivers",[986,1022],"2021-09-25",{"path":1303,"title":1304,"description":1305,"categories":1306,"draft":989,"year":1308,"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.",[986,1307],"Startups","2020-11-03",{"path":1310,"title":1311,"description":1312,"categories":1313,"draft":989,"year":1314,"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",[986,1022],"2020-09-16",{"path":1316,"title":1317,"description":1318,"categories":1319,"draft":989,"year":1320,"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",[986,1307],"2020-01-07",{"path":996,"title":5,"description":988,"categories":1322,"draft":989,"year":999,"series":6},[986,987],{"path":1324,"title":1325,"description":1326,"categories":1327,"draft":989,"year":1329,"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.",[986,1328],"Personal Finance","2021-02-26",{"path":1331,"title":1332,"description":1333,"categories":1334,"draft":989,"year":1335,"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.",[986,1307],"2020-04-26",{"path":1337,"title":1338,"description":1339,"categories":1340,"draft":989,"year":1342,"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.",[986,1341],"Design","2020-05-09",{"path":1344,"title":1345,"description":1346,"categories":1347,"draft":989,"year":1348,"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.",[986,1307],"2021-04-14",{"path":1350,"title":1351,"description":1352,"categories":1353,"draft":989,"year":1355,"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.",[1354,1007],"Career","2023-03-05",{"path":1357,"title":1358,"description":1359,"categories":1360,"draft":989,"year":1361,"series":6},"\u002Fblog\u002Fpersonal-okrs","Personal OKRs for Success","Why one should set personal OKRs and how to achieve success with them",[1007,1022],"2020-06-27",{"path":1363,"title":1364,"description":1365,"categories":1366,"draft":989,"year":1368,"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.",[1022,1367],"Poker","2020-06-13",{"path":1370,"title":1371,"description":1372,"categories":1373,"draft":989,"year":1374,"series":6},"\u002Fblog\u002Fpomodoro","Get work done: The Pomo Way","Learn to focus and get productive by following the Pomodoro Technique",[1007],"2020-10-24",{"path":1376,"title":1377,"description":1378,"categories":1379,"draft":989,"year":1380,"series":6},"\u002Fblog\u002Fpostgres-constraints","Postgres Constraints","Constraints are line of defense for database. Explore various types of constrainsts in postgres",[1197,1008],"2020-11-07",{"path":1382,"title":1383,"description":1384,"categories":1385,"draft":989,"year":1386,"series":6},"\u002Fblog\u002Fppf-explained","PPF Explained","Learn basics about Public Provident Fund and why you should invest",[1022,1328],"2020-12-24",{"path":1388,"title":1389,"description":1390,"categories":1391,"draft":989,"year":1392,"series":6},"\u002Fblog\u002Fproductivity-chrome-extensions","Boost Productivity with Chrome Extensions","Utitizing chrome extensions to boost your productivity!",[1007,1031,1030],"2020-04-24",{"path":1394,"title":1395,"description":1396,"categories":1397,"draft":989,"year":1398,"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.",[1007,1008],"2020-03-12",{"path":1400,"title":1401,"description":1402,"categories":1403,"draft":989,"year":1404,"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.",[986,1022],"2020-04-04",{"path":1406,"title":1407,"description":1408,"categories":1409,"draft":989,"year":1410,"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.",[1038,1008],"2021-10-03",{"path":1412,"title":1413,"description":1414,"categories":1415,"draft":989,"year":1416,"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.",[1015,1008],"2019-11-21",{"path":1418,"title":1419,"description":1420,"categories":1421,"draft":989,"year":1422,"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.",[1015,1197,1008],"2020-02-25",{"path":1424,"title":1425,"description":1426,"categories":1427,"draft":989,"year":1428,"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.",[1045],"2020-07-17",{"path":1430,"title":1431,"description":1432,"categories":1433,"draft":989,"year":1434,"series":6},"\u002Fblog\u002Fstack-in-golang","Implement Stack in Golang","Learn how to implement stack data structure in Golang (Full code)",[1015,1008],"2020-09-14",{"path":1436,"title":1437,"description":1438,"categories":1439,"draft":989,"year":1440,"series":6},"\u002Fblog\u002Fstart-oss-today","Start your Open Source journey today","Start your OSS journey with intro to GIT. Participate in Hacktoberfest!",[1135,1008],"2020-09-19",{"path":1442,"title":1443,"description":1444,"categories":1445,"draft":989,"year":1447,"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.",[1008,1446],"Frontend","2021-02-05",{"path":1449,"title":1450,"description":1451,"categories":1452,"draft":989,"year":1453,"series":6},"\u002Fblog\u002Fterm-insurance","Term insurance Simplified","Everything you need to know before you buy a term insurance.",[1022,1328],"2020-11-29",{"path":1455,"title":1456,"description":1457,"categories":1458,"draft":989,"year":1460,"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",[1282,1459,1008],"Terminal","2020-09-06",{"path":1462,"title":1463,"description":1464,"categories":1465,"draft":989,"year":1466,"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.",[986,1022],"2020-05-19",{"path":1468,"title":1469,"description":1470,"categories":1471,"draft":989,"year":1472,"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.",[1015,1197,1008],"2020-03-18",{"path":1474,"title":1475,"description":1476,"categories":1477,"draft":989,"year":1478,"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.",[1015,1008],"2022-05-31",{"path":1480,"title":1481,"description":1482,"categories":1483,"draft":989,"year":1485,"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",[1022,1484],"Tech","2024-06-01",{"path":1487,"title":1488,"description":1489,"categories":1490,"draft":989,"year":1491,"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!",[1022],"2020-12-31",{"path":1493,"title":1494,"description":1495,"categories":1496,"draft":989,"year":1497,"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!",[1022],"2021-12-31",1788610586164]