11 September 2020

Turbo Agile™: Optimizing Efficiency of the Engineering Process for Maximum Velocity.

This post is about a software engineering process most similar to what is practiced by Pivotal Labs consultancy, with some SCRUM sprinkled in, and with some tweaks and adjustments applied.

07 September 2020

Writing command-line utilities in Ruby.

You may or may not know that I love writing CLI utilities in Ruby and open-sourcing them as ruby gems. You can install a ruby gem with gem install name on nearly any UNIX system, including a Mac.

01 June 2020

Test your Understanding of Ruby Concurrency

Test your understanding of how Ruby Concurrency works with these two simple multiple-choice questions.

21 March 2020

Building IntelliJ Bazel Plugin from Sources

Overview of Bazel support in IntelliJ Family of products, and instructions on how to build the plugin from sources.

20 September 2018

C++ Newbie Tour: Getting Started with C++ on Mac OSX

In this post we’ll explore some of the things that a beginner C++ programmers (but not general beginner programmers) might find useful in getting quickly up to speed.

15 May 2018

C5 class instance on EC2: cannot create file: Read-only file system

In this short post I describe the read-only file system issue that happened to one of our C5 hosts, and how we fixed it.

10 March 2017

Dead Simple Encryption with Sym

Most of us are familiar with the concept of application secrets, how important it is is not to commit those to your version control system, and how challenging it is to distribute development and production secrets across the dev team in a consistent and, most importantly, secure fashion. In this post we introduce a new Ruby Gem called 'Sym' for symmetric encryption.

19 February 2017

Add a Social Activity Feed for your Site in Minutes with the simple-feed Ruby Gem

This gem implements a flexible time-ordered activity feeds commonly used within social networking applications. As events occur, they are pushed into the Feed and distributed to all users that need to see the event. Upon the user visiting their 'feed page', a pre-populated ordered list of events is returned by the library.

26 June 2016

Traktor File Management Fixing Could Not Read Collection Playlist File Error

Wrestling with Native Instruments Traktor file management — playlists and organizing music.

06 May 2016

Building Scalable Performant And Cheap Distributed Applications Part 1

With this post, I’d like to start a series of DevOps-related conversations about building distributed applications (read: common web-apps). Folks running enterprise application use different technologies and are hosted across a range of cloud providers, and yet are often faced with very similar problems.

07 April 2016

Mixmax And My First Nodejs App.

MixMax enhances, enriches, extends (EEE!) the standard Gmail functionality with a lot of goodies, accessible from both the GUI as well as via the slash commands while composing an email.

28 November 2015

Scaling Web Applications On Postgresql A Walkthrough Presentation

In this exciting and informative talk, presented at PgConf Silicon Valley 2015, Konstantin cut through the theory to deliver a clear set of practical solutions for scaling applications atop PostgreSQL, eventually supporting millions of active users, tens of thousands concurrently, and with the application stack that responds to requests with a 100ms average.

22 November 2015

Serial Console Hacks With Arduino

In this post I’ll share a method that I use to connect to a Serial port of any Arduino I am using at any given moment. This method has a caveat, in that if you have more than one Arduino connected, it will pick one of them at random.

06 August 2015

Electronic Music, DJ-ing, tracks and Moods for Take Out...

Its about time we talked about my other obsession — music. You might now this, but I’ve produced and released two albums on iTunes and CDBaby. More info inside.

31 December 2014

How To Use Arduino Nano Mini Pro With CH340G On Mac Osx Yosemite

Recent versions of cheap Arduino clones have been coming out with a different USB/Serial chip, which replaces the usual FTDI. The chipset is called CH340G and this post explains how to install the drivers for it on both Mac and Windows.

21 November 2014

Announcing Laser Cutter and MakeABox.IO

LaserCutter & MakeABox.io — its a ruby gem and a website for making PDF designs of laser-cut boxes, which fit/snap in together at all edges using tabs that go in and out. The output of the library is a PDF document. Typically next step would import that PDF into Adobe Illustrator for additions and touch ups, and then sent off to a laser cutter for the actual, well, cutting.

12 October 2014

BORAT: Bathroom Occupancy Remote Awareness Technology with Arduino

Occupus (formerly BORAT: Bathroom Occupancy Remote Awareness Technology) – is an Arduino-based restroom occupancy detection and rapid notification system based on a network of nRF24L01+ 2.4GHz RF radios. It supports multiple (up to 5) casters (each installed in a bathrooms) and a single reporting unit.

02 August 2014

Arduino IDE Alternatives

Review of Arduino IDE Alternatives.

01 August 2014

Books on Being a Maker

Review of the list of books on being a Maker that I’ve been reading and thoroughly enjoying.

01 August 2014

How It All Started

In this post I share the story of how I got myself into Hardware programming with Arduino.

18 July 2014

BackSeat Driver: Autonomous Vehicle Library for Arduino

Back Seat Driver is a library for programming autonomous (or not) Arduino based robots. This library provides a convenient non-blocking command API to programmatically drive an autonomous vehicle. Current implementation is aimed at a 2-wheeled robot, with the two Servo motors setup opposite each other. Therefore to move the robot forward (or backward), two Servos need to rotate in the opposite direction (this is certainly true in the current version of the library, but may be more flexible in the future if need arises).

21 March 2014

Twelve Step Program For Scaling Web Applications On PostgreSQL

In this exciting and informative talk, presented at PgConf Silicon Valley 2015, Konstantin cut through the theory to deliver a clear set of practical solutions for scaling applications atop PostgreSQL, eventually supporting millions of active users, tens of thousands concurrently, and with the application stack that responds to requests with a 100ms average. He will share how his team solved one of the biggest challenges they faced: effectively storing and retrieving over 3B rows of 'saves' (a Wanelo equivalent of Instagram’s likes or Pinterest’s pins), all in PostgreSQL, with highly concurrent random access.

05 August 2013

Detangling Business Logic in Rails Apps with PORO Events and Observers

With any Rails app that evolves along with substantial user growth and active feature development, pretty soon a moment comes when there appears to be a decent amount of tangled logic, AKA technical debt.

13 February 2013

How to configure PostgreSQL for very high read/write throughput

In this post, I’ll go over some of our settings in postgresql.conf, which have been adjusted for high-performance/throughput and large RAM sizes. I would like to credit Josh Berkus and his PGExperts consultancy for providing us with timely and necessary assistance in tuning PostgreSQL these last few months.

05 February 2013

The Case For Vertical Sharding

In this post I share the story of overcoming a massive scalability bottleneck from too many writes ino the Analytics database table used for Event collection, using Vertical Sharding.

14 September 2012

The Big Switch How We Rebuilt Wanelo From Scratch And Lived To Tell About It

In this post we share the details of what we did and what we learned, in case someone out there ever finds themselves in a similar situation, weighing the risks of either working with a legacy stack or going full steam ahead with a rewrite.