[{"data":1,"prerenderedAt":584},["ShallowReactive",2],{"category-startups":3},[4,14,23,32,42,50,58,66,73,80,87,94,101,111,117,125,133,141,148,156,164,172,179,186,193,200,207,214,223,231,238,245,252,259,266,273,280,287,294,301,308,315,322,330,337,344,351,359,366,373,381,389,396,404,411,419,426,434,441,448,455,462,469,476,483,490,497,504,511,518,526,533,541,548,555,562,570,577],{"path":5,"title":6,"description":7,"categories":8,"year":11,"draft":12,"headerImage":13,"cardAlt":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.",[9,10],"Productivity","Programming","2026-08-26",true,"blog\u002Fai-assisted-workstation\u002Fai-assisted-workstation-card.webp",{"path":15,"title":16,"description":17,"categories":18,"year":20,"draft":21,"headerImage":22,"cardAlt":16},"\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",[19,10],"Golang","2020-01-12",false,"blog\u002Faws-s3-golang\u002Faws-s3-golang-card.webp",{"path":24,"title":25,"description":26,"categories":27,"year":30,"draft":21,"headerImage":31,"cardAlt":25},"\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.",[28,29],"Books","Life","2021-12-26","blog\u002Fbooks-for-engineers\u002Fbooks-for-engineers-card.webp",{"path":33,"title":34,"description":35,"categories":36,"year":40,"draft":21,"headerImage":41,"cardAlt":34},"\u002Fblog\u002Fbuilding-acrons","Building Acrons 🚀","Building Acrons, a one-stop tool to decode everyday acronyms like DIY, FOMO, and BRB without losing your flow.",[37,38,39],"Side Projects","Web","Tools","2020-05-26","blog\u002Fbuilding-acrons\u002Fbuilding-acrons-card.webp",{"path":43,"title":44,"description":45,"categories":46,"year":48,"draft":21,"headerImage":49,"cardAlt":44},"\u002Fblog\u002Fcap-theorem","CAP Theorem Explained","Learn the concept and misconceptions around popular CAP theorem in system design.",[47,10],"System Design","2021-07-26","blog\u002Fcap-theorem\u002Fcap-theorem-card.webp",{"path":51,"title":52,"description":53,"categories":54,"year":56,"draft":21,"headerImage":57,"cardAlt":52},"\u002Fblog\u002Fcode-reviews","Code Review Checklist","Why code reviews matter, and best practices that catch bugs early and keep code quality high before merge.",[55],"Engineering Principles","2020-07-20","blog\u002Fcode-reviews\u002Fcode-reviews-card.webp",{"path":59,"title":60,"description":61,"categories":62,"year":64,"draft":21,"headerImage":65,"cardAlt":60},"\u002Fblog\u002Fdark-mode","Add Dark mode to websites","Dark mode is ❤️️ Add it to your websites with little CSS and JS",[63,38],"Javascript","2020-07-04","blog\u002Fdark-mode\u002Fdark-mode-card.webp",{"path":67,"title":68,"description":69,"categories":70,"year":71,"draft":21,"headerImage":72,"cardAlt":68},"\u002Fblog\u002Fdate-time-golang","Working with Date and Time in Go","Learn how to use time in Golang - Multiple formats, locations and using date.",[19,10],"2020-10-09","blog\u002Fdate-time-golang\u002Fdate-time-golang-card.webp",{"path":74,"title":75,"description":76,"categories":77,"year":78,"draft":21,"headerImage":79,"cardAlt":75},"\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.",[19,10],"2021-05-05","blog\u002Fdefer-in-golang\u002Fdefer-in-golang-card.webp",{"path":81,"title":82,"description":83,"categories":84,"year":85,"draft":21,"headerImage":86,"cardAlt":82},"\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.",[19,10],"2021-12-18","blog\u002Fenums-golang\u002Fenums-golang-card.webp",{"path":88,"title":89,"description":90,"categories":91,"year":92,"draft":21,"headerImage":93,"cardAlt":89},"\u002Fblog\u002Fenvironment-variable-golang","Guide to Environment variables in Go","Learn what are environment variables and how to use them in Go",[19,10],"2020-08-14","blog\u002Fenvironment-variable-golang\u002Fenvironment-variable-golang-card.webp",{"path":95,"title":96,"description":97,"categories":98,"year":99,"draft":21,"headerImage":100,"cardAlt":96},"\u002Fblog\u002Ferror-handling-golang","Handle errors the right way — Golang","How to handle errors in golang to make your life easy",[19,10],"2020-01-30","blog\u002Ferror-handling-golang\u002Ferror-handling-golang-card.webp",{"path":102,"title":103,"description":104,"categories":105,"year":108,"draft":12,"headerImage":109,"cardAlt":110},"\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.",[106,107],"Security","Systems","2026-09-17","blog\u002Ffile-attack-document-macros\u002Ffile-attack-document-macros-card.webp","Word document with a hidden VBA macro project embedded inside",{"path":112,"title":113,"description":114,"categories":115,"year":11,"draft":21,"headerImage":116,"cardAlt":113},"\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.",[106,107],"blog\u002Ffile-attack-field-guide\u002Ffile-attack-field-guide-card.webp",{"path":118,"title":119,"description":120,"categories":121,"year":122,"draft":12,"headerImage":123,"cardAlt":124},"\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.",[106,107],"2026-09-10","blog\u002Ffile-attack-html-smuggling\u002Ffile-attack-html-smuggling-card.webp","Browser assembling a downloaded file from a Blob URL",{"path":126,"title":127,"description":128,"categories":129,"year":130,"draft":12,"headerImage":131,"cardAlt":132},"\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.",[106,107],"2026-10-01","blog\u002Ffile-attack-lnk-iso\u002Ffile-attack-lnk-iso-card.webp","Mounted disk image revealing a disguised shortcut file beside hidden payloads",{"path":134,"title":135,"description":136,"categories":137,"year":138,"draft":12,"headerImage":139,"cardAlt":140},"\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.",[106,107],"2026-09-24","blog\u002Ffile-attack-pdf-url-actions\u002Ffile-attack-pdf-url-actions-card.webp","PDF document with a hidden action that opens a phishing link on open",{"path":142,"title":143,"description":144,"categories":145,"year":146,"draft":21,"headerImage":147,"cardAlt":143},"\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.",[19,10],"2021-03-13","blog\u002Ffile-upload-golang\u002Ffile-upload-golang-card.webp",{"path":149,"title":150,"description":151,"categories":152,"year":154,"draft":21,"headerImage":155,"cardAlt":150},"\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.",[153,10],"Git","2022-03-20","blog\u002Fgit-branch\u002Fgit-branch-card.webp",{"path":157,"title":158,"description":159,"categories":160,"year":161,"draft":21,"headerImage":162,"cardAlt":163},"\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",[153,10],"2023-08-24","blog\u002Fgit-pull-request-template\u002Fgit-pull-request-template-card.webp","Ultimate Guide to Pull Request Templates",{"path":165,"title":166,"description":167,"categories":168,"year":169,"draft":21,"headerImage":170,"cardAlt":171},"\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.",[153,10],"2023-10-16","blog\u002Fgit-remove-sensitive-info\u002Fgit-remove-sensitive-info-card.webp","Securing Git: Removing Sensitive Information with BFG",{"path":173,"title":174,"description":175,"categories":176,"year":177,"draft":21,"headerImage":178,"cardAlt":174},"\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.",[153,10],"2020-06-18","blog\u002Fgit-tags-explained\u002Fgit-tags-explained-card.webp",{"path":180,"title":181,"description":182,"categories":183,"year":184,"draft":21,"headerImage":185,"cardAlt":181},"\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",[19,10],"2022-11-26","blog\u002Fgo-dependency-injection\u002Fgo-dependency-injection-card.webp",{"path":187,"title":188,"description":189,"categories":190,"year":191,"draft":21,"headerImage":192,"cardAlt":188},"\u002Fblog\u002Fgo-generics","Introduction to Generics in Go","Learn about generics in Golang, it's benefits and how to implement it in applications.",[19,10],"2022-11-27","blog\u002Fgo-generics\u002Fgo-generics-card.webp",{"path":194,"title":195,"description":196,"categories":197,"year":198,"draft":21,"headerImage":199,"cardAlt":195},"\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).",[19,10],"2024-03-28","blog\u002Fgo-in-memory-cache\u002Fgo-in-memory-cache-card.webp",{"path":201,"title":202,"description":203,"categories":204,"year":205,"draft":21,"headerImage":206,"cardAlt":202},"\u002Fblog\u002Fgo-makefile","Ultimate Makefile for Golang","Boost your productivity and save time with ultimate Makefile for Golang projects.",[19,10],"2024-06-10","blog\u002Fgo-makefile\u002Fgo-makefile-card.webp",{"path":208,"title":209,"description":210,"categories":211,"year":212,"draft":21,"headerImage":213,"cardAlt":209},"\u002Fblog\u002Fgo-middleware","Mastering Middlewares in Golang","Learn about middlewares, their use cases and how to implement them in Golang applications",[19,10],"2022-03-13","blog\u002Fgo-middleware\u002Fgo-middleware-card.webp",{"path":215,"title":216,"description":217,"categories":218,"year":220,"draft":21,"headerImage":221,"cardAlt":222},"\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.",[19,10,219],"Code Quality","2023-05-19","blog\u002Fgo-naming-conventions\u002Fgo-naming-conventions-card.webp","Naming Conventions in Go - Key to Readable and Maintainable Code",{"path":224,"title":225,"description":226,"categories":227,"year":229,"draft":21,"headerImage":230,"cardAlt":225},"\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.",[19,228,10],"Database","2020-05-03","blog\u002Fgo-with-redis\u002Fgo-with-redis-card.webp",{"path":232,"title":233,"description":234,"categories":235,"year":236,"draft":21,"headerImage":237,"cardAlt":233},"\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.",[19,10],"2020-09-10","blog\u002Fgolang-maps\u002Fgolang-maps-card.webp",{"path":239,"title":240,"description":241,"categories":242,"year":243,"draft":21,"headerImage":244,"cardAlt":240},"\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.",[47,10],"2022-01-23","blog\u002Fguide-to-cdn\u002Fguide-to-cdn-card.webp",{"path":246,"title":247,"description":248,"categories":249,"year":250,"draft":21,"headerImage":251,"cardAlt":247},"\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",[19,10],"2022-09-12","blog\u002Fguide-to-rule-engines\u002Fguide-to-rule-engines-card.webp",{"path":253,"title":254,"description":255,"categories":256,"year":257,"draft":21,"headerImage":258,"cardAlt":254},"\u002Fblog\u002Fhexagonal-architecture","Guide to Hexagonal Architecture","Learn how to design efficient application with hexagonal architecture with practical example",[47,10],"2020-12-13","blog\u002Fhexagonal-architecture\u002Fhexagonal-architecture-card.webp",{"path":260,"title":261,"description":262,"categories":263,"year":264,"draft":21,"headerImage":265,"cardAlt":261},"\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.",[38,10],"2020-07-30","blog\u002Fhttp-status-codes\u002Fhttp-status-codes-card.webp",{"path":267,"title":268,"description":269,"categories":270,"year":271,"draft":21,"headerImage":272,"cardAlt":268},"\u002Fblog\u002Fintroduction-to-goroutines","Introduction to Goroutines","Understand the basics of concurrency and learn how to work with Goroutines in golang.",[19,10],"2021-04-10","blog\u002Fintroduction-to-goroutines\u002Fintroduction-to-goroutines-card.webp",{"path":274,"title":275,"description":276,"categories":277,"year":278,"draft":21,"headerImage":279,"cardAlt":275},"\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.",[10,228,19],"2021-02-13","blog\u002Fjson-in-postgres-with-golang\u002Fjson-in-postgres-with-golang-card.webp",{"path":281,"title":282,"description":283,"categories":284,"year":285,"draft":21,"headerImage":286,"cardAlt":282},"\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.",[10,38],"2021-11-20","blog\u002Fjson-web-token\u002Fjson-web-token-card.webp",{"path":288,"title":289,"description":290,"categories":291,"year":292,"draft":21,"headerImage":293,"cardAlt":289},"\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",[29,28],"2022-04-09","blog\u002Flearn-to-say-no\u002Flearn-to-say-no-card.webp",{"path":295,"title":296,"description":297,"categories":298,"year":299,"draft":21,"headerImage":300,"cardAlt":296},"\u002Fblog\u002Flearn-unlearn-relearn","Learn - Unlearn - Relearn","Unlearning things to learn new is the way to grow. Discover how to do that!",[9,29],"2020-09-25","blog\u002Flearn-unlearn-relearn\u002Flearn-unlearn-relearn-card.webp",{"path":302,"title":303,"description":304,"categories":305,"year":306,"draft":21,"headerImage":307,"cardAlt":303},"\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.",[19,10],"2021-07-07","blog\u002Flinting-in-golang\u002Flinting-in-golang-card.webp",{"path":309,"title":310,"description":311,"categories":312,"year":313,"draft":21,"headerImage":314,"cardAlt":143},"\u002Fblog\u002Fload-balancing","Load Balancing 101","Complete guide on load balancers explaining the internal working and how does it help in making applications efficient.",[47,10],"2021-05-29","blog\u002Fload-balancing\u002Fload-balancing-card.webp",{"path":316,"title":317,"description":318,"categories":319,"year":320,"draft":21,"headerImage":321,"cardAlt":317},"\u002Fblog\u002Fmaking-decisions-the-right-way","Making Decisions: The right way","Decisions are hard! Learn how to make the right decisions always",[9,29],"2020-06-07","blog\u002Fmaking-decisions-the-right-way\u002Fmaking-decisions-the-right-way-card.webp",{"path":323,"title":324,"description":325,"categories":326,"year":328,"draft":21,"headerImage":329,"cardAlt":324},"\u002Fblog\u002Fmanage-logs-with-logrotate","Using Logrotate to manage logs","Learn how to use logrotate system utility to manage logs with example",[327,10],"Linux","2020-09-08","blog\u002Fmanage-logs-with-logrotate\u002Fmanage-logs-with-logrotate-card.webp",{"path":331,"title":332,"description":333,"categories":334,"year":335,"draft":21,"headerImage":336,"cardAlt":332},"\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.",[19,10],"2020-03-31","blog\u002Fmarshal-structs-golang\u002Fmarshal-structs-golang-card.webp",{"path":338,"title":339,"description":340,"categories":341,"year":342,"draft":21,"headerImage":343,"cardAlt":339},"\u002Fblog\u002Fnotes-almanack-naval","Book Notes : Almanack of Naval Ravikant","My notes\u002Fhighlights from Almanack of Naval Ravikant book by Eric Jorgenson",[28,29],"2020-10-17","blog\u002Fnotes-almanack-naval\u002Fnotes-almanack-naval-card.webp",{"path":345,"title":346,"description":347,"categories":348,"year":349,"draft":21,"headerImage":350,"cardAlt":346},"\u002Fblog\u002Fnotes-anything-you-want","Book Notes : Anything you want","My notes\u002Fhighlights from Anything you want book by Derek Sivers",[28,29],"2021-09-25","blog\u002Fnotes-anything-you-want\u002Fnotes-anything-you-want-card.webp",{"path":352,"title":353,"description":354,"categories":355,"year":357,"draft":21,"headerImage":358,"cardAlt":353},"\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.",[28,356],"Startups","2020-11-03","blog\u002Fnotes-getting-real\u002Fnotes-getting-real-card.webp",{"path":360,"title":361,"description":362,"categories":363,"year":364,"draft":21,"headerImage":365,"cardAlt":361},"\u002Fblog\u002Fnotes-hell-yeah-or-no","Book Notes : Hell Yeah or No","My notes\u002Fhighlights from Hell Yeah or No book by Derek Sivers",[28,29],"2020-09-16","blog\u002Fnotes-hell-yeah-or-no\u002Fnotes-hell-yeah-or-no-card.webp",{"path":367,"title":368,"description":369,"categories":370,"year":371,"draft":21,"headerImage":372,"cardAlt":368},"\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",[28,356],"2020-01-07","blog\u002Fnotes-how-to-be-a-capitalist\u002Fnotes-how-to-be-a-capitalist-card.webp",{"path":374,"title":375,"description":376,"categories":377,"year":379,"draft":21,"headerImage":380,"cardAlt":375},"\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.",[28,378],"Entrepreneurship","2022-07-02","blog\u002Fnotes-lean-b2b\u002Fnotes-lean-b2b-card.webp",{"path":382,"title":383,"description":384,"categories":385,"year":387,"draft":21,"headerImage":388,"cardAlt":383},"\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.",[28,386],"Personal Finance","2021-02-26","blog\u002Fnotes-lets-talk-money\u002Fnotes-lets-talk-money-card.webp",{"path":390,"title":391,"description":392,"categories":393,"year":394,"draft":21,"headerImage":395,"cardAlt":391},"\u002Fblog\u002Fnotes-obviously-awesome","Book Notes : Obviously Awesome","My notes and highlights from Obviously Awesome by April Dunford on product positioning and marketing strategy.",[28,356],"2020-04-26","blog\u002Fnotes-obviously-awesome\u002Fnotes-obviously-awesome-card.webp",{"path":397,"title":398,"description":399,"categories":400,"year":402,"draft":21,"headerImage":403,"cardAlt":398},"\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.",[28,401],"Design","2020-05-09","blog\u002Fnotes-refactoring-ui\u002Fnotes-refactoring-ui-card.webp",{"path":405,"title":406,"description":407,"categories":408,"year":409,"draft":21,"headerImage":410,"cardAlt":406},"\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.",[28,356],"2021-04-14","blog\u002Fnotes-rework\u002Fnotes-rework-card.webp",{"path":412,"title":413,"description":414,"categories":415,"year":417,"draft":21,"headerImage":418,"cardAlt":413},"\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.",[416,9],"Career","2023-03-05","blog\u002Fone-on-one-meetings\u002Fone-on-one-meetings-card.webp",{"path":420,"title":421,"description":422,"categories":423,"year":424,"draft":21,"headerImage":425,"cardAlt":421},"\u002Fblog\u002Fpersonal-okrs","Personal OKRs for Success","Why one should set personal OKRs and how to achieve success with them",[9,29],"2020-06-27","blog\u002Fpersonal-okrs\u002Fpersonal-okrs-card.webp",{"path":427,"title":428,"description":429,"categories":430,"year":432,"draft":21,"headerImage":433,"cardAlt":428},"\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.",[29,431],"Poker","2020-06-13","blog\u002Fpoker-tips\u002Fpoker-tips-card.webp",{"path":435,"title":436,"description":437,"categories":438,"year":439,"draft":21,"headerImage":440,"cardAlt":436},"\u002Fblog\u002Fpomodoro","Get work done: The Pomo Way","Learn to focus and get productive by following the Pomodoro Technique",[9],"2020-10-24","blog\u002Fpomodoro\u002Fpomodoro-card.webp",{"path":442,"title":443,"description":444,"categories":445,"year":446,"draft":21,"headerImage":447,"cardAlt":443},"\u002Fblog\u002Fpostgres-constraints","Postgres Constraints","Constraints are line of defense for database. Explore various types of constrainsts in postgres",[228,10],"2020-11-07","blog\u002Fpostgres-constraints\u002Fpostgres-constraints-card.webp",{"path":449,"title":450,"description":451,"categories":452,"year":453,"draft":21,"headerImage":454,"cardAlt":450},"\u002Fblog\u002Fppf-explained","PPF Explained","Learn basics about Public Provident Fund and why you should invest",[29,386],"2020-12-24","blog\u002Fppf-explained\u002Fppf-explained-card.webp",{"path":456,"title":457,"description":458,"categories":459,"year":460,"draft":21,"headerImage":461,"cardAlt":457},"\u002Fblog\u002Fproductivity-chrome-extensions","Boost Productivity with Chrome Extensions","Utitizing chrome extensions to boost your productivity!",[9,39,38],"2020-04-24","blog\u002Fproductivity-chrome-extensions\u002Fproductivity-chrome-extensions-card.webp",{"path":463,"title":464,"description":465,"categories":466,"year":467,"draft":21,"headerImage":468,"cardAlt":464},"\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.",[9,10],"2020-03-12","blog\u002Fproductivity-in-vscode\u002Fproductivity-in-vscode-card.webp",{"path":470,"title":471,"description":472,"categories":473,"year":474,"draft":21,"headerImage":475,"cardAlt":471},"\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.",[28,29],"2020-04-04","blog\u002Freading-101\u002Freading-101-card.webp",{"path":477,"title":478,"description":479,"categories":480,"year":481,"draft":21,"headerImage":482,"cardAlt":478},"\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.",[47,10],"2021-10-03","blog\u002Freverse-proxy\u002Freverse-proxy-card.webp",{"path":484,"title":485,"description":486,"categories":487,"year":488,"draft":21,"headerImage":489,"cardAlt":485},"\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.",[19,10],"2019-11-21","blog\u002Frunning-periodic-background-task-golang\u002Frunning-periodic-background-task-golang-card.webp",{"path":491,"title":492,"description":493,"categories":494,"year":495,"draft":21,"headerImage":496,"cardAlt":492},"\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.",[19,228,10],"2020-02-25","blog\u002Fsessions-in-golang\u002Fsessions-in-golang-card.webp",{"path":498,"title":499,"description":500,"categories":501,"year":502,"draft":21,"headerImage":503,"cardAlt":499},"\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.",[55],"2020-07-17","blog\u002Fsolid-dry-kiss-yagni\u002Fsolid-dry-kiss-yagni-card.webp",{"path":505,"title":506,"description":507,"categories":508,"year":509,"draft":21,"headerImage":510,"cardAlt":506},"\u002Fblog\u002Fstack-in-golang","Implement Stack in Golang","Learn how to implement stack data structure in Golang (Full code)",[19,10],"2020-09-14","blog\u002Fstack-in-golang\u002Fstack-in-golang-card.webp",{"path":512,"title":513,"description":514,"categories":515,"year":516,"draft":21,"headerImage":517,"cardAlt":513},"\u002Fblog\u002Fstart-oss-today","Start your Open Source journey today","Start your OSS journey with intro to GIT. Participate in Hacktoberfest!",[153,10],"2020-09-19","blog\u002Fstart-oss-today\u002Fstart-oss-today-card.webp",{"path":519,"title":520,"description":521,"categories":522,"year":524,"draft":21,"headerImage":525,"cardAlt":520},"\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.",[10,523],"Frontend","2021-02-05","blog\u002Fsticky-social-bar\u002Fsticky-social-bar-card.webp",{"path":527,"title":528,"description":529,"categories":530,"year":531,"draft":21,"headerImage":532,"cardAlt":528},"\u002Fblog\u002Fterm-insurance","Term insurance Simplified","Everything you need to know before you buy a term insurance.",[29,386],"2020-11-29","blog\u002Fterm-insurance\u002Fterm-insurance-card.webp",{"path":534,"title":535,"description":536,"categories":537,"year":539,"draft":21,"headerImage":540,"cardAlt":535},"\u002Fblog\u002Fterminal-output-with-redirection","Handling terminal outputs with Redirection","Learn how to handle terminal outputs with Redirection and saving it to files",[327,538,10],"Terminal","2020-09-06","blog\u002Fterminal-output-with-redirection\u002Fterminal-output-with-redirection-card.webp",{"path":542,"title":543,"description":544,"categories":545,"year":546,"draft":21,"headerImage":547,"cardAlt":543},"\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.",[28,29],"2020-05-19","blog\u002Fthink-and-grow-rich\u002Fthink-and-grow-rich-card.webp",{"path":549,"title":550,"description":551,"categories":552,"year":553,"draft":21,"headerImage":554,"cardAlt":550},"\u002Fblog\u002Ftransactions-postgres-golang","Transactions on Postgres with Golang","Performing Postgres database operations in Golang with GORM, from basic queries to full transaction support.",[19,228,10],"2020-03-18","blog\u002Ftransactions-postgres-golang\u002Ftransactions-postgres-golang-card.webp",{"path":556,"title":557,"description":558,"categories":559,"year":560,"draft":21,"headerImage":561,"cardAlt":557},"\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.",[19,10],"2022-05-31","blog\u002Fwaitgroups-in-golang\u002Fwaitgroups-in-golang-card.webp",{"path":563,"title":564,"description":565,"categories":566,"year":568,"draft":21,"headerImage":569,"cardAlt":564},"\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",[29,567],"Tech","2024-06-01","blog\u002Fwhat-i-use\u002Fwhat-i-use-card.webp",{"path":571,"title":572,"description":573,"categories":574,"year":575,"draft":21,"headerImage":576,"cardAlt":572},"\u002Fblog\u002Fyear-in-review-2020","Year in Review: 2020","It's a wrap! 2020 was a crazy year, See how my year went!",[29],"2020-12-31","blog\u002Fyear-in-review-2020\u002Fyear-in-review-2020-card.webp",{"path":578,"title":579,"description":580,"categories":581,"year":582,"draft":21,"headerImage":583,"cardAlt":579},"\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!",[29],"2021-12-31","blog\u002Fyear-in-review-2021\u002Fyear-in-review-2021-card.webp",1788773188420]