Permify at v1.7.2 is the one repo that meets the whole interview stack

Asked:

"hello, i need you to find a public github repo that has following properties with this kinds of dependencies: Go — a recent stable toolchain (1.23+). go build on any project you have around works. Docker with Compose — you'll run the service's dependencies locally. To avoid waiting on downloads during the session, pre-pull a few common images: redis:7, memcached:1.6, postgres:16. git — you'll clone a public GitHub repo at the start of the session and check out a specific commit we give you. make and a protobuf toolchain — protoc plus the Go plugins (protoc-gen-go, protoc-gen-go-grpc). The service speaks gRPC and you may need to touch its API. A gRPC client for manual testing — grpcurl recommended (plain curl will also get you far). this is for technical interview"

Four serious open-source Go gRPC services were scanned — Permify, OpenFGA, SpiceDB and Hatchet — against five workstation requirements: a recent Go toolchain, a grpc-go dependency, a root Makefile, a Docker Compose file, and a Go protobuf generation config. Only Permify checks every column.

meets the requirementmeets it with a caveatfile absent at repo root — equivalent tooling may still exist elsewhere

Recommended interview setup

Baseline

  • Repo: github.com/Permify/permify, release tag v1.7.2.
  • Go 1.25.7 declared in go.mod; imports grpc-go.
  • Makefile targets: build, test, integration-test, compose-up, compose-up-integration-test, compose-down.
  • Per the README: gRPC on port 3478, REST on 3476, memory storage by default — grpcurl works out of the box.
  • Before sending the exercise, resolve the v1.7.2 release tag to its commit SHA and pin that immutable SHA — the SHA was not verified in this scan.

Caveats

  • The Compose file uses the unversioned postgres image, not postgres:16 — pre-pull postgres too, or pin the image during prep.
  • Redis and Memcached are not required by this baseline; the pre-pulled redis:7 and memcached:1.6 go unused.
  • API generation is configured through Buf in buf.gen.yaml, though it resolves to protoc-gen-go and protoc-gen-go-grpc — validate the intended generation command before the interview.
  • Rows marked grey in the matrix mean the file was absent at the repo root, not proof the project lacks equivalent tooling.

Findings

Permify is the only candidate with all five requirements green: Go 1.25.7, grpc-go, Makefile, Compose, and Go protobuf plugins — github.com
OpenFGA comes closest behind: Go 1.25.7, Makefile with build/test targets and Compose on postgres:17, but no protobuf generation config at the root — github.com
SpiceDB is the only candidate whose Compose pins postgres:16 exactly, and it has Buf-configured Go plugins, but no root Makefile — github.com
Hatchet declares Go 1.26 and Compose with postgres:15.6, RabbitMQ and NATS, but has neither a root Makefile nor a protobuf config — github.com

Candidate detail

RepositoryGogrpc-goMakefileCompose imagesProtobuf Go plugins

Method: scan of 4 public GitHub repositories (one row each) plus a 6-row verification of Permify v1.7.2 release files (go.mod, Makefile, docker-compose.yaml, buf.gen.yaml, README, release API). "Go" is the version declared in go.mod; Makefile/Compose/protobuf columns record file presence at the repo root, so an absent file is a caveat, not proof of missing tooling. Long Makefile target lists were trimmed for space. The v1.7.2 commit SHA was not resolved and must be pinned before the interview.

This report was generated automatically by Keenable SELECT at a user's request, from publicly available web sources linked herein. Keenable does not review, verify, or endorse its contents and makes no representation as to accuracy, completeness, or timeliness; AI-based extraction may contain errors. Nothing in this report is investment, legal, financial, or other professional advice. All trademarks and referenced content remain the property of their respective owners; no affiliation or endorsement is implied. To report an error, rights concern, or request removal: legal@keenable.ai.

Keenable SELECTAsk your own question
Made with Keenable SELECT