我们正在招聘一名高级软件工程师,负责 Tailwind CSS、Headless UI 以及我们支持的工具生态系统,例如 VS Code 的 Tailwind CSS IntelliSense 扩展。
这是一个完全远程职位,薪资为 275,000 美元,面向东部时区 (UTC-5) 到中欧时区 (UTC+1) 的候选人。我们接受申请截止到 4 月 3 日星期三晚上 9:00 ET。
我们是一个小型多学科团队,您将承担各种各样的职责,包括
- 为 Tailwind CSS 和 Headless UI 等项目构建和记录新功能。
- 为 Lightning CSS、Next.js 和 Vite 等上游项目贡献改进。
- 维护 CI 工作流程和自动化,用于运行测试和构建版本。
- 管理来自社区对我们的开源存储库的 issue 和贡献。
- 定义和维护工程标准,重点关注代码质量、性能和文档,以确保我们始终交付我们引以为傲的作品。
- 管理项目优先级并调整范围,以满足项目截止日期,而不会牺牲最高目标。
以下是一些您在过去几个月里可能参与的真实项目示例
- 创建一个用于提取实用程序类名的 Rust 库 — 一个可以尽可能快地扫描整个模板文件目录并并行提取潜在类名的工具。
- 在 Tailwind CSS 中添加对 组合变体 的支持 — 使得编写像
group-has-peer-focus:underline
这样的类成为可能,而无需显式使用 group-has-peer-focus
变体。
- 用 TypeScript 编写一个 快速 CSS 解析器 — 仅解析 Tailwind 内部所需的确切细节,寻找特定于领域的快捷方式,使其比现有库更快地满足我们的需求。
- 修复 Headless UI 中 滚动锁定 的问题 — 确保对话框中的可滚动元素在 iOS 上仍然可以滚动。
- 为编译我们的 Rust 库设置 GitHub Actions 工作流 — 配置我们的发布管道,以便为每个支持的平台正确构建和分发我们的原生包。
- 为 我们需要的 Vite 新 API 进行宣传 — 为我们支持 Tailwind CSS 所需的改进准备一个有说服力的论据,并与 Vite 核心团队合作,为解决方案提供原型。
- 修复 Tailwind CSS 独立 CLI 中 加载插件 的问题 — 当使用 ESM 或 TS 编写配置文件时,内置插件(如
@tailwindcss/typography
)将无法加载。
- 在 Headless UI 组合框中支持 虚拟化列表 — 使得渲染包含数千个项目的列表成为可能,而不会出现性能问题或 UI 保真度下降。
- 为我们的 文档模板 构建一个嵌入式搜索实现 — 这样客户就不需要依赖于特定的托管搜索解决方案,例如 Algolia。
- 优化 Tailwind CSS v4.0 中的 增量构建性能 — 找到尽可能快地进行重建的方法,直到在终端中看到微秒符号为止。
开始工作后,您将参与以下项目:
- 为 Next.js 开发一个 Tailwind CSS 捆绑器插件 — 使用模块图而不是扫描文件系统来生成 CSS,并与 Vercel 的联系人合作以确保其正确性。
- 创建一个在浏览器中运行 Tailwind CSS v4.0 的 JavaScript 库 — 我们 Play CDN 库的更新版本,它在幕后使用我们的新引擎,重点是使其尽可能小。
- 为 Tailwind CSS 设计一套 IDE 集成 API — 一流的、稳定的、有文档的 API,JetBrains 等编辑器团队可以依靠这些 API 在其工具中添加诸如代码补全、lint 警告、类排序等功能。
- 为 Headless UI 设计、构建和记录一个 Tooltip 组件 — 确保它完全可访问,并具有灵活但令人愉快的 API。
- 为 Tailwind CSS v4.0 构建一个向后兼容层 — 重新引入对 JavaScript 配置文件的支持,探索代码重构工具,并确保现有的社区插件尽可能与新引擎兼容。
- 为在流行框架和捆绑器中简化 Tailwind CSS 集成而进行宣传 — 通过编写具体的实现提案,并创建展示集成工作方式的拉取请求。
我们正在寻找一位拥有强大工程技能和领导小型团队经验的人,并且与我们分享最重要的价值观
- 您喜欢结对解决问题。 您从直接与他人合作编写代码中获得能量。
- 您对人们有很高的标准,并激励他们尽力工作。 您对反馈坦诚直率,并激励您的队友提高自己的标准。
- 您对精致程度近乎偏执。 对您来说,每个变量名都恰到好处、代码注释没有语法错误、测试命名一致非常重要。
- 您怀念软件曾经的速度, 您喜欢编写代码来展示我们今天使用的这些疯狂机器的真正能力。
- 您对未知领域充满活力。 您喜欢深入研究从未见过的代码库,尝试解决复杂问题的挑战。
- 你是一位优秀的作家。 无论是项目状态更新、文档、拉取请求描述还是对 GitHub 问题的回复,你都会考虑到读者,并注重清晰的沟通。
- 你擅长分解项目。 你对哪些工作应该优先进行、哪些可以留到以后再做以及如何尽快获得可用的演示版有很好的直觉。
- 你热爱优秀的设计。 你可能不认为自己是设计师,但你有点希望自己能挥舞魔杖变成设计师。
在技术方面,如果你在以下领域有专业知识,你将非常适合我们
- Node.js — 我们几乎所有使用的工具(如 Tailwind CSS、我们的捆绑器插件和我们的 IDE 集成)主要在 Node.js 环境中运行。
- TypeScript — 我们的大多数项目已经使用 TypeScript,并且我们总是将其用于新项目。我们非常重视它能够引导我们远离编写过于复杂的代码。
- React — Headless UI 是一个非常高级且底层的 React 代码库,
useEffect
调用次数比法律允许的还要多。
- 无障碍性 — 构建像 Headless UI 这样的无障碍 UI 库非常困难,通常需要做出明智且富有创造性的权衡才能做到正确。
- Rust — 我们不是每天都使用它,但 Tailwind CSS v4.0 的一些关键组件是用 Rust 编写的,我敢肯定我们将来会更多地使用它。
- Tailwind CSS — 是的,如果你能相信的话,我们在这里经常使用它。
- 我们快速交付 — 我们不做那些在完成之前就变得无关紧要的 18 个月项目。我们设计可以在两个月内完成的项目,这样我们就不必在做出关于优先级的全新决定之前等待太久。
- 我们的工作有影响力 — Tailwind CSS 每周被全球数百万开发者安装近 900 万次,并被全球最大的公司用来构建世界上最好的网站。当你在这里工作时,你可以告诉别人“我制作了他们用来构建 ChatGPT 界面的东西”。
- 我们故意保持规模小 — 我们有资源雇佣更多人,但我们不想建立一家庞大而复杂的公司。我们是一个紧密的团队,你每天都会直接与创始人合作。
- 我们完全远程工作 — 在任何你想要的地方工作。我们每天都在 Tuple 和 Figma 上实时协作,但我们都在自己舒适的家中工作。
- 我们是独立且盈利的 — 我们没有投资者或董事会来为我们的决定辩护,也不需要烧钱来维持业务。获得下一个大客户或完成下一轮融资并不是这里任何人需要处理的压力。
- 我们关心做好工作 — 作为一家盈利的公司,我们可以负担得起额外努力,花时间让我们为我们交付的东西感到自豪。你不需要在这里获得编写测试的许可。
- 我们不想做大 — 如果有任何机会让我们的工作变得不那么有趣,我们会拒绝绝佳的机会。我们关心的是赚取足够的钱来继续做我们喜欢的事情,而不是不惜一切代价赚取尽可能多的钱。
- 我们不会把自己看得太重 — 我们相信做好工作,但我们也认识到我们正在构建一个 CSS 框架,而不是进行突破性的医学发现。我们在文档中隐藏笑话,我们不会通过公司公关过滤器来运行我们的写作,我们也不太酷,不会在我们的头像中微笑。
该职位薪酬为**每年 275,000 美元**,无论您身处何地。
- **远程工作** - 在您最有效率的地方工作,无需通勤到办公室。
- **30 天带薪休假** - 全年共六周的休假时间供您使用。
- **设备预算** - 入职时提供 7500 美元,用于购买您完成工作所需的任何物品。
- **年度团队旅行** - 以娱乐为中心的旅行,我们聚在一起,面对面地进行充电,建立更好的关系。
- **冬季休假** - 我们每年年底都会停工至少一周,与家人共度节日,这与我们正常的带薪休假时间无关。
我们是一个非常小的分布式团队,因此我们以独立承包商的身份合作。这意味着我们无法提供某些福利,例如健康保险或退休储蓄计划。
如果您对从当地税务部门的角度来说,成为自雇人士感到舒适,您才应该申请此职位。
要申请,请针对此职位写一些内容,告诉我们为什么您非常适合该职位,以及您能为 Tailwind Labs 带来什么。
我们感兴趣了解您的内容示例包括
- **您感到兴奋的事情**,以及您在这个职位中最期待的工作。
- **您参与过的有趣项目**,尤其是与我们在这里所做的工作相关的项目。
- 开源贡献,无论是您自己的项目、您引以为傲的拉取请求,还是您提交的写得很好的错误报告。
- 过往经验,尤其是您在其他职位中担任过的任何领导职责。
- 技术写作,例如您发布的博客文章或您参与撰写的文档。
此职位面向东部时区 (UTC-5) 到中欧时区 (UTC+1) 的候选人,我们接受申请截止日期为 4 月 3 日星期三美国东部时间晚上 9:00。
我们将花几周时间审查申请,并在 4 月中旬通知您是否邀请您参加面试流程。
以下是流程:
- 介绍电话 - 一个简短的电话,我们将向您提出一些问题以更好地了解您,并回答您对该职位提出的任何问题。
- 带回家项目 - 接下来,我们邀请大约十个人完成一个小型技术项目。预计您需要花费大约半天时间来完成此项目,我们将为此支付您 500 美元。
- 深入面试 - 完成带回家项目后,我们将与最优秀的候选人进行更长时间的面试,届时我们将向您提出有关项目以及您在之前职位中的经验的问题。
- 结对编程环节 - 最后一步是与我们团队中的另一位工程师进行为期一小时的结对编程环节,您将一起完成一项你们都不熟悉的事情,以便更好地了解真正的合作体验。
我们将在 5 月份发出录用通知,目标是在 5 月下旬/6 月初开始合作。