返回博客

我在联邦政府的网页工作中学习到的东西

2026-04-245 min read

下周将是我合同的最后一周。我决定离开,在继续前进之前,我想记录一下我日常实际做的工作。

我不是该机构的直属员工。我为一家承包商工作,被分配到该机构的项目中担任技术负责人/架构师。这是许多联邦网络工作背后的安排。你 day-to-day 地参与团队工作,但你的薪水来自别处。

开始工作前有一个安全审查流程。背景调查、表格、推荐人、等待。这是联邦合同工作的标准流程,它对入职的影响比大多数私营部门的工作都要大。

我实际做的工作

我的大部分时间都花在面向公众的内容网站上。数千个页面,数百万访问者,多种语言的内容。大部分翻译工作由外部服务 MotionPoint 处理。少数网站使用了 Drupal 内置的翻译功能,用于西班牙语、中文和韩语版本。每个版本在本地化 URL 和不同的书写系统方面都有其独特的怪癖。

很多工作是维护一系列现有的 Drupal 网站的健康状况。版本升级、模块更新、修复和功能开发。我还参与了一个大型项目,将 400 多个 Drupal 网站整合到 8 个中心。那个项目仍在进行中。

我运行了审计。清点数千份 PDF。检查可访问性。查找损坏的链接和过时的内容。大部分手动工作都转化成了 Python 脚本。PDF 审计、分析数据提取、爬虫、重定向检查、报告生成器。团队至今仍在使用其中的一些。

我还支持数据分析团队。GA4、Google Search Console 和 GTM。提取报告、修复标记问题、调查差异,并使跟踪与网站更改保持同步。我还使用 Python 自动化了一些报告的生成。

我承担的第一项工作是部署流程。大部分已经运行在 Jenkins 上,但有一个关键步骤仍然需要有人从他们的笔记本电脑上运行一个 shell 脚本。将最后这一步迁移到 Jenkins 是我的第一个胜利。

后来,我为低级环境添加了 CodeDeploy,以加快那里的部署速度。到最后,一个曾经需要一个多小时的部署现在只需要几分钟就能完成。

值班是工作的一部分。生产环境的问题不会等到工作时间才出现。

我还花了一些时间在一个我们主技术栈之外的内容分发平台上。基于 Grails,比较老旧,我以前没接触过。我之前为 Jenkins 流水线编写的 Groovy 代码派上了用场,这使得学习这个平台比其他方式更快。我足够熟悉它,能够对其进行故障排除,并协助进行了升级到 Ubuntu 22.04 的服务器升级。

我还接触了一些其他事情。

  • 两个 React 应用,较小的前端部分叠加在 CMS 之上,并与联邦设计系统集成。
  • 日常的 AWS 操作。负载均衡器、目标组、CodeDeploy,以及大量调试仅在真实流量下才会出现的生产问题。
  • 使用 Playwright 和 Cypress 进行测试,Python 使用 pytest。到后期,我尝试使用 Playwright 加上 LLM 来捕获普通 diff 无法发现的视觉回归。
  • AI 演示和概念验证,向领导层展示现代工具的功能以及它们如何在不引起安全审查问题的情况下发挥作用。

技术栈包括 Drupal、PHP、Python、JavaScript、React、Groovy、Jenkins、Docker、AWS、Splunk 和 USWDS(美国 Web 设计系统)。到后期,还有很多 AI 工具(Gemini、OpenAI、向量数据库、MCP 服务器)。

我注意到的一些事情

流程是真实存在的。安全审查、可访问性审计、内容冻结、跨 Pod 的冲刺规划。第一个月感觉很慢。然后你就会明白它为什么存在。

Jira、Confluence 和 Bitbucket 都为 FedRAMP 合规性进行了自托管。云版本不是选项。

有很多会议。站会、冲刺规划会、架构评审会、内容评审会、Pod 同步会、一对一会、演示会、状态汇报会。有些是必不可少的。有些则不是。

可访问性不是一个复选框。它改变了你命名事物、构建页面和测试的方式。

编辑和项目负责人是我日常工作中重要的一部分,而不仅仅是其他工程师。

你与很多外部供应商合作。Akamai 提供 CDN 和边缘安全,AWS 合作伙伴提供基础设施,GSA 提供 search.gov 集成,以及沿途的各种审计和审查供应商。工作的一个真实部分是跨公司边界去寻找答案,而不仅仅是在你的团队内部。

沟通是工作的重要组成部分。可能比我最初预期的要多。

我写了很多东西。状态更新、运行手册、交接文档、工单。我写这篇交接邮件的时候,我实际上就在写一篇交接邮件。

很多时间花在向非技术人员解释技术权衡上。

到后期,我做了一些 AI 相关的工作。AI 辅助内容工作流、PDF 的 LLM 分类器以及 MCP 服务器。我们还开始讨论将 Codex 和 Claude Code 等编码代理引入我们的工作流程。这些审批仍在政府方面等待批准。

在云端进行调试是一件很特别的事情。AWS 生产环境与你的笔记本电脑不同。你会在 Splunk、CloudWatch 和部署历史记录中花费大量时间。

我很幸运能领导聪明的人,并为一位信任我完成工作的经理工作。这让其余的大部分工作都变得容易了。

就是这样。继续前进,迎接下一个挑战。

保持更新

将最新文章和见解发送到您的收件箱。

Unsubscribe anytime. No spam, ever.