LAYER CAKE (MVCS & MODULES)
LOGGING & ERRORS
TESTING & TOOLING
CADENCE & DATABASES
DOMAIN DEEP-DIVE
100

Where does business logic belong in our MVCS architecture layers?

Controller

100

You need to log a variable that is a pointer to a string (*string). Which field helper should you use?

zap.Stringp

100

What is the first command you should execute immediately after adding a new package import to your Go code?

gazelle. from inside the project directory

100

You need to fetch data from the database within a Cadence orchestration flow. Does this belong in a Workflow or an Activity?

Activity, because Workflows must remain completely deterministic for execution replays

100

What does the role abbreviation "TC" stand for in our domain, and what is its relationship to Oracle?

Talent Coordinator; it is the exact same role surfaced as Recruiting Coordinator (RC) in Oracle

200

 What is our standard Fx module constructor always called, and what are its exact single argument and return types?

ANSWER: New, takes Params (fx.In), and returns (Result, error) (fx.Out).

200

True or False: When utilizing our standard LoggerProvider, you should still chain .Named("MethodName") and pass zapfx.Context(ctx).

False. LoggerProvider already injects the caller function name and request/trace context

200

You are writing a test for a repository method that executes database I/O. What style of test should you use?

A testify suite (table tests are strictly for pure, no-I/O mappers)

200

Why might a database read executed via r.RoDB(ctx) fail to reflect a database write you literally just executed?

RoDB reads from a replica subject to replication lag; use RwDB(ctx) for read-after-write consistency

200

What is the difference between a Scorecard and a Debrief, and what happens when a debrief starts?

Scorecard is per-interviewer; Debrief is per-workflow. Starting a debrief locks all scorecards

300

When setting up a new layer package, is the implementing struct exported (public)?

No, the struct is unexported/lowercase; only the capability interface is public

300

What should a repository method return when GORM encounters an ErrRecordNotFound error, and at what log level?

Log at Info level and return the shared sentinel error entity.ErrNotFound

300

What is our standard tool and command for publishing a Pull Request to review?

arh publish

300

What is the first, cheapest, and lowest-risk optimization you should consider when optimizing a slow database query?

Add a normal (secondary) index on the columns being filtered or joined

300

What core entity serves as the centralized "hub" connecting a single candidate's application to a specific job opening?

The Recruiting Workflow (RWF)

400

If you add a brand-new RPC method to a controller, how many files do you touch/create, and where does the method body live?

Create a new <method>.go file for the body; add one line to the interface in controller.go

400

Which error wrapping formatting verb (%w vs %v) is supported by RPC-facing yarpcerrors.*Errorf helpers?

%v, because yarpc does not support or carry the %w error chain

400

What root data structure keying mechanism must be used for table-driven tests of pure mappers?

Test_<Method>_<Result>_<OptionalDetail> (e.g., Test_GetPersonByID_Success).

400

How do Cadence Activities pull their required dependencies from the environment?

 From the activity context using outbound.GetActivityDeps(ctx).

400

What do the pipeline interview loop type abbreviations BPS and BI stand for?

BPS = Business Phone Screen; BI = Business Interview.

500

What are the standard method receiver single-letter names for controllers and repositories?

c for controllers and r for repositories.

500

Where do shared sentinel errors (like ErrNotFound or ErrAlreadyExist) live in the codebase?

In the entity package.

500

Running gazelle from the monorepo root is painfully slow. Where should you run it from instead?

From inside your specific project directory.

500

What indexing anti-pattern should you watch out for to avoid adding unnecessary write costs to a database table?

Adding a secondary index that is already fully covered by the prefix of an existing composite index.

500

What is the database relationship between a Job and a Candidate?

Many-to-many, mediated strictly through the Recruiting Workflow (RWF) table.

M
e
n
u