The IDE. Not the puzzle box.
A full, collaborative IDE in the browser — real files, a real Linux terminal, synced cursors, a built-in AI agent. What you’re looking at is exactly what your candidate sees.
Pjetr
Files
public
src
App.css
App.js
App.test.js
{}emojiList.json
EmojiResultRow.css
EmojiResultRow.js
EmojiResults.css
EmojiResults.js
filterEmoji.js
filterEmoji.test.js
Header.css
Header.js
index.css
index.js
svglogo.svg
SearchInput.css
SearchInput.js
.gitignore
flake.nix
LICENSE
package.json
README.md
run.sh
yarn.lock
App.js
filterEmoji.js
EmojiResults.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import React, { PureComponent } from "react";
import Header from "./Header";
import SearchInput from "./SearchInput";
import EmojiResults from "./EmojiResults";
import filterEmoji from "./filterEmoji";
export default class App extends PureComponent {
constructor(props) {
super(props);
this.state = {
filteredEmoji: filterEmoji("", 20)
};
}
handleSearchChange = event => {
this.setState({
filteredEmoji: filterEmoji(event.target.value, 20)
});
};
render() {
return (
<div>
<Header />
<SearchInput textChange={this.handleSearchChange} />
<EmojiResults emojiData={this.state.filteredEmoji} />
</div>
);
}
}
Priya
Tab 1Tab 2
+ New Tab$ yarn test
yarn run v1.22.22
$ react-scripts test --watchAll=false
PASS src/EmojiResults.test.js
PASS src/Header.test.js
FAIL src/filterEmoji.test.js
✓ returns matching emoji by name (12 ms)
✕ handles leading whitespace (8 ms)
● filterEmoji › handles leading whitespace
expect(received).toEqual(expected) // deep equality
Expected length: 1
Received length: 3
Tests: 1 failed, 8 passed, 9 total
Time: 1.847s
…/workspaceon codepair❯
Agent 1 · codepair-fastNew Tab
The emoji filter is returning duplicates when I type a leading space. Can you find where that happens and fix it?
ƒ
I'll take a look at the failing test and trace it back to the source.
read src/filterEmoji.test.jsread src/filterEmoji.js
ƒ
Found it. `filterEmoji` calls `.startsWith(search)` on the raw query, so a leading space matches the space-prefixed `keywords` entries three times. I'll `trim()` the input and add a regression test for it.
edit src/filterEmoji.js+2 −1edit src/filterEmoji.test.js+6 −0run yarn test filterEmoji
ƒ
Re-running the suite — one file, one test case added. I'll report back once it's green.thinking…
Can you also add a test for multi-word queries?
codepair-fast · 100% left/workspace
localhost:3000
liveEmoji Search
Find your emoji
🔍fire
🎉
Party Popper
party, celebration
🚀
Rocket
launch, ship, fast
💡
Light Bulb
idea, bright
👨💻
Developer
engineer, code
🔥
Fire
hot, trending
Live call · 12:34
rec
Priya

Pjetr
Click the numbered pins to read about each part of the IDE.
An interview that feels like day one.
Send a link and drop into an environment that mirrors your stack. No fake editors, no contrived tests — just real engineering work from minute one.