41554 blogs ยท [ { "id": "01a087e3-3113-7185-b5d6-bb8fd2664a5d", "title": "Build a Full-Stack App with SvelteKit and PocketBase in a Single Binary", "url": "https://www.sohamkamani.com/blog/pocketbase-svelte-kit-app-tutorial/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd328ae9b", "title": "About Me", "url": "https://www.sohamkamani.com/blog/about/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd4266b96", "title": "A Complete Guide to UUID Versions (v1, v4, v5) - With Examples", "url": "https://www.sohamkamani.com/blog/uuid-versions-explained/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd4f70ce4", "title": "Should I write that blog post? ๐Ÿ“", "url": "https://www.sohamkamani.com/blog/write-that-blog/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd5f2a14d", "title": "AI Prompt Tuning: Using Meta-Prompting To Improve Your Prompts", "url": "https://www.sohamkamani.com/blog/ai/prompt-tuning-with-meta-prompting/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd65fdc63", "title": "How To Write Reader-Friendly Technical Blog Posts", "url": "https://www.sohamkamani.com/blog/writing-better-blog-posts/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd73703ba", "title": "How to Write Good Documentation (And Its Essential Elements)", "url": "https://www.sohamkamani.com/blog/how-to-write-good-documentation/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd77b4e56", "title": "A Gentle Introduction to SQL Queries", "url": "https://www.sohamkamani.com/blog/sql-guide/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd851659c", "title": "Monitoring The Health Of Your Golang Application Using the Detective Library", "url": "https://www.sohamkamani.com/blog/application-monitoring-healthchecks/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd9513f4d", "title": "Mastering AI Agent Skills", "url": "https://www.sohamkamani.com/blog/ai/what-are-ai-agents-and-how-to-make-your-own/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fd989142e", "title": "How Games Are Programmed: An Introduction To The Core Concepts Required To Program A Video Game", "url": "https://www.sohamkamani.com/blog/game-programming-introduction/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fda475e19", "title": "Why We Should Stop Using Gifs", "url": "https://www.sohamkamani.com/blog/stop-using-gifs/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdad994f0", "title": "Web Security Basics - An Introduction to the Essential Concepts Behind a Secure Website", "url": "https://www.sohamkamani.com/blog/web-security-basics/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdb1419e3", "title": "How to Install and Run a Kafka Cluster Locally", "url": "https://www.sohamkamani.com/blog/install-and-run-kafka-locally/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdb27df9c", "title": "Using the BusyBox Docker Image for Building Applications : A Complete Guide", "url": "https://www.sohamkamani.com/blog/docker/busybox-guide/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdb502b17", "title": "Polymorphism in Go - without interfaces ๐Ÿฆ†", "url": "https://www.sohamkamani.com/blog/golang/2019-03-29-polymorphism-without-interfaces/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdb6f6d45", "title": "Factory patterns in Go (Golang) ๐Ÿญ", "url": "https://www.sohamkamani.com/blog/golang/2018-06-20-golang-factory-patterns/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdc188099", "title": "A Comprehensive Guide of Arrays and Slices in Golang (and their differences)", "url": "https://www.sohamkamani.com/blog/golang/arrays-vs-slices/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdcaaf34a", "title": "Tensorflow Introduction and Basic Operations", "url": "https://www.sohamkamani.com/blog/data-science/tensorflow-introduction/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdd762ecc", "title": "Creating a MongoDB Replica Set Using Docker", "url": "https://www.sohamkamani.com/blog/docker/mongo-replica-set/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fde3f879f", "title": "Linear Regression with Python", "url": "https://www.sohamkamani.com/blog/data-science/linear-regression-python/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdedf1987", "title": "An Introduction to Channels in Go (Golang)", "url": "https://www.sohamkamani.com/blog/golang/channels/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fdfce058b", "title": "Golang Constructors - Design Patterns For Initializing Variables", "url": "https://www.sohamkamani.com/blog/golang/constructors/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe03e3acc", "title": "How to Use Context in Golang (Deadlines, Cancellation, and Passing Values)", "url": "https://www.sohamkamani.com/blog/golang/context/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe0e369fb", "title": "Data races in Go(Golang) and how to fix them", "url": "https://www.sohamkamani.com/blog/golang/data-races/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe10fd5c0", "title": "Golang's 'Defer' Keyword: What It Is and How It Works", "url": "https://www.sohamkamani.com/blog/golang/defer/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe188383b", "title": "Using Enums (and Enum Types) in Golang", "url": "https://www.sohamkamani.com/blog/golang/enums/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe22218fe", "title": "Mastering Error Handling in Go: A Comprehensive Guide", "url": "https://www.sohamkamani.com/blog/golang/error-handling/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe2539a6f", "title": "Command Pattern in Go (Golang)", "url": "https://www.sohamkamani.com/blog/golang/command-pattern/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe2f7b4d0", "title": "Executing Shell Commands in Golang", "url": "https://www.sohamkamani.com/blog/golang/exec-shell-command/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe3636a6a", "title": "Golang functions vs methods ๐Ÿ‘ฏโ€โ™€๏ธ", "url": "https://www.sohamkamani.com/blog/golang/functions-vs-methods/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe39b84cd", "title": "Golang - Implementing Heap Data Structure (and Heap Sort)", "url": "https://www.sohamkamani.com/blog/golang/heap/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe4758817", "title": "Build a web application in Go (golang)", "url": "https://www.sohamkamani.com/blog/golang/how-to-build-a-web-application/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe4963c1f", "title": "Making REST API Requests in Golang using the HTTP Client", "url": "https://www.sohamkamani.com/blog/golang/http-client/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe50d6aea", "title": "How to Use Iota in Golang", "url": "https://www.sohamkamani.com/blog/golang/iota/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe59e7038", "title": "A Complete Guide to JSON in Golang (With Examples)", "url": "https://www.sohamkamani.com/blog/golang/json/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe66e9840", "title": "Golang Make Function - Initializing Slices, Maps, and Channels (Size and Capacity)", "url": "https://www.sohamkamani.com/blog/golang/make/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe6ad286f", "title": "Golang Omitempty Explained", "url": "https://www.sohamkamani.com/blog/golang/omitempty/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe7460e56", "title": "Functional Options in Go: Implementing the Options Pattern in Golang", "url": "https://www.sohamkamani.com/blog/golang/options-pattern/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe822db71", "title": "Using Maps in Golang - With Examples", "url": "https://www.sohamkamani.com/blog/golang/maps/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe88e2331", "title": "Creating an OAuth2 Client in Golang (With Full Examples)", "url": "https://www.sohamkamani.com/blog/golang/oauth/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe8ff5d33", "title": "Implementing JWT based authentication in Golang", "url": "https://www.sohamkamani.com/blog/golang/jwt-authentication/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe9bd137f", "title": "Using a Mutex in Go (Golang) - with Examples", "url": "https://www.sohamkamani.com/blog/golang/mutex/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fe9ee7604", "title": "How to Implement Password Authentication and Storage in Go (Golang)", "url": "https://www.sohamkamani.com/blog/golang/password-authentication-and-storage/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fea4d315d", "title": "Using a PostgreSQL Database in Go (in Production)", "url": "https://www.sohamkamani.com/blog/golang/sql-database/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8feae74b0c", "title": "Implementing RSA Encryption and Signing in Golang (With Examples)", "url": "https://www.sohamkamani.com/blog/golang/rsa-encryption/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8feb43d4ad", "title": "Time in Golang - Working With Time, Duration, and Dates (With Examples)", "url": "https://www.sohamkamani.com/blog/golang/time/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8febe62462", "title": "A Guide On SQL Database Transactions In Go", "url": "https://www.sohamkamani.com/blog/golang/sql-transactions/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fec397e3b", "title": "Session Cookie Authentication in Golang (With Complete Examples)", "url": "https://www.sohamkamani.com/blog/golang/session-cookie-authentication/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fed234915", "title": "Type Conversion and Type Assertion in Golang - Everything You Need to Know (With Examples)", "url": "https://www.sohamkamani.com/blog/golang/type-conversion/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8feddd2e50", "title": "Making an interactive Telegram bot in Go (Golang)", "url": "https://www.sohamkamani.com/blog/golang/telegram-bot/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fee190b98", "title": "Variables in Golang - Everything You Need to Know", "url": "https://www.sohamkamani.com/blog/golang/variables/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8feeae977d", "title": "Implementing a Kafka Producer and Consumer In Golang (With Full Examples) For Production", "url": "https://www.sohamkamani.com/blog/golang/working-with-kafka/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8fef7498ed", "title": "Monitoring for Google App Engine: How to View Logs and Metrics", "url": "https://www.sohamkamani.com/blog/cloud/appengine-monitoring/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff069566f", "title": "Authenticating Applications with Service Accounts in Google Cloud", "url": "https://www.sohamkamani.com/blog/cloud/gcp-authentication/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff132dd01", "title": "Vertex Ai", "url": "https://www.sohamkamani.com/blog/cloud/vertex-ai/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff137ec4b", "title": "How to Lazy Load Disqus Comments in Your Hugo Webpage", "url": "https://www.sohamkamani.com/blog/hugo/lazy-load-disqus-comments/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff16b675d", "title": "App Engine Scaling - Basic, Manual, and Automatic Scaling (With Examples)", "url": "https://www.sohamkamani.com/blog/cloud/appengine-scaling/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff2114342", "title": "Using the Builder Pattern in Javascript (With Examples)", "url": "https://www.sohamkamani.com/blog/javascript/builder-pattern/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff2358ee1", "title": "Using Enums In Javascript", "url": "https://www.sohamkamani.com/blog/javascript/enums/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff2a9a750", "title": "Implementing Set Data Structures in Golang (With Examples)", "url": "https://www.sohamkamani.com/blog/golang/sets/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff31444c9", "title": "D3 Geo Projections Explained ๐Ÿ—บ", "url": "https://www.sohamkamani.com/blog/javascript/d3-geo-projections/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff3ded593", "title": "How to Set Expiry Time (TTL) for LocalStorage With Javascript", "url": "https://www.sohamkamani.com/blog/javascript/localstorage-with-ttl-expiry/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff47ef12d", "title": "How To Sync Your Data Between Google Sheets And Firebase", "url": "https://www.sohamkamani.com/blog/javascript/google-firebase-sync/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff55ec6d1", "title": "Javascript Closures Explained (With Examples)", "url": "https://www.sohamkamani.com/blog/javascript/closures/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff5dd8f2d", "title": "An Introduction to Promises in Javascript", "url": "https://www.sohamkamani.com/blog/javascript/promises/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff66af349", "title": "How Is Javascript Asynchronous And Single Threaded?", "url": "https://www.sohamkamani.com/blog/javascript/single-thread-and-async/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff683b8f8", "title": "Javascript Symbols Explained", "url": "https://www.sohamkamani.com/blog/javascript/symbols/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff7463494", "title": "Making a Testing Framework in Node.js (Without any External Libraries)", "url": "https://www.sohamkamani.com/blog/nodejs/create-testing-framework/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff761fabf", "title": "How express.js works - Understanding the internals of the express library โš™๏ธ", "url": "https://www.sohamkamani.com/blog/nodejs/expressjs-architecture/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff81379c7", "title": "A Complete Guide to HTTP/2 in Node.js (With Example Code)", "url": "https://www.sohamkamani.com/blog/nodejs/http2/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff900be22", "title": "Node.js File System Module - How to Read and Write Files and Directories", "url": "https://www.sohamkamani.com/blog/nodejs/file-system/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ff98b3daa", "title": "Using Nightwatch.Js To Test And Take Screenshots Of Your App", "url": "https://www.sohamkamani.com/blog/nodejs/nightwatch-js/", "published_at": null }, { "id": "01a087e3-3113-7185-b5d6-bb8ffa18bb5f", "title": "Implementing JWT Authentication in Node.js", "url": "https://www.sohamkamani.com/blog/nodejs/jwt-authentication/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68ad7c3ce7", "title": "Building a REST API With Node.js Express and MongoDB", "url": "https://www.sohamkamani.com/blog/nodejs/mongodb-express-rest-api/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68adf2fdae", "title": "Implementing OAuth 2.0 with Node.js", "url": "https://www.sohamkamani.com/blog/nodejs/oauth/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68ae79740f", "title": "How to Execute Shell Commands With Node.Js", "url": "https://www.sohamkamani.com/blog/nodejs/executing-shell-commands/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68af1aec13", "title": "How to communicate between Python and NodeJs ๐Ÿ", "url": "https://www.sohamkamani.com/blog/nodejs/python-communication/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68af59b6f4", "title": "A Guide On SQL Database Transactions In Node.js", "url": "https://www.sohamkamani.com/blog/nodejs/sql-transactions/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b04a090b", "title": "Adding a Redis Cache To Your Node.js Server", "url": "https://www.sohamkamani.com/blog/nodejs/redis-cache/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b1382d75", "title": "RSA Encryption, Decryption and Signing in Node.js (Javascript) - With Examples", "url": "https://www.sohamkamani.com/blog/nodejs/rsa-encryption/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b2234fb1", "title": "Making (and deploying) an Interactive Telegram Bot in Node.js", "url": "https://www.sohamkamani.com/blog/nodejs/telegram-bot/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b28637ac", "title": "What is Idempotence - Using Idempotence for System Design (With Examples)", "url": "https://www.sohamkamani.com/blog/system-design/idempotence/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b3208244", "title": "Implementing a Kafka Producer and Consumer In Node.js (With Full Examples) For Production", "url": "https://www.sohamkamani.com/blog/nodejs/working-with-kafka/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b34c3812", "title": "Deploying a Java Application to Google App Engine", "url": "https://www.sohamkamani.com/blog/java/appengine/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b393d419", "title": "A Complete Guide to Using Google BigQuery in Java (With Examples)", "url": "https://www.sohamkamani.com/blog/java/bigquery/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b4015756", "title": "Session Cookie Authentication in Node.js (With Complete Examples)", "url": "https://www.sohamkamani.com/blog/nodejs/session-cookie-authentication/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b4cc7571", "title": "Running a Maven Project from the Command Line (and Building Jar Files)", "url": "https://www.sohamkamani.com/blog/java/cli-app-with-maven/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b5c1d59c", "title": "Working with Google Cloud SQL in Java: A Step-by-Step Guide to Creating, Connecting, and Querying Your Database", "url": "https://www.sohamkamani.com/blog/java/cloudsql/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b618dc45", "title": "Creating An MCP Server with Spring Boot", "url": "https://www.sohamkamani.com/blog/java/creating-an-mcp-server/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b6629361", "title": "Working with Google Cloud Storage in Java - How to Upload, Download and Modify Files", "url": "https://www.sohamkamani.com/blog/java/google-cloud-storage/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b7017bdd", "title": "Using the Gemini API in your Java Application", "url": "https://www.sohamkamani.com/blog/java/gemini-vertex-api/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b7244a65", "title": "Working with PostgreSQL in Java - Using the JDBC Library", "url": "https://www.sohamkamani.com/blog/java/jdbc-postgresql/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b734e138", "title": "Build a RAG-Powered Chat App with Spring AI and PGVector", "url": "https://www.sohamkamani.com/blog/java/spring-ai-rag-application/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b799ea90", "title": "Using OpenRouter in Java Spring Boot: One API for ANY AI model (GPT, Claude, Gemini, etc)", "url": "https://www.sohamkamani.com/blog/java/openrouter/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b7aa0fdb", "title": "What are Virtual Threads? (And How to Use Them in Spring Boot)", "url": "https://www.sohamkamani.com/blog/java/virtual-threads-spring-boot/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b7e5adf1", "title": "How to Encode and Decode Base64 Data from the Command Line (With Examples)", "url": "https://www.sohamkamani.com/blog/unix/base64-encode-decode/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b8d46a6b", "title": "Spring OAuth2 Authentication", "url": "https://www.sohamkamani.com/blog/java/spring-oauth2-authentication/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68b96a1ed2", "title": "Implementing JWT Based Authentication in Spring Boot (Using Spring Security)", "url": "https://www.sohamkamani.com/blog/java/spring-jwt-authentication/", "published_at": null }, { "id": "01a087e3-3114-73b7-b083-db68ba0f7ed2", "title": "Implementing a Kafka Producer and Consumer In Java (With Full Examples) For Production", "url": "https://www.sohamkamani.com/blog/java/kafka/", "published_at": null } ] posts Claim your blog
Back to sohamkamani.com
Blog ยท corpus.blog/blogs/sohamkamani.com/posts

sohamkamani.com

sohamkamani.com

Undated