Workflow Service Operations
Reported by candidates from FurtherAI's online assessment. Pattern, common pitfall, and the honest play if you blank under the timer.
FurtherAI reported this one in October 2026, and it looks like a design problem until you read it twice. It's a hash map and a loop. You store workflows by ID, then replay a short list of ADD, SUB and MUL steps on a payload. If the OA lands in your inbox this week, expect the difficulty to be parsing and edge cases, not algorithms. StealthCoder is the safety net if you blank during the live assessment, but this is one you can write cold once you see what it reduces to.
The problem
Process a finite sequence of workflow-service operations. A workflow has a unique ID and an ordered list of integer transforms. A transform is ADD:x, SUB:x, or MUL:x. ["CREATE", id, step1, step2,...] stores a non-empty workflow and returns OK, or returns EXISTS without replacing an existing ID. ["EXECUTE", id, payload] applies every stored step in order and returns the final integer as a decimal string, or NOT_FOUND. Return one result per operation in input order. Function runWorkflows(operations: String[][]) → String[] Examples Example 1 operations = [["CREATE","w1","ADD:3","MUL:2"],["EXECUTE","w1","4"],["CREATE","w1","SUB:1"],["EXECUTE","missing","7"]] return = ["OK","14","EXISTS","NOT_FOUND"] Workflow w1 computes (4 + 3) * 2. Its duplicate definition is rejected. Example 2 operations = [["CREATE","negate","MUL:-1"],["EXECUTE","negate","9"],["EXECUTE","negate","-4"]] return = ["OK","-9","4"] The same stored transform is reusable across executions and does not mutate workflow state. Constraints 1 <= operations.length <= 10^5. Each workflow contains between 1 and 50 valid transform steps. Workflow IDs are non-empty strings without :. Payloads, operands, and every intermediate result fit in a signed 64-bit integer.
Reported by candidates. Source: FastPrep
Pattern and pitfall
The whole problem reduces to a dictionary from ID to a parsed list of (op, value) pairs, plus a linear pass on EXECUTE. Parse once at CREATE, not on every EXECUTE. With up to 10^5 operations and at most 50 steps each, that's fine either way, but parsing early is cleaner. The pitfalls are small. On a duplicate CREATE, return EXISTS and don't overwrite. Split each step on the first colon only, and handle negative operands like MUL:-1 so the sign parses correctly. Return every result as a string, including the decimal result of EXECUTE. EXECUTE must never mutate stored state, so each call starts fresh from the payload. Use 64-bit integers if your language has fixed width. Python is safe by default. If you freeze mid-OA, StealthCoder can hand you the skeleton, but you should be able to type this from memory.
Memorize the pattern. If you can't, run StealthCoder. The proctor sees the IDE. They don't see what's behind it.
You can drill Workflow Service Operations cold, or you can hedge it. StealthCoder runs invisibly during screen share and surfaces a working solution in under 2 seconds. The proctor sees the IDE. They don't see what's behind it. Made by an engineer who treats the OA as theater. If yours is tonight, you don't have time to grind. You have time to hedge.
Get StealthCoderRelated leaked OAs
You've seen the question.
Make sure you actually pass FurtherAI's OA.
FurtherAI reuses patterns across OAs. Made by an engineer who treats the OA as theater. If yours is tonight, you don't have time to grind. You have time to hedge. Works on HackerRank, CodeSignal, CoderPad, and Karat.
Workflow Service Operations FAQ
How hard is the FurtherAI Workflow Service Operations problem really?+
Easy to medium. There's no clever algorithm. It's a hash map lookup plus a loop over at most 50 steps. Most lost points come from sloppy parsing, overwriting on duplicate CREATE, or returning integers instead of strings.
What's the trick to solving it fast?+
Store a map from workflow ID to a list of parsed (operator, operand) pairs. On EXECUTE, start from the payload and apply each step in order. Return the result as a string. CREATE checks the map first and returns EXISTS without touching the stored value.
How should I parse steps like MUL:-1?+
Split on the first colon only. The left side is the operation name, the right side is the integer, which may be negative. Convert the right side with your language's integer parser. Since IDs can't contain a colon, ID parsing is never ambiguous.
Do I need to worry about overflow?+
The constraints say payloads, operands and every intermediate result fit in a signed 64-bit integer. In Java or C++ use long. In Python there's nothing to do. You don't need big-number handling, so don't add any.
How do I prepare for this in 48 hours?+
Write it once end to end. Handle the duplicate CREATE, the missing ID and the negative multiplier cases from the examples. Then practice similar command-processing problems where you map strings to stored state. That covers most of what this OA tests.