kava-ir-kodas@office status:online brew:ready uptime: clock:--:--:-- █

Technical consultancy & Ruby development

From fuzzy problem
to working software.

Rails & Ruby consultancy for teams facing complex codebases, performance problems, and architectural decisions — we find the actual problem, explain it clearly, and fix it without rewriting everything.

We anchor our ethos, judgment, and our efforts in the fundamentals of software engineering. We take on a limited number of engagements at a time, work inside your team, and leave code that is easier to read than the day before.

Ruby · Rails · PostgreSQL · Hotwire · AI · Elasticsearch

Start an inquiry → See selected work →

Real clients. In production. A small team, engaged directly by the people who do the work.


01 — Problems you solve

When the code stops cooperating.

You don't usually hire a consultancy for what works. You reach out when something is hard: slow, fragile, unclear, or just too much to carry alone. These are the problems we exist to solve.


02 — What we do

Turning those problems into working software.

Hands-on work inside your team — building new systems, speeding up the ones that slowed down, and modernizing the ones you're afraid to touch. Every engagement ends with code that's easier to read than the day before.


03 — Selected work

Engagements in the field.

A selection of engagements, real clients.

in production

MaskedFinch

AI-powered web scraping API with automatic captcha solving and JavaScript rendering. Scales to complex workflows through a visual editor.

  • Web scraping
  • AI extraction
  • JavaScript
  • CAPTCHA
shipped

VoidAnalytics

Lightweight, cookie-free web analytics. Built to comply with GDPR, CCPA, and PECR, and hosted inside the European Union.

  • Analytics
  • Privacy
  • GDPR
  • Ruby
exited

Speiz

SaaS marketplace leasing warehouse space. Modernizing a decades-old industry with a faster, cheaper, end-to-end digital leasing process.

  • Marketplace
  • SaaS
  • Leasing
shipped

CGTrader backend

Contracted backend work: payment integrations, API updates, a 3D object and image processing toolkit, and admin panel tooling.

  • Payments
  • API
  • 3D/Image
  • Rails
in production

CFlow

Personal accounting tool for the Lithuanian market. Owned the full stack, server-side communication, and API integrations.

  • Accounting
  • Ruby
  • Rails
  • API
beta

Real estate search

Search engine for developing estate projects. Built the backend, Elasticsearch search, server setup, and front-end from PSDs.

  • Search
  • Elasticsearch
  • RoR
  • Chef

04 — Engineering philosophy

Emergent over prescribed aesthetics.

These are not trends. They are the operating rules we apply to every engagement, dense on purpose, because clarity rarely fits in a single line.

Explicit over implicit
Show the work; hide nothing that costs money to understand.
Expose state and inner workings
A system you can read is a system you can fix.
Dense, not sparse
Respect the reader's attention and the network's bytes.
Engineered for human vision
Typography, rhythm, and hierarchy do the heavy lifting.
Regiment functionalism
Every element must earn its place with a job to do.
Performance is design
Fast is a feature, not an afterthought.
Verbosity over opacity
Preferring a few extra bytes to a confused engineer.
Ignore design trends
Timeless and unfashionable. We expect this to outlive yours.
Flat, not hierarchical
Importance is earned by content, not by being big.
As complex as it needs to be
Diametrically opposite of minimalism.
Objective reasoning
Driven by common sense, metrics, and evidence.
Don't infantilize users
Treat engineers and power users like adults.
Coffee first
A well-brewed decision beats a fast one.

We don't hide the machinery. Here is the kind of code we leave behind — small, explicit, and easy to read.

# kava-ir-kodas — we brew software, one commit at a time
module Kava
  class Consultancy
    def self.brew(clients)
      clients.map { |client| client.with(self) }
    end

    attr_reader :client, :reviewed, :shipped

    def initialize(client)
      @client    = client
      @reviewed  = false
      @shipped   = false
    end

    def with(consultancy)
      consultancy.review!(self)
      consultancy.ship!(self)
      self
    end

    def review!
      raise Unreviewed unless reviewed
      self
    end

    def ship!
      raise Unreviewed unless reviewed
      @shipped = true
      self
    end
  end
end

05 — How an engagement works

Tell us the problem. We handle the rest.

  1. 01

    Tell us the problem.

    Send a message describing what's stuck. No scope, no pressure — just the real problem.

  2. 02

    We investigate.

    We read the code, trace the failure, and find where it's actually broken — not just the symptom.

  3. 03

    We explain.

    You get an honest assessment and a clear plan, in language you understand — not jargon.

  4. 04

    We fix it.

    We work inside your team, writing code that's easier to read than the day before.

  5. 05

    We leave.

    You're left with working software, documentation, and a team that can carry it forward.


06 — Inquiry

Have something stuck?

Send us the problem. We'll tell you honestly whether we can help — even if it means telling you not to hire us.

No sales call required. No engagement is too small.