41554 blogs · [ { "id": "01a08723-be12-7351-a15d-f38f5307a135", "title": "What's new Alex?", "url": "https://alexbarret.com/blog/2025/whats-new/", "published_at": "2025-10-16T20:27:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f531d40a2", "title": "Perfecting Your Rails Form: Nested Attributes", "url": "https://alexbarret.com/blog/2024/perfecting-your-rails-form-part-2/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f533a5b2c", "title": "Perfecting Your Rails Form: Atribute Accessors", "url": "https://alexbarret.com/blog/2024/perfecting-your-rails-form-part-1/", "published_at": "2024-10-26T00:00:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f53b5ee11", "title": "RSpec Testing Levels", "url": "https://alexbarret.com/blog/2024/rspec-testing-levels/", "published_at": "2024-10-11T21:40:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f5416df32", "title": "What is business logic?", "url": "https://alexbarret.com/blog/2024/what-is-business-logic/", "published_at": "2024-01-29T23:39:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f546396d9", "title": "Empathetic coding", "url": "https://alexbarret.com/blog/2024/empathetic-coding/", "published_at": "2024-01-28T05:01:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f55480e8d", "title": "To Push or Not to Push the Crosswalk Button?", "url": "https://alexbarret.com/blog/2023/to-press-or-not-to-press/", "published_at": "2023-09-30T08:30:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f555b1239", "title": "Identify i18n translation keys", "url": "https://alexbarret.com/blog/2023/identify-i18n-keys/", "published_at": "2023-03-05T03:44:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f561a2006", "title": "On writing better service objects", "url": "https://alexbarret.com/blog/2022/on-writing-better-service-objects/", "published_at": "2022-11-16T04:28:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f568f72a5", "title": "Testing Rails Scopes", "url": "https://alexbarret.com/blog/2022/testing-rails-scopes/", "published_at": "2022-11-06T09:35:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f56c8406f", "title": "Please show me a Gemfile", "url": "https://alexbarret.com/blog/2022/please-show-me-a-gemfile/", "published_at": "2022-10-17T06:28:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f572c42b1", "title": "Service object alternatives: Serializers", "url": "https://alexbarret.com/blog/2021/you-might-not-need-service-objects-serializers/", "published_at": "2021-06-11T01:28:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f5745fc52", "title": "Skipping existing ActiveRecord validations", "url": "https://alexbarret.com/blog/2021/skip-existing-validations-in-rails/", "published_at": "2021-05-13T23:48:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f5843bf51", "title": "Retest - Docker & feature Specs", "url": "https://alexbarret.com/blog/2021/retest-docker-and-feature-specs/", "published_at": "2021-04-20T05:38:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f592bc143", "title": "Pragmatic refactoring", "url": "https://alexbarret.com/blog/2021/pragmatic-refactoring/", "published_at": "2021-03-15T21:55:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f59cc3531", "title": "Testing ActiveRecord concerns", "url": "https://alexbarret.com/blog/2021/testing-model-concerns/", "published_at": "2021-01-14T10:00:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f5aaa444f", "title": "Service object alternatives: ActiveModel", "url": "https://alexbarret.com/blog/2020/service-object-alternative/", "published_at": "2020-12-05T10:00:00+00:00" }, { "id": "01a08723-be12-7351-a15d-f38f5ae532d5", "title": "Reflect on past commits", "url": "https://alexbarret.com/blog/2020/reflect-on-past-commits/", "published_at": "2020-08-25T09:33:00+00:00" } ] posts Claim your blog
Back to alexbarret.com
Blog · corpus.blog/blogs/alexbarret.com/posts

alexbarret.com

alexbarret.com

2025

2024

2023

2022

2021

2020