Welcome,

This is REKKI's engineering blog.

Check out the most recent articles:

* Fuck This Pandemic
  [work]

  TLDR:
  * it has been 13 months since we closed the offices
  * how it all started
  * why we are trying 4 day workweeks

  fuck-this-pandemic/pandemic.txt

  Tue 30 Mar 11:26:45 CEST 2021
  Borislav Nikolov (https://github.com/jackdoe)


* Code Reviews at REKKI
  [complexity, communication]

  TLDR:
  * push to master if you want and if your team likes it
  * ask for a review, but try to do it over video/audio and articulate
    'why' your code exists
  * don't comment on style or shit like that (commenting on style is
    like putting salt on food before trying it)
  * reviews do not share responsibility
  * own what you push

  code-reviews-at-rekki/r.txt

  Sat  4 Jul 14:56:10 CEST 2020
  Borislav Nikolov (https://github.com/jackdoe)

* (Unit) Testing at REKKI (backend)
  [testing, complexity, speed]

  TLDR:
  * test your core, make sure your core is strong

  * don't test your http api
  * don't mock
  * don't test writing and reading from the database
  * don't complicate your code to make it testable
  * ... unless you deem fit

  unit-testing-at-rekki/t.txt

  Thu 14 May 12:22:44 CEST 2020
  Borislav Nikolov (https://github.com/jackdoe)


* Notes on designing with tests
  [tests, conversations]

  TLDR:
  Today I remembered why testing is a tool I like so much - it enables
  me to write concise code with clearer boundaries from the start,
  without having to wait until the complexity creeps up on you.

  on-tests.txt

  Tue 18 Feb 19:50:46 London Time 2020
  Javier Garcia (https://github.com/Manzanit0)


* Mutation is life / Boring Technology
  [technical debt, complexity]

  TLDR:
  We had horrible outage where rabbitmq node ran out of memory because
  I forgot to unbind a queue (one of 50s or so), and we lost a whole
  bunch of in-producer-memory state, this made our whole
  infrastructure completely probabilistic and it took us 2 hours of
  blood sweat and tears to recover the lost data. We should've just
  used postgres as a queue.

  boring.txt
  boring/pictures/cs.jpg

  Sat 15 Feb 13:42:46 CET 2020
  Borislav Nikolov (https://github.com/jackdoe)


* Work in the kitchen.
  [product, technical debt]

  TLDR:
  Use your product, and talk to your users, as a developer there is no
  better way to work on the things that matter. Almost every other
  path leads to institutional imperative[1] and deepest technical debt
  that is almost impossible to pay.

  There is no better way to code than to work in the kitchen.

  kitchen.txt
  kitchen/pictures

  Thu  7 Feb 18:08:42 CET 2020,
  Borislav Nikolov (https://github.com/jackdoe)


* Interface Dispatch
  [go, performance]

  TLDR:
  Always measure before you optimize, I introduced super shitty bug to
  https://github.com/rekki/go-query, because I thought the bottleneck
  is in the binary search implementation, and gained nothing; calling
  interface methods in hot for loops adds ~10-15 instructions per
  call.

  inline.txt
  inline/code

  Fri  6 Feb 19:38:07 CET 2020
  Borislav Nikolov (https://github.com/jackdoe)


Thanks for visiting!

--
RSS feed: rss.xml