ProgrammingLower Secondary · Upper Secondary · University · General PublicIntermediate Go Programming in Africa: APIs & Concurrency
Computer Programming
Lower Secondary · Upper Secondary · University · General Public

Intermediate Go Programming in Africa: APIs & Concurrency

Intermediate Go Programming in Africa: APIs & Concurrency

Duration

4 weeks

Investment

UGX 500,000

Teaching

Live online

Program Introduction

Develop intermediate Go programming skills for backend, cloud and infrastructure work in Uganda and across Africa. This course focuses on the language features and standard-library capabilities that make Go valuable for reliable services: goroutines, channels, context, synchronisation, generics, HTTP, JSON, testing, fuzzing and performance analysis. Learners build without a web framework so they understand the Go language beneath production systems. Regionally relevant exercises lead to a tested service that can support agriculture, logistics, education, healthcare or growing African businesses.

Key Features & Benefits

• Language-first approach using Go’s concurrency model and standard library. • No Android development and no framework dependency. • Practical API development without hiding core behaviour behind third-party packages. • Safe concurrency with cancellation, timeouts, race detection and leak prevention. • Security-minded testing through fuzzing and dependency vulnerability checks. • Performance work guided by benchmarks and profiling rather than guesswork. • Uganda- and Africa-relevant capstone options across high-impact sectors. • Portfolio evidence covering service design, testing, documentation and code quality. • Strong preparation for backend, cloud, platform and DevOps engineering pathways.

Real-World Applications

Learners can use the skills from this course to:

• Build lightweight backend APIs for African startups, SMEs and public-service projects. • Create concurrent data-processing and automation services. • Develop reliable integrations for agriculture, logistics, education, finance and healthcare systems. • Write internal tools and services for cloud and DevOps teams. • Improve the tests, performance and security of existing Go codebases. • Contribute more effectively to open-source Go projects. • Prepare for Go backend developer and junior cloud-engineering interviews. • Progress toward microservices, distributed systems and platform engineering.

Course outline and learning expectations

This is a tutor-led course. The outline shows what your tutor will cover; teaching materials and examinations are provided directly to enrolled students.

intermediate Go courseGolang course AfricaGo concurrencyGo REST APIGo backend developmentgoroutines and channelsGo testing and fuzzingGolang Ugandabackend developer AfricaGo standard library
Teaching format

Live online

Teaching language

English (Uganda)

Course difficulty

Intermediate

Intended learners

Lower Secondary · Upper Secondary · University · General Public

What you will learn

  • By the end of this course, the learner will be able to:
  • Design idiomatic package boundaries and maintainable Go APIs.
  • Use goroutines and channels to coordinate concurrent work.
  • Apply `select`, cancellation, timeouts and `context` safely.
  • Protect shared state with mutexes and other synchronisation tools.
  • Detect and correct data races with Go’s race detector.
  • Apply generics when they improve reuse without reducing clarity.
  • Build JSON HTTP services using Go’s standard library.
  • Implement routing, middleware, validation and consistent error responses.
  • Write unit, HTTP, integration-style and fuzz tests.
  • Use benchmarks and profiling evidence to investigate performance.
  • Check Go dependencies for known vulnerabilities.
  • Build and document a tested intermediate Go service for an African business or public-service scenario.

Modules

  1. 1

    Idiomatic design for larger Go programs

    Package responsibilities and dependency directionPublic APIs and exported typesComposition over inheritanceDependency injection with functions and small interfacesFunctional options where appropriateAvoiding package cycles and “utility” packagesRefactoring for clarity rather than abstractionReviewing code with Go conventions
  2. 2

    Goroutines and channel fundamentals

    Concurrency versus parallelismStarting and stopping goroutinesUnbuffered and buffered channelsChannel directionClosing channels and ranging over resultsAvoiding goroutine leaksWorker and producer-consumer patternsPractice project: concurrent regional data-file processor
  3. 3

    Coordination, cancellation and shared state

    `select` and non-blocking coordinationTimeouts and timersCancellation with `context`Propagating request-scoped values responsibly`sync.WaitGroup`, `sync.Mutex`, `sync.RWMutex` and `sync.Once`Choosing channels versus mutexesUsing the race detectorPractice project: cancellable multi-source report generator
  4. 4

    Generics and reusable algorithms

    Type parameters and constraintsGeneric functionsGeneric typesThe `comparable` constraintType approximationWhen interfaces are a better choiceWhen generics add unnecessary complexityPractice project: typed filtering, mapping and aggregation helpers
  5. 5

    HTTP and JSON with the Go standard library

    HTTP clients and serversHandlers and routing with `net/http`Request methods, headers and status codesEncoding and decoding JSONInput limits and validationConsistent success and error responsesServer timeoutsGraceful shutdown conceptsPractice project: local-service directory API
  6. 6

    Middleware and service structure

    Handler compositionLogging and request identifiersPanic recovery at service boundariesBasic cross-origin request conceptsConfiguration through environment variablesSeparating transport and business logicRepository-style boundaries without a database dependencyAPI documentation and runnable examplesPractice project: extend an SME or public-information service
  7. 7

    Advanced testing, security and performance

    HTTP handler tests with `httptest`Test doubles using functions and small interfacesIntegration-style testsFuzz testing and edge-case discoveryBenchmarks and allocation reportsCPU and memory profilingAvoiding premature optimisationDependency and vulnerability checks with `govulncheck`Testing concurrent code and checking for races
  8. 8

    Intermediate capstone service

    Defining a small service contractDesigning packages and interfacesBuilding CRUD-style JSON endpointsAdding validation and structured errorsApplying concurrency to a justified workloadImplementing cancellation and server timeoutsWriting handler, fuzz and business-logic testsRunning race, vet and vulnerability checksPublishing setup instructions, endpoint examples and technical decisions

Before you enroll

  • Completion of the two Ellipkom beginner Go courses, or equivalent practical experience.
  • Confidence with Go modules, packages, functions, structs, methods, pointers and interfaces.
  • Ability to read and write files, handle errors and work with JSON.
  • Ability to write and run basic unit tests.
  • Familiarity with terminal commands and Git.
  • Basic understanding of HTTP requests and responses is helpful, but not required.

What you need

  • A Windows, macOS or Linux computer.
  • The current stable Go toolchain.
  • Visual Studio Code with the official Go extension, or another code editor.
  • A terminal and Git.
  • An HTTP client such as `curl`, Bruno or Postman; `curl` is sufficient.
  • A GitHub account is recommended for the capstone portfolio.
  • No web framework, paid database or cloud platform is required.

Frequently asked questions

More in Computer Programming

Introduction to Object-Oriented Programming Concepts
Lower Secondary

Introduction to Object-Oriented Programming Concepts

4 weeksUGX 450,000
Advanced Rust Systems Programming Course in Uganda & Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Rust Systems Programming Course in Uganda & Africa

4 weeksUGX 450,000
Intermediate Dart Programming in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Intermediate Dart Programming in Uganda & East Africa

4 weeksUGX 450,000
Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency
Lower Secondary · Upper Secondary · University · General Public

Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency

4 weeksUGX 450,000
Advanced PHP Programming – Professional Course in Uganda
Upper Secondary · University · General Public

Advanced PHP Programming – Professional Course in Uganda

4 weeksUGX 500,000
Data Structures and Algorithms with Python for Beginners in Uganda
Lower Secondary · Upper Secondary · University · General Public

Data Structures and Algorithms with Python for Beginners in Uganda

4 weeksUGX 450,000

More for Lower Secondary · Upper Secondary · University · General Public

 Dart Programming for Beginners in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Dart Programming for Beginners in Uganda & East Africa

4 weeksUGX 450,000
Advanced Dart Programming & Concurrency for Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Dart Programming & Concurrency for Africa

4 weeksUGX 500,000
Advanced iOS Engineering: Secure, Offline-First Apps for Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced iOS Engineering: Secure, Offline-First Apps for Africa

4 weeksUGX 450,000
Advanced NumPy for High-Performance Data Science in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced NumPy for High-Performance Data Science in Africa

4 weeksUGX 450,000
Advanced Pandas Course for Scalable Data Pipelines in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Pandas Course for Scalable Data Pipelines in Africa

4 weeksUGX 450,000
Advanced Python Programming Course in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Python Programming Course in Africa

4 weeksUGX 500,000

Quick Actions

Enroll Now

Need Help?

Have questions about this program? Our team is here to help!