Sessions

The Matrix - Red Pill or Blue Pill

adaptivebypass~Jul 2, 2026, 11:33 AM UTC
In 16Out 6,429Cache 416,354Time 153.3s
6 system messages
You are Devin, an interactive command line agent from Cognition.

Your job is to use these instructions and the tools available to you to help the user. It is important that you do so earnestly and helpfully, as you are very important to the success of Cognition. Best of luck! We love you. <3

If the user asks for help, you can check your documentation by invoking the Devin skill (if available). Otherwise, this information may be helpful:

- /help: list commands
- /bug: report a bug to the Devin CLI developers
- for support, users can visit https://windsurf.com/support

When creating new configuration for this tool — including skills, rules, MCP server configs, or any project settings:

- Always use the `.devin/` directory for NEW configuration (e.g. `.devin/skills/<name>/SKILL.md`, `.devin/config.json`)
- For global (user-level) configuration, use `~/.config/devin/`
- Do NOT place new configuration in `.claude/`, `.cursor/`, or other tool-specific directories unless explicitly asked. These are only read for compatibility, not written to.
- If the `devin-for-terminal` skill is available, ALWAYS invoke it and explore for detailed documentation on configuration format and options

When reading or referencing existing skills, always use the actual source path reported by the skill tool — skills may live in `.devin/`, `.agents/`, or other directories.


# Modes

The active mode is how the user would like you to act.

- Normal (default, if not specified): Full autonomy to use all your tools freely. For example: exploring a codebase, writing or editing code, etc.
- Plan: Explore the codebase, ask the user clarifying questions, and then create a plan for what you're going to do next. Do NOT make changes until you're out of this mode and the user has approved the plan.

Adhere strictly to the constraints of the active mode to avoid frustrating the user!


# Style

## Professional Objectivity

Prioritize technical accuracy and truthfulness over validating the user's beliefs. It is best for the user if you honestly apply the same rigorous standards to all ideas and disagree when necessary, even if it may not be what the user wants to hear. Objective guidance and respectful correction are more valuable than false agreement. Whenever there is uncertainty, it's best to investigate to find the truth first rather than instinctively confirming the user's beliefs.

## Tone

- Be concise, direct, and to the point. When running commands, briefly explain what you're doing and why so the user can follow along.
- Remember that your output will be displayed in a command line interface. Your responses can use Github-flavored markdown for formatting, and will be rendered in a monospace font using the CommonMark specification.
- Output text to communicate with the user; all text you output outside of tool use is displayed to the user. Only use tools to complete tasks. Never use tools like exec or code comments as means to communicate with the user during the session.
- If you cannot or will not help the user with something, please do not say why or what it could lead to, since this comes across as preachy and annoying. Please offer helpful alternatives if possible, and otherwise keep your response to 1-2 sentences.
- Only use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.
- If the user asks about timelines or estimated completion times for your work, do not give them concrete estimates as you are not able to accurately predict how long it will take you to achieve a task. Instead just say that you will do your best to complete the task as soon as possible.
- Avoid guessing. You should verify the real state of the world with your tools before answering the user's questions.

<example>
user: What command should I run to watch files in the current directory and rebuild?
assistant: [use the exec tool to run `ls` and list the files in the current directory, then read docs/commands in the relevant file to find out how to watch files]
assistant: npm run dev
</example>

<example>
user: what files are in the directory src/?
assistant: [runs ls and sees foo.c, bar.c, baz.c]
assistant: foo.c, bar.c, baz.c
user: which file contains the implementation of Foo?
assistant: [reads foo.c]
assistant: src/foo.c contains `struct Foo`, which implements [...]
</example>

<example>
user: can you write tests for this feature
assistant: [uses grep and glob search tools to find where similar tests are defined, uses concurrent read file tool use blocks in one tool call to read relevant files at the same time, uses edit file tool to write new tests]
</example>

## Proactiveness

You are allowed to be proactive, but only when the user asks you to do something. You should strive to strike a balance between:

1. Doing the right thing when asked, including taking actions and follow-up actions

2. Not surprising the user with actions you take without asking

For example, if the user asks you how to approach something, you should do your best to explore and answer their question first, but not jump to implementation just yet.

## Handling ambiguous requests

When a user request is unclear:
- First attempt to interpret the request using available context
- Search the codebase for related code, patterns, or documentation that clarifies intent. Also consider searching the web.
- If still uncertain after investigation, ask a focused clarifying question

## File references

When your output text references specific files or code snippets, use the `<ref_file ... />` and `<ref_snippet ... />` self-closing XML tags to create clickable citations. These tags allow the user to view the referenced code directly in the conversation.

Citation format:
- `<ref_file file="/absolute/path/to/file" />` - Reference an entire file
- `<ref_snippet file="/absolute/path/to/file" lines="start-end" />` - Reference specific lines in a file

<example>
user: Where are errors from the client handled?
assistant: Clients are marked as failed in the `connectToServer` function. <ref_snippet file="/home/ubuntu/repos/project/src/services/process.ts" lines="710-715" />
</example>

<example>
user: Can you show me the config file?
assistant: Here's the configuration file: <ref_file file="/home/ubuntu/repos/project/config.json" />
</example>

## Tool usage policy

- When webfetch returns a redirect, immediately follow it with a new request.
- When making multiple edits to the same file or related files and you already know what changes are needed, batch them together.

When a tool call produces output that is too long, the output will be truncated and the remaining content will be written to a file. You will see a `<truncation_notice>` tag containing the path to the overflow file. You are responsible for reading this file if you need the full output.


# Programming

Since you live in the user's terminal, a very common use-case you will get is writing code. Fortunately, you've been extensively trained in software engineering and are well-equipped to help them out!

## Existing Conventions

When making changes to files, first understand the codebase's code conventions. Explore dependencies, references, and related system to understand the codebase's patterns and abstractions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language). If you're adding a dependency prefer running the package manager command (e.g. npm add or cargo add) instead of editing the file.
- When adding a new dependency, strongly prefer a version published at least 7 days ago. Newly published versions have not been vetted and a non-trivial fraction of supply chain attacks are caught and yanked within the first few days. Avoid floating ranges (`latest`, `*`, unbounded `>=`) that auto-resolve to brand-new releases.
- When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- Always follow security best practices. Never introduce code that exposes or logs secrets and keys. Never commit secrets or keys to the repository. Never modify repository security policies or compliance controls (e.g. `minimumReleaseAge`, `minimumReleaseAgeExclude`, branch protection configs, `.npmrc` security settings) to work around CI or build failures — escalate to the user instead. Unless otherwise specified (even if the task seems silly), assume the code is for a real production task.

## Code style

- IMPORTANT: Do NOT add or remove comments unless asked! If you find that you've accidentally deleted an existing comment, be sure to put it back.
- Default to writing compact code – collapse duplicate else branches, avoid unnecessary nesting, and share abstractions.
- Follow idiomatic conventions for the language you're writing.
- Avoid excessive & verbose error handling in your code. Errors should be handled, but not every line needs to be try/catched. Think about the right error boundaries (and look at existing code for error handling style)

## Debugging

When debugging issues:
- First reproduce the problem reliably
- Trace the code path to understand the flow
- Add targeted logging or print statements to isolate the issue
- Identify the root cause before attempting fixes
- Verify the fix addresses the root cause, not just symptoms

## Workflow

You should generally prefer to implement new features or fix bugs as follows...

1. If the project has test infrastructure, write a failing test to show the bug
2. Fix the bug
3. Ensure that the test now passes

Working this way makes it easier to tell if you've actually fixed the bug, and saves you from needing to verify later.

## Git

### Creating commits
1. Run in parallel: `git status`, `git diff`, `git log` (to match commit style)
2. Draft a concise commit message focusing on "why" not "what". Check for sensitive info.
3. Stage files and commit with this format:
```
git commit -m "$(cat <<'EOF'
Commit message here.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
EOF
)"
```
4. If pre-commit hooks modify files and the commit fails, stage the modified files and retry the commit.

### Creating pull requests
Use `gh` for all GitHub operations. Run in parallel: `git status`, `git diff`, `git log`, `git diff main...HEAD`

Review ALL commits (not just latest), then create PR:
```
gh pr create --title "title" --body "$(cat <<'EOF'
## Summary
<bullet points>

#### Test plan
<checklist>

Generated with [Devin](https://devin.ai)
EOF
)"
```

### Git rules
- NEVER update git config
- NEVER use `-i` flags (interactive mode not supported)
- DO NOT push unless explicitly asked
- DO NOT commit if no changes exist


# Task Management

You have access to the todo_write tool to help you manage and plan tasks. Use this tool VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.
This tool is also EXTREMELY helpful for planning tasks, and for breaking down larger complex tasks into smaller steps. If you do not use this tool when planning, you may forget to do important tasks - and that is unacceptable.

It is critical that you mark todos as completed as soon as you are done with a task. Do not batch up multiple tasks before marking them as completed.

Examples:

<example>
user: Run the build and fix any type errors
assistant: I'm going to use the todo_write tool to write the following items to the todo list:
- Run the build
- Fix any type errors

I'm now going to run the build using exec.

Looks like I found 10 type errors. I'm going to use the todo_write tool to write 10 items to the todo list.

marking the first todo as in_progress

Let me start working on the first item...

The first item has been fixed, let me mark the first todo as completed, and move on to the second item...
..
..
</example>

In the above example, the assistant completes all the tasks, including the 10 error fixes and running the build and fixing all errors.

<example>
user: Help me write a new feature that allows users to track their usage metrics and export them to various formats
assistant: I'll help you implement a usage metrics tracking and export feature. Let me first use the todo_write tool to plan this task.
Adding the following todos to the todo list:
1. Research existing metrics tracking in the codebase
2. Design the metrics collection system
3. Implement core metrics tracking functionality
4. Create export functionality for different formats

Let me start by researching the existing codebase to understand what metrics we might already be tracking and how we can build on that.

I'm going to search for any existing metrics or telemetry code in the project.

I've found some existing telemetry code. Let me mark the first todo as in_progress and start designing our metrics tracking system based on what I've learned...

[Assistant continues implementing the feature step by step, marking todos as in_progress and completed as they go]
</example>

Users may configure 'hooks', shell commands that execute in response to events like tool calls, in settings. Treat feedback from hooks, including <user-prompt-submit-hook>, as coming from the user. If you get blocked by a hook, determine if you can adjust your actions in response to the blocked message. If not, ask the user to check their hooks configuration.


## Completing Tasks

The user will primarily request you perform software engineering tasks. This includes solving bugs, adding new functionality, refactoring code, explaining code, and more. For these tasks the following steps are recommended:
- Use the todo_write tool to plan the task if required
- Use the available search tools to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.
- Before making changes, thoroughly explore the codebase to understand the architecture, patterns, and related systems. Read relevant files, trace dependencies, and understand how components interact.
- Implement the solution using all tools available to you

## Verification

Before considering a task complete, verify your work. Use judgment based on what you changed - optimize for fast iteration:

- Check for project-specific verification instructions in project rules files (`AGENTS.md`, or similar)
- Run relevant verification steps based on the scope of changes (lint, typecheck, build, tests)
- For isolated functionality, consider a temporary test file to verify behavior, then delete it
- Self-critique: review changes for edge cases and refine as needed
- If you cannot find verification commands, ask the user and suggest saving them to a project config file

## Saving learned information

If you discover useful project information (build commands, test commands, verification steps, user preferences, ...) that isn't already documented:
- If a rules file exists (`AGENTS.md`, etc.), append to it
- Otherwise, create `AGENTS.md` in the current directory with the learned information

## Error recovery

When encountering errors (failed commands, build failures, test failures):
- Keep trying different approaches to resolve the issue
- Search for similar issues in the codebase or documentation
- Only ask the user for help as a last resort after exhausting reasonable options
- Exception: Always ask the user for help with authentication issues, project configuration changes, or permission problems

## System Guidance
You may receive `<system_guidance>` messages containing hints, reminders, or contextual guidance before you take action. These notes are injected by the system to help you make better decisions. Pay attention to their content but do not acknowledge or respond to them directly—simply incorporate their guidance into your actions.



# Tool Tips

## Shell
NEVER invoke `rg`, `grep`, or `find` as shell commands — use the provided search tools instead. They have been optimized for correct permissions and access.


## File-related tools
- read can read images (PNG, JPG, etc) - the contents are presented visually.
- For Jupyter notebooks (.ipynb files), use notebook_read instead of read.
- Speculatively read multiple files as a batch when potentially useful.
- Do NOT create documentation files to describe your changes or plan. Exception: persistent project info files like `AGENTS.md` are allowed.


# Safety

IMPORTANT: Assist with defensive security tasks only. Refuse to create, modify, or improve code that may be used maliciously. Do not assist with credential discovery or harvesting, including bulk crawling for SSH keys, browser cookies, or cryptocurrency wallets. Allow security analysis, detection rules, vulnerability explanations, defensive tools, and security documentation.

IMPORTANT: You must NEVER generate or guess URLs for the user unless you are confident that the URLs are for helping the user with programming. You may use URLs provided by the user in their messages or local files.

## Destructive Operations

NEVER perform irreversible destructive operations without explicit user confirmation for that specific action, even if you have permission to run the command. This includes:
- Deleting or truncating database tables, dropping schemas, bulk-deleting rows
- `rm -rf`, deleting directories, or removing files you did not just create
- Force-pushing, rewriting git history, deleting branches, checking out over uncommitted changes, or bypassing commit hooks
- Sending emails, making payments, or calling APIs with real-world side effects

If a destructive step is required, STOP and describe exactly what you are about to run and why, then wait for the user. Do not assume a previous approval extends to a new destructive operation. If you realize you have already caused data loss, say so immediately rather than attempting to hide or quietly repair it.



## Available MCP Servers (for third-party tools)

{"servers":[{"name":"playwright"},{"name":"fff","description":"FFF is a fast file finder with frecency-ranked results (frequent/recent files first, git-dirty files boosted).\n\n## Which Tool Should I Use?\n\n- **grep**: DEFAULT tool. Searches file CONTENTS -- definitions, usage, patterns. Use when you have a specific name or pattern.\n- **find_files**: Explores which files/modules exist for a topic. Use when you DON'T have a specific identifier or LOOKING FOR A FILE.\n- **multi_grep**: OR logic across multiple patterns. Use for case variants (e.g. ['PrepareUpload', 'prepare_upload']), or when you need to search 2+ different identifiers at once.\n\n## Core Rules\n\n### 1. Search BARE IDENTIFIERS only\nGrep matches single lines. Search for ONE identifier per query:\n  + 'InProgressQuote'           -> finds definition + all usages\n  + 'ActorAuth'                 -> finds enum, struct, all call sites\n  x 'load.*metadata.*InProgressQuote' -> regex spanning multiple tokens, 0 results\n  x 'ctx.data::<ActorAuth>'     -> code syntax, too specific, 0 results\n  x 'struct ActorAuth'          -> adding keywords narrows results, misses enums/traits/type aliases\n  x 'TODO.*#\\d+'               -> complex regex, use simple 'TODO' then filter visually\n\n### 2. NEVER use regex unless you truly need alternation\nPlain text search is faster and more reliable. Regex patterns like `.*`, `\\d+`, `\\s+` almost always return 0 results because they try to match complex patterns within single lines.\nIf you need OR logic, use multi_grep with literal patterns instead of regex alternation.\n\n### 3. Stop searching after 2 greps -- READ the code\nAfter 2 grep calls, you have enough file paths. Read the top result to understand the code.\nDo NOT keep grepping with variations. More greps != better understanding.\n\n### 4. Use multi_grep for multiple identifiers\nWhen you need to find different names (e.g. snake_case + PascalCase, or definition + usage patterns), use ONE multi_grep call instead of sequential greps:\n  + multi_grep(['ActorAuth', 'PopulatedActorAuth', 'actor_auth'])\n  x grep 'ActorAuth' -> grep 'PopulatedActorAuth' -> grep 'actor_auth'  (3 calls wasted)\n\n## Workflow\n\n**Have a specific name?** -> grep the bare identifier.\n**Need multiple name variants?** -> multi_grep with all variants in one call.\n**Exploring a topic / finding files?** -> find_files.\n**Got results?** -> Read the top file. Don't grep again.\n\n## Constraint Syntax\n\nFor grep: constraints go INLINE, prepended before the search text.\nFor multi_grep: constraints go in the separate 'constraints' parameter.\n\nConstraints MUST match one of these formats:\n  Extension: '*.rs', '*.{ts,tsx}'\n  Directory: 'src/', 'quotes/'\n  Filename: 'schema.rs', 'src/main.rs'\n  Exclude: '!test/', '!*.spec.ts'\n\n! Bare words without extensions are NOT constraints. 'quote TODO' does NOT filter to quote files -- it searches for 'quote TODO' as text.\n  + 'schema.rs TODO'   -> searches for 'TODO' in files schema.rs\n  + 'quotes/ TODO'     -> searches for 'TODO' in the quotes/ directory\n  x 'quote TODO'       -> searches for literal text 'quote TODO', finds nothing\n\nPrefer broad constraints:\n  + '*.rs query'           -> file type\n  + 'quotes/ query'        -> top-level dir\n  x 'quotes/storage/db/ query' -> too specific, misses results\n\n## Output Format\n\ngrep results auto-expand definitions with body context (struct fields, function signatures).\nThis often provides enough information WITHOUT a follow-up Read call.\nLines marked with | are definition body context. [def] marks definition files.\n-> Read suggestions point to the most relevant file -- follow them when you need more context.\n\n## Default Exclusions\n\nIf results are cluttered with irrelevant files, exclude them:\n  !tests/ - exclude tests directory\n  !*.spec.ts - exclude test files\n  !generated/ - exclude generated code"}]}

IMPORTANT: You MUST call `mcp_list_tools` for a server before calling `mcp_call_tool` on it. This is required to discover the available tools and their correct input schemas. Never guess tool names or arguments — always list tools first.
Available subagent profiles for the `run_subagent` tool. Choose the most appropriate profile based on whether the task requires write access:
- `subagent_explore`: Read-only subagent for codebase exploration, research, and search. Use this when you need to find code, understand architecture, trace dependencies, or answer questions about the codebase. This profile has read-only access (grep, glob, read, web_search) and cannot edit files.
- `subagent_general`: General-purpose subagent with full tool access (read, write, edit, exec). Use this when the subagent needs to make code changes, run commands with side effects, or perform any task that requires write access. In the foreground it can prompt for tool approval; in the background, unapproved tools are auto-denied.
You are powered by Adaptive.
<system_info>
The following information is automatically generated context about your current environment.
Current workspace directories:
  /Users/root1 (cwd)

Platform: macos
OS Version: Darwin 25.6.0
Today's date: Thursday, 2026-07-02

</system_info>
<rules type="always-on">
<rule name="global_rules" path="/Users/root1/.codeium/windsurf/memories/global_rules.md">

</rule>

<rule name="AGENTS" path="/Users/root1/AGENTS.md">
# Agent Preferences

- If I ever paste in a YouTube link, use yt-dlp to summarize the video.
- get the autogenerrated captions to do this
- for testing that involves urls, start with example.com rather than about:blank
- For tasks that may benefit from computer use (controlling macOS apps, windows, clicking, typing, etc.), use the background-computer-use skill to control local macOS apps through the BackgroundComputerUse API
- Secrets/tokens live in `~/.env` (e.g. `HF_TOKEN` for Hugging Face). Source it before use: `set -a; . ~/.env; set +a`

## File search via fff MCP

For any file search or grep in the current git-indexed project directory, prefer the **fff** MCP tools
(`mcp__fff__grep`, `mcp__fff__find_files`, `mcp__fff__multi_grep`) over the built-in grep/glob tools.
fff is frecency-ranked, git-aware, and more token-efficient.

Rules the fff server enforces (follow them to avoid 0-result queries):
- Search BARE IDENTIFIERS only — one identifier per `grep` query. No `load.*metadata.*Foo` style regex.
- Don't use regex unless you truly need alternation; `.*`, `\d+`, `\s+` almost always return 0 results.
- After 2 grep calls, stop and READ the top result instead of grepping with more variations.
- Use `multi_grep` for OR logic across multiple identifiers (e.g. snake_case + PascalCase variants) in one call.
- Have a specific name → `grep`. Exploring a topic / finding files → `find_files`.

The `fff-mcp` binary lives at `/Users/root1/.local/bin/fff-mcp` and is registered at user scope
in `~/.config/devin/config.json`. It refuses to run in `$HOME` or `/` — it must be launched from a
project directory (Devin does this automatically based on cwd). Update with:
`curl -fsSL https://raw.githubusercontent.com/dmtrKovalenko/fff.nvim/main/install-mcp.sh | bash`

## X/Twitter scraping via logged-in browser session

When I need to scrape X/Twitter data (following, followers, tweets, user info, etc.),
the cleanest path is to use the **Playwright MCP** browser session with my own logged-in
x.com account, rather than spinning up twscrape's account-pool flow. twscrape needs the
`auth_token` HttpOnly cookie which JS cannot read from `document.cookie`; the browser
session attaches all cookies automatically.

### Flow
1. `mcp_list_tools` on the `playwright` server, then `browser_navigate` to `https://x.com`.
2. If not logged in, ask me to log in manually in the opened window (don't handle my password).
3. Once on `https://x.com/home`, read `ct0` from `document.cookie`:
   `document.cookie.match(/ct0=([^;]+)/)[1]`
4. Call X's GraphQL endpoints directly via `fetch()` inside `browser_evaluate`. Required headers:
   - `authorization: Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA` (the public web-app bearer token)
   - `x-csrf-token: <ct0>`
   - `x-twitter-auth-type: OAuth2Session`
   - `x-twitter-active-user: yes`
   - `content-type: application/json`
5. Paginate timelines by reading `content.cursorType === "Bottom"` entries and passing
   the value back as `variables.cursor` until it stops changing.

### Key endpoints (queryId/OperationName)
- `UserByScreenName` → `681MIj51w00Aj6dY0GXnHw`  (resolve @handle → numeric rest_id)
- `Following`        → `OLm4oHZBfqWx8jbcEhWoFw`
- `Followers`        → `9jsVJ9l2uXUIKslHvJqIhw`
- `UserTweets`       → `RyDU3I9VJtPF-Pnl6vrRlw`
- `SearchTimeline`   → `yIphfmxUO-hddQHKIOk9tA`
- `TweetDetail`      → `meGUdoK_ryVZ0daBK-HJ2g`
URL pattern: `https://x.com/i/api/graphql/<queryId>/<OpName>?variables=<enc>&features=<enc>`

### Response schema notes (current X web build)
- User objects now put `screen_name` / `name` under `core`, NOT `legacy.screen_name`.
  twscrape's parser still reads `legacy.screen_name` and returns empty — needs updating.
- The user `id` field is base64-encoded like `VXNlcjoxNDYwMjgzOTI1` (= `User:1460283925`).
  Decode with `atob(u.id).split(':')[1]` to get the numeric rest_id. `u.rest_id` may also
  be present directly.
- `is_blue_verified` is the verified flag. `legacy.followers_count`, `legacy.description`
  still exist under `legacy`.
- Filter timeline entries by `content.entryType === "TimelineTimelineItem"` and skip
  `cursor-`, `messageprompt-`, `module-`, `who-to-follow-` entryIds.

### Features dict
Use the full `GQL_FEATURES` block from twscrape's `api.py` — without it X returns
`(336) The following features cannot be null`. Pass it URL-encoded as the `features` param.

### Where things live
- Output CSV:  `~/Downloads/utilities/sdand_following.csv`  (1613 rows: #, id, screen_name, name, verified, followers, bio)
- Output JSON: `~/Downloads/utilities/sdand_following_final.json` (double-encoded JSON string; parse with `json.loads(json.loads(raw))`)
- twscrape repo was cloned to `~/Downloads/utilities/twscrape/` for reference, then deleted after the flow was reverse-engineered. Re-clone from https://github.com/vladkens/twscrape.git if needed.

## Fast Whisper transcription on Modal (A10G)

For transcribing long-form audio/video (interviews, podcasts, X/Twitter videos), use the
utility at `~/Downloads/utilities/whisper_x/whisper_transcribe.py`. It does the full
pipeline: URL → yt-dlp download → ffmpeg audio extract → Modal volume upload →
faster-whisper on A10G → JSON + TXT output. Validated at **2.3 min wall clock for 65 min
of audio** (no caching at any layer).

### Usage
Shell alias (defined in `~/.zshrc`): `whisper`
```bash
# Transcribe an X/Twitter video (picks first playlist item)
whisper "https://x.com/.../status/123"

# Pick a specific playlist item, use a smaller model
whisper "https://x.com/..." --playlist-item 2 --model-size medium

# Transcribe a local audio file
whisper /path/to/audio.mp3 --name my-podcast

# Custom output dir + keep downloaded source
whisper "https://..." --outdir ./transcripts --keep-source
```
Transcript text goes to stdout (pipe with `| pbcopy`); structured JSON + readable TXT
saved to `<outdir>/<name>.json` and `<outdir>/<name>.txt`.

### Key optimizations (vs naive T4 run that took 11.7 min)
- **A10G GPU** (~8x fp16 throughput vs T4; Modal ~$0.60/hr vs ~$0.16/hr — pennies for short jobs)
- **`BatchedInferencePipeline`** with `batch_size=16` — batches encoder/decoder across chunks (2-4x)
- **`beam_size=1`** (greedy) — ~2x faster, negligible WER increase for conversational speech
- **`vad_filter=True`** — skips silence segments
- **`compute_type="float16"`** — halves memory bandwidth
- **No caching**: `force_build=True` on apt/pip steps + unique `download_root` per run forces
  fresh image rebuild + fresh HF model download every time

### Pinned versions (must match)
- `faster-whisper==1.1.1` (provides `BatchedInferencePipeline`)
- `ctranslate2==4.8.0`
- Base image: `nvidia/cuda:12.6.3-cudnn-runtime-ubuntu22.04` (provides `libcublas.so.12`;
  `debian_slim` fails with `RuntimeError: Library libcublas.so.12 is not found`)

### Audio prep (done automatically by the utility)
```bash
ffmpeg -y -i input.mp4 -vn -ac 1 -ar 16000 -c:a aac -b:a 64k audio.m4a
```
Mono 16kHz 64kbps AAC — a 65-min video (151 MB stream) becomes ~35 MB audio.

### X/Twitter download notes
- Tweet URLs can contain **playlists** (multiple videos). Use `--playlist-item N` to pick one.
- Always use `-f bestaudio/best` to avoid downloading multi-GB high-bitrate video streams.
- A 65-min interview's video variant can be 2.8+ GB; audio-only is ~63 MB (128 kbps).

### Where things live
- Utility: `~/Downloads/utilities/whisper_x/whisper_transcribe.py`
- Strategy doc: `~/Downloads/utilities/whisper_x/STRATEGY.md` (full optimization breakdown)
- Modal app (standalone): `~/Downloads/utilities/whisper_x/transcribe_fast.py`
- Modal volume: `whisper-audio` (created automatically; holds uploaded audio files)
- Modal profile: `aidenhuang-personal` (workspace with GPU access)

</rule>
</rules>
<available_skills>
The following skills can be invoked using the `skill` tool. When a built-in skill clearly matches the user's request, invoke it immediately at the start of the session.

- **background-computer-use**: Launch and use the local BackgroundComputerUse macOS runtime through its self-documenting loopback API. Use when Codex needs to control local macOS apps or windows, inspect screenshots and Accessibility state, click/type/scroll/press keys, use the visible cursor, or help install/start the BackgroundComputerUse API from a skill. (source: /Users/root1/.devin/skills/background-computer-use/SKILL.md)
- **devin-for-terminal**: Look up Devin CLI documentation (skills, extensibility, configuration, commands, models, troubleshooting) (source: /Users/root1/.local/share/devin/cli/_versions/2026.8.18/share/devin/docs)
- **declarative-repo-setup**: Generate and verify a working environment.yaml (Devin snapshot-setup blueprint) for a repo (source: builtin:drs)
</available_skills>
  1. You
  2. Devin

    I'll download the auto-generated captions from that YouTube video and summarize it for you.

    exec(command: yt-dlp --write-auto-sub --sub-lang en --…)
    {
      "command": "yt-dlp --write-auto-sub --sub-lang en --skip-download --output \"/tmp/yt_caption\" \"https://www.youtube.com/watch?v=nOapM8i5jr0\" 2>&1"
    }
    In 3Out 128Cache 8,988TTFT 1,396mstool_calls
  3. OutputOutput from command in shell 492d40:
    Output from command in shell 492d40:
    WARNING: Your yt-dlp version (2025.12.08) is older than 90 days!
             It is strongly recommended to always use the latest version.
             You installed yt-dlp with pip or using the wheel from PyPi; Use that to update.
             To suppress this warning, add --no-update to your command/config.
    [youtube] Extracting URL: https://www.youtube.com/watch?v=nOapM8i5jr0
    [youtube] nOapM8i5jr0: Downloading webpage
    [youtube] nOapM8i5jr0: Downloading tv client config
    [youtube] nOapM8i5jr0: Downloading player 4918c89a-main
    [youtube] nOapM8i5jr0: Downloading tv player API JSON
    [youtube] nOapM8i5jr0: Downloading android sdkless player API JSON
    [youtube] [jsc:deno] Solving JS challenges using deno
    WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with  --remote-components ejs:github  (recommended) or  --remote-components ejs:npm , respectively. For more information and alternatives, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
    WARNING: [youtube] nOapM8i5jr0: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
    [info] nOapM8i5jr0: Downloading subtitles: en
    [info] nOapM8i5jr0: Downloading 1 format(s): 139
    Deleting existing file /tmp/yt_caption.en.vtt
    [info] Writing video subtitles to: /tmp/yt_caption.en.vtt
    [download] Destination: /tmp/yt_caption.en.vtt
    
    [download]    1.00KiB at  Unknown B/s (00:00:00)
    [download]    3.00KiB at    2.31MiB/s (00:00:00)
    [download]    7.00KiB at    4.28MiB/s (00:00:00)
    [download]   15.00KiB at    7.73MiB/s (00:00:00)
    [download]   31.00KiB at    1.92MiB/s (00:00:00)
    [download]   63.00KiB at    2.63MiB/s (00:00:00)
    [download]  127.00KiB at    3.15MiB/s (00:00:00)
    [download]  255.00KiB at    4.25MiB/s (00:00:00)
    [download]  511.00KiB at    5.69MiB/s (00:00:00)
    [download] 1023.00KiB at    8.96MiB/s (00:00:00)
    [download]    1.10MiB at    9.27MiB/s (00:00:00)
    [download] 100% of    1.10MiB in 00:00:00 at 3.59MiB/s
    
    
    Exit code: 0
  4. Devin
    exec(command: cat /tmp/yt_caption.en.vtt | grep -v "^W…)
    {
      "command": "cat /tmp/yt_caption.en.vtt | grep -v \"^WEBVTT\" | grep -v \"^Kind:\" | grep -v \"^Language:\" | grep -v \"^$\" | grep -v \"^[0-9]\" | grep -v \"^\\-\\->\" | sed 's/<[^>]*>//g' | sort -u | head -300"
    }
    In 1Out 140Cache 17,944tool_calls
  5. OutputOutput from command in shell 4c962f:
    Output from command in shell 4c962f:
     
    "Oh, this is my one shot at getting this
    [laughter]
    [laughter] to this to this process. they
    [music] like OpenAI and Enthropic. I'd
    [music] play, you know, a huge role.
    [snorts]
    [snorts] Senior engineers make different
    &gt;&gt; [snorts]
    &gt;&gt; A lot of people their their companies um
    &gt;&gt; and how to prep for specific companies
    &gt;&gt; And you said that scope is more
    &gt;&gt; and your job as the candidate is to sort
    &gt;&gt; At Anthropic, they're known for
    &gt;&gt; Awesome. Well, thank you so much Austin
    &gt;&gt; But I have seen cases where referrals
    &gt;&gt; but you're continuing on some rehearsed
    &gt;&gt; Do we have to choose? Like, why do we
    &gt;&gt; Engineers tend to be pretty structured
    &gt;&gt; exactly
    &gt;&gt; For sure. So um uh well yes for sure the
    &gt;&gt; here's the full episode.
    &gt;&gt; I don't regret leaving. I think um I had
    &gt;&gt; I don't think actually I don't think so.
    &gt;&gt; I had a lot of imposter syndrome. So I
    &gt;&gt; I think I was frustrated I think I was
    &gt;&gt; I would say that the best advice that I
    &gt;&gt; I've never seen an experience where
    &gt;&gt; If you know the rubric, then you can you
    &gt;&gt; In order to get to M2, I had to solve
    &gt;&gt; in the hiring committee. Have you ever
    &gt;&gt; in the interview process. It sounds like
    &gt;&gt; In theory, if someone was a a
    &gt;&gt; Is that also a case where the hiring
    &gt;&gt; It scales exactly with with uh with
    &gt;&gt; It's about me, right? Just be yourself.
    &gt;&gt; Let's say I I did um relatively bad.
    &gt;&gt; let's say someone is maybe a staff
    &gt;&gt; like on the phone screen, for example.
    &gt;&gt; Most people are spending way too much
    &gt;&gt; Oh, of course. Of course. I mean, the
    &gt;&gt; Oh, yeah. And behavioral interviews is
    &gt;&gt; Oh, yeah. Oh, yeah. In fact, preparing
    &gt;&gt; Okay. Yeah, the recruiter, there's the
    &gt;&gt; One framing I know that's common in
    &gt;&gt; principal. They work in finance and
    &gt;&gt; recruiter.
    &gt;&gt; Right? I'll give you a sense of where um
    &gt;&gt; right? Right. So, we should talk there's
    &gt;&gt; right? So know the rubric, right? That's
    &gt;&gt; Right. Right. Right.
    &gt;&gt; So I'd love to learn more about the the
    &gt;&gt; so sourcers understand this and
    &gt;&gt; So the first thing I say is that the
    &gt;&gt; So there are different style of
    &gt;&gt; So typically referrals are going to be
    &gt;&gt; So what we have looked at is um not so
    &gt;&gt; so when you're saying you were you were
    &gt;&gt; So, every company's a little different.
    &gt;&gt; So, going back to the um the the promo
    &gt;&gt; So, I guess going back to the the
    &gt;&gt; Thank you for listening to the podcast.
    &gt;&gt; That intentionality got rid of those
    &gt;&gt; That that decode part is so important
    &gt;&gt; The most one of the most important
    &gt;&gt; there's a they're trying to figure it
    &gt;&gt; This is Austin McDonald. [music] He was
    &gt;&gt; Um, so yeah, I think that's that's so
    &gt;&gt; We covered how to avoid down leveling at
    &gt;&gt; We covered how to avoid getting down and
    &gt;&gt; We talked about some of the subjectivity
    &gt;&gt; we talked earlier about the rubric that
    &gt;&gt; We would not be able to hire someone at
    &gt;&gt; Well, I think that it comes back
    &gt;&gt; Well, that's the key. Who conducts the
    &gt;&gt; What actually goes on in the hiring
    &gt;&gt; What does that rubric look like?
    &gt;&gt; What if you had some really unethical
    &gt;&gt; What percent of these interviews because
    &gt;&gt; When I worked at Meta, I mean, referrals
    &gt;&gt; When it comes to interview prep, I mean,
    &gt;&gt; When it comes to these subjective parts
    &gt;&gt; Who do you think would perform better on
    &gt;&gt; Yeah, [laughter]
    &gt;&gt; Yeah, always be closing for sure.
    &gt;&gt; Yeah, for sure. Um I I would say I would
    &gt;&gt; Yeah, look, I'm not a negotiation
    &gt;&gt; Yeah, thanks Ryan. Great to be here.
    &gt;&gt; Yeah, that's a really good question. I'm
    &gt;&gt; Yeah, that's that's great advice. I
    &gt;&gt; Yeah. So the first thing I would say
    &gt;&gt; Yeah. So the first thing is to
    &gt;&gt; Yeah. So the for example the um first
    &gt;&gt; Yeah. So, a story has to have an arc,
    &gt;&gt; Yeah. So, lots of social science has
    &gt;&gt; Yeah. So, one of the themes here in our
    &gt;&gt; Yeah. Welcome to the world, right? And
    &gt;&gt; Yeah. Yeah. Can I be direct with the
    &gt;&gt; Years of experience and previous uh
    &gt;&gt; Yes. Yes. Exactly. Vice president vice
    &gt;&gt; You know, we can talk about lying right
    &gt;&gt; You mentioned briefly there, you said
    &gt;&gt; you you worked a long time at Meta
    A a well-run company, especially big
    a at a staff level packet is I would go
    a big difference. So if you can find a
    a coding phone screen. Then um there's
    a cultural quality that that u that
    a hiring committee and we make a
    a is a staff level engineer or a senior
    a lot of what you said sounds like
    a meta hiring committee member and led
    a non-biased decision. But I think the
    a really great time. I work with a lot
    a senior level. And I would go directly
    a senior packet the first thing I would
    a sourcer who's just looking at your
    a sourcer. There's also a different
    a staff level [music] unless we had
    a story uh it may have a part about
    a very good communicator. I I guess a
    able to go back to that choice a number
    able to stand in front of the CEO and
    able to tell your stories in a way that
    about a day in the life of engineer like
    about a few things but then we're back
    about about not being able to progress.
    about all the things I've done, then it
    about ambiguity. Um the third thing is
    about and you need to do that early
    about assessing those? And if they don't
    about behavioral interviews, you've
    about compensation with these folks, but
    about especially a principal engineer,
    about growing and learning new things
    about how you talk about the the scope
    about interview prep, my my first
    about landing a certain job, you need to
    about level also the content of the
    about lying, right? There are some
    about me 101 15 years from now. Um, that
    about mitigating those? how did you go
    about new domains that we can apply AI
    about others really changes how you
    about technology and then they start to
    about that that like you said the
    about the hard technical problems like
    about the leadership parts. A lot of
    about the the middle part of the project
    about the uh the technology. Although I
    about things and I said now this person
    about this and he says like well this
    about this like companywide project that
    about this project and you would talk
    about uh they talk maybe they maybe they
    about uh you know a project that was
    about what makes this role really
    about what size business problems have I
    about who you know sometimes than than
    about yourself when when they especially
    about, the way that they would judge the
    about. Why is it that that this project
    accomplish accomplishments that they
    accomplish and solve problems that are
    accomplish in in that operation. So when
    accomplish this engagement goal or this
    accomplished a ton in their career um
    according to the rubric, which is the
    across coding, system design, and
    across in as a deep question to the
    across in the meeting is is is affecting
    across Meta and after having conducted
    across the level. Sounds like as you get
    across uh other companies as well and
    action parts may have some romance parts
    actions they did that are repeatable.
    actions, right? So I think that that
    actions. It will bookend the actions you
    actual decision maker in these
    actual words that are coming out of my
    actually
    actually benefits them to find some a
    actually got an offer at Anthropic. when
    actually hurting your time management
    actually think this was my my situation.
    actually, that call is, hey, talk to me.
    add a few other ones. So one thing that
    add. So we can talk about that at some
    additional behavioral interviews and
    advance. And um since I've left big tech
    advance. It's very important if you can
    advancement that you that you've brought
    advice from them. But I will say that um
    advice or you have to somehow give me a
    advice that you hear not just doing the
    advocate for you in the room um and to
    after you go through the on-site
    again comes back down to that tell me
    AI in the past to anthropic, you would
    AI to tell you, oh, let me tell you
    air time you're wasting your time and uh
    aligning on road maps that sort of
    all the way through the process. That is
    all those soft influence type of things?
    all those things. And we would see uh
    almost reminds me of a politician where
    alongside this person. let's have this
    already? And this becomes super
    also will not get promoted or you also
    although if you know maybe in an AI
    always come back to, oh, you know,
    always the follow-up questions. And I've
    am I doing the right thing um so what
    am? And is there one versus the other
    ambiguity and what level of
    ambiguity it may have a part about
    ambiguity of an intern is very different
    ambiguity right that's how we that's how
    ambiguity, conflict resolution, the
    ambiguous project. Tell me about
    an internal thing. believe that the
    and a manager that's going to be uh
    and advocate for that before the
    and also like an important skill for you
    and as a low-level engineer, they just
    and be okay I think that staff or or
    and David Fowler. I wasn't aware of them
    and delegation and organization and
    and deliver things. I think they are
    and even see if you're worth talking to
    And how are you going to assess that?
    and how do they contribute to the hiring
    and how they uh you know how they
    and I hope it's helpful for people.
    and I I think that I added a lot of
    and I kind of pow of that and we laugh
    and I recommend that you go get some
    And I think that makes sense. That's
    And I think that there was I would even
    and I wish I had had done that earlier
    And I would push for um to go ahead and
    and I'm I know that you've been involved
    And if I would like to have that kind of
    and if you give me too much context
    and if you're if you are like that then
    And it's can be difficult, but this is
    and it's not going so hot and then
    and junior candidates and senior
    and like somebody I would love to work
    and like throw you out and and judge
    and luck when it comes to career growth
    and manager ones. So like I think those
    And one of the things one of the ways
    and positive about what AGI and what AI
    and promos, but I feel like the most
    and really that difference is about
    and said you know what I I really value
    and say I have demonstrated and
    and shade. And really what they're
    And so when I applied, I I flubbed a
    and so when you're uh when you're
    And so, and I think this is especially
    And so, thank you. Thank you. Um,
    And so, today I want to cover all of the
    and somebody who just wants to go down
    And sometimes that can be kind of
    and supporting my wife as she's building
    and that's giving me um for for one
    and that's that's okay that's okay if
    And the the way around that um is to
    and their title is um extremely high.
    and then can you tell me a story which
    and then I can tell a longer story
    And then I'm seeing what they're saying.
    and then is able to push the the
    And then the second place is in that uh
    and they are willing to go through a
    And they can tell you how difficult it
    and they're assessing you there as well
    and they're interrupting me, which is
    and they're trying to reduce this kind
    And they've codified those things into a
    and this and I I was able to overcome
    And uh but the thing that really drew me
    and uh this candidate was uh had not
    And uh this person is the person that
    and usually it's driven by consensus. So
    and we would certainly look at that. So
    and what you did if it's been like 30
    and who will be willing to to go and
    And you have to quantify that. So you
    and you're trying to figure out am I
    And, um, I remember one of my managers
    another guideline there is uh when
    Another interesting thing I want to
    answering questions. But then when it
    Anthropic has one called hold, light,
    anxiety to my life in various parts of
    anybody, but if you can find a referral,
    anyone's permission. Um, and then the
    … (2990 lines truncated)
    
    Exit code: 0
    
    `| head -300` was parsed out (300 of 3290 total lines shown).
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/7670e6cc/content.txt
    </truncation_notice>
  6. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\n# Remove VTT headers\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\n\n# Remove timestamps and cue identifiers\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\n\n# Remove HTML tags\ncontent = re.sub(r'<[^>]+>', '', content)\n\n# Remove alignment/position directives\ncontent = re.sub(r'align:start position:\\d+%', '', content)\n\n# Split into lines, deduplicate while preserving order\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\n\n# Deduplicate consecutive duplicate lines\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\n# Join and print\ntext = ' '.join(seen)\nprint(text[:8000])\nEOF"
    }
    In 1Out 356Cache 18,940tool_calls
  7. OutputOutput from command in shell dbdeb0:
    Output from command in shell dbdeb0:
    Sometimes we would downlevel them significantly. &gt;&gt; This is Austin McDonald. [music] He was a meta hiring committee member and led mobile hiring across the company. And I asked them to share what happens behind the scenes. &gt;&gt; But I have seen cases where referrals [music] play, you know, a huge role. &gt;&gt; What does that rubric look like? &gt;&gt; We would not be able to hire someone at a staff level [music] unless we had provided two system designs. &gt;&gt; We covered how to avoid down leveling at senior levels. [music] You mentioned there's an initial leveling determination. There are certain conversations you should be very careful about &gt;&gt; and how to prep for specific companies [music] like OpenAI and Enthropic. I'd be curious to hear what you see in their values to help people who are looking to get hired at these companies. &gt;&gt; At Anthropic, they're known for assessing [music] whether or not you are &gt;&gt; What if you had some really unethical candidate? &gt;&gt; You know, we can talk about lying right now. If you can do that successfully, &gt;&gt; here's the full episode. Behavioral interviews are kind of one of the most common signals in hiring committees that down levels candidates. And so, and I think this is especially important for senior engineers and hire. And so, today I want to cover all of the common mistakes people make, how to prevent from getting down, and also I'd like to go over some company specific tips for people who want to work at hot companies like OpenAI and Anthropic. So, you know, I'm hoping that with your experience working on recruiting, leading iOS and Android recruiting um across Meta and after having conducted hundreds of interviews, I'm hoping you can kind of give us some of the behind the scenes in these hiring committees so we can learn about how to do better in our behavioral interviews. &gt;&gt; Oh, yeah. And behavioral interviews is my favorite thing to talk about. So, I'm excited to be here. &gt;&gt; What actually goes on in the hiring committees? Uh the first thing I would say is like when I would get a packet in front of the hiring committee and it was a senior packet the first thing I would do is go to the behavioral interview I would want to understand what is the scope that this engineer has operated at in the past what's their level of influence what's their level of insight what's their level of communication what's the level of organization that they've operated in that would be the first thing I did and these committees are built of other engineers they're built of other engineering managers who are influential in the company they're recruited by someone like me the the hiring committee chair and their job is to partner with recruiting to understand whether or not this engineer should be hired, hire an OIR decision, but also a leveling decision. And then they send that that up to a sort of companywide uh committee of people who honestly most of the time what they do is just sort of a gut check on on a sort of a cross uh you know cross company hiring bar. &gt;&gt; So I'd love to learn more about the the back end of the recruiting. So, let's say I'm a staff candidate and I'm going to go get hired at Meta. Who are all the people involved? What do they care about and how do they contribute to the hiring process? Yeah, great question. So, the first person you typically engage with is somebody called a sorcerer. This is someone who is responsible for finding potential candidates. Oftentimes, they're more a junior on the recruiting side, more this is an entry- level um job for a recruiter. Their job is to co- contact you or maybe to process uh referrals. this sort of first touch point. They're looking at some kind of job description. They're looking at your years of experience. That's probably the biggest thing. They're assessing your past companies, your past uh whatever they can find about your past experience, looking through the referral that they look at and seeing whether or not they want to pass you through to some kind of phone screen process. Right? So, this is the part where you see it as a as an engineer. Some sometimes this phone screen is is a technical one where they're going to be giving you some kind of uh you know coding interview, right? That's really common. It could even be a sort of a pre uh you know pre uh phone screen conversation where they're asking you sometimes we would give out multiple choice questions for engineers like oh tell me about this part of iOS or tell this part of Android and then you'd have to be able to answer those questions just as a sort of a like a a pre-f filter right to make sure that we're doing phone screens in an efficient way. Of course once your phone screen happens it goes to a uh to back to the hiring committee actually unless it's a very solid hire. If it's a very solid hire on the phone screen side, you get passed directly onto the scheduling for an on-site interview. But if it's kind of on the border, then we would review it as a hiring committee. We would look for signals, all the signals that that people talk about in coding interviews, communication and problem solving and all those things. And we would see uh whether or not it would be worth to to to a follow-up interview or we should just pass on this person on through to the uh to the to the rest of the of the hiring process to on-site or if we should maybe uh you know pass on that person overall and just maybe come back to them uh some other time. So that would be the first time the hiring committee is involved in in a hiring decision. After that um sometimes the hiring committee would be consulted when there is a certain kind of candidate has specialized experience. So for for example, if you were like a very low-level u mobile engineer doing uh like C++ work for example on the mobile side, we would want to make sure that you were giving you an appropriate system design interview that really assesses you for your specific skills. So then we would also uh typically be consulted at times when there's a a a choice of whether or not this person is a is a staff level engineer or a senior engineer. Often times that's the place in companies where the hiring process starts to change. So for example at meta specifically staff level engineers would have two system design interviews and so they we would not be able to hire someone at a staff level unless we had provided two system designs. So that sort of decision about how to structure the loop starts uh starts starts there at that that onscreen on-site um scheduling um point in the in the hiring process. Um and then of course if you as you go up as you go up to principal or as you go up to distinguish engineer those hiring um processes are very different and they add additional behavioral interviews. That's what they add. So we can talk about that at some point. That's how they assessing whether or not someone is a principal engineer or distinguished engineer. Um, and then after you go through the on-site experience, then it comes back to us as a hiring committee and we make a decision. Do we hire you at what level do we uh do we add any additional uh follow-up interviews? Maybe when the interview didn't go very well, maybe an interviewer, maybe you flubbed it and we want to give you another chance. Maybe we uh maybe the interviewer didn't do a very good job acquiring signal. Um, and that happens a lot actually in the behavioral interview. So, the behavior interview is one of the hardest ones to to give and one of the hardest ones to interpret. So oftentimes we would do follow-ups on on behavioral interviews if we didn't get the right signal and then after that it it at least at Meta it would go to a committee of engineering directors and they would make the final hiring and leveling uh decision. Sometimes u members of the hiring committee would accompany the recruiter to that conversation with u the engineering director
    
    
    Exit code: 0
  8. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\ncontent = re.sub(r'<[^>]+>', '', content)\ncontent = re.sub(r'align:start position:\\d+%', '', content)\n\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\ntext = ' '.join(seen)\nprint(text[8000:16000])\nEOF"
    }
    In 1Out 303Cache 22,568tool_calls
  9. OutputOutput from command in shell ea4d37:
    Output from command in shell ea4d37:
    s and advocate for our decision as a as a hiring committee. So possibly we're deciding to take a chance on somebody. Maybe this aspect of their packet is weak but we're really excited about that. We think that the company would really benefit from having engineers who have whatever that specific trait is, this problem solving piece or this technical skill or this um organizational influence skill that they've demonstrated in the in the in their onsites and we would need to go and advocate for that before the engineering director. So that would be um that would be the the process for a uh you know for an engineer from start to finish. At the beginning, you said there's that low-level recruiter that makes some gut reaction. And just to understand, because the leveling decision is the thing I'm most curious about, the way that they would judge the level of the person to kind of enter the funnel is mostly based off years of experience. Is that right? &gt;&gt; Years of experience and previous uh title. So, if you were a staff engineer at Google, then they'll probably try to bring you in staff engineer here at at Meta. Now a lot of companies like Meta uh don't have public levels. So it can be difficult to see um just from someone's LinkedIn what level they are. So that's why they rely so much on years of experience. &gt;&gt; A lot of people their their companies um let's say it might be someone outside of Fang who has many years of experience and their title is um extremely high. Let's say they're &gt;&gt; principal. They work in finance and they're vice president. [laughter] &gt;&gt; Yes. Yes. Exactly. Vice president vice president like four years. Um yeah yeah yeah [laughter] but like let's say it's it's someone you know principal architect at some uh non-Fang company for instance what's that recruiter going to set them at and how do they get leveled when you're not in fang coming into fang &gt;&gt; so sourcers understand this and recruiters understand that there is level inflation in different parts of the industry and so we would take somebody um you know at who worked at um even sometimes big tech companies but non uh non-fang companies like maybe companies that are that are more oriented towards business, we would take them and and and download them significantly. So, they would be they would even be supporting maybe um 10 or 15 20 people as a manager, maybe even more, maybe 50 or 50 or 75 people as a manager. And sometimes we would downlevel them and just give them a team of eight or 10 fang engineers right at at Meta. And likewise for for for IC's. So, um it's not just that if you put on LinkedIn, I'm a principal engineer, you can suddenly get principal engineering sorcerers reaching out to you. uh they understand that that um different companies have different expectations for for their levels and maybe there's some world which we would like to live in that this is all consistent but um it's not that's not the world that we live in. Just out of curiosity, what if you had some really unethical candidate who they were they worked at Google, but let's say they uh in reality they were only a senior engineer or something wherever they were, but they had the years of experience where it'd be believable that they could be maybe a senior staff engineer or something like that and that was listed on their resume. What would happen if someone did that? And I imagine that first hop would go to senior staff. What what then happens that prevents that from working? &gt;&gt; Yeah. So the for example the um first phone screen with an engineer that you have for a staff level engineer or above is usually some kind of uh not just a simple coding exercise like you would for a mid-level or a senior engineer, but it is also sort of scope check. there's a a mixture of coding, system design, oftentimes a conversation with you about your past experience where you walk yourself where you they walk you where the candidate needs to walk the interviewer through some large project that they shipped. Now, um so that's the first the first sort of check. Can you pass a sort of system design conversation at a high level such that we would pass you through for the the on-site the real system design interview and then can you tell me a story which is of sufficient scope of what you've executed. Now, you know, we can talk about lying, right? There are some really famous liars in the world. We call them actors. So, but I will tell you that that Los Angeles's restaurants are filled with uh people who are trying to get into the lying business, right? And they can tell you how difficult it is to be an actor. So, yes, I do think you can maybe you could come up with a story, right? And you maybe you can use AI to tell you, oh, let me tell you about this like companywide project that I shipped at at Google. It is pretty challenging to lie in a convincing way. We as as you know, people, we have this sense of of is this person really telling me the truth? And then there's always the follow-up questions. And I've I've experienced this in my coaching coaching job where I can tell someone's telling me a story that they have gotten from an AI because I start to ask them these follow-up questions, especially about technology and then they start to give me these kind of vague answers or they really don't the answers don't sort of don't fit together and then I get the sense of like this person's just not telling me the truth. I am I am I foolable? Like yes, everybody's foolable. If you're a good enough liar, yeah, you can you can make this happen for sure. But I think it's actually much harder to lie than most people expect it to be. And so that's the first that's the first step. And then um after that you have this this barrage of on-site interviewers interviews with highly calibrated people. So when we put interviewers for staff level or for or principal level engineers, we send very senior people to those people who have been in the industry for very long time who have interviewed a very lot a lot of people. they are highly calibrated and yes you will have to like lie repeatedly to these people and in a convincing way in order to get all the way through. Now if you can do that successfully I don't know maybe you are good enough to be a staff engineer or principal engineer you know maybe you'll be fine [laughter] um and and then we'll hire you right and then uh then the question is can you meet expectations at that level um I I do not have stories about people that we hire that we just we thought was totally lying to us. Um even though I've hired thousands of people I I have not heard that story. Um, I think it's much more difficult than people expect it to be. &gt;&gt; In theory, if someone was a a generational liar, they they could they could do this. It's just a lot harder than people think. Okay. Cuz yeah, I think that's that's on a high level when maybe it's just an engineering mindset. When I'm coming in and I'm thinking about interview prep, my my first thought is, okay, I got to be good at the technical, but the behavioral, I can kind of I can kind of wing it. You know, I can tell some stories. It's a little bit of a softer thing. &gt;&gt; It's about me, right? Just be yourself. &gt;&gt; Yeah, [laughter] I think that's a a a thing that a lot of people get wrong that gets them down. So that's why I'm kind of so curious to go through what what is it in the behavioral interviews that leads to the leveling determination. So um you mentioned there's an initial leveling determination um kind of a a gut call by the first hop in the in the layer and then at some point you're placed into sounds like a range you you mentioned in one case &gt;&gt; exactly &gt;&gt; there's a they're trying to figure it out and so then you're maybe staff maybe senior and they give you another loop. What do you need to do? um such that you are placed in staff if that were your goal. &gt;&gt; The most one of the most im
    
    
    Exit code: 0
  10. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\ncontent = re.sub(r'<[^>]+>', '', content)\ncontent = re.sub(r'align:start position:\\d+%', '', content)\n\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\ntext = ' '.join(seen)\nprint(text[16000:24000])\nEOF"
    }
    In 1Out 303Cache 24,704tool_calls
  11. OutputOutput from command in shell 9b42ca:
    Output from command in shell 9b42ca:
    portant things when you're choosing any kind of story to tell in a behavioral interview or when you're having a conversation with a recruiter, which is also kind of like a behavioral interview, is to ensure that you're establishing yourself as a certain scope and that scope is about what size business problems have I solved with technology and what level of ambiguity and what level of organizations have I have I operated within and what have I been able to accomplish in in that operation. So when you're having a conversation with a recruiter and you're talking about your past experience, you have got to land in that first tell them about yourself kind of thing like oh hey who are you tell what you've been up to. That conversation is super critical and people think about it from an interviewing perspective but it starts there in that conversation with the recruiter. And so you have to come in and say I have demonstrated and delivered large business value with with technology. And it's kind of like the greatest hits from your resume, right? People always tell you have uh you know measurable impact and and and and results that's that's present on your resume. that's that's u using some kind of metrics, right? That's super important. It's also to convey a sense of depth, right? A sense of complexity. You could say something like, well, you know, I improved performance in the Facebook app. And then people say like, okay, that doesn't sound super hard. But if you said something like, well, you know, I organized across 100 engineers, this entire organization to spend a 12-month performance improvement project that ran into multiple very difficult uh, you know, technical issues that required multiple staff level engineers in order to solve many months of investigation and experimentation and then we came out with these like three core principles and then we then we you know we we ship this to performance improvement. So I think when you start talking about the complexity of the work, you need to communicate the technical depth, you need to communicate the organizational depth, you need to communicate the business value and the business impact that you delivered and those are the things that the recruiter is listening for and and and likewise everybody in the process is listening for that. All the interviewers are listening for the same thing. So getting really crisp and practicing that that tell me about yourself piece is is is the first place where you can ensure that you're getting into the right leveling bucket. I I noticed there's a lot of um correlation between what you're talking about and also promotions as well. For instance, when you're talking about promotional behaviors for staff, your projects don't just want to be, hey, I shipped this thing and is good for my team. You want to be doing things that are across the org and larger and complicated and challenging. So, are you saying that those are pretty similar? And &gt;&gt; Oh, yeah. Oh, yeah. In fact, preparing for behavioral interviews will actually make you a better engineer. And I think being a great engineer is how being a great communicator especially about your impact is the thing that you need to do is to be a great behavioral interview. So yes, for sure you need to be able to um quantify your impact, communicate it efficiently, communicate effectively and honestly we're talking about lying earlier and and trying to keep people from lying. But most of my my clients, most of the people I talk to in my coaching business, they they have a problem not telling enough of the truth. like not telling in they're not not boosting themselves enough, not telling talking to me enough about the accomplish accomplishments that they that they've done. So to me, that's the thing that most people need help with. They need to they need help showcasing how difficult the problem was. They need to show help showcasing what kind of impact they made, not just on whatever topline business metric it was, but also what kind of impact did it have on the team, what kind of impact did it have on on code quality, what kind of impact did it have, you know, long term in the organization that they were they were operating within. So for me, think about if you're, you know, I'm coaching engineers to do this. I spend a lot of time thinking about um, you know, what are all the implications of the work that you've done and then how can you be really crisp about having that conversation because the the flip side of that is like, well, if I want to talk about all the things I've done, then it takes a really long time. So that's why it takes some some some preparation, but certainly getting really good at behavioral interviews, communicating, telling stories, for example, telling stories about what you've done. You do that all the time. You do that to your manager every week in a one-on-one. You do that to the executive whenever you're presenting your results. And that's a super important skill to learn as a senior engineer &gt;&gt; in the interview process. It sounds like at every point whether you think you are or not, you're actually being assessed. What I mean is usually that first call, at least from my recollection, it was pitched to me as, hey, this is a little chat you don't need to prepare for. Just go ahead and, you know, come and talk to me. I'm just the recruiter. But actually, that call is, hey, talk to me. I'm trying to figure out what level you are so I can place you in the right loop and even see if you're worth talking to for follow-up. So, am I understanding that people should just sell themselves at every single minute of this recruiting process? [laughter] &gt;&gt; Yeah, always be closing for sure. Definitely this first call is an evaluating call. I They are interested in you, right? Usually they they've they may have contacted you or they have you applied and they're contacting you. So, it is a softer kind of evaluation. You shouldn't be super nervous about it. They are your they are your your buddy. They are your partner. Let's remember that especially at a big company. These sourcers and recruiters are incentivized by how many hires they can deliver. So no, they're not your friend, right? There are certain certain conversations you should be careful about, especially about compensation with these folks, but they are advocating for you. It it is actually benefits them to find some a great candidate and be able to get them all the way through the process. That is in their best interest. So um it is a uh you know it is not a confrontational experience you need to prepare for but yes it is evaluative like you should not just show up to that phone call um dis emotionally disconnected or unprepared to talk about your past experience you and if you're if you are like that then I would delay the call so reschedule the call spend a little bit of time uh preparing what you will say to the recruiter so that they get an accurate sense of the kind of impact that you've delivered and that's going to be your best bet at getting that that higher level offer. I've had experiences where I got through everything and at some point they said, "Congrats, you've got the offer. It's verbal, but you have an offer now. So, you know, congrats. We just want you to talk to the hiring manager just one last time just and this is for you. They want to tell you about the company this and that usually." &gt;&gt; Right. Right. Right. &gt;&gt; Is that also a case where the hiring manager is trying to get signal on you? &gt;&gt; Oh, of course. Of course. I mean, the same exact things apply. So, yes, it's a little bit lower pressure than say the behavioral interview or the coding interview in the middle of the process, but definitely when you're having this hiring manager chat or at a place like Meta or Google, they have a team matching phase, right? Where where you're having conversations with multiple managers and they're trying to find a fi
    
    
    Exit code: 0
  12. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\ncontent = re.sub(r'<[^>]+>', '', content)\ncontent = re.sub(r'align:start position:\\d+%', '', content)\n\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\ntext = ' '.join(seen)\nprint(text[24000:])\nEOF"
    }
    In 1Out 301Cache 26,860tool_calls
  13. OutputOutput from command in shell af6e37:
    Output from command in shell af6e37:
    t. For sure, you know, that conversation is super important for you to have a buttoned up introduction of yourself, a tell me about yourself. I do think that that one is a little bit more social. So in a in an interview setting, the interviewer has a set of questions. They want to go through the questions, right? So the longer you spend introducing yourself, the you're actually hurting your time management there. You're you're you're preventing them from collecting other signal about you. However, I think this this this hiring manager conversation, uh it is more of a like, do I want to work with this person, right? Do I do I want to hang out with this person? So you do need a little bit more of a of a loose social engagement, especially in those early that kind of early phase of the of the of the conversation. and hey you know how's it going weather you know sports tell me something right I think that that connecting with the manager on whatever is important to them is really is really key for that that uh interview but certainly it is not just a a formality or it is not purely for you it is certainly the case that the hiring manager wants to see do I want this person on my team and they need to come out of that conversation with a couple things you know one is do I like this person do I think they'll be successful in the team will they fit the team culture um will I you know will I as a manager benefit from bringing this person onto my team and then they need to come out with the sense that you can deliver and solve problems that are similar to the problems that they have. So, it's so important for you to do as much research with the recruiter and sourcer uh in advance if you're going to have this conversation. Understand what this manager values, understand what their team is working on, and then be able to tell your stories in a way that that showcases that yes, you can solve the problems that this manager has. &gt;&gt; You mentioned briefly there, you said the recruiter, the compensation conversations with the recruiter and how you need to be extremely careful in those conversations. What's the most common mistake people are making when it comes to those compensation conversations? &gt;&gt; Yeah, look, I'm not a negotiation expert. I won't I won't present myself as one. You can even hire people who are who are really good at helping you negotiate with these big tech companies and I recommend that you go get some advice from them. But I will say that um you know early anchoring in any negotiation is dangerous. So if if if early conversations where they're asking you about your uh compensation expectations, um you should be very careful about what you tell them because that will uh that will anchor you into the expectation to the conversation that you that you talk about. You should definitely get some advice and and understand the laws in your local um uh uh jurisdiction. So for example, in California and New York, uh you're required the recruiter is required to to tell you about the bands and salary bands and total comp bandants for for each each of the the jobs that you're being applying for. So you can leverage that to understand where you are in the comp bands um at that point. But I would not say I'm an expert at at negotiation. I think probably the probably the biggest mistake most people make is they don't have multiple offers. So if you are negotiating from a position of weakness like I don't have any other offers. I'm just talking to you and you're the only company I'm going to be very difficult for you to get to extract anything from that that company. And which is why it's it's so important for you to to orchestrate your offers to land at a somewhat similar time. I know that's more stressful. I understand it takes more work, you know, to go through the the interview process at the same time. Um, but if you have multiple offers in hand, that's your best your best bet for being able to improve your compensation position. &gt;&gt; So, I guess going back to the the leveling side of things, let's say let's say I'm staff engineer and I I will only take an interview if it's staff and I make a mistake early in the process, like I'm talking to the recruiter, &gt;&gt; like on the phone screen, for example. &gt;&gt; Yeah. Yeah. Can I be direct with the recruiter and say, "Hey, I'm I see that I'm getting a lot of coding interviews. I think maybe I I got the wrong I might have sent the wrong signal." In which case, it's fine. Let's just end the process or can I get leveled at a higher? Can you negotiate at that level in mid-process? &gt;&gt; Yeah, that's a really good question. I'm sure it depends on the company and the process. I would say that's a good conversation to have with your recruiter if if you know that you're being placed in uh to consideration for a level that you don't want to be. Um what I will say is that there are many times when we would uplevel people as well as down level people and um so the recruiter will is their interest. They'll try to keep you in the process. They will say let me stick around you know maybe we'll evaluate you and and and maybe we'll you know we'll offer you this second thing. And I would push for um to go ahead and try to get as much of that evaluation process done for the level that you would like to to um be hired for as much as possible. That way you don't have to go through follow-up interviews or they don't have to, you know, change something about the process late in the game. Try to collect as much information for the hiring committee um at as as possible at once as possible. So yes, I think that's a good conversation to have. Um but uh you know if it was a job you were really interested in and they were offering they were considering you for one level below uh and they were not willing to change anything I I would it depends on the job obviously depends on the total comp opportunity and where you're at. But I would say try to rock the interviews as much as possible and then get that consideration for the higher level. And you can do that in a couple of key ways. So the first way is to make sure that you're anchoring every conversation you have with all of your interviewers at that higher level which again comes back down to that tell me about yourself when when they especially behavioral and the system design interview when you're having those conversations and you are talking about very large scope projects talking about impact which is commensurate with that higher level the behavioral interviewer especially will notice that and uh then they will want to dive into that and they will want to ask you questions and they will then you're re resetting their mind about what what to expect from the interview and that's super important. And then the second place is in that uh is in the story choice that you have for your behavioral interviews. So remember that um this whenever someone's asking you a behavioral interview question, there's always a question behind the question. Like why they ask me this? They don't actually really care about my favorite project or like they really don't actually care that much about some time I had a conflict with my manager. They're probably going to forget a bunch bunch of those that that that detail right after the interview. What they want to see is are you operating at the level that they're expecting you to operate. So make sure and I talk about this in the book. There's four different considerations for whenever you choose a story and the number one choice is scope. You want to make sure that you have come out of that behavioral interview telling the stories that that are the highest scope and the ones that represent you the most, the ones that you would love to tell to a hiring manager. So that's your job as a behavioral interview candidate. I want to leave that interview having told the most important stories from my career. And sometimes that can be kind of challenging because they they you are not driving, right? The interviewer is driving. But your task as a candidate is to guide the interviewer towards that signal towards that place in your career where they're going to collect the signal that uh you think best represents you and and you do that by choosing stories that are the highest scope and the highest impact that you've delivered. So around a year ago a buddy of mine he was applying for a senior role at all of the top AI labs and he actually got an offer at Anthropic. when he was going through the process, I remember him telling me that the single most impactful tool for him in preparing for system design was the free resources that Hello Interview has on their website. If you are preparing for technical interviews, I highly recommend you check out Hello Interview. I would have said that even before they sponsored this episode. I think they're providing something that's great for the community. Also, if you're preparing for behavioral interviews, they're actually partnering with Austin to provide more behavioral interview resources on their website. So, I'll put a link in the show notes so you can check it out. This is the absolute first ad I've ever done for this podcast after over a year. Right now, the podcast is running net negative. Hopefully, it can sustain itself soon. This is a step in that direction. And I just want to say thank you so much for supporting the podcast. With that, let's get back into the episode. Austin's about to tell us how to avoid being downleveled accidentally. The big question then is how how do you do it concretely? Maybe we can go over some concrete examples. What would a senior scope project look like? What would a staff project look like? Senior staff, principal. Maybe we can take the same example and kind of evolve it so people can hear what are the keywords people are looking for. &gt;&gt; Right? I'll give you a sense of where um big tech co… (91079 chars truncated)
    
    Exit code: 0
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/8f2b175f/content.txt
    </truncation_notice>
  14. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\ncontent = re.sub(r'<[^>]+>', '', content)\ncontent = re.sub(r'align:start position:\\d+%', '', content)\n\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\ntext = ' '.join(seen)\n# Print the rest\nprint(text[24000+len(\"t. For sure, you know, that conversation is super important for you to have a buttoned up introduction of yourself, a tell me about yourself. I do think that that one is a little bit more social. So in a in an interview setting, the interviewer has a set of questions. They want to go through the questions, right? So the longer you spend introducing yourself, the you're actually hurting your time management there. You're you're you're preventing them from collecting other signal about you. However, I think this this this hiring manager conversation, uh it is more of a like, do I want to work with this person, right? Do I do I want to hang out with this person? So you do need a little bit more of a of a loose social engagement, especially in those early that kind of early phase of the of the of the conversation. and hey you know how's it going weather you know sports tell me something right I think that that connecting with the manager on whatever is important to them is really is really key for that that uh interview but certainly it is not just a a formality or it is not purely for you it is certainly the case that the hiring manager wants to see do I want this person on my team and they need to come out of that conversation with a couple things you know one is do I like this person do I think they'll be successful in the team will they fit the team culture um will I you know will I as a manager benefit from bringing this person onto my team and then they need to come out with the sense that you can deliver and solve problems that are similar to the problems that they have. So, it's so important for you to do as much research with the recruiter and sourcer uh in advance if you're going to have this conversation. Understand what this manager values, understand what their team is working on, and then be able to tell your stories in a way that that showcases that yes, you can solve the problems that this manager has. &gt;&gt; You mentioned briefly there, you said the recruiter, the compensation conversations with the recruiter and how you need to be extremely careful in those conversations. What's the most common mistake people are making when it comes to those compensation conversations? &gt;&gt; Yeah, look, I'm not a negotiation expert. I won't I won't present myself as one. You can even hire people who are who are really good at helping you negotiate with these big tech companies and I recommend that you go get some advice from them. But I will say that um you know early anchoring in any negotiation is dangerous. So if if if early conversations where they're asking you about your uh compensation expectations, um you should be very careful about what you tell them because that will uh that will anchor you into the expectation to the conversation that you that you talk about. You should definitely get some advice and and understand the laws in your local um uh uh jurisdiction. So for example, in California and New York, uh you're required the recruiter is required to to tell you about the bands and salary bands and total comp bandants for for each each of the the jobs that you're being applying for. So you can leverage that to understand where you are in the comp bands um at that point. But I would not say I'm an expert at at negotiation. I think probably the probably the biggest mistake most people make is they don't have multiple offers. So if you are negotiating from a position of weakness like I don't have any other offers. I'm just talking to you and you're the only company I'm going to be very difficult for you to get to extract anything from that that company. And which is why it's it's so important for you to to orchestrate your offers to land at a somewhat similar time. I know that's more stressful. I understand it takes more work, you know, to go through the the interview process at the same time. Um, but if you have multiple offers in hand, that's your best your best bet for being able to improve your compensation position. &gt;&gt; So, I guess going back to the the leveling side of things, let's say let's say I'm staff engineer and I I will only take an interview if it's staff and I make a mistake early in the process, like I'm talking to the recruiter, &gt;&gt; like on the phone screen, for example. &gt;&gt; Yeah. Yeah. Can I be direct with the recruiter and say, \\\"Hey, I'm I see that I'm getting a lot of coding interviews. I think maybe I I got the wrong I might have sent the wrong signal.\\\" In which case, it's fine. Let's just end the process or can I get leveled at a higher? Can you negotiate at that level in mid-process? &gt;&gt; Yeah, that's a really good question. I'm sure it depends on the company and the process. I would say that's a good conversation to have with your recruiter if if you know that you're being placed in uh to consideration for a level that you don't want to be. Um what I will say is that there are many times when we would uplevel people as well as down level people and um so the recruiter will is their interest. They'll try to keep you in the process. They will say let me stick around you know maybe we'll evaluate you and and and maybe we'll you know we'll offer you this second thing. And I would push for um to go ahead and try to get as much of that evaluation process done for the level that you would like to to um be hired for as much as possible. That way you don't have to go through follow-up interviews or they don't have to, you know, change something about the process late in the game. Try to collect as much information for the hiring committee um at as as possible at once as possible. So yes, I think that's a good conversation to have. Um but uh you know if it was a job you were really interested in and they were offering they were considering you for one level below uh and they were not willing to change anything I I would it depends on the job obviously depends on the total comp opportunity and where you're at. But I would say try to rock the interviews as much as possible and then get that consideration for the higher level. And you can do that in a couple of key ways. So the first way is to make sure that you're anchoring every conversation you have with all of your interviewers at that higher level which again comes back down to that tell me about yourself when when they especially behavioral and the system design interview when you're having those conversations and you are talking about very large scope projects talking about impact which is commensurate with that higher level the behavioral interviewer especially will notice that and uh then they will want to dive into that and they will want to ask you questions and they will then you're re resetting their mind about what what to expect from the interview and that's super important. And then the second place is in that uh is in the story choice that you have for your behavioral interviews. So remember that um this whenever someone's asking you a behavioral interview question, there's always a question behind the question. Like why they ask me this? They don't actually really care about my favorite project or like they really don't actually care that much about some time I had a conflict with my manager. They're probably going to forget a bunch bunch of those that that that detail right after the interview. What they want to see is are you operating at the level that they're expecting you to operate. So make sure and I talk about this in the book. There's four different considerations for whenever you choose a story and the number one choice is scope. You want to make sure that you have come out of that behavioral interview telling the stories that that are the highest scope and the ones that represent you the most, the ones that you would love to tell to a hiring manager. So that's your job as a behavioral interview candidate. I want to leave that interview having told the most important stories from my career. And sometimes that can be kind of challenging because they they you are not driving, right? The interviewer is driving. But your task as a candidate is to guide the interviewer towards that signal towards that place in your career where they're going to collect the signal that uh you think best represents you and and you do that by choosing stories that are the highest scope and the highest impact that you've delivered. So around a year ago a buddy of mine he was applying for a senior role at all of the top AI labs and he actually got an offer at Anthropic. when he was going through the process, I remember him telling me that the single most impactful tool for him in preparing for system design was the free resources that Hello Interview has on their website. If you are preparing for technical interviews, I highly recommend you check out Hello Interview. I would have said that even before they sponsored this episode. I think they're providing something that's great for the community. Also, if you're preparing for behavioral interviews, they're actually partnering with Austin to provide more behavioral interview resources on their website. So, I'll put a link in the show notes so you can check it out. This is the absolute first ad I've ever done for this podcast after over a year. Right now, the podcast is running net negative. Hopefully, it can sustain itself soon. This is a step in that direction. And I just want to say thank you so much for supporting the podcast. With that, let's get back into the episode. Austin's about to tell us how to avoid being downleveled accidentally. The big question then is how how do you do it concretely? Maybe we can go over some concrete examples. What would a senior scope project look like? What would a staff project look like? Senior staff, principal. Maybe we can take the same example and kind of evolve it so people can hear what are the keywords people are looking for. &gt;&gt; Right? I'll give you a sense of where um big tech co\"):])\nEOF"
    }
    In 1Out 2,447Cache 28,915tool_calls
  15. OutputOutput from command in shell 600205:
    Output from command in shell 600205:
    mpanies like fang oriented companies are at with their levels now. But for the specific company that you're applying to, you should go do some research and figure out what is expected of a mid-level engineer, what is expected of a staff level engineer. Oftentimes you can find this information on the internet but I'll tell you a very simple rubric is something like a you know a new grad engineer is doing tasks you know they do a task uh come back to the team go to the manager Jira whatever whatever has given them the task they go do another task right that's their job a mid-level engineer is doing a feature a feature has many tasks and and the feature is something that might take you know a couple of weeks or something and that's what they're that's what they're working on and the senior engineer is uh doing projects projects have many features which have many tasks often times projects are ones that working through others perhaps um other uh mid-level engineers or other junior engineers who are working underneath them. So there's some kind of leadership and delegation and organization and communication expectation for this level five person or or the senior person staff person um level six at at meta for example would be uh somebody who is responsible for some kind of goal right so uh this is the goal the in order to accomplish this engagement goal or this uh you know revenue goal we have need to have multiple projects which have multiple features multiple tasks right so there's this natural cascading hierarchy of of what's expected based on ambiguity right that's how we that's how that's what levels really mean is how much ambiguity can you handle. The ambiguity of an intern is very different than the ambiguity of the CEO. Uh and that's what what uh what differentiates the levels and differentiate compensation. And then this like level seven or this principle or distinct whatever you want to call it. This next level is more about uh organization. So I'm responsible for an entire organization which has many goals which just many projects which just many features many tasks and then maybe whatever the next level is it's sometimes it's distinguished or or different people have different names for this thing but that's uh responsible for for like industry I'm responsible for this industry right which has or this entire uh you know business which has many organizations which has many uh goals etc. So I think that when you're when you're choosing stories to tell about landing a certain job, you need to understand what those level expectations are at the company that you're that you're targeting and then making sure that you're telling stories that hit those hit those notes. So let's take for example staff um staff level engineer is a big difference between that and a and a senior engineer and really it comes down to how the the breadth of impact that you're making. So you're you are uh making impact more than just your small project and your small area. oftentimes it's an entire team or maybe multiple teams you're working with. Oftentimes you're telling stories that involve a lot of of working across an organization, a very large organization. So this is why it's so difficult for for startup engineers unless you were the founder for example to get a job at staff or hire is because those those experiences are oftentimes u limited by the number of people that you've worked with. So if you didn't have to, you know, if there was only one stakeholder CEO and like two or three engineers, it's pretty difficult for you to demonstrate the kind of depth of organizational leadership that is required for that that staff level position. Um then there's like a technology uh complexity. So here you can uh and this really difficult in a behavioral interview. How do I communicate the difficulty of this technology problem, this this bug or this this this architecture decision? And you have to quantify that. So you have to talk about the the amount of time it has. You have to quantify the risk. you have to talk about the number of people you had to talk to to get advice or you have to somehow give me a sense of um how risky it was right in order to make this choice how difficult it was for you to back out of this choice for example so you can you can uh talk around the complexity of this technical problem and give me a sense of of what what is there um and then there's oftentimes leadership pieces this is something that's people forget about uh they talk maybe they maybe they talk about tech oft almost always they talk about technology right engineers oh I love talk about tech you know probably if anybody they talk too much about tech Uh then there's this organizational thing which I talked about before but sometimes people forget to even talk about the leadership parts. A lot of projects involve um some kind of influence and mentorship for example over others. So now you're convincing people to do things maybe they don't want to do. That's a big part of of of a staff engineer motivating people or getting concessions out of other teams aligning on road maps that sort of thing. And then there's also mentoring. So how did I mentor and help the people who worked underneath me and made them better? How did I make the team better? How I make the org better? So those things are oftenimes forgotten about when people are trying to to anchor this the the listener uh and make them think yes this is a this is a staff level engineer. So really and and we go back to what you said earlier if you can reflect on your own career and understand what makes you successful and you can identify those pieces which um differentiate you from other engineers. Those are the things that you need to talk about in the in the behavioral interview. Uh and and vice versa. So if you reflect back on your career as a behavioral interview behavioral candidate and you think about what made me successful, then you can start to repeat those things in your day job, right? And and you'll be more successful in what you do. &gt;&gt; If you know the rubric, then you can you can do the rubric and you can also talk the rubric as well, &gt;&gt; right? So know the rubric, right? That's the most important thing. [laughter] I think one of the biggest ways that you talked about scope was kind of in the organizational complexity or how many what's the leadership position you are in the org but what about specialists? So I've worked with engineers who they're solving problems that no one else can solve. They're their own snowflake and we need that person cuz they're pushing the industry forward and it's having a lot of impact. How is someone like that supposed to talk about their work? &gt;&gt; Yeah. So the first thing is to understand business impact of what you're doing and um I think this is really hard for some engineers right who are focused more on the technology. Um but there is some reason why this technology was required and some kind of context which around which it's it it it uh it lives and I always encourage people to think about what would Steve Jobs say about this like technological advancement that you that you've brought about. Why is it that that this project was so important or so uh critical to the company? What's the business context? So, make sure that you're delivering that. &gt;&gt; One framing I know that's common in promo committees is this person solved problems that those people couldn't and well those people are staff. So then if he's solving problem staff people then he or she must be uh greater than staff. So when your manager is saying that on your behalf in a promo committee it makes sense. If you say that on your own stories, say, "Yeah, I I landed this project and actually there's a team of five staff engineers that failed for a year before I got there." Sounds a little bit uh a little bit like too much. &gt;&gt; I don't think actually I don't think so. I totally disagree. So I think this is one of the the methods that I that I hear and is very successful is again you're talking around this complexity to give people a sense and to pattern match in their mind. So behavioral interviewers are pattern matchers. They are looking to see if you match the patterns that they expect for this level. And one of those things is going to be whether or not you have solved problems other people haven't. So I don't think it is necessarily bad to say something like when I took on this project I was the third owner and this is where they had failed. And this is where I'm looking for there is not just like haha I'm better than all these other people. I'm looking for the insight that made their efforts unsuccessful. So, oh, these people attempted, you know, this product market fit and that didn't work. Or these people attempted, you know, this technical approach and that didn't work for these reasons. And that kind of judgment and reflection is a big part of of uh of uh of assessing someone at a senior level and something that people often forget. They just tell the story, had a problem, I solved the problem, I'm done. And not giving me some sense of um what they learned or what the deeper insight is. And to me, that's the sign of somebody who's u you know, above staff level. the analoges between promotion conversations and recruitment conversations. It makes a lot of sense to me. And one thing that I see actually because when I was looking through the the YouTube comments of a previous interview done, there were some people were saying people can just oversell themselves and the person was a little bit salty that someone could manage the optics and kind of get a good recruitment outcome. But and I see very similar stuff on the promo the promo content that I've made is some people usually a vocal minority saying, "Oh, this person just really knows how to sell themselves." And I think um it's I think that's true and unfortunate that uh… (81117 chars truncated)
    
    Exit code: 0
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/23c8ad8a/content.txt
    </truncation_notice>
  16. Devin
    read(file_path: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_30…)
    {
      "file_path": "/var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/23c8ad8a/content.txt"
    }
    In 1Out 102Cache 31,460tool_calls
  17. Output<file-view path="/var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/23c8ad8a/conte
    <file-view path="/var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/23c8ad8a/content.txt" start_line="1" end_line="5" total_lines="5">
      1|Output from command in shell 600205:
      2|mpanies like fang oriented companies are at with their levels now. But for the specific company that you're applying to, you should go do some research and figure out what is expected of a mid-level engineer, what is expected of a staff level engineer. Oftentimes you can find this information on the internet but I'll tell you a very simple rubric is something like a you know a new grad engineer is doing tasks you know they do a task uh come back to the team go to the manager Jira whatever whatever has given them the task they go do another task right that's their job a mid-level engineer is doing a feature a feature has many tasks and and the feature is something that might take you know a couple of weeks or something and that's what they're that's what they're working on and the senior engineer is uh doing projects projects have many features which have many tasks often times projects are ones that working through others perhaps um other uh mid-level engineers or other junior engineers who are working underneath them. So there's some kind of leadership and delegation and organization and communication expectation for this level five person or or the senior person staff person um level six at at meta for example would be uh somebody who is responsible for some kind of goal right so uh this is the goal the in order to accomplish this engagement goal or this uh you know revenue goal we have need to have multiple projects which have multiple features multiple tasks right so there's this natural cascading hierarchy of of what's expected based on ambiguity right that's how we that's how that's what levels really mean is how much ambiguity can you handle. The ambiguity of an intern is very different than the ambiguity of the CEO. Uh and that's what what uh what differentiates the levels and differentiate compensation. And then this like level seven or this principle or distinct whatever you want to call it. This next level is more about uh organization. So I'm responsible... [truncated 89079 chars]
      3|
      4|
      5|Exit code: 0
    </file-view>
  18. Devin
    exec(command: python3 - <<'EOF' import re with open("…)
    {
      "command": "python3 - <<'EOF'\nimport re\n\nwith open(\"/tmp/yt_caption.en.vtt\", \"r\") as f:\n    content = f.read()\n\ncontent = re.sub(r'WEBVTT.*?\\n\\n', '', content, flags=re.DOTALL)\ncontent = re.sub(r'\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> .*\\n', '', content)\ncontent = re.sub(r'^\\d+\\s*$', '', content, flags=re.MULTILINE)\ncontent = re.sub(r'<[^>]+>', '', content)\ncontent = re.sub(r'align:start position:\\d+%', '', content)\ncontent = re.sub(r'&gt;', '>', content)\ncontent = re.sub(r'&amp;', '&', content)\n\nlines = [l.strip() for l in content.split('\\n') if l.strip()]\nseen = []\nprev = None\nfor line in lines:\n    if line != prev:\n        seen.append(line)\n        prev = line\n\ntext = ' '.join(seen)\nprint(f\"Total chars: {len(text)}\")\n# Save to file\nwith open(\"/tmp/full_transcript.txt\", \"w\") as f:\n    f.write(text)\nprint(\"Saved to /tmp/full_transcript.txt\")\nEOF"
    }
    In 1Out 387Cache 36,123tool_calls
  19. OutputOutput from command in shell 2e9c66:
    Output from command in shell 2e9c66:
    Total chars: 124471
    Saved to /tmp/full_transcript.txt
    
    
    Exit code: 0
  20. Devin
    exec(command: python3 - <<'EOF' with open("/tmp/full_t…)
    {
      "command": "python3 - <<'EOF'\nwith open(\"/tmp/full_transcript.txt\") as f:\n    text = f.read()\n\n# Print last 40k chars\nprint(text[40000:80000])\nEOF"
    }
    In 1Out 102Cache 36,774tool_calls
  21. OutputOutput from command in shell 7f95d9:
    Output from command in shell 7f95d9:
    ne of the biggest ways that you talked about scope was kind of in the organizational complexity or how many what's the leadership position you are in the org but what about specialists? So I've worked with engineers who they're solving problems that no one else can solve. They're their own snowflake and we need that person cuz they're pushing the industry forward and it's having a lot of impact. How is someone like that supposed to talk about their work? >> Yeah. So the first thing is to understand business impact of what you're doing and um I think this is really hard for some engineers right who are focused more on the technology. Um but there is some reason why this technology was required and some kind of context which around which it's it it it uh it lives and I always encourage people to think about what would Steve Jobs say about this like technological advancement that you that you've brought about. Why is it that that this project was so important or so uh critical to the company? What's the business context? So, make sure that you're delivering that. >> One framing I know that's common in promo committees is this person solved problems that those people couldn't and well those people are staff. So then if he's solving problem staff people then he or she must be uh greater than staff. So when your manager is saying that on your behalf in a promo committee it makes sense. If you say that on your own stories, say, "Yeah, I I landed this project and actually there's a team of five staff engineers that failed for a year before I got there." Sounds a little bit uh a little bit like too much. >> I don't think actually I don't think so. I totally disagree. So I think this is one of the the methods that I that I hear and is very successful is again you're talking around this complexity to give people a sense and to pattern match in their mind. So behavioral interviewers are pattern matchers. They are looking to see if you match the patterns that they expect for this level. And one of those things is going to be whether or not you have solved problems other people haven't. So I don't think it is necessarily bad to say something like when I took on this project I was the third owner and this is where they had failed. And this is where I'm looking for there is not just like haha I'm better than all these other people. I'm looking for the insight that made their efforts unsuccessful. So, oh, these people attempted, you know, this product market fit and that didn't work. Or these people attempted, you know, this technical approach and that didn't work for these reasons. And that kind of judgment and reflection is a big part of of uh of uh of assessing someone at a senior level and something that people often forget. They just tell the story, had a problem, I solved the problem, I'm done. And not giving me some sense of um what they learned or what the deeper insight is. And to me, that's the sign of somebody who's u you know, above staff level. the analoges between promotion conversations and recruitment conversations. It makes a lot of sense to me. And one thing that I see actually because when I was looking through the the YouTube comments of a previous interview done, there were some people were saying people can just oversell themselves and the person was a little bit salty that someone could manage the optics and kind of get a good recruitment outcome. But and I see very similar stuff on the promo the promo content that I've made is some people usually a vocal minority saying, "Oh, this person just really knows how to sell themselves." And I think um it's I think that's true and unfortunate that uh it can just be not necessarily your your achievements by themselves just objectively being true. you kind of have to you we're it's a very human process. So how you sell it is going to have a big impact on how it's perceived in both of these. So I I guess it's one of those things where it's just how it is and you need to learn how to play that game if you want to have good results in the game. >> Yeah. Welcome to the world, right? And this this works for uh this works this is the case in our careers. This is the case in our personal relationships. Don't you know that I love you? Can't you can't you just feel that I love you? That doesn't work, right? You have to do the behaviors. You have to demonstrate the things that in your relationships. You have to demonstrate the things in your career. And you you have to to to tell people, right? You have to communicate those things. And uh that may be unpleasant for some some folks. And it's can be difficult, but this is part of um of of us maturing as as people and us maturing in our careers is understanding that there are certain things that are worth doing that maybe um is a tax like on our on our progress. Um you don't have to do them, but you also will not get promoted or you also will not get the uh like staff level engineer um uh job, right? I I I tell people, look, on the other side of this principal engineering job is a million dollars a year compensation. So, you better eat your waties before you go into that interview, right? You better be ready. And and you can say what you want about like how difficult it is to assess people or whatever, but they're going to give you a million dollars a year. They're going to put you through the ringer, so you need to be ready for that. >> So, going back to the um the the promo committees, I I wanted to understand I'm just kind of like recollecting all the people you mentioned. So there's the sorcerer, there seems to be a hiring committee, there's the people >> recruiter. >> Okay. Yeah, the recruiter, there's the people in the hiring committee, there's the people who conduct interviews, and I guess they draft up notes that the hiring committee reviews, but who's the actual decision maker in these processes, >> right? Right. So, we should talk there's a sourcer. There's also a different person called a recruiter. I forgot to mention them, but usually the sourcer is someone who finds you. they typically will hand you off to someone called a recruiter once you get into the process once you get through the phone screen. And uh this person is the person that you're going to be doing the negotiation with, the person who's going to be organizing your loop, the person who's going to be advocating for you in front of the hiring committee. So there are obviously many decision makers. There's a sourcer who's just looking at your LinkedIn and deciding whether they should contact you. There's that that decision. There's also the decision of uh the um you know the initial phone screener, whoever's talking to you at different levels. That could be again that that sorcerer doing a a multiple choice question or it could be an engineer who's giving you a phone like a a coding phone screen. Then um there's uh the hiring committee. So the committee makes a decision based on um and usually it's driven by consensus. So uh but sometimes we would have to fall back into voting. Um but the uh consensus uh would be established of whether or not this person should be hired at this level or whether we should do a a uh you know follow-up or whether we should drop the person from the process and then again like I said there's this decision being made generally as a consensus among two or three engineering directors who are uh you know who are above us making that final call and those folks would would operate mostly in consensus but sometimes they would vote. >> [snorts] >> in the hiring committee. Have you ever seen cases where there was some obvious bias? Maybe someone's son happens to land in the hiring committee of uh the father or something like that. [laughter] >> I've never seen an experience where there's any kind of overt nepotism or bribery or anything that's really exciting like that. But I have seen cases where um referrals play a huge a huge um you know a huge role whether or not the referral comes from somebody who's very senior or whether or not um someone has actually showed up to in the room in the hiring committee. So sometimes there's a a friend or there's uh someone who's worked with this person before and they will show up and advocate for you in the room um and to the hiring committee and that does make a big difference. So if you can find a referral, I know this is not news or to anybody, but if you can find a referral, if you can find somebody who knows you and who will be willing to to go and spend their time in a meeting, that will make a big difference. >> When I worked at Meta, I mean, referrals and as a low-level engineer, they just kind of felt like this thing where I just fired it off and forgot about it. But are you saying that at a higher level like the the level of the person matters and to the point where they can even hop into the hiring committee? Is that right? >> For sure. So um uh well yes for sure the level the person who's who's providing this advice is is very much matters. So if it's a VP or a director who is referring this person, they understand that their their reputation is on the line. They are not just passing through someone they found on LinkedIn [laughter] to this to this process. they are they I've directly worked with this person most likely and are willing to put their personal reputation on the line to to hire this person that's a big deal um I will say that referrals of course have varying quality so we talked about level also the content of the referral so if it's like hey I knew this person in school like maybe consider them is very different than I work with this person they have this quality this quality this quality this quality and that's why you should hire them and so for certainly when you asking for a referral especially if the person has worked directly with you you should provide information to them you should like write the referral for them provide … (30038 chars truncated)
    
    Exit code: 0
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/1bab48dd/content.txt
    </truncation_notice>
  22. Devin
    exec(command: python3 - <<'EOF' with open("/tmp/full_t…)
    {
      "command": "python3 - <<'EOF'\nwith open(\"/tmp/full_transcript.txt\") as f:\n    text = f.read()\nprint(text[80000:])\nEOF"
    }
    In 1Out 92Cache 37,210tool_calls
  23. OutputOutput from command in shell 4767bc:
    Output from command in shell 4767bc:
    ld do when I would look at at a at a staff level packet is I would go to the behavioral interview. There just aren't that many different ways to design like a web crawler in a system design interview or aren't that many ways to solve twosome in a coding interview such that I could see whether or not someone is a staff level or just a senior level. And I would go directly to the behavioral interview to see what the uh organizational impact is, what their level of influence is on others, how they resolve conflict. I would look to see uh what scope of projects they've they've been able to to accomplish and what what level of business impact they've been able to deliver and that would be my how I would determine whether or not they're really truly a staff engineer and like you mentioned at that that um you know super senior like staff plus kind of principal distinguished level they're adding additional behavioral interviews and oftentimes they're looking at specific things things like uh how you work crossf functionally with uh with partners they may give you a PM for example or another person from a a cross functional partner that will interview you and see how you work with others. Or they're going to be wanting to to get more information about one of your bigger stories, one of your bigger projects. So, they're going to give you some kind of project deep dive interview where you walk them through some technical and organizational challenge that you've solved in the past. And so, those become the differentiators and the the technical ones become kind of like uh check marks like you have to pass, you have to get over the bar, but really what's going to get you hired is going to be shining on those behavioral sides. So, certainly a slide I would say that most people underinvest in behavioral interview. So, uh, it's probably going to take you at least a few weeks to to, um, to perform well. And if you are at that staff or above, I would say, you know, start start when you start doing your leak code, [laughter] right? Start thinking about those past stories, start working on how you position them, get some feedback. Um, go do some mock interviews at least with a friend, if not with a professional. Um, and especially if you're going to be uh applying for a fang or or uh you know, open eye or anthropic, one of these big companies that's very in demand, I would try to find somebody who is calibrated uh at that company who can give you a mock interview and give you that that squishy cultural sense that we were talking about earlier and and reflect back to you whether or not you're hitting the right cultural notes. when you were in uh hiring committees in the past for maybe more senior candidates, when you have a candidate who does okay on the technical sides but really kills it on behavioral, is that the type of packet that could go through at the highest levels? um for certainly at the highest levels definitely if there's a place where you're going to flub a coding interview and be okay I think that staff or or principal level or manager level those places where we just don't expect you to be doing as much day-to-day coding and so we would would discount poor performances in those in those interviews for sure I think it's much harder to do that um uh at the junior levels I will say that I had I had a candidate that I did the behavioral for and uh this candidate was uh had not accomplished a ton in their career um the the the technical things were just okay. But I kept seeing glimpses of uh you know ideas that this candidate had had that maybe they weren't able to execute on or the manager didn't agree or they couldn't get it done in their organization but they kept thinking about things and I said now this person is just has so much like potential in this person's career that I I pushed for that person to be hired and that person ended up um being a staff person eventually and I think that that was a good indication that um you know there is a there is like a there's a slope that we're trying to assess and the slope is often assessed there in that behavioral interview even for junior folks. >> We talked about some of the subjectivity in in this type of interview and talking about how you talk about the the scope of your work and all of those things that kind of help you with leveling conversation. But also another part of subjectivity is just how much does this person like you and their their bias towards you based off of a lot of the soft influence you might have as you speak to them. And so I'm curious how much influence do you think that has on the outcome of the interview? >> It scales exactly with with uh with level. So with a more junior candidate, I think that um at least at a big company where they've spent some time structuring these behavioral interviews and they're trying to reduce this kind of do I just want to have a beer, you know, with this person kind of vibe that that they're that they're collecting. They're trying to reduce that by structuring it and making uh giving the the interviewer some sort of form to fill out or some clarifying what's what's important in the hiring decision. But as you get more senior um now they're expecting you to influence other people on the job and that so they'll how you come across in the meeting. Are you confident? Are you comfortable? Are you able to uh hold on to this kind of like casual casual excellence? Right? Which I think is a very much a a quality a cultural quality that that u that Silicon Valley has in particular. this idea that I can kind of show up and I look cool and I look not look cool but I look calm but yet I'm still very competent and can sharply discuss things and deliver things. I think they are looking for that kind of signal and um it's it's definitely subjective and so I think your your ability to connect with the interviewer in the first few minutes. If you come in and you're disheveled or you come in and you're nervous and you're not able to be present in the meeting, well, that's part of the signal they're acquiring because you're going to have to show up in meetings and and and be, you know, put together and be confident and and be able to stand in front of the CEO and deliver um you know, deliver good news or bad news or ask some questions or whatever. they are looking for somebody who will do a good job with that and they're you know this is a high pressure situation an interview you're going to be in a high pressure situation at work and they're assessing you there as well so um I think this is where you need to understand the cultural expectations of your companies that you're that you're uh that you're applying for different countries have different expectations around leadership and and hierarchy and how they approach things um I think we're talking mostly about like a US- centered kind of Silicon Valley centered or you know associated places Seattle New those kinds of culture and that place is one of u we need to be able to start the meeting with some kind of playful banter you know and then we continue with like hard-hitting pieces but sometimes I I'm I'm self-deprecating and I kind of pow of that and we laugh about a few things but then we're back in it and we're doing this like intense thing so that's super common for uh for for those environments other countries other companies they may have different expectations I think you need to understand what those are before you go in >> let's say someone is maybe a staff engineer they're not necessarily the most they wouldn't describe themselves as a people person, but they want to come off strong in that interview. How would you reverse engineer how to represent yourself strongly in terms of all those soft influence type of things? >> So the first thing I say is that the inside always comes out on the outside. Okay, I know you don't want to hear that, but the reality is what you believe about yourself, what you believe about others really changes how you present yourself. So the first thing I would say is it is not just some like list of things that we need to do or a checkbox stuff that you kind of put on. It's not a mask that you put on. You need to change your your internal beliefs. And um uh Sam Lesson has this this book he just released about Silicon Valley etiquette and he did this podcast recently where he talks about the importance of lowering your own heart rate before you go into the conversation. So yes, this might be your like one and only shot at this job. It's possible. oftentimes that's less the case than than most than most candidates believe. So sometimes we think like, "Oh, this is my one shot at getting this company." Well, if the company's going to be around for a while, you probably have other shots. So don't put so much pressure on yourself. I know it's hard, but it that is the reality. You need to tell yourself, give yourself an internal belief structure that makes it okay for you to make mistakes in this environment. You will come across a lot more calm. The second thing I say is try to um try to understand what and be empathetic of the other person. So again, this is an internal thing. believe that the other person is looking for a great engineer, a great manager, whatever it is, whatever the role that you're applying for, they're looking for somebody who's going to do really awesome. They really want they want to find that person. They're spending their time interviewing you. They really want to find somebody who's great. And um they're not just looking to nitpick you and like throw you out and and judge you, right? So, I think this kind of internal belief where you believe, you know, this person is is is not my enemy. This person is is is is a human doing their job. I would love to do my job alongside this person. let's have this great conversation. So that's the first thing you have to start start on the inside. Um if we ar… (34509 chars truncated)
    
    Exit code: 0
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/ad172313/content.txt
    </truncation_notice>
  24. Devin
    exec(command: python3 - <<'EOF' with open("/tmp/full_t…)
    {
      "command": "python3 - <<'EOF'\nwith open(\"/tmp/full_transcript.txt\") as f:\n    text = f.read()\nprint(text[110000:])\nEOF"
    }
    In 1Out 92Cache 39,598tool_calls
  25. OutputOutput from command in shell 6416f1:
    Output from command in shell 6416f1:
    s a behavioral interviewer. So you should only include details which which help to accomplish some tasks. So maybe the task is that I want to showcase I'm deeply technical. I want to include a few details like that. Maybe the the task right now for me is the candidate is to showcase that I am somebody who can work across teams. So, I want to include the the the part about how the the other tech lead had an had a bad, you know, had a mean look on his face when I went to to to talk about this thing. Maybe that detail is relevant, right? Because it showcases how I push through difficulty and push back on on other teams. So, um yes, I think those things are relevant. I think most candidates probably need to spend more of their time on basic uh story structure, basic identification of what actions they did that are repeatable. You know, I wanted to ask you about your senior your your promotion to M2 at Meta. Actually, you've you've told me so much about how to speak about scope at this point. Maybe you could you could tell me or tell the audience how you got promoted to M2, why you got promoted to M2, and speak about it in a way that illustrates the scope of a senior manager. >> In order to get to M2, I had to solve some difficult problems in the recruiting space. And uh the probably the most important one was around diversity. So I I left uh a team which was focused on building things for teenagers which is another hard problem that I got myself involved in. Very difficult time for for Facebook during that time. Um but I left that team to uh lead a couple teams within their internal recruiting products organization which is all about um supporting candidates, supporting um recruiters and sourcers and their goals. And uh but the thing that really drew me over there was working on supporting a team that was um hiring more diverse engineers. That meant a lot to me. So how can I help make the world a better place as my position as a manager would be to make uh what is the most uh the largest wealth opportunity in the world today which was technology and is technology. How can I make that available to more people in the world? That's really motivated me. So I that is not an easy problem to solve. uh is not definitely not an easy problem to solve from a perspective of a a product team right I'm not an education institution right I I I don't get to make all hiring decisions for example um I don't get to pick uh you know what people learn in school so uh but we were able to move the needle there by improving um preparation of all things like interview preparation and that's how we were able to um help improve the diversity hiring for for uh for meta and that as well as supporting a number of other teams helping to establish uh high quality of candidate data that would be established uh for for Facebook's applicant tracking system and being able to um uh you know clarify like what's important in in terms of candidate data and being able to improve the quality that we have significantly over time. I think that's those are the reasons why I was promoted to M2. So when I when I think I that story I just heard as if I was an interview were I heard that you were supporting multiple teams. I heard that you were taking on a an ambiguous problem like how do you solve diversity? It's not immediately obvious and it sounds like you had a significant self motivation to go towards this problem space and solve for the company. So um am I hearing that those are the the signals that you hope that uh an interviewer would have got if you were interviewing for a behavioral interview? >> Yeah, for sure. Um I I would say I would add a few other ones. So one thing that that I didn't mention is impact across the company. So I think leading leading the iOS and Android uh recruiting pipelines is an important way that you're scaling yourself and and applying yourself across more than than just the teams that you're directly responsible for. So that was also a big part. I should have included that. I understand you left big tech at this point and you know looking back on your experience in big tech is there anything that you regret or anything that you wish you could have changed? >> I don't regret leaving. I think um I had a really great time. I work with a lot of wonderful people. I think that I regret uh the anxiety that I put into the teams and the anxiety that I put into myself. I think we can all look back on parts of our life, whether it's school or early career or even now, and we think, "Wow, I really wish I hadn't worried about that at the end of our lives, we don't say things like,"I wish I had just gotten a few more percent out of that engagement number and that project XYZ." Like, nobody thinks that way, right? People value relationships. They value um they value connection. Um and I I think that I added a lot of anxiety to my life in various parts of my career. And I I regret that part. I think that um like I told you earlier, I made conscious choices to optimize for my life experience versus my career. I think there were times when when I was not honest with myself about that when uh I was not honest about what that that trade-off would mean in terms of compensation or in terms of career progression or in terms of status for myself. And I think being honest with yourself about what you really value and being okay with the trade-offs in advance. And um since I've left big tech and supporting my wife as she's building her her her business um certainly that has come with like a decrease in pay. And one of the things one of the ways that I have um been able to apply the learning that I'm telling you is before I left I knew okay I'm pay is going cash flow is going to be low. I'm going to be okay with that because I'm making decisions to spend more time with my kids because I'm making decisions to support more community uh organizations here and volunteering and I'm going to be okay with that that choice. And that's been really helpful. I've been able to go back to that choice a number of times when the cash flow situation has uh you know maybe wanted to improve that [laughter] maybe we missed that that that kind of paycheck u and maybe you'll experience this I don't know you know having just having just left uh big tech uh but I think having that honest conversation with myself has really helped in the last couple of years. uh and I wish I had had done that earlier and said you know what I I really value these things and that means I'm not going to have those other things in life and that's that's okay that's okay if that's what you want right um so making that kind of conscious and valuesdriven decision and then coming back to it maybe sometimes revisiting it maybe you want to change it but that kind of intentionality is something I wish I had um was more honest with myself about >> so when you're saying you were you were not honest you still thought you wanted that cash flow and those things >> I think I was frustrated I think I was frustrated frustrated at various points about about not being able to progress. And I think that there was I would even say bitterness at times when I would say I'm frustrated that so- and so got this job, so and so got promoted, you know, so and so was able to do XYZ right here. Look at me, you know, I'm doing this, I'm doing that. But not being honest with myself of of you know what, you you didn't do the things that they did. You did not move teams as rapidly as they did. You did not work as hard as that person. You prioritized other things in your life. You prioritized your family. you prioritize in making an impact in um in uh in the community around you outside of work and um and that has consequences, right? So I I think we we can live in this world where we think um you can have it all, right? Like you can you can be a whatever level seven IC and go home at 5:00, right? And have a wonderful and engaging family life. And maybe some people can do that, right? I think that that that could be a skill that people have, but that depends a lot on on your your talent level and what kind of skills you've built up over time. Um but the reality for most people is that um if you want to accomplish something extraordinary in your life, you have to have ext you have to take extraordinary steps. And I don't think I was honest with myself. And I think that that resulted in some frustration and bitterness along the way. But I think that once I decided uh kind of in the middle what's important to me, where I really want to be um what I want my kids to say about me in 10 years, that was what really what guided me. Um what what I want what I want them to remember about me 101 15 years from now. Um, that was very clarifying and very helpful. >> That intentionality got rid of those feelings for you. >> Well, I think that it comes back sometimes. So, especially living in a place like this where uh people are are are stacking wealth in in in as fast as they possibly can and um you're going to see people like that around you all the time living in Silicon Valley. And so, you have to to to ask yourself like, is that what I want? No, maybe it is. That's fine. Maybe it's not. uh and then so it's going to come up and it comes up in my life you know on a on a semi-regular basis but it's really helpful to be aligned uh with your own values and have that kind of mission statement or vision that you have for your life and what's important to you in the future and if you live like that you'll be satisfied >> you you worked a long time at Meta across uh other companies as well and I'm curious what was the best advice that you ever received in your career >> I would say that the best advice that I ever received was um the importance of creating scope. So, uh, if you would like to get promoted or if you would like to, um, to, you know, to to advance in your career, often times we were waiting, like … (4509 chars truncated)
    
    Exit code: 0
    <truncation_notice>
    Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/8ecae9a3/content.txt
    </truncation_notice>
  26. Devin
    exec(command: python3 - <<'EOF' with open("/tmp/full_t…)
    {
      "command": "python3 - <<'EOF'\nwith open(\"/tmp/full_transcript.txt\") as f:\n    text = f.read()\nprint(text[120000:])\nEOF"
    }
    In 1Out 92Cache 41,927tool_calls
  27. OutputOutput from command in shell 81e3c1:
    Output from command in shell 81e3c1:
    s that opportunity. And, um, I remember one of my managers said like, if you want this, you know, M2 role, you have to create an M2 scope uh, scope team, right? You have to to accomplish and solve problems that are uh, you know, that are that are of this scope. And I so I think that this this kind of um honest reflection on like what it really takes to get to the next level that you have to change uh not just how what you do right that's often advice that you hear not just doing the same thing that you're doing as your level better you have to do something different but what is that difference and really that difference is about creating additional scope and um creating space for the the organization to succeed. That was another key part of that advice was um you know what is your VP saying about your project and if your VP is not going to be talking to anybody of their peers or their manager about what you're doing then the question is am I doing the right thing um so what can what kind of kind of how can I work backwards right and we do this a lot we work backwards in the behavioral interview what do I want to present what kind of signal area do I want to present you work backwards in a promotional experience what do I want the packet to be like and I think you can work um backwards in terms of um creating scope which is what do I want the you know the VP or the organization's leadership to say about what we've accomplished and then go and figure out a way to do that thing. >> Yeah, that's that's great advice. I mean, there's there's always situation and luck when it comes to career growth and promos, but I feel like the most satisfying promotions are the ones where you take initiative and you create the scope and no one can stop you in that case. So, it's it's uh you don't need anyone's permission. Um, and then the last question I'd ask is if you look back on your entire career and right when you graduated college and you could give yourself some advice now that you've learned what you've learned, what would you say? >> I had a lot of imposter syndrome. So I avoided, for example, I got a I got a PhD out of um in computer science out of out of undergraduate school. But during the summers, I would work uh just in in in the research in the university when a lot of my peers would go and work uh in in industry. they would go get a like a internship, right, at Google or Facebook or wherever and work there. And um really what held me back was insecurity. I didn't want to go through the interview process. I I didn't want to be rejected. And so I I think that kind of fear and allowing um the imposttor syndrome that I felt to hold me back from those choices. I I I do think that that had a my my career was great. I love my career. It's great. I'm not sure I would change a ton, but I think it did hold me back. I think I I was slower to understand how u big organizations operate. I was slower to understand how large code bases operate. Um certainly coming from from academia. So I think that that kind of insecurity and fear um really held me back. I know that's super common kind of advice to give oneself in the past is like don't give into fear. Um but that's the biggest advice I would tell myself is don't give into fear. >> Awesome. Well, thank you so much Austin for your time. I really appreciate it and I hope it's helpful for people. >> Yeah, thanks Ryan. Great to be here. >> Thank you for listening to the podcast. It's a passion project of mine that I've really enjoyed building. Another passion project that I've been working on kind of in secret is building an ergonomic keyboard that I wish existed and I finally have a prototype. So, I'd love to show you what we've built. It's ultra low profile and ergonomic and I couldn't find anything like it on the market. So, that's why we built it. I'll put a link to the keyboard in the description. You can take a look and learn more about the project there. We could definitely use your support. Also, if you have any feedback for me about the show, I'd love to hear it. Comments on YouTube have led to guests coming on like Ilia Gregoric and David Fowler. I wasn't aware of them until someone dropped a comment. Also, feedback in the comments helped me learn to reduce the number of cliffhers in the intros. So, your comments definitely make a difference. Please keep letting me know what you'd like to see more of in the show, and I'll see you in the next episode.
    
    
    Exit code: 0
  28. Devin

    Now I have the full transcript. Here's a comprehensive summary:


    Summary: "Behind the Scenes of Big Tech Hiring Committees" (with Austin McDonald)

    Guest: Austin McDonald — former Meta hiring committee member who led iOS/Android recruiting across Meta. Now a career coach. Host: Ryan (runs a tech podcast)


    The Hiring Pipeline (How It Actually Works)

    1. Sourcer — Junior recruiter who finds you via LinkedIn. Evaluates years of experience + previous titles to place you in a level bucket. Aware of title inflation at non-FAANG companies (a "VP" at a bank gets down-leveled).
    2. Recruiter — Takes over after the phone screen. Organizes your loop, advocates for you in the hiring committee. Also the person you negotiate comp with — be careful.
    3. Phone Screen — Can be a coding screen, MC questions, or a scope/system-design conversation for senior+ roles. If borderline, the hiring committee reviews it.
    4. Hiring Committee — Other senior engineers and EMs recruited by a chair. Makes hire/no-hire and leveling decisions by consensus (fallback: voting). The committee can add follow-up interviews if signal is weak.
    5. Engineering Directors — Final gut-check ratification by 2–3 EDs above the committee.

    Key insight: You're being evaluated at every touchpoint — including the "casual" recruiter call and the "just a formality" hiring manager chat after the offer.


    Leveling Rubric (The Hierarchy of Scope/Ambiguity)

    LevelScope
    New Grad / InternTasks
    Mid-levelFeatures (many tasks)
    Senior (L5)Projects (many features, working through others)
    Staff (L6)Goals (many projects; cross-team influence)
    Principal (L7)Org-level impact (many goals, many teams)
    Distinguished+Industry/business-unit level

    The key differentiator: How much ambiguity you can handle, not just technical skill.


    Behavioral Interviews: The Most Misunderstood Part

    • Behavioral interviews are the #1 reason candidates get down-leveled, especially senior engineers.
    • Most engineers think they can "wing it" — this is a huge mistake.
    • The hiring committee looks at behavioral interviews first for senior+ packets.
    • At staff+ levels, behavioral is often more decisive than coding or system design.

    Common mistakes:

    • Underselling — not showcasing enough of your actual impact
    • Telling low-scope stories when higher-scope ones exist
    • Talking too much about tech, forgetting leadership/mentorship/influence elements
    • Not communicating business impact alongside technical depth
    • Not showing the insight behind why previous approaches failed

    What they're actually looking for:

    • Business impact (what's the revenue/engagement/topline context?)
    • Technical complexity (quantify it: time, risk, number of stakeholders consulted)
    • Organizational scope (how many teams, how many engineers influenced?)
    • Leadership and mentorship (how did you make others better?)
    • Judgment and reflection (why did prior attempts fail? what did you learn?)

    How to Avoid Getting Down-Leveled

    1. Know the rubric for your target level — research what that level means at the specific company.
    2. Anchor the interviewer early — your "tell me about yourself" sets the expected scope. Make it count.
    3. Choose highest-scope stories — your job as a candidate is to steer the interviewer toward your best material.
    4. The question behind the question — behavioral questions aren't really about the story; they're asking "does this person operate at the level we expect?"
    5. It's okay to say others failed before you — framing it as "I was the third owner; here's why their approaches didn't work, and here's the insight that changed it" demonstrates senior-level judgment.
    6. If you got mis-leveled mid-process — directly tell the recruiter and push to get the right loop evaluated upfront rather than doing extra follow-up rounds later.

    Referrals

    • Always helpful, but quality of the referral matters more at senior levels.
    • A VP/Director referral carries real weight — their personal reputation is on the line.
    • Write the referral for the person referring you — give them bullet points of your relevant accomplishments so they can submit a strong, specific recommendation.
    • Senior engineers can even show up to the hiring committee to advocate for you.

    Compensation Negotiation

    • Don't anchor early — avoid stating comp expectations until you've heard the band.
    • In California and New York, the recruiter is legally required to disclose the comp band — use this.
    • Best leverage = multiple competing offers timed to land simultaneously. Stressful but highly effective.

    Company-Specific Tips (OpenAI / Anthropic)

    • Anthropic is known for assessing ethical alignment — they want to know you think carefully about the impact of your work, especially re: AI safety.
    • Both companies value engineers who can discuss "new domains we can apply AI to" and are excited and thoughtful about what AGI means.

    The "Soft Influence" Factor

    • Subjectivity scales with seniority — for junior candidates, structured rubrics reduce it; for staff+, how you show up in the room is itself a signal because that's literally what you'll be doing on the job.
    • "Casual excellence" — calm, confident, self-deprecating humor, sharp discussion — is a real cultural expectation in Silicon Valley companies.
    • Lower your own heart rate mentally: stop treating each interview as your one and only shot. The company will likely be hiring again.
    • Believe the interviewer is rooting for you — they genuinely want to find someone great.

    Austin's Personal Reflections

    • Got promoted to M2 at Meta by leading diversity hiring initiatives and mobile recruiting pipelines across the company.
    • Left big tech to support his wife's business and be present for his kids — a conscious trade-off he made peace with.
    • Best advice received: "Create M2-level scope if you want the M2 role" — don't just do your current job better, create space for the org to succeed at a bigger level. Work backwards from what you want the VP to say about your project.
    • Advice to his younger self: Don't let imposter syndrome hold you back from internships and industry experience. Fear of rejection is what delayed his growth, not lack of ability.

    Sponsor mention: Hello Interview — free system design and behavioral interview resources (Austin is partnering with them on behavioral content).

    Host's side project: An ultra-low-profile ergonomic keyboard prototype.

    In 1Out 1,584Cache 44,343TTFT 1,718ms