Golang

Proficiency Level: Intermediate

As a final-year Actuarial Science student with an interest in backend and systems development, I’ve been learning and applying Go (Golang) primarily using the standard library. My focus has been on building efficient backend utilities, data pipelines, and scripting tools.

Core Go Skills

Language Fundamentals:

  • Writing clean and idiomatic Go code using packages and modules
  • Understanding Go’s type system, structs, interfaces, and pointers
  • Basic concurrency using goroutines and channels
  • Error handling and use of custom error types

Development Practices:

  • Organizing code using standard Go project structure
  • Writing and running unit tests with Go’s built-in testing package
  • Formatting and linting code using gofmt and go vet
  • Using go mod for dependency and module management

Backend and CLI Development

Applications Built:

  • CLI tools for text processing, API requests, and data extraction
  • Simple REST services using the net/http package
  • Utilities for file operations and report generation
  • JSON parsing and basic templating for output formatting

Key Standard Library Packages Used:

  • net/http, os, io, bufio, encoding/json, strconv, time, log, sync

Data Processing and Automation

Use Cases:

  • Reading and writing CSV and JSON files
  • Automating data retrieval and transformation
  • Concurrent I/O and task execution using goroutines and channels
  • Basic database interaction using database/sql with SQLite and PostgreSQL

Tools and Environment

  • Command-line development with Go’s built-in toolchain
  • Debugging and testing with go test, go run, and go build
  • Occasional use of Docker to run compiled binaries in containers

Ongoing Learning

I’m deepening my understanding of Go by:

  • Exploring more advanced standard library features
  • Practicing through mini-projects and automation scripts
  • Reading official Go documentation and community tutorials
  • Reviewing code from open-source projects that use idiomatic Go

Go’s simplicity and performance make it a practical choice for scripting, automation, and small-scale backend services, particularly in data-centric workflows.