[{"data":1,"prerenderedAt":1454},["ShallowReactive",2],{"blog-notes-rework":3,"blog-all-for-related":997},{"id":4,"title":5,"author":6,"body":7,"cardAlt":5,"categories":981,"description":984,"draft":985,"extension":986,"headerImage":987,"keywords":988,"meta":989,"name":990,"navigation":991,"path":992,"seo":993,"series":6,"stem":994,"updated":6,"year":995,"__hash__":996},"blog\u002Fblog\u002Fnotes-rework.md","Book Notes: Rework",null,{"type":8,"value":9,"toc":919},"minimark",[10,22,25,28,36],[11,12,13,14,21],"p",{},"These are highlights\u002Fnotes from book ",[15,16,20],"a",{"href":17,"rel":18},"https:\u002F\u002Famzn.to\u002F3uYiofD",[19],"nofollow","\"Rework\""," by Jason Fried and David Heinemeier Hansson.",[11,23,24],{},"These are personal notes, would recommend reading the book, but in case you are short on time - just skim through these notes 😊",[11,26,27],{},"Rework is one of the best business books I have read till date. It shows you a better, faster, easier way to succeed in business. Full of practical no bullshit advices that are super useful in real world businesses. The book is divided into small chapters which cover topics varying from hiring, culture, ideas and execution.",[11,29,30,31],{},"In case you are looking for book recommendations! Do check ",[15,32,35],{"href":33,"rel":34},"https:\u002F\u002Flearnshots.netlify.app\u002Fbooks\u002F",[19],"Learnshots",[37,38,39,42,45,48,53,66,70,78,84,88,99,103,123,127,138,142,147,151,159,163,171,176,180,188,192,202,206,214,218,229,233,273,277,282,286,294,298,306,310,318,322,333,337,342,346,351,355,360,365,369,380,384,389,393,404,408,413,417,420,446,450,458,462,484,488,496,500,511,515,523,527,535,539,550,554,562,566,574,578,583,587,595,599,607,611,616,620,625,629,637,642,646,651,655,666,670,678,682,690,694,699,703,711,715,735,739,747,751,759,763,774,778,783,787,795,799,804,812,816,827,831,839,841,846,890,899,901,904,913],"ads",{},[40,41],"hr",{},[11,43,44],{},"Starting a business on the side while keeping your day job can provide all the cash flow you need. You don't even need an office. Today you can work from home or collaborate with people you've never met who live thousands of miles away.",[11,46,47],{},"It's time to rework work.",[49,50,52],"h3",{"id":51},"ignore-the-real-world","Ignore the real world",[54,55,56,60,63],"ul",{},[57,58,59],"li",{},"\"That would never work in the real world.\" You hear it all the time when you tell people about a fresh idea.",[57,61,62],{},"This real world sounds like an awfully depressing place to live. It's a place where new ideas, unfamiliar approaches, and foreign concepts always lose.",[57,64,65],{},"The real world isn't a place, it's an excuse. It's a justification for not trying. It has nothing to do with you.",[49,67,69],{"id":68},"learning-from-mistakes-is-overrated","Learning from mistakes is overrated",[54,71,72,75],{},[57,73,74],{},"Success gives you real ammunition.",[57,76,77],{},"People who failed before have the same amount of success as people who have never tried at all.* Success is the experience that actually counts.",[79,80,81],"blockquote",{},[11,82,83],{},"Failure is not a prerequisite for success.",[49,85,87],{"id":86},"planning-is-guessing","Planning is guessing",[54,89,90,93,96],{},[57,91,92],{},"When you turn guesses into plans, you enter a danger zone. Plans let the past drive the future. They put blinders on you.",[57,94,95],{},"Plans are inconsistent with improvisation.",[57,97,98],{},"Give up on the guesswork. Decide what you're going to do this week, not this year.",[49,100,102],{"id":101},"workaholism","Workaholism",[54,104,105,108,111,114,117,120],{},[57,106,107],{},"Working more doesn't mean you care more or get more done. It just means you work more.",[57,109,110],{},"Workaholics wind up creating more problems than they solve.",[57,112,113],{},"If all you do is work, you're unlikely to have sound judgments. Your values and decision making wind up skewed. You stop being able to decide what's worth extra effort and what's not.",[57,115,116],{},"To do great work, you need to feel that you're making a difference. That you're putting a meaningful dent in the universe. That you're part of something important.",[57,118,119],{},"Don't sit around and wait for someone else to make the change you want to see.",[57,121,122],{},"If you're going to do something, do something that matters.",[49,124,126],{"id":125},"scratch-your-own-itch","Scratch your own itch",[54,128,129,132,135],{},[57,130,131],{},"The easiest, most straightforward way to create a great product or service is to make something you want to use.",[57,133,134],{},"When you solve your own problem, the light comes on. You know exactly what the right answer is.",[57,136,137],{},"When you build what you need, you can also assess the quality of what you make quickly and directly, instead of by proxy.",[49,139,141],{"id":140},"start-making-something","Start making something",[54,143,144],{},[57,145,146],{},"Ideas are cheap and plentiful. The original pitch idea is such a small part of a business that it's almost negligible. The real question is how well you execute.",[49,148,150],{"id":149},"no-time-is-no-excuse","No time is no excuse",[54,152,153,156],{},[57,154,155],{},"There's always enough time if you spend it right.",[57,157,158],{},"When you want something bad enough, you make the time--regardless of your other obligations. The truth is most people just don't want it bad enough.",[49,160,162],{"id":161},"draw-a-line-in-the-sand","Draw a line in the sand",[54,164,165,168],{},[57,166,167],{},"Great businesses have a point of view, not just a product or service. You have to believe in something. You need to have a backbone.",[57,169,170],{},"When you don't know what you believe, everything becomes an argument. Everything is debatable.",[79,172,173],{},[11,174,175],{},"Standing for something isn't just about writing it down. It's about believing it and living it.",[49,177,179],{"id":178},"outside-money-is-plan-z","Outside money is Plan Z",[54,181,182,185],{},[57,183,184],{},"When you turn to outsiders for funding, you have to answer to them too.",[57,186,187],{},"There's nothing easier than spending other people's money. But then you run out and need to go back for more.",[49,189,191],{"id":190},"you-need-less-than-you-think","You need less than you think",[54,193,194,197,200],{},[57,195,196],{},"Do you really need six months or can you make something in two?",[57,198,199],{},"Do you really need a big office or can you share office space (or work from home) for a while?",[57,201,199],{},[49,203,205],{"id":204},"start-a-business-not-a-startup","Start a business, not a startup",[54,207,208,211],{},[57,209,210],{},"The start up is a magical place. It's a place where expenses are someone else's problem. It's a place where that pesky thing called revenue is never an issue.",[57,212,213],{},"Actual businesses don't mask deep problems by saying, \"It's OK, we're a startup.\" Act like an actual business and you'll have a much better shot at succeeding.",[49,215,217],{"id":216},"building-to-flip-is-building-to-flop","Building to flip is building to flop",[54,219,220,223,226],{},[57,221,222],{},"You need a commitment strategy, not an exit strategy.",[57,224,225],{},"If your whole strategy is based on leaving, chances are you won't get far in the first place.",[57,227,228],{},"If you do manage to get a good thing going, keep it going. Good things don't come around that often.",[49,230,232],{"id":231},"less-mass","Less Mass",[54,234,235,238,270],{},[57,236,237],{},"Embrace the idea of having less mass.",[57,239,240,241],{},"Mass is increased by -\n",[54,242,243,246,249,252,255,258,261,264,267],{},[57,244,245],{},"Long-term contracts",[57,247,248],{},"Excess staff",[57,250,251],{},"Permanent decisions",[57,253,254],{},"Meetings",[57,256,257],{},"Thick process",[57,259,260],{},"Inventory (physical or mental)",[57,262,263],{},"Hardware, software, and technology lock-ins",[57,265,266],{},"Long-term road maps",[57,268,269],{},"Office politics",[57,271,272],{},"Avoid these things whenever you can. That way, you'll be able to change direction easily. The more expensive it is to make a change, the less likely you are to make it.",[49,274,276],{"id":275},"embrace-constraints","Embrace Constraints",[54,278,279],{},[57,280,281],{},"Constraints are advantages in disguise. Limited resources force you to make do with what you've got. There's no room for waste. And that forces you to be creative.",[49,283,285],{"id":284},"build-half-a-product-not-a-half-assed-product","Build half a product, not a half-assed product",[54,287,288,291],{},[57,289,290],{},"You just can't do everything you want to do and do it well. You have limited time, resources, ability, and focus. It's hard enough to do one thing right. Trying to do ten things well at the same time? Forget about it.",[57,292,293],{},"Cut your ambition in half. You're better off with a kick-ass half than a half-assed whole.",[49,295,297],{"id":296},"start-at-the-epicenter","Start at the epicenter",[54,299,300,303],{},[57,301,302],{},"There's the stuff you could do, the stuff you want to do, and the stuff you have to do. The stuff you have to do is where you should begin. Start at the epicenter.",[57,304,305],{},"If you can continue to get by without this thing or that thing, then those things aren't the epicenter.",[49,307,309],{"id":308},"ignore-the-details-early-on","Ignore the details early on",[54,311,312,315],{},[57,313,314],{},"Details make the difference. But getting infatuated with details too early leads to disagreement, meetings, and delays. You get lost in things that don't really matter",[57,316,317],{},"Nail the basics first and worry about the specifics later.",[49,319,321],{"id":320},"making-the-call-is-making-progress","Making the call is making progress",[54,323,324,327,330],{},[57,325,326],{},"Commit to making decisions. Don't wait for the perfect solution. Decide and move forward.",[57,328,329],{},"The problem comes when you postpone decisions in the hope that a perfect answer will come to you later. It won't.",[57,331,332],{},"The longer it takes to develop, the less likely it is to launch. Make the call, make progress, and get something out now--while you've got the motivation and momentum to do so.",[49,334,336],{"id":335},"be-a-curator","Be a curator",[54,338,339],{},[57,340,341],{},"constantly look for things to remove, simplify, and streamline. Be a curator. Stick to what's truly essential. Pare things down until you're left with only the most important stuff. Then do it again.",[49,343,345],{"id":344},"throw-less-at-the-problem","Throw less at the problem",[54,347,348],{},[57,349,350],{},"When things aren't working, the natural inclination is to throw more at the problem. More people, time, and money. All that ends up doing is making the problem bigger. The right way to go is the opposite direction: Cut back.",[49,352,354],{"id":353},"focus-on-what-wont-change","Focus on what won't change",[54,356,357],{},[57,358,359],{},"The core of your business should be built around things that won't change. Things that people are going to want today and ten years from now.",[79,361,362],{},[11,363,364],{},"Remember, fashion fades away.",[49,366,368],{"id":367},"tone-is-in-your-fingers","Tone is in your fingers",[54,370,371,374,377],{},[57,372,373],{},"It's tempting for people to obsess over tools instead of what they're going to do with those tools.",[57,375,376],{},"People use equipment as a crutch.",[57,378,379],{},"You also see it in people who want to blog, podcast, or shoot videos for their business but get hung up on which tools to use. The content is what matters.",[49,381,383],{"id":382},"sell-your-by-products","Sell your by-products",[54,385,386],{},[57,387,388],{},"When you make something, you always make something else. You can't make just one thing. Everything has a by-product.",[49,390,392],{"id":391},"launch-now","Launch now",[54,394,395,398,401],{},[57,396,397],{},"Once your product does what it needs to do, get it out there.",[57,399,400],{},"Just because you've still got a list of things to do doesn't mean it's not done. Don't hold everything else up because of a few leftovers.",[57,402,403],{},"Put off anything you don't need for launch. Build the necessities now",[49,405,407],{"id":406},"illusions-of-agreement","Illusions of agreement",[54,409,410],{},[57,411,412],{},"If you need to explain something, try getting real with it. Instead of describing what something looks like, draw it. Instead of explaining what something sounds like, hum it. Do everything you can to remove layers of abstraction.",[49,414,416],{"id":415},"reasons-to-quit","Reasons to quit",[11,418,419],{},"Some important questions to ask yourself to ensure you're doing work that matters:",[54,421,422,425,428,431,434,437,440,443],{},[57,423,424],{},"Why are you doing this?",[57,426,427],{},"What problem are you solving?",[57,429,430],{},"Is this actually useful?",[57,432,433],{},"Are you adding value?",[57,435,436],{},"Will this change behavior?",[57,438,439],{},"Is there an easier way?",[57,441,442],{},"What could you be doing instead?",[57,444,445],{},"Is it really worth it?",[49,447,449],{"id":448},"interruption-is-the-enemy-of-productivity","Interruption is the enemy of productivity",[54,451,452,455],{},[57,453,454],{},"You can't get meaningful things done when you're constantly going start, stop, start, stop.",[57,456,457],{},"you should get in the alone zone. Long stretches of alone time are when you're most productive.",[49,459,461],{"id":460},"meetings-are-toxic","Meetings are toxic",[54,463,464,481],{},[57,465,466,467],{},"Try to make your meeting a productive one by sticking to these simple rules:\n",[54,468,469,472,475,478],{},[57,470,471],{},"Set a timer. When it rings, meeting's over. Period.",[57,473,474],{},"Invite as few people as possible.",[57,476,477],{},"Always have a clear agenda.",[57,479,480],{},"Begin with a specific problem.",[57,482,483],{},"End with a solution and make someone responsible for implementing it.",[49,485,487],{"id":486},"good-enough-is-fine","Good enough is fine",[54,489,490,493],{},[57,491,492],{},"Problems can usually be solved with simple, mundane solutions. That means there's no glamorous work. You don't get to show off your amazing skills. You just build something that gets the job done and then move on.",[57,494,495],{},"You can usually turn good enough into great later.",[49,497,499],{"id":498},"quick-wins","Quick wins",[54,501,502,505,508],{},[57,503,504],{},"Momentum fuels motivation. It keeps you going. It drives you. Without it, you can't go anywhere. If you aren't motivated by what you're working on, it won't be very good.",[57,506,507],{},"ask yourself, \"What can we do in two weeks?\" And then do it",[57,509,510],{},"The quicker it's in the hands of customers, the better off you'll be.",[49,512,514],{"id":513},"go-to-sleep","Go to Sleep",[54,516,517,520],{},[57,518,519],{},"Forgoing sleep is a bad idea.",[57,521,522],{},"You destroy your creativity, morale, and attitude.",[49,524,526],{"id":525},"your-estimates-suck","Your estimates suck",[54,528,529,532],{},[57,530,531],{},"We see everything going according to a best-case scenario, without the delays that inevitably pop up. Reality never sticks to best-case scenarios.",[57,533,534],{},"Break the big thing into smaller things. The smaller it is, the easier it is to estimate.",[49,536,538],{"id":537},"long-lists-dont-get-done","Long lists don't get done",[54,540,541,544,547],{},[57,542,543],{},"Long lists are guilt trips. The longer the list of unfinished items, the worse you feel about it. And at a certain point, you just stop looking at it because it makes you feel bad.",[57,545,546],{},"Whenever you can, divide problems into smaller and smaller pieces until you're able to deal with them completely and quickly.",[57,548,549],{},"prioritize visually. Put the most important thing at the top. When you're done with that, the next thing on the list becomes the next most important thing.",[49,551,553],{"id":552},"make-tiny-decisions","Make tiny decisions",[54,555,556,559],{},[57,557,558],{},"Big decisions are hard to make and hard to change.",[57,560,561],{},"make choices that are small enough that they're effectively temporary. When you make tiny decisions, you can't make big mistakes.",[49,563,565],{"id":564},"dont-copy","Don't copy",[54,567,568,571],{},[57,569,570],{},"You have to understand why something works or why something is the way it is. When you just copy and paste, you miss that.",[57,572,573],{},"The copy is a faux finish. It delivers no substance, no understanding, and nothing to base future decisions on.",[49,575,577],{"id":576},"decommoditize-your-product","Decommoditize your product",[54,579,580],{},[57,581,582],{},"Pour yourself into your product and everything around your product too: how you sell it, how you support it, how you explain it, and how you deliver it. Competitors can never copy the you in your product.",[49,584,586],{"id":585},"pick-a-fight","Pick a fight",[54,588,589,592],{},[57,590,591],{},"If you think a competitor sucks, say so.",[57,593,594],{},"Having an enemy gives you a great story to tell customers, too. Taking a stand always stands out. People get stoked by conflict.",[49,596,598],{"id":597},"underdo-your-competition","Underdo your competition",[54,600,601,604],{},[57,602,603],{},"Do less than your competitors to beat them. Solve the simple problems and leave the hairy, difficult, nasty problems to the competition. Instead of one-upping, try one-downing. Instead of outdoing, try underdoing.",[57,605,606],{},"Focus on competitors too much and you wind up diluting your own vision.",[49,608,610],{"id":609},"say-no-by-default","Say no by default",[54,612,613],{},[57,614,615],{},"Start getting into the habit of saying no--even to many of your best ideas. Use the power of no to get your priorities straight. You rarely regret saying no.",[49,617,619],{"id":618},"let-your-customers-outgrow-you","Let your customers outgrow you",[54,621,622],{},[57,623,624],{},"People and situations change. You can't be everything to everyone. Companies need to be true to a type of customer more than a specific individual customer with changing needs.",[49,626,628],{"id":627},"dont-confuse-enthusiasm-with-priority","Don't confuse enthusiasm with priority",[54,630,631,634],{},[57,632,633],{},"We have ideas for new features all the time. Just don't act in the heat of the moment. Write them down and park them for a few days. Then, evaluate their actual priority with a calm mind.",[57,635,636],{},"The requests that really matter are the ones you'll hear over and over. After a while, you won't be able to forget them. Your customers will be your memory. They'll keep reminding you.",[79,638,639],{},[11,640,641],{},"Don't make up problems you don't have yet. It's not a problem until it's a real problem.",[49,643,645],{"id":644},"build-an-audience","Build an audience",[54,647,648],{},[57,649,650],{},"Speak, write, blog, tweet, make videos--whatever. Share information that's valuable and you'll slowly but surely build a loyal audience. Then when you need to get the word out, the right people will already be listening.",[49,652,654],{"id":653},"nobody-likes-plastic-flowers","Nobody likes plastic flowers",[54,656,657,660,663],{},[57,658,659],{},"Don't be afraid to show your flaws. Imperfections are real and people respond to real.",[57,661,662],{},"Reveal things that others are unwilling to discuss. Be upfront about your shortcomings. Show the latest version of what you're working on, even if you're not done yet. It's OK if it's not perfect.",[57,664,665],{},"Don't be afraid to give a little away for free--as long as you've got something else to sell. Be confident in what you're offering. Eg. Drug dealers.",[49,667,669],{"id":668},"marketing-is-not-a-department","Marketing is not a department",[54,671,672,675],{},[57,673,674],{},"Marketing is something everyone in your company is doing 24\u002F7\u002F365.",[57,676,677],{},"Marketing isn't just a few individual events. It's the sum total of everything you do.",[49,679,681],{"id":680},"myth-of-overnight-sensation","Myth of overnight sensation",[54,683,684,687],{},[57,685,686],{},"You will not be a big hit right away. You will not get rich quick. You are not so special that everyone else will instantly pay attention. No one cares about you. At least not yet. Get used to it.",[57,688,689],{},"Trade the dream of overnight success for slow, measured growth.",[49,691,693],{"id":692},"do-it-yourself-first","Do it yourself first",[54,695,696],{},[57,697,698],{},"Never hire anyone to do a job until you've tried to do it yourself first. That way, you'll understand the nature of the work. You'll know what a job well done looks like.",[49,700,702],{"id":701},"hire-when-it-hurts","Hire when it hurts",[54,704,705,708],{},[57,706,707],{},"Don't hire for pleasure; hire to kill pain. Always ask yourself: What if we don't hire anyone?",[57,709,710],{},"The right time to hire is when there's more work than you can handle for a sustained period of time. There should be things you can't do anymore.",[49,712,714],{"id":713},"hiring","Hiring",[54,716,717,720,723,726,729,732],{},[57,718,719],{},"Pass on hiring people you don't need, even if you think that person's a great catch.",[57,721,722],{},"Problems start when you have more people than you need. You start inventing work to keep everyone busy.",[57,724,725],{},"There's surprisingly little difference between a candidate with six months of experience and one with six years. The real difference comes from the individual's dedication, personality, and intelligence.",[57,727,728],{},"Hire great writers - Clear writing is a sign of clear thinking. Great writers know how to communicate. They make things easy to understand. They can put themselves in someone else's shoes. They know what to omit.",[57,730,731],{},"Test: The best way to do that is to actually see them work. Hire them for a miniproject.",[57,733,734],{},"Rockstar environments develop out of trust, autonomy, and responsibility.",[49,736,738],{"id":737},"everybody-works","Everybody works",[54,740,741,744],{},[57,742,743],{},"With a small team, you need people who are going to do work, not delegate work. Everyone's got to be producing. No one can be above the work.",[57,745,746],{},"Delegators love to pull people into meetings, too. In fact, meetings are a delegator's best friend.",[49,748,750],{"id":749},"best-are-everywhere","Best are everywhere",[54,752,753,756],{},[57,754,755],{},"It's crazy not to hire the best people just because they live far away.",[57,757,758],{},"Geography just doesn't matter anymore. Hire the best talent, regardless of where it is.",[49,760,762],{"id":761},"own-your-bad-news","Own your bad news",[54,764,765,768,771],{},[57,766,767],{},"When something bad happens, tell your customers",[57,769,770],{},"You can't hide anymore. These days, someone else will call you on it if you don't do it yourself",[57,772,773],{},"People will respect you more if you are open, honest, public, and responsive during a crisis.",[49,775,777],{"id":776},"speed-matters","Speed matters",[54,779,780],{},[57,781,782],{},"Getting back to people quickly is probably the most important thing you can do when it comes to customer service.",[49,784,786],{"id":785},"how-to-say-youre-sorry","How to say you're sorry",[54,788,789,792],{},[57,790,791],{},"A good apology accepts responsibility. It has no conditional if phrase attached. It shows people that the buck stops with you. And then it provides real details about what happened and what you're doing to prevent it from happening again. And it seeks a way to make things right.",[57,793,794],{},"Keep in mind that you can't apologize your way out of being an ass. Even the best apology won't rescue you if you haven't earned people's trust.",[49,796,798],{"id":797},"stay-calm","Stay calm",[79,800,801],{},[11,802,803],{},"When you rock the boat, there will be waves",[54,805,806,809],{},[57,807,808],{},"Resist the urge to panic or make rapid changes in response.",[57,810,811],{},"Remember that negative reactions are almost always louder and more passionate than positive ones.",[49,813,815],{"id":814},"asap-is-poison","ASAP is poison",[54,817,818,821,824],{},[57,819,820],{},"Stop saying ASAP. We get it. It's implied. Everyone wants things done as soon as they can be done.",[57,822,823],{},"when everything is high priority, nothing is.",[57,825,826],{},"reserve your use of emergency language for true emergencies",[49,828,830],{"id":829},"culture","Culture",[54,832,833,836],{},[57,834,835],{},"You don't create a culture. It happens. This is why new companies don't have a culture. Culture is the byproduct of consistent behavior.",[57,837,838],{},"There are four-letter words you should never use in business. They're not fuck or shit. They're need, must, can't, easy, just, only, and fast. These words get in the way of healthy communication.",[40,840],{},[842,843,845],"h2",{"id":844},"more-book-summaries","More book summaries",[54,847,848,855,862,869,876,883],{},[57,849,850],{},[15,851,854],{"href":852,"rel":853},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-refactoring-ui\u002F",[19],"Refactoring UI",[57,856,857],{},[15,858,861],{"href":859,"rel":860},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-lets-talk-money\u002F",[19],"Let's Talk Money",[57,863,864],{},[15,865,868],{"href":866,"rel":867},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-obviously-awesome\u002F",[19],"Obviously Awesome",[57,870,871],{},[15,872,875],{"href":873,"rel":874},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-hell-yeah-or-no\u002F",[19],"Hell Yeah or No",[57,877,878],{},[15,879,882],{"href":880,"rel":881},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-almanack-naval\u002F",[19],"Almanack of Naval Ravikant",[57,884,885],{},[15,886,889],{"href":887,"rel":888},"https:\u002F\u002Fwww.mohitkhare.com\u002Fblog\u002Fnotes-getting-real\u002F",[19],"Getting Real",[11,891,892,893,898],{},"Liked the article? Consider ",[15,894,897],{"href":895,"rel":896},"https:\u002F\u002Fwww.buymeacoffee.com\u002FchHAzigTb",[19],"supporting me"," ☕️",[40,900],{},[11,902,903],{},"I hope you learned something new. Feel free to suggest improvements ✔️",[11,905,906,907,912],{},"I share regular updates and resources on ",[15,908,911],{"href":909,"rel":910},"https:\u002F\u002Ftwitter.com\u002Fmkfeuhrer",[19],"Twitter",". Let's connect!",[11,914,915],{},[916,917,918],"strong",{},"Keep exploring 🔎 Keep learning 🚀",{"title":920,"searchDepth":921,"depth":921,"links":922},"",2,[923,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980],{"id":51,"depth":924,"text":52},3,{"id":68,"depth":924,"text":69},{"id":86,"depth":924,"text":87},{"id":101,"depth":924,"text":102},{"id":125,"depth":924,"text":126},{"id":140,"depth":924,"text":141},{"id":149,"depth":924,"text":150},{"id":161,"depth":924,"text":162},{"id":178,"depth":924,"text":179},{"id":190,"depth":924,"text":191},{"id":204,"depth":924,"text":205},{"id":216,"depth":924,"text":217},{"id":231,"depth":924,"text":232},{"id":275,"depth":924,"text":276},{"id":284,"depth":924,"text":285},{"id":296,"depth":924,"text":297},{"id":308,"depth":924,"text":309},{"id":320,"depth":924,"text":321},{"id":335,"depth":924,"text":336},{"id":344,"depth":924,"text":345},{"id":353,"depth":924,"text":354},{"id":367,"depth":924,"text":368},{"id":382,"depth":924,"text":383},{"id":391,"depth":924,"text":392},{"id":406,"depth":924,"text":407},{"id":415,"depth":924,"text":416},{"id":448,"depth":924,"text":449},{"id":460,"depth":924,"text":461},{"id":486,"depth":924,"text":487},{"id":498,"depth":924,"text":499},{"id":513,"depth":924,"text":514},{"id":525,"depth":924,"text":526},{"id":537,"depth":924,"text":538},{"id":552,"depth":924,"text":553},{"id":564,"depth":924,"text":565},{"id":576,"depth":924,"text":577},{"id":585,"depth":924,"text":586},{"id":597,"depth":924,"text":598},{"id":609,"depth":924,"text":610},{"id":618,"depth":924,"text":619},{"id":627,"depth":924,"text":628},{"id":644,"depth":924,"text":645},{"id":653,"depth":924,"text":654},{"id":668,"depth":924,"text":669},{"id":680,"depth":924,"text":681},{"id":692,"depth":924,"text":693},{"id":701,"depth":924,"text":702},{"id":713,"depth":924,"text":714},{"id":737,"depth":924,"text":738},{"id":749,"depth":924,"text":750},{"id":761,"depth":924,"text":762},{"id":776,"depth":924,"text":777},{"id":785,"depth":924,"text":786},{"id":797,"depth":924,"text":798},{"id":814,"depth":924,"text":815},{"id":829,"depth":924,"text":830},{"id":844,"depth":921,"text":845},[982,983],"Books","Startups","My notes and highlights from Rework by Jason Fried and David Heinemeier Hansson on a better way to succeed in business.",false,"md","blog\u002Fnotes-rework\u002Fnotes-rework-card.webp","rework book summary, rework summary, rework notes",{},"notes-rework",true,"\u002Fblog\u002Fnotes-rework",{"title":5,"description":984},"blog\u002Fnotes-rework","2021-04-14","aeZzMTOAYgpqlJQeobuOavacvq8Qry8fNOVsPR20kuo",[998,1006,1013,1020,1029,1036,1043,1050,1056,1062,1068,1074,1080,1086,1093,1099,1105,1111,1117,1123,1129,1135,1141,1148,1155,1161,1167,1173,1179,1185,1191,1197,1203,1209,1215,1221,1227,1233,1240,1246,1252,1258,1264,1270,1276,1283,1290,1296,1303,1305,1312,1318,1325,1331,1337,1343,1349,1355,1361,1367,1373,1379,1385,1391,1397,1404,1410,1417,1423,1429,1435,1442,1448],{"path":999,"title":1000,"description":1001,"categories":1002,"draft":991,"year":1005,"series":6},"\u002Fblog\u002Fai-assisted-workstation","Building an AI-Assisted Personal Workstation","A living log of building a practical AI-assisted workstation for software and startup work.",[1003,1004],"Productivity","Programming","2026-08-08",{"path":1007,"title":1008,"description":1009,"categories":1010,"draft":985,"year":1012,"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",[1011,1004],"Golang","2020-01-12",{"path":1014,"title":1015,"description":1016,"categories":1017,"draft":985,"year":1019,"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.",[982,1018],"Life","2021-12-26",{"path":1021,"title":1022,"description":1023,"categories":1024,"draft":985,"year":1028,"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.",[1025,1026,1027],"Side Projects","Web","Tools","2020-05-26",{"path":1030,"title":1031,"description":1032,"categories":1033,"draft":985,"year":1035,"series":6},"\u002Fblog\u002Fcap-theorem","CAP Theorem Explained","Learn the concept and misconceptions around popular CAP theorem in system design.",[1034,1004],"System Design","2021-07-26",{"path":1037,"title":1038,"description":1039,"categories":1040,"draft":985,"year":1042,"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.",[1041],"Engineering Principles","2020-07-20",{"path":1044,"title":1045,"description":1046,"categories":1047,"draft":985,"year":1049,"series":6},"\u002Fblog\u002Fdark-mode","Add Dark mode to websites","Dark mode is ❤️️ Add it to your websites with little CSS and JS",[1048,1026],"Javascript","2020-07-04",{"path":1051,"title":1052,"description":1053,"categories":1054,"draft":985,"year":1055,"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.",[1011,1004],"2020-10-09",{"path":1057,"title":1058,"description":1059,"categories":1060,"draft":985,"year":1061,"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.",[1011,1004],"2021-05-05",{"path":1063,"title":1064,"description":1065,"categories":1066,"draft":985,"year":1067,"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.",[1011,1004],"2021-12-18",{"path":1069,"title":1070,"description":1071,"categories":1072,"draft":985,"year":1073,"series":6},"\u002Fblog\u002Fenvironment-variable-golang","Guide to Environment variables in Go","Learn what are environment variables and how to use them in Go",[1011,1004],"2020-08-14",{"path":1075,"title":1076,"description":1077,"categories":1078,"draft":985,"year":1079,"series":6},"\u002Fblog\u002Ferror-handling-golang","Handle errors the right way — Golang","How to handle errors in golang to make your life easy",[1011,1004],"2020-01-30",{"path":1081,"title":1082,"description":1083,"categories":1084,"draft":985,"year":1085,"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.",[1011,1004],"2021-03-13",{"path":1087,"title":1088,"description":1089,"categories":1090,"draft":985,"year":1092,"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.",[1091,1004],"Git","2022-03-20",{"path":1094,"title":1095,"description":1096,"categories":1097,"draft":985,"year":1098,"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",[1091,1004],"2023-08-24",{"path":1100,"title":1101,"description":1102,"categories":1103,"draft":985,"year":1104,"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.",[1091,1004],"2023-10-16",{"path":1106,"title":1107,"description":1108,"categories":1109,"draft":985,"year":1110,"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.",[1091,1004],"2020-06-18",{"path":1112,"title":1113,"description":1114,"categories":1115,"draft":985,"year":1116,"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",[1011,1004],"2022-11-26",{"path":1118,"title":1119,"description":1120,"categories":1121,"draft":985,"year":1122,"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.",[1011,1004],"2022-11-27",{"path":1124,"title":1125,"description":1126,"categories":1127,"draft":985,"year":1128,"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).",[1011,1004],"2024-03-28",{"path":1130,"title":1131,"description":1132,"categories":1133,"draft":985,"year":1134,"series":6},"\u002Fblog\u002Fgo-makefile","Ultimate Makefile for Golang","Boost your productivity and save time with ultimate Makefile for Golang projects.",[1011,1004],"2024-06-10",{"path":1136,"title":1137,"description":1138,"categories":1139,"draft":985,"year":1140,"series":6},"\u002Fblog\u002Fgo-middleware","Mastering Middlewares in Golang","Learn about middlewares, their use cases and how to implement them in Golang applications",[1011,1004],"2022-03-13",{"path":1142,"title":1143,"description":1144,"categories":1145,"draft":985,"year":1147,"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.",[1011,1004,1146],"Code Quality","2023-05-19",{"path":1149,"title":1150,"description":1151,"categories":1152,"draft":985,"year":1154,"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.",[1011,1153,1004],"Database","2020-05-03",{"path":1156,"title":1157,"description":1158,"categories":1159,"draft":985,"year":1160,"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.",[1011,1004],"2020-09-10",{"path":1162,"title":1163,"description":1164,"categories":1165,"draft":985,"year":1166,"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.",[1034,1004],"2022-01-23",{"path":1168,"title":1169,"description":1170,"categories":1171,"draft":985,"year":1172,"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",[1011,1004],"2022-09-12",{"path":1174,"title":1175,"description":1176,"categories":1177,"draft":985,"year":1178,"series":6},"\u002Fblog\u002Fhexagonal-architecture","Guide to Hexagonal Architecture","Learn how to design efficient application with hexagonal architecture with practical example",[1034,1004],"2020-12-13",{"path":1180,"title":1181,"description":1182,"categories":1183,"draft":985,"year":1184,"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.",[1026,1004],"2020-07-30",{"path":1186,"title":1187,"description":1188,"categories":1189,"draft":985,"year":1190,"series":6},"\u002Fblog\u002Fintroduction-to-goroutines","Introduction to Goroutines","Understand the basics of concurrency and learn how to work with Goroutines in golang.",[1011,1004],"2021-04-10",{"path":1192,"title":1193,"description":1194,"categories":1195,"draft":985,"year":1196,"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.",[1004,1153,1011],"2021-02-13",{"path":1198,"title":1199,"description":1200,"categories":1201,"draft":985,"year":1202,"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.",[1004,1026],"2021-11-20",{"path":1204,"title":1205,"description":1206,"categories":1207,"draft":985,"year":1208,"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",[1018,982],"2022-04-09",{"path":1210,"title":1211,"description":1212,"categories":1213,"draft":985,"year":1214,"series":6},"\u002Fblog\u002Flearn-unlearn-relearn","Learn - Unlearn - Relearn","Unlearning things to learn new is the way to grow. Discover how to do that!",[1003,1018],"2020-09-25",{"path":1216,"title":1217,"description":1218,"categories":1219,"draft":985,"year":1220,"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.",[1011,1004],"2021-07-07",{"path":1222,"title":1223,"description":1224,"categories":1225,"draft":985,"year":1226,"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.",[1034,1004],"2021-05-29",{"path":1228,"title":1229,"description":1230,"categories":1231,"draft":985,"year":1232,"series":6},"\u002Fblog\u002Fmaking-decisions-the-right-way","Making Decisions: The right way","Decisions are hard! Learn how to make the right decisions always",[1003,1018],"2020-06-07",{"path":1234,"title":1235,"description":1236,"categories":1237,"draft":985,"year":1239,"series":6},"\u002Fblog\u002Fmanage-logs-with-logrotate","Using Logrotate to manage logs","Learn how to use logrotate system utility to manage logs with example",[1238,1004],"Linux","2020-09-08",{"path":1241,"title":1242,"description":1243,"categories":1244,"draft":985,"year":1245,"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.",[1011,1004],"2020-03-31",{"path":1247,"title":1248,"description":1249,"categories":1250,"draft":985,"year":1251,"series":6},"\u002Fblog\u002Fnotes-almanack-naval","Book Notes : Almanack of Naval Ravikant","My notes\u002Fhighlights from Almanack of Naval Ravikant book by Eric Jorgenson",[982,1018],"2020-10-17",{"path":1253,"title":1254,"description":1255,"categories":1256,"draft":985,"year":1257,"series":6},"\u002Fblog\u002Fnotes-anything-you-want","Book Notes : Anything you want","My notes\u002Fhighlights from Anything you want book by Derek Sivers",[982,1018],"2021-09-25",{"path":1259,"title":1260,"description":1261,"categories":1262,"draft":985,"year":1263,"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.",[982,983],"2020-11-03",{"path":1265,"title":1266,"description":1267,"categories":1268,"draft":985,"year":1269,"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",[982,1018],"2020-09-16",{"path":1271,"title":1272,"description":1273,"categories":1274,"draft":985,"year":1275,"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",[982,983],"2020-01-07",{"path":1277,"title":1278,"description":1279,"categories":1280,"draft":985,"year":1282,"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.",[982,1281],"Entrepreneurship","2022-07-02",{"path":1284,"title":1285,"description":1286,"categories":1287,"draft":985,"year":1289,"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.",[982,1288],"Personal Finance","2021-02-26",{"path":1291,"title":1292,"description":1293,"categories":1294,"draft":985,"year":1295,"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.",[982,983],"2020-04-26",{"path":1297,"title":1298,"description":1299,"categories":1300,"draft":985,"year":1302,"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.",[982,1301],"Design","2020-05-09",{"path":992,"title":5,"description":984,"categories":1304,"draft":985,"year":995,"series":6},[982,983],{"path":1306,"title":1307,"description":1308,"categories":1309,"draft":985,"year":1311,"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.",[1310,1003],"Career","2023-03-05",{"path":1313,"title":1314,"description":1315,"categories":1316,"draft":985,"year":1317,"series":6},"\u002Fblog\u002Fpersonal-okrs","Personal OKRs for Success","Why one should set personal OKRs and how to achieve success with them",[1003,1018],"2020-06-27",{"path":1319,"title":1320,"description":1321,"categories":1322,"draft":985,"year":1324,"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.",[1018,1323],"Poker","2020-06-13",{"path":1326,"title":1327,"description":1328,"categories":1329,"draft":985,"year":1330,"series":6},"\u002Fblog\u002Fpomodoro","Get work done: The Pomo Way","Learn to focus and get productive by following the Pomodoro Technique",[1003],"2020-10-24",{"path":1332,"title":1333,"description":1334,"categories":1335,"draft":985,"year":1336,"series":6},"\u002Fblog\u002Fpostgres-constraints","Postgres Constraints","Constraints are line of defense for database. Explore various types of constrainsts in postgres",[1153,1004],"2020-11-07",{"path":1338,"title":1339,"description":1340,"categories":1341,"draft":985,"year":1342,"series":6},"\u002Fblog\u002Fppf-explained","PPF Explained","Learn basics about Public Provident Fund and why you should invest",[1018,1288],"2020-12-24",{"path":1344,"title":1345,"description":1346,"categories":1347,"draft":985,"year":1348,"series":6},"\u002Fblog\u002Fproductivity-chrome-extensions","Boost Productivity with Chrome Extensions","Utitizing chrome extensions to boost your productivity!",[1003,1027,1026],"2020-04-24",{"path":1350,"title":1351,"description":1352,"categories":1353,"draft":985,"year":1354,"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.",[1003,1004],"2020-03-12",{"path":1356,"title":1357,"description":1358,"categories":1359,"draft":985,"year":1360,"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.",[982,1018],"2020-04-04",{"path":1362,"title":1363,"description":1364,"categories":1365,"draft":985,"year":1366,"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.",[1034,1004],"2021-10-03",{"path":1368,"title":1369,"description":1370,"categories":1371,"draft":985,"year":1372,"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.",[1011,1004],"2019-11-21",{"path":1374,"title":1375,"description":1376,"categories":1377,"draft":985,"year":1378,"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.",[1011,1153,1004],"2020-02-25",{"path":1380,"title":1381,"description":1382,"categories":1383,"draft":985,"year":1384,"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.",[1041],"2020-07-17",{"path":1386,"title":1387,"description":1388,"categories":1389,"draft":985,"year":1390,"series":6},"\u002Fblog\u002Fstack-in-golang","Implement Stack in Golang","Learn how to implement stack data structure in Golang (Full code)",[1011,1004],"2020-09-14",{"path":1392,"title":1393,"description":1394,"categories":1395,"draft":985,"year":1396,"series":6},"\u002Fblog\u002Fstart-oss-today","Start your Open Source journey today","Start your OSS journey with intro to GIT. Participate in Hacktoberfest!",[1091,1004],"2020-09-19",{"path":1398,"title":1399,"description":1400,"categories":1401,"draft":985,"year":1403,"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.",[1004,1402],"Frontend","2021-02-05",{"path":1405,"title":1406,"description":1407,"categories":1408,"draft":985,"year":1409,"series":6},"\u002Fblog\u002Fterm-insurance","Term insurance Simplified","Everything you need to know before you buy a term insurance.",[1018,1288],"2020-11-29",{"path":1411,"title":1412,"description":1413,"categories":1414,"draft":985,"year":1416,"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",[1238,1415,1004],"Terminal","2020-09-06",{"path":1418,"title":1419,"description":1420,"categories":1421,"draft":985,"year":1422,"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.",[982,1018],"2020-05-19",{"path":1424,"title":1425,"description":1426,"categories":1427,"draft":985,"year":1428,"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.",[1011,1153,1004],"2020-03-18",{"path":1430,"title":1431,"description":1432,"categories":1433,"draft":985,"year":1434,"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.",[1011,1004],"2022-05-31",{"path":1436,"title":1437,"description":1438,"categories":1439,"draft":985,"year":1441,"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",[1018,1440],"Tech","2024-06-01",{"path":1443,"title":1444,"description":1445,"categories":1446,"draft":985,"year":1447,"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!",[1018],"2020-12-31",{"path":1449,"title":1450,"description":1451,"categories":1452,"draft":985,"year":1453,"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!",[1018],"2021-12-31",1787743428061]