Don’t forget to check out Part 2 when you’re done reading here: Mitigating Risky Pull Requests with Monocle Risk Advisor.
Over the last couple of years, Chime hired over 900 people. As part of this hiring, Chime formed a dedicated Product Security Team that is responsible for application security, cloud security, design and code reviews, threat modeling, building security frameworks and services, vulnerability management, and maintaining Chime’s bug bounty program. Our current ratio of software engineers to security engineers is ~60 to 1.
While building our security program, we realized that we were playing a bit of catch-up, and that there are unique challenges in building a proactive security culture. In this article we’ll cover how we addressed the following hurdles:
Choosing where to prioritize investments in security
Empowering engineers and teams to independently improve the security posture of their code
Achieve these two goals while preserving a philosophy centered on cross-functional collaboration
Our security philosophy
We seek to create a positive, dynamic relationship with other teams at Chime so that they not only trust us but see us as vital partners they can always come to for help;
We build preventative guardrails that protect member data while providing engineers with the flexibility to ship quickly and experiment;
We avoid an easy or simple “no”–instead, we educate and advise on the risks and solutions to mitigate those risks;
We try to ensure Chimers (Chime employees) avoid tedious busywork, seeking to automate where we can and make work simple and efficient.
Chime members (customers) depend on us to keep their personal and account information secure. The Security team takes this responsibility seriously and invests heavily to keep our members’ information safe.
Results of our security work, so far
We’ve built an internal Rails app, Monocle, which educates service and code owners on their current security posture. To gamify things, the app assigns grades to repositories every night, gives teams instructions on how to raise their scores, and provides leaders with a view of the security posture for both their teams and the company as a whole. Monocle powers strategic engineering and security decisions by pulling together key information from across our tools.
Here’s how our repository security scores have moved over time:
![[CC] Monocle 1](/_ctf-img/ao7gxs2zk32d/2fWJ3XBTLYstjDhriCIQf5/c45bf0c7736545d889c5067faa39486b/Monocle_1.webp?fm=webp&w=800&fit=fill&q=50)
Since the start of the project, we’ve reached 14 tracked score factors and almost 100% of our production repositories have a B (80%) or better.

![[CC] Monocle 2](/_ctf-img/ao7gxs2zk32d/1Ua7MGhHS8PIM1dg1DWgl3/8c27d96216e33a33a33a179e6e50dedf/Screenshot_2026-04-15_at_4.36.29%C3%A2__PM.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle 3](/_ctf-img/ao7gxs2zk32d/2GK3yl0d3ZQCO5UbZVL8zI/40c1dedf32ff1334cff6be1f76c13c6c/Screenshot_2026-04-15_at_4.36.23%C3%A2__PM.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle - Readme](/_ctf-img/ao7gxs2zk32d/7mafLyMQkZKPBE4Mg6QCpe/93f1c3135bb3319cd0449ef9567d5010/Monocle_Readme.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle - Security Score](/_ctf-img/ao7gxs2zk32d/V9xOjBWMGYvhCMY13zgq1/fa1afb6fe72b31fc5f816a0553796681/Security_score.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle service score](/_ctf-img/ao7gxs2zk32d/4YDVR4nbEAPcafxjruLt8V/74cfcc92c612bee25eca031a857fba84/service_score___room_for_more.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle - Score Dips](/_ctf-img/ao7gxs2zk32d/3l7siMdmgHIChYZphH4fpr/32ee7971f7b1b12e9cbec2007c7b5655/Score_dips.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle Tips](/_ctf-img/ao7gxs2zk32d/1maonnpEeuwyRgxqqMU5Bl/47f8cf26b023f9fb61ebca13aba37f3c/Channel_tips_Monocle.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle sample dashboard](/_ctf-img/ao7gxs2zk32d/6AQiuzKNptBIC5TXcFVmI3/ee5abfdf3c1a363f8e765532fa397b5d/Sample_dashboard.webp?fm=webp&w=800&fit=fill&q=50)
![[CC] Monocle fact breakdowns](/_ctf-img/ao7gxs2zk32d/4LMDE6nB6cQfqV58Gef0oZ/f12f9a7079d925cdf3aac00606acde2a/Monocle_image.webp?fm=webp&w=800&fit=fill&q=50)