Senior Software Engineer, Data Infrastructure (RDBMS)
TRM Labs · United States · 3 wk ago
RemoteRemoteEngineering$200k–$220k/yrInternship
We need to output HTML fragment with sections: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. Only include sections that have real specific content. We must not repeat job title. No Job ID. Remove boilerplate, navigation, EEO, etc. Must preserve all substantive info.
We need to parse the posting and extract relevant content.
Let's identify sections:
- About the role: description of role, impact, etc. The posting includes "Build a Safer World..." intro, then description of Data Platform team, role description, impact bullet points. That is about the role.
- Responsibilities: likely the bullet points under "The Impact You Will Have". Those are responsibilities.
- Requirements: maybe "What We're Looking For" list.
- Qualifications: maybe overlapping with requirements; but we can treat "What We're Looking For" as qualifications/requirements. Could separate but we need to avoid duplication. The instruction: prefer few substantive sections over many thin ones. So we could combine Requirements and Qualifications into one section? But they ask to use headings for each if content exists. We could have Requirements and Qualifications separate if distinct. However the posting lumps experience, skills, AI fluency etc under "What We're Looking For". That could be considered Requirements. Qualifications maybe similar. Could we put both? Might be redundant. Better to have one section "Requirements" covering that list. Then maybe "Skills" separate for technical skills? But the list includes skills already. Could split: Requirements (experience), Skills (technical). But we need to avoid thin sections.
Let's see content:
"What We're Looking For" includes:
- 5–8 years building and operating production PostgreSQL (Citus, Aurora, AlloyDB, or equivalent distributed Postgres)
- Deep SQL optimization skills (Explain Plans, CTEs, window functions, partitioning, index design, query-planner behavior in distributed environments), increasingly paired with AI-assisted query analysis
- Hands-on experience with CDC tools (PeerDB, Fivetran, Debezium, Datastream, Airbyte) and comfort using AI tooling to debug replication failure modes
- Fluency with database profiling (pganalyze or equivalent) to interpret metrics and logs, including using LLMs to summarize performance findings
- Production automation experience in Python or Go, including agentic automation of routine database tasks; Postgres extension development is a plus
- Daily use of AI coding tools (Claude, Copilot) to accelerate development and produce higher-quality output faster, with the judgment to know when to trust or reject AI output
- A track record of using AI-assisted analysis to drive measurable cost or performance improvements in production database systems
That's a mix of experience and skills.
We could have "Requirements" for experience (years) and "Skills" for technical skills. But the list includes both.
Maybe better: "Requirements" for the bullet list, and skip "Skills" to avoid duplication. Or we could have "Skills" for the specific technical skills (SQL optimization, CDC tools, profiling, automation, AI coding tools) and "Requirements" for years of experience and track record. That seems reasonable.
Let's extract:
Requirements:
- 5–8 years building and operating production PostgreSQL (Citus, Aurora, AlloyDB, or equivalent distributed Postgres)
- A track record of using AI-assisted analysis to drive measurable cost or performance improvements in production database systems
Skills:
- Deep SQL optimization skills (Explain Plans, CTEs, window functions, partitioning, index design, query-planner behavior in distributed environments), increasingly paired with AI-assisted query analysis
- Hands-on experience with CDC tools (PeerDB, Fivetran, Debezium, Datastream, Airbyte) and comfort using AI tooling to debug replication failure modes
- Fluency with database profiling (pganalyze or equivalent) to interpret metrics and logs, including using LLMs to summarize performance findings
- Production automation experience in Python or Go, including agentic automation of routine database tasks; Postgres extension development is a plus
- Daily use of AI coding tools (Claude, Copilot) to accelerate development and produce higher-quality output faster, with the judgment to know when to trust or reject AI output
Now Responsibilities (Impact You Will Have):
- Keep customer-facing APIs fast and available at five-nines by owning query tuning, index design, and schema optimization on petabyte-scale Postgres/Citus, directly determining whether product teams can serve data in real time
- Cut storage and compute costs materially by using AI-assisted analysis (pganalyze paired with Claude) to detect compression and data-model opportunities, then shipping validated changes to production
- Remove team toil by building agentic automation for routine database operations, such as self-serve pgbouncer provisioning, disk scaling, and blue-green deployments, so any engineer can run them safely
- Protect data integrity and latency by driving agentic validation of database changes before they reach production
- Keep real-time data flowing by managing CDC pipelines (PeerDB, Fivetran, Debezium) and using AI tooling to debug replication failures faster
- Shape the next-generation platform by migrating workloads off first-gen infrastructure and prototyping new data stores with AI-accelerated spikes
- Raise the whole team's leverage by codifying your workflows into AI-native runbooks and internal tooling that teammates reuse
About The Team: description of team culture, operating rhythms, on-call requirements, etc. Could be "About The Team" but we only have headings list: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. No "About The Team". Could we put team info under "About the role"? Might be okay. The instruction: Use headings for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So we should stick to those headings. So we need to fit content into those.
Thus we need sections: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule.
We have content for About the role (intro + team description maybe). Responsibilities we have. Requirements we have (years + track record). Qualifications maybe we can put the same as Requirements? But we need distinct content; maybe we can put Qualifications as education? Not present. Could we leave Qualifications empty? Not allowed: include a section ONLY when posting has real, specific content for it. So we should omit Qualifications if no specific content.
Skills we have list.
Benefits: posting mentions equity plan eligibility, maybe also mention "TRM’s equity plan". Also maybe mention "total funding" etc but not benefits. There's also mention of "On Call Requirements" but that's not a benefit. There's no explicit benefits like health insurance etc. So we may omit Benefits unless we have specific content. The posting mentions "Additionally, this role may be eligible to participate in TRM’s equity plan." That's a benefit (equity). Also maybe mention "US base salary only" but that's Pay. So we can include Benefits with equity plan.
Pay: we have salary range $200,000 - $220,000 base salary US. Also mention equity plan eligibility (but we already put equity under Benefits). So Pay section: salary range.
Schedule: any mention of schedule? Not explicit. There's mention of on-call rotation approx once every 15 days; each shift 24-hour across 2 days. That's schedule-related (on-call). Could be considered schedule. Also mention "distributed, not distant: most collaboration async..." but that's work style. There's no explicit work hours. However on-call schedule is schedule info. So we can include Schedule with on-call details.
We must not include boilerplate like On Call Requirements note about pending compliance. The posting includes "On Call Requirements ⚠️ On Call Requirements — Pending Regional Compliance Review. This role carries an on-call rotation (approximately once every 15 days; each shift is a 24-hour window across 2 days). On-call is clear to proceed for United States; the Canada portion requires People Ops / Deel provincial confirmation before this section is finalized and posted. See the On-Call Compliance note in the Post-Fill Summary." We need to preserve substantive information but remove boilerplate? The on-call rotation details are substantive. The compliance note is boilerplate/conditional. We should include the on-call rotation details but maybe omit the compliance note. So schedule: on-call rotation approx once every 15 days, each shift 24-hour window across 2 days.
Now About the role: we need to include intro and team description. Let's craft a concise paragraph(s) preserving all substantive info.
From posting:
"Build a Safer World. TRM Labs provides AI-powered intelligence solutions that help public and private sector agencies investigate and disrupt crime. TRM's platforms enable investigators to trace illicit activity, build cases, and construct operating pictures of threat networks. Leading agencies and businesses worldwide rely on TRM to make the world safer and more secure. The Data Platform team builds and owns highly available, scalable data infrastructure for TRM's products and services. As a Senior Software Engineer on Data Infrastructure (RDBMS), you will develop, operate, and scale the relational database systems that serve data at petabyte scale, helping build a safer financial system for billions of people. This role is uniquely broad at TRM: you own the serving layer end to end, from query performance to cost to availability, on infrastructure that product teams depend on every day."
Then later "About The Team" section: description of distributed team, async-first, culture, operating rhythms, on-call requirements (but we moved on-call to schedule). We can incorporate team description into About the role.
We should keep all substantive info: distributed, not distant, async-first across US and Canada, intentional sync touchpoints, own petabyte-scale data infrastructure, scope large, mission real, work technically demanding, team culture product-focused, customer-focused, coaching-oriented, scrappy when needed, process-oriented when executing against OKRs, work alongside senior engineers who care about craft, high standards for code quality, operational excellence, cross-team communication. Team Operating Rhythms: distributed, not distant; most collaboration async in Slack, Notion, GitHub; meetings purposeful and minimal; primary timezone overlap across US and Canada; north star is no IC spending more than 3–4 hours per week in meetings; written-first culture: technical specs and decision docs drive alignment before code.
We can include that.
Now Benefits: equity plan eligibility.
Pay: salary range $200,000 - $220,000 base salary US.
Schedule: on-call rotation approx once every 15 days; each shift 24-hour window across 2 days.
Now produce HTML fragment with headings
and content in
or
- .
We must not include / tags.
Let's structure:
About the role
...
Responsibilities
- ... ...
Requirements
- ... ...
Skills
- ... ...
Benefits
Eligible to participate in TRM’s equity plan.
Pay
The estimated base salary range for this role is $200,000 - $220,000 (US base salary only).
Schedule
On‑call rotation approximately once every 15 days; each shift is a 24‑hour window across 2 days.
We omitted Qualifications. Check that we didn't repeat job title. Good. Check that we preserved all substantive info: Did we miss any? Let's verify. From posting: - Intro about TRM mission. - Data Platform team builds and owns highly available, scalable data infrastructure. - Role: develop, operate, scale relational database systems serving data at petabyte scale, helping build safer financial system. - Role uniquely broad: own serving layer