Overview
Built backend platform components in Go for a distributed storage product, including gRPC and REST APIs, a reusable client SDK, file-processing workflows, and signed request handling for downstream consumers.
Scope
This was platform-layer work — the infrastructure that product features are built on top of. The goal was to create a stable, well-typed API surface that other teams could depend on without needing to understand the internal storage mechanics.
Key Components
gRPC Service Layer
Defined protobuf schemas for all internal RPCs. Type safety across service boundaries caught contract breakages at compile time rather than in production.
Client SDK
A reusable Go package wrapping the gRPC client with connection pooling, retry logic, and request signing baked in. Downstream services import the SDK; they don’t need to know anything about the transport.
client, err := sdk.NewStorageClient(sdk.Config{
Endpoint: os.Getenv("STORAGE_ENDPOINT"),
KeyID: os.Getenv("SIGNING_KEY_ID"),
PrivateKey: signingKey,
})
obj, err := client.Get(ctx, "bucket/object-key") Signed Request Handling
Every downstream request is signed with HMAC-SHA256. The service verifies the signature and rejects replayed requests using a nonce cache backed by Redis.
File Processing Workflows
Chunked upload and reassembly pipeline for large objects, with checksum verification at each stage to detect corruption in transit.
Technical Stack
Go · gRPC · Protocol Buffers · REST · HMAC-SHA256 · Redis · PostgreSQL · Docker