Evil Martians

Evil Martians

@evilmartians.com

Design and engineering consultancy for developer tools, AI, and cybersecurity startups. Lago, Tines, Teleport, Wallarm, and Whop grow with Evil Martians.

899 followers19 following534 posts

Evil Martians reposted

Evil Martians' black-box checks are thoughtful benchmark design: they grade what an unfamiliar Rails app does without assuming how its code is structured.

Evil Martians@evilmartians.com

Agents on Rails is the Rails Foundation's LLM benchmark. We designed its eval tasks and the tooling to run at scale. Read how we wrote black-box checks for apps with code we'd never seen, keeping trials fair and results reliable. Bonus: the same evals against Rust. evilmartians.com/chronicles/t...

Talk is cheap and so is code. Yuri Mikhin wrote ten checks to pass on AI-generated code. These make it safer to trust, faster to review, and harder to let decay go unnoticed. Rita Klubochkina turned those checks into an agent skill set evilmartians.com/chronicles/t...

evilmartians.com10 anti-AI slop moves for frontend projects going faster than humans can review—Martian Chronicles, Evil Martians’ team blogTen checks that catch what AI-written frontend code hides: contract codegen, boundary linting, mutation testing, and dead-code detectors.

Agents on Rails is the Rails Foundation's LLM benchmark. We designed its eval tasks and the tooling to run at scale. Read how we wrote black-box checks for apps with code we'd never seen, keeping trials fair and results reliable. Bonus: the same evals against Rust. evilmartians.com/chronicles/t...

evilmartians.comThe Agents on Rails Files: designing black-box evals for coding agents—Martian Chronicles, Evil Martians’ team blogTips and tricks on writing robust evals for coding agents that test apps whose code we've never seen: different UI/UX contract strategies, UI mutation testing, browser-based E2E verification gotchas.

What's in it for you at @sfruby.com? Two tracks for startups and big companies, talks from people at Shopify, Typesense, Anthropic, and more, and networking rooms. Don't miss it if you’re into learning from the brightest minds, having conversations about the future, and making new friends.

Our engineers are encouraged to write for blog, which then powers most of our marketing. Hundreds of thousands of people read it every year. We’re thrilled it was rated the top blog in @planetargon.com's 2026 Ruby on Rails Community Survey. Thanks to everyone who reads us and Travis for running it!

Your agent is burning tokens before it starts writing a single line. We measured this in Agents on Rails, our benchmark for @rubyonrails.org.web.brid.gy. Every time you start a session, a coding agent meets your Rails app from scratch. It reads the Gemfile and guesses the rest, which leads to bugs.

Problem: your customers upgraded but your dashboard says they churned. We've tackled MRR errors across dozens of client projects. Read our Stripe guide to catch them before your next investor update. Includes Ruby examples, but rules apply in any language. evilmartians.com/chronicles/d...

evilmartians.comDon’t get burned, make your Stripe MRR boring and correct—Martian Chronicles, Evil Martians’ team blogMRR is easy to calculate and easy to get subtly wrong. Here's how to normalize Stripe subscriptions, classify every movement, and reconcile your number with Stripe's own charts.

Our team designed the Nano Stores website, and it feels like going back in time (with the speed of an Astro site). If you have something like this in mind, let's chat. Our design team can make it happen.

Andrey Sitnik@en.sitnik.es

Nano Stores finally has a website! We've seen huge growth thanks to LLMs. Not having a site was embarrassing. nanostores.net Check out the design: fresh and personal. Too many modern sites look the same. No React. Just Astro.

We'll build your idea and open source it for free. 👀 All @sfruby.com attendees get access to our pre-conference game, where they can complete quests to earn coins and redeem them for real prizes. Get a ticket, play the game, and get the chance to work with us for free: luma.com/sfrubyconf2026

Swap GIFs for video and make your files 20–40× smaller with AV1 or H.264. We've used this setup in production for years, and now we've turned @en.sitnik.es’s guide on this into a skill so your agent can do the encoding for you. Get it here: evilmartians.com/chronicles/b...

evilmartians.comHow to make web videos way smaller in 2025 using the AV1 codec—Martian Chronicles, Evil Martians’ team blogLearn to use AV1 to make videos on your website smaller and better quality. CLI instructions and cross-browser tricks.

We all have jobs... background jobs. Our head of backend, Vladimir Dementyev, gave a talk about them at Rails World. He shows how Active Job went from a thin compatibility layer to a foundational component, and introduces Durable Continuations for workflow-level orchestration in the Rails way.

Evil Martians reposted

🚨 ATTENTION ALL TICKET HOLDERS! 🚨 We need you to upload your picture to clouds.sfruby.com using the same email you used to get your ticket before 10/22. Our badges include your avatars so we need your pictures. If not, we’ll have to assign you a random avatar based on the vibe your name gives off.

clouds.sfruby.comFind your Ruby friends in the CloudsAnd at the San Francisco Ruby Conference on Nov 10-12. Join in at sfruby.com

Valibot (@valibot.dev) is an OSS, type-safe schema library. Its maintainer, @fabianhiller.com, actively contributes to the TypeScript ecosystem and is on a mission to improve the web for everyone. We support his vision, so we're donating to him as part of our open source donation program.

Evil Martians@evilmartians.com

Not all heroes wear capes... at least the @e18e.dev team doesn't. They’re on a mission to make the JS ecosystem lighter and faster. So we’re donating to them as part of our OSS donation program. They've already reduced node_modules size and made Node.js tooling much faster, and we appreciate it!

Evil Martians reposted

This week's spotlight shines on @mattsolt.bsky.social. 🔦 He's bright, community-driven, and approachable. As an AI enthusiast, Matt writes RubyAI every week and is building Poetry UI. We're so glad to have him attend the conference for a second time and can't wait for you to meet him.

Chris Fung (@aergonaut.com) found Ruby by accident and immediately knew he didn't want to write PHP anymore. Then, he joined the community and loved how fun people were. 💙 If you want to meet a kind, smart, and fun person at the conference, find Chris in the audience and start a conversation.

Developing products with AI can make the UI look inconsistent. To fix that, we changed the way they build and use design systems. We turned those changes into a framework that enforces rules on the AI agent when it checks and chooses from the design system. Here are three of those changes: 🧵

View full thread

3. Move deterministic checks out of AI skills. AI is surprisingly good at fuzzy, judgment-based tasks and surprisingly bad at deterministic ones. To fix this, we wrote scripts for everything that can be described algorithmically and simply tell the agent which script to call and when.

Developing products with AI can make the UI look inconsistent. To fix that, we changed the way they build and use design systems. We turned those changes into a framework that enforces rules on the AI agent when it checks and chooses from the design system. Here are three of those changes: 🧵

1. Separate product building from design system maintenance so the AI agent can focus on one task at a time. When the product team builds screens, it logs the design system limitations it runs into, and passes it over to the design team for them to improve the system.

2. Turn design intent into component contracts. The code of a component doesn't explain how it's supposed to be used. When an agent doesn't have exact answers, it makes assumptions. To reduce those moments, we added component contracts and descriptions to help agents make the right decisions.

Evil Martians reposted

Did all Rails apps just get faster, or are we just announcing our Emerald sponsor? @FastRuby.io helps companies upgrade their legacy Rails apps with zero downtime. Its team helps you improve security, pay off tech debt, and optimize your platform's performance. Meet the team at the conference.

Evil Martians reposted

See you in San Francisco? Early birds end today!

Evil Martians@evilmartians.com

In a world where everyone can build apps with AI, our job is to build skills, harnesses, and tooling that help them make better apps. But for new builders to choose Ruby/Rails, we need to talk to each other and understand what's missing in the ecosystem. That's the whole idea behind @sfruby.com.

In a world where everyone can build apps with AI, our job is to build skills, harnesses, and tooling that help them make better apps. But for new builders to choose Ruby/Rails, we need to talk to each other and understand what's missing in the ecosystem. That's the whole idea behind @sfruby.com.

The talks are curated to show the tools people are working on and how companies approach similar problems. We're also putting a lot of work into the experience off the main stage so people can have the conversations that move the ecosystem forward.

View full thread

What we did for them: - Upgraded Sidekiq versions - Turned on Sidekiq strict arguments, which exposed a couple of subtle bugs - Fixed compatibility and bugs in Gusto's custom tooling - Hardened RuboCop rules and AI agent skills - Fixed bugs upstream in the open-source libraries Gusto depends on

Gusto brought us in to work on their Sidekiq background job infrastructure because we've spent years solving this exact problem at scale. Our team has written libraries that solve specific problems of running Sidekiq in production, such as sidekiq-fairplay, sidekiq-fair_tenant, Yabeda, and more.

A bit of context on Gusto: - It processes about 170M Sidekiq jobs a day, peaking near 270M. - It runs roughly 1,000 workers on a single Redis instance. - The main bottleneck is the primary database. - At that volume, a 0.01% failure rate means thousands of failed jobs a day.

ATTENTION ALL RAILS WORLD ATTENDEES. 🚨🚨 We need you today more than ever. Help us find our sea lion and bring it back home! 🦭

Someone last saw it at Austin, seems like it didn't want to miss Rails World. Find it, send us a picture, complete the quest in our game, and help us get it back to the Pier. 📷 Austin heat is bad for our friend! 🦭

We are bringing our Devtool Founders Coffee and Waffles event to SF Tech Week. 🧇 Just like last year, we are gathering early-stage founders at Lafayette park in SF to chat about devtools and data privacy. This time, we're partnering with Assenteo, a firm that handles data compliance for startups.

Our fonts, official logo and all its fun variants, and brand guidelines are live on the website under '/brand'.  If you need to use our logo for anything, e.g., saying great things about us, go and download what you need in SVG or PNG format. The best variation has to be Elvis Martians, for sure.

Not all heroes wear capes... at least the @e18e.dev team doesn't. They’re on a mission to make the JS ecosystem lighter and faster. So we’re donating to them as part of our OSS donation program. They've already reduced node_modules size and made Node.js tooling much faster, and we appreciate it!

Evil Martians@evilmartians.com

We’re donating to DOMPurify as part of our open source donation program. DOMPurify, built and maintained by Cure53, is the best tool to protect your website from XSS attacks. They are doing an amazing job at tracking all new potential attacks. We respect and rely on their findings.