• Explore
  • About Us
  • Log In
  • Get Started
  • Explore
  • About Us
  • Log In
  • Get Started

Important - Please Read

A Note from the Author

Thank you for enrolling in this set of Golang in Production projects! By completing these exercises, you will gain practical, real-world experience that will make you more confident in developing, optimizing, and deploying production-grade Go applications. These exercises are designed to simulate real-world challenges that software engineers face while building reliable and scalable Go services. I appreciate your commitment, and I am sure that by the end of these exercises, you will have a deeper understanding of Golang's potential and its production-level nuances.

System Requirements

These exercises are designed to work seamlessly on any platform that supports Golang development. Below are the minimum system requirements and recommendations:

  • Golang Version: Ensure you have Go 1.20+ installed.
  • Operating System: Windows, MacOS or Linux. Make sure your system has at least 4GB of RAM and a stable internet connection to download dependencies and tools required for the exercises.

How these projects are distributed

The projects are divided into multiple tickets. When working in an organization, there is a whole process involved in how a project is designed and developed. Architects are responsible for designing the architecture, while senior developers handle API design. Once the project structure is finalized, the entire team is assigned specific tickets to work on various functionalities.

Each project is broken down into multiple tickets that you, as a developer, need to implement. Pick up the tickets one by one and ensure that you write the code yourself before reviewing the actual solution.

Getting Help

If you get stuck at any point, we have a dedicated subreddit where you can ask questions and seek help. The instructors of this exercise set are active on the subreddit to provide support. Additionally, you can request new features, report platform bugs, or suggest improvements. Please remember that this community is moderated—everyone is expected to follow the rules, and any violations will not be tolerated.

Join our dedicated subreddit for help and feature requests: r/tdevs.

Keep Going, Don't Give Up

These exercises are intentionally challenging to reflect real-world scenarios, and it's completely normal to feel stuck at times. The real learning comes from solving problems, not just following along. I encourage you to keep trying and avoid looking at the solutions unless you're absolutely stuck. Use the mentioned documentation, search online for fixes, or ask the community for help if you don’t know how to proceed. The more effort you put in, the greater your understanding will be.

What You'll Achieve

By completing all the exercises, you'll:

  • Master Golang fundamentals and best practices for production-level applications.
  • Understand how to write optimized, scalable, and maintainable Go code.
  • Learn techniques for debugging, testing, and profiling Go applications.
  • Be equipped to deploy Go services confidently in real-world production environments.

I encourage you to spend some time every day working on these exercises and not leave them halfway. By the end, you'll be ready to tackle any production-level challenge with Golang.

Best of Luck!

I wish you the best of luck on your journey through these exercises. Remember, persistence is key. Every expert was once a beginner who refused to give up!

    Golang (Go) for Production Systems

    Unlock All Exercises

  • Getting Started
    • Important - Please Read
  • Error Handling
    • Finance Transaction Error
    • Resilient Retry Mechanism
    • Graceful Panic Recovery
    • Error Wrapping and Unwrapping
    • Aggregated Validation Errors
    • Transaction Rollback on Failure
  • Interfaces
    • Design a Payment Gateway Interface
    • Pluggable Logging System
    • Configurable Notification System
    • Dynamic Data Serializer
    • Dynamic Plugin System
  • Concurrency
    • File Word Counter
    • Traffic Lights Controller
    • Parking Lot Manager
    • Real-time Auction System
    • Safe Bank Account Balance Update
    • Build a Buffered Logger
    • Build a TTL Cache
    • Build an Elevator Control System
    • Debug and Fix Race Conditions - Part 1
    • Debug and Fix Race Conditions - Part 2
    • Debug and Fix Race Conditions - Part 3
    • Dynamic Feature Flag System
    • Real-Time Multiplayer Matchmaking
    • Lazy Database Connection
    • Distributed Task Deduplication
    • High Performance Request Counter
  • Core Networking
    • Simple TCP Echo Server
    • TCP Number Guessing Game
    • Looking Up Domain Information
    • UDP Time Broadcast Service
    • UDP Ping-Pong Client and Server
    • Building a Simple TCP Chat Server and Client
  • Winding Up
    • Final Notes