The Curious Engineer

All blogs / Ruby / Rails

Evil Martians

evilmartians.com/chronicles

We’ve got articles for junior and experienced developers, case studies for startup founders and managers, and thorough technical deep dives into unexpected terrain. No matter where you’re coming from, you’re certain to gain some insight here, whether it’s more practical, or something that really tak

Ruby / RailsFrontend / CSS / browsersAI / MLPerformance / optimizationWeb developmentEngineering blogs

Posts
382 from 22 Mar 2015 to 28 Oct 2026
Posting
weekly (69 in the last year)
Kind
company blog
Feed
https://evilmartians.com/chronicles.atom

2026 61

  1. How to make postMessage type-safe in under 350 bytes
  2. The Agents on Rails Files: designing black-box evals for coding agents
  3. Don’t get burned, make your Stripe MRR boring and correct
  4. Don't bet on SELECT's order: shuffle your rows and see what folds
  5. SF Ruby Conference: regular ticket prices end September 30
  6. AI makes design system guardrails mandatory; this framework delivers them
  7. Rails Hyperdrive: supercharged agentic development for Rails
  8. Give up a little speed, get your team back
  9. The Golden Switch, or migrating from Gatsby to Astro in under 9¾ days
  10. Why Gusto hired Evil Martians for Sidekiq infrastructure
  11. 10 anti-AI slop moves for frontend projects going faster than humans can review
  12. Why engineers should come to the SF Ruby Conference in 2026
  13. Access control for AI agents on Rails: gating SQL with Action Policy
  14. Get in, human: cut Rails boot time with require-profiler and this guide
  15. Ship agent skills like packages: discovery index, digests, and install sources
  16. Fair by design: orchestrating background jobs in Ruby
  17. 5 best practices for preventing chaos in Tailwind CSS
  18. +14% activated users for AppSignal: designing a new homepage in code
  19. The secure way to release an npm package in 2026
  20. Which AI actually reads your site? Two months of LLM traffic, measured
  21. The joy of Inertia Rails: painting your own with 50 happy little lines
  22. Storybook Workbench: audit vibe-coded UIs and find hidden bugs in hours
  23. July 1, 2026
  24. June 30, 2026
  25. June 24, 2026
  26. June 17, 2026
  27. SKILLS available
  28. May 26, 2026
  29. May 19, 2026
  30. May 18, 2026
  31. May 6, 2026
  32. May 5, 2026
  33. April 21, 2026
  34. SKILL available
  35. April 14, 2026
  36. SKILL available
  37. April 8, 2026
  38. April 6, 2026
  39. April 1, 2026
  40. March 30, 2026
  41. March 24, 2026
  42. March 23, 2026
  43. March 17, 2026
  44. SKILLS available
  45. March 10, 2026
  46. March 3, 2026
  47. February 26, 2026
  48. February 25, 2026
  49. February 23, 2026
  50. February 18, 2026
  51. SKILL available
  52. February 11, 2026
  53. February 10, 2026
  54. February 4, 2026
  55. February 3, 2026
  56. January 29, 2026
  57. SKILLS available
  58. January 21, 2026
  59. January 15, 2026
  60. January 7, 2026
  61. January 6, 2026

2025 55

  1. SKILLS available
  2. December 18, 2025
  3. December 11, 2025
  4. December 10, 2025
  5. December 4, 2025
  6. November 25, 2025
  7. November 19, 2025
  8. November 10, 2025
  9. October 29, 2025
  10. October 28, 2025
  11. October 22, 2025
  12. October 15, 2025
  13. October 8, 2025
  14. October 7, 2025
  15. October 1, 2025
  16. September 23, 2025
  17. September 17, 2025
  18. September 15, 2025
  19. September 10, 2025
  20. September 3, 2025
  21. August 26, 2025
  22. August 18, 2025
  23. August 13, 2025
  24. August 6, 2025
  25. What we learned from creating PostCSS
  26. July 29, 2025
  27. SKILLS available
  28. July 23, 2025
  29. July 8, 2025
  30. July 2, 2025
  31. June 24, 2025
  32. June 23, 2025
  33. June 17, 2025
  34. June 9, 2025
  35. June 4, 2025
  36. May 28, 2025
  37. May 20, 2025
  38. May 15, 2025
  39. April 30, 2025
  40. April 29, 2025
  41. April 23, 2025
  42. April 22, 2025
  43. April 8, 2025
  44. April 1, 2025
  45. March 26, 2025
  46. March 18, 2025
  47. March 5, 2025
  48. SKILL available
  49. February 25, 2025
  50. February 19, 2025
  51. February 18, 2025
  52. January 28, 2025
  53. January 22, 2025
  54. Devs in mind 2025: how to design interfaces for developer tools
  55. January 7, 2025

2024 54

  1. December 31, 2024
  2. Don't just slap on a chatbot: building AI that works before you ask
  3. December 17, 2024
  4. SKILLS available
  5. December 2, 2024
  6. November 19, 2024
  7. Hey, AnyCable speaking! Needing help with a Twilio-OpenAI connection?
  8. November 5, 2024
  9. October 29, 2024
  10. October 23, 2024
  11. October 15, 2024
  12. September 25, 2024
  13. September 18, 2024
  14. September 10, 2024
  15. August 28, 2024
  16. August 20, 2024
  17. Railing against time: tools and techniques that got us 5X faster tests
  18. August 13, 2024
  19. August 12, 2024
  20. August 11, 2024
  21. August 10, 2024
  22. August 5, 2024
  23. July 30, 2024
  24. July 29, 2024
  25. July 23, 2024
  26. How to make complex Chrome extensions: a zero gravity guide
  27. July 15, 2024
  28. July 9, 2024
  29. July 8, 2024
  30. July 2, 2024
  31. June 25, 2024
  32. June 11, 2024
  33. June 10, 2024
  34. May 22, 2024
  35. May 7, 2024
  36. April 30, 2024
  37. April 24, 2024
  38. April 22, 2024
  39. April 15, 2024
  40. April 9, 2024
  41. April 8, 2024
  42. April 2, 2024
  43. March 26, 2024
  44. March 20, 2024
  45. March 12, 2024
  46. March 6, 2024
  47. February 28, 2024
  48. February 14, 2024
  49. February 6, 2024
  50. January 30, 2024
  51. January 24, 2024
  52. January 23, 2024
  53. January 18, 2024
  54. January 10, 2024

2023 38

  1. December 27, 2023
  2. December 20, 2023
  3. December 12, 2023
  4. December 4, 2023
  5. November 28, 2023
  6. November 20, 2023
  7. November 14, 2023
  8. November 13, 2023
  9. November 8, 2023
  10. November 6, 2023
  11. October 31, 2023
  12. October 23, 2023
  13. October 16, 2023
  14. September 12, 2023
  15. SKILL available
  16. August 23, 2023
  17. August 22, 2023
  18. August 4, 2023
  19. July 20, 2023
  20. July 14, 2023
  21. July 5, 2023
  22. June 28, 2023
  23. June 7, 2023
  24. May 31, 2023
  25. May 16, 2023
  26. May 3, 2023
  27. April 19, 2023
  28. April 13, 2023
  29. April 4, 2023
  30. March 28, 2023
  31. March 21, 2023
  32. March 15, 2023
  33. March 10, 2023
  34. March 1, 2023
  35. February 21, 2023
  36. February 7, 2023
  37. January 30, 2023
  38. January 24, 2023

2022 35

  1. December 19, 2022
  2. December 13, 2022
  3. December 5, 2022
  4. November 22, 2022
  5. November 17, 2022
  6. November 14, 2022
  7. October 18, 2022
  8. October 12, 2022
  9. October 3, 2022
  10. September 20, 2022
  11. September 15, 2022
  12. September 8, 2022
  13. September 5, 2022
  14. August 19, 2022
  15. August 18, 2022
  16. August 9, 2022
  17. August 3, 2022
  18. July 27, 2022
  19. July 21, 2022
  20. July 15, 2022
  21. July 6, 2022
  22. June 28, 2022
  23. June 23, 2022
  24. June 16, 2022
  25. June 9, 2022
  26. June 2, 2022
  27. May 25, 2022
  28. May 16, 2022
  29. May 12, 2022
  30. April 27, 2022
  31. April 12, 2022
  32. March 24, 2022
  33. February 17, 2022
  34. February 9, 2022
  35. January 5, 2022

2021 26

  1. December 21, 2021
  2. December 9, 2021
  3. November 30, 2021
  4. November 24, 2021
  5. November 16, 2021
  6. November 9, 2021
  7. October 27, 2021
  8. October 5, 2021
  9. September 13, 2021
  10. September 7, 2021
  11. August 23, 2021
  12. August 18, 2021
  13. August 13, 2021
  14. July 28, 2021
  15. July 26, 2021
  16. July 5, 2021
  17. June 22, 2021
  18. June 16, 2021
  19. June 3, 2021
  20. May 24, 2021
  21. April 12, 2021
  22. April 6, 2021
  23. March 11, 2021
  24. February 17, 2021
  25. January 27, 2021
  26. January 25, 2021

2020 25

  1. December 10, 2020
  2. November 17, 2020
  3. November 9, 2020
  4. November 4, 2020
  5. October 27, 2020
  6. October 20, 2020
  7. October 7, 2020
  8. September 14, 2020
  9. August 31, 2020
  10. August 27, 2020
  11. August 25, 2020
  12. July 14, 2020
  13. July 13, 2020
  14. July 1, 2020
  15. June 29, 2020
  16. June 15, 2020
  17. June 11, 2020
  18. June 3, 2020
  19. May 26, 2020
  20. May 11, 2020
  21. May 4, 2020
  22. April 14, 2020
  23. April 6, 2020
  24. March 2, 2020
  25. January 21, 2020

2019 35

  1. December 18, 2019
  2. November 19, 2019
  3. November 5, 2019
  4. October 7, 2019
  5. September 4, 2019
  6. August 28, 2019
  7. August 10, 2019
  8. August 5, 2019
  9. July 30, 2019
  10. July 19, 2019
  11. July 16, 2019
  12. July 10, 2019
  13. July 9, 2019
  14. July 2, 2019
  15. June 24, 2019
  16. June 19, 2019
  17. June 10, 2019
  18. June 4, 2019
  19. May 27, 2019
  20. May 21, 2019
  21. May 14, 2019
  22. April 29, 2019
  23. April 23, 2019
  24. April 22, 2019
  25. April 9, 2019
  26. April 2, 2019
  27. April 2, 2019
  28. March 19, 2019
  29. February 26, 2019
  30. February 12, 2019
  31. February 12, 2019
  32. January 29, 2019
  33. January 29, 2019
  34. January 15, 2019
  35. January 7, 2019

2018 20

  1. December 4, 2018
  2. November 26, 2018
  3. November 5, 2018
  4. October 31, 2018
  5. October 22, 2018
  6. September 27, 2018
  7. August 1, 2018
  8. July 24, 2018
  9. July 4, 2018
  10. June 28, 2018
  11. June 19, 2018
  12. June 11, 2018
  13. May 14, 2018
  14. May 1, 2018
  15. April 12, 2018
  16. March 28, 2018
  17. February 27, 2018
  18. February 21, 2018
  19. February 21, 2018
  20. January 31, 2018

2017 14

  1. December 20, 2017
  2. December 12, 2017
  3. December 5, 2017
  4. November 27, 2017
  5. November 20, 2017
  6. November 13, 2017
  7. November 7, 2017
  8. September 26, 2017
  9. September 5, 2017
  10. August 21, 2017
  11. August 7, 2017
  12. May 16, 2017
  13. May 6, 2017
  14. January 26, 2017

2016 10

  1. December 20, 2016
  2. October 31, 2016
  3. September 6, 2016
  4. June 28, 2016
  5. May 12, 2016
  6. March 9, 2016
  7. March 3, 2016
  8. February 8, 2016
  9. January 19, 2016
  10. January 12, 2016

2015 9

  1. December 24, 2015
  2. November 10, 2015
  3. October 20, 2015
  4. September 7, 2015
  5. August 6, 2015
  6. July 7, 2015
  7. April 25, 2015
  8. April 7, 2015
  9. March 22, 2015