Currently crafting TreeSoftLabs
Highlighting some of my most impactful work across different platforms
iOS app and IoT drum pad solution to learn rudiments at home.
An AI-powered fitness app offering real-time feedback on bicep curls.
A full-featured e-commerce platform built for a business.
Insights and tutorials from my development journey
I recently migrated my API backend from Laravel to Go, with the goal of making my web app faster and more lightweight. While doing that, I kept thinking about whether I should go full microservices and split everything or just keep things monolithic. Then I remembered one of my favorite quotes: 'Premature optimization is the root of all evil.' — Donald Knuth. That line stuck with me. Instead of overcomplicating my architecture too early, I decided to focus on building a clean, well-structured monolithic backend. And honestly, it's been working really well. It's fast, organized, and fits perfectly with my original goal: to make my web app faster and more efficient without unnecessary complexity.
Go modules are the standard way to manage dependencies and share reusable code in Go. If you want other projects to import your code directly from GitHub, you need to structure and publish your module correctly. This guide walks through creating a Go module, pushing it to GitHub, and importing it into another project using best practices.
Goroutines are lightweight concurrent functions in Golang to run your code concurrently. A great way to make code more efficient and scalable. However, when multiple requests come at the same time and try to process the same data, this can lead to race conditions that cause unpredictable behavior in your application. Race conditions are problems that occur when multiple operations try to access or change the same data at the same time. Because these operations overlap, one operation may read data that another operation is still modifying, or two operations may try to write different values at once.