Transitioning to Backend Engineering

Every year I like to take a moment to reflect on the year so far and set some goals for the rest of the year. This year I'm doing it publicly.

I’ve been a frontend engineer for years, and I’ve always wanted to switch to backend engineering. I’m thinking of becoming a full-time backend engineer or a “Full Stack Engineer.” I’ve built a few full-stack projects on my own using Remix, Prisma, PostgreSQL, and others, but I never thought of myself as a Full Stack Engineer.

I’ve always been confused about where to start and which language to learn. Python and Go (Golang) have always seemed like good choices for me because of their strong features. I picked Go because of its speed and performance. As an engineer who’s used JavaScript and TypeScript, I found that Go is a statically typed language, where types are known at compile time rather than runtime. This is better than Python, which is dynamically typed, where types are determined at runtime.

var x int = 10  // Explicitly typed
y := 20         // Type inferred as int

But before I keep going, I need to talk about how I answered my two main questions.

How I Began My Journey into Go

I know I’m not the only one who’s totally confused about this question. It’s like, one of those deep philosophical questions that everyone thinks about at some point in their life. Where do I even start? It might seem like a simple question, but trust me, the answer isn’t easy to find.

So, there are like, a million programming languages out there, and it’s super hard to decide which one to learn. They all do similar things, but some are better at certain things than others.

I was thinking about learning Go, but it wasn’t easy. I liked the way it looked, and I thought it would be a good idea to start with a new language like that. That way, I could learn it slowly and build up my skills over time. Plus, the Go community are really nice, so I felt like I could ask them for help if I needed it.

I’ve been exploring the world of Go, and I’ve found a Go subreddit that’s been super helpful. The community there has been really supportive of my learning journey. I’ve started reading some recommended Go books, like ‘100 Go Mistakes’ by Teiva Harsanyi, ‘Everyday Go’ by Alex Ellis, and ‘Let’s Go and Let’s Go Further’ by Alex Edwards. I know I’m still a total newbie, having only used Go for a few months, but I feel like I’ve made the right choice. I’m super excited to keep learning and exploring the possibilities of Go!

Why I chose Go

As I mentioned earlier, I chose Go because of its speed and performance, but that’s just the beginning. Go has some really cool features that are easy to learn and use with a clean syntax.

Here are some reasons why I chose Go:

Here are a few reasons why I picked Go, but as I keep learning Go, I hope to discover more about it and its inner workings. I’m excited to see how much I can improve my skills in Go!

The Journey So Far

Through my learning in Go, I’ve been able to build a few projects. Currently, I’m building an auth service using the Huma Rest API Framework with Chi as a router and plan to open-source it. The primary focus of this project is on learning, structuring, and building a secure auth service using Golang. While it aims to achieve the level of security expected in the field, the main objective is to learn and catch up on my knowledge. The project is open-sourced and can be forked and reused. However, it would also be helpful if you see this project and would like to contribute to the service.

I’m also planning to build a few more projects in Go, like an Ecommerce API, a web server, and a CLI tool. I’m excited to see how much I can learn and improve my skills in Go!