Pragmatic Rails
Skinny models, skinny controllers, and robust service layers. Flexible architectures that rely on POROs and patterns to stay understandable and adaptable in year five.
//ruby on rails engineer - warsaw / remote
Mossfork is the independent practice of a pragmatic Rails engineer - focused on building resilient systems, from seed-stage MVPs to platforms moving real money. Architecture, code, deploys and the 3 a.m. pager: one pair of hands, zero handoffs.
//the build
State machines, UUIDs, and strict relationships. Only data integrity, no business logic callbacks.
Routing, rate limiting, and parameter parsing. HTTP layers shouldn't know how the sausage is made.
Service Objects encapsulate transactions, external APIs, and jobs. Easy to test and reuse.
Private networks, proxy healthchecks, zero downtime. Infrastructure defined as clean code.
class Order < ApplicationRecord include AASM belongs_to :customer has_many :items, dependent: :restrict_with_error self.implicit_order_column = "created_at" # UUID PKs aasm column: :status, whiny_transitions: true do state :draft, initial: true state :pending, :paid event :confirm do transitions from: :draft, to: :pending end endendclass OrdersController < ApplicationController rate_limit to: 5, within: 1.minute, only: :create def create result = Checkout::ProcessCommand.call( customer: Current.user, params: order_params, idempotency_key: request.headers["X-Idempotency-Key"] ) if result.success? redirect_to result.payload, notice: "Order secured." else render :new, status: :unprocessable_entity, locals: { errors: result.errors } end endendclass Checkout::ProcessCommand def self.call(customer:, params:, idempotency_key:) new(customer, params, idempotency_key).call end def call Order.transaction do validate_idempotency! order = @customer.orders.create!(@params) order.confirm! # triggers state machine PaymentGatewayJob.perform_later(order.id) OrderMailer.with(order: order).confirmation.deliver_later Result.success(order) end rescue ActiveRecord::RecordInvalid => e Result.failure(e.record.errors) endendservice: coreimage: ghcr.io/mossfork/coreservers: web: hosts: [ 10.0.1.11, 10.0.1.12 ] options: network: "private_net" workers: hosts: [ 10.0.1.13, 10.0.1.14 ] cmd: bundle exec solid_queue:workproxy: ssl: true host: api.mossfork.dev healthcheck: path: /up//pragmatic architecture
Most software dies in the gaps - between the architect and the builder, the builder and the operator. Mossfork removed the gaps. Whether it's a modular monolith or a decoupled service architecture, the goal is maintainability. One engineer who designs it, builds the service layer, ships it, and answers the pager.
//capabilities
01 / 05 - keep scrolling
Skinny models, skinny controllers, and robust service layers. Flexible architectures that rely on POROs and patterns to stay understandable and adaptable in year five.
Server-rendered interfaces with SPA feel and none of the build-step grief. One broadcast from a model, and every open tab updates itself.
EXPLAIN-driven query tuning, honest indexes, and caching that earns its keep. Milliseconds are a feature - and terabytes get a columnar store, not excuses.
Language-model features built the boring way - pgvector for memory, retrieval over your own data, responses streamed live into the page over Turbo.
Docker images, Kamal deploys, Linux boxes configured on purpose and monitored for real. If it pages at night, it pages the person who built it.
//process
A week of questions before a line of code. The expensive mistakes happen before the repository exists.
Pragmatic choices, written down. Modular monoliths by default, extracted services when they actually solve a real scaling problem.
Small pull requests, real tests, zero-downtime migrations. Momentum you can see in the changelog, week after week.
Continuous, health-checked, reversible in one command. Deploys so uneventful they stopped being meetings.
Dashboards, alerts, and a phone that actually rings the builder. Mossfork runs what Mossfork ships.
//the stack
//contact
booking new engagements from q4 2026 · warsaw / remote