Photo by Duy Pham on Unsplash

I’ve recently heard someone using the word “value” in a public speech, and whilst I believe not many people fully realized what the presenter was trying to say, and perhaps me neither to the full extent, this word stuck with me for a while and made me think profoundly about what “value” means.

I decided to write this blog post to share with readers my perspective about value, and the different shapes that it takes depending on the societal context.

So let’s start this post by providing the definition of what value means. …

Photo by Dominik Lückmann on Unsplash

I’ve worked on this project that needed some deployable back-end infrastructure and I was smart enough to put all the micro-services into Docker containers. Now I thought that having them into containers will make deployment easy, regardless of what Cloud provider I would use. I was right in that assumption but the journey to get my containers up in the cloud was not a smooth ride. This post is about a couple of hiccups that I have encountered, and how I went about solving them. Hopefully, you’ll learn something if you are in the same situation.

So first, I’ve heard…

Photo by Jakob Owens on Unsplash

Most recently I have had the chance to work on a personal project, with some technologies that I am very excited about such as MediaDevices and Canvas APIs. The goal of this project is that a presenter can use this service to record a screen presentation, a video medallion, and record a voice-over. All these inputs (video and audio) should be turned into a video that the presenter can publish with the platform. So I knew before getting started that there is this MediaDevices API already available in the browser that can capture your video camera and your screen. …

Photo by lee bernd on Unsplash

Algorithmic runtime complexity is something that I’ve got to understand quite well most recently by solving LeetCode problems. The nice thing about the LeetCode platform is that it benchmarks your code against other people's, and tells you where your solutions sit in terms of runtime and memory usage. That is important because if you are competitive in nature, as I am, and want to get better at what you are doing, you oftentimes won't be satisfied with a solution that is in the middle of the pack, but perhaps would want to push yourself to further optimize your solution.


Photo by Cara Fuller on Unsplash

Ok, so I have been most recently solving LeetCode problems in my free time, and I saw this as an opportunity to hone my Golang and use that as the primary programming language on LeetCode. Go is an amazing programming language and I fundamentally agree with the decisions that were made when designing the language, i.e. a language that is as performant as C but as productive and easy to write as a scripting language, such as JavaScript or Python for example. I recommend learning and taking it for a spin whenever you have the chance. …

How to build a Raspberry Pi robot written with JavaScript and controlled with an iPhone

Robots. It’s a very sci-fi term, one would think that robots are something seen only in movies. This is far from the truth because you can make a robot and you can build it in the comfort of your own home, all in a few hours.

This is how. What you need is of course parts. This is what you need:

  1. Raspberry Pi (model b+ is used)
  2. Breadboard
  3. 2 DC Motors + Wheels attached
  4. One small wheel to be the third wheel (this robot has only 3 wheels, and only 2 are powered)
  5. 1 Chassis
  6. 2 AA Battery powered 5v…

Hacking with IBM’s Node-RED

Whenever we want to build a system, we usually find that everything is a workflow. If we want to build a web application, we have to make a lot of boiler-plating components to capture user input, validate it. Then it has to be sent over the wire, the service needs to have components that validate authentication, validate and sanitize data, talk to different services to get additional information, write to the database, and so on.

Even if it’s not such a complex application, maybe you just want to write a script that knows how to connect to a database, knows…

Photo by SpaceX on Unsplash

A Git workflow tested in battle and adapted for continuous integration

Many companies are embracing new development practices such as adopting Git as their source control or version control tool. As soon as they adopt it, they have to create a workflow, meaning who is committing code, where do they commit, who is reviewing the code, and what code gets eventually pushed to production.

The naive engineer or decision maker goes about this as most other people do, they google it and most likely they land on the famous git-flow, which looks very appealing, has a diagram that people feel it makes sense, and is anyway better than the average ad-hoc…

Photo by Lucas Benjamin on Unsplash

Extend Leap Motion to do your own stuff

I just bought my Leap Motion controller from BestBuy the other day and I’ve took it for a spin. Everybody that bought the device found out pretty soon that there are only a few applications that are available at the moment and there’s not much to do with it out of the box.

I’m a fan of controllers, robots, and all the new geeky cool stuff but this one didn’t get me the excitement and control that I wanted. For 70 bucks it should do a little more. For all the people that think the same, there’s good news. …

Photo by Christopher Gower on Unsplash

Making more of your Vim editor

Being more of a visual developer, I’ve wanted to make my Vim look much like an IDE.

After setting my base vim using the dotfiles from, I’ve wanted to enhance my vim with a folder viewer (NerdTree). I’ve looked at what other people are using and I’ve come across Vundle (, a plugin manager for Vim.

Setting up Vundle is very straightforward, in just four easy steps:

  1. vim ~/.vimrc
  2. add the vundle configs:
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" Please note that that's how you add plugins
Bundle 'scrooloose/nerdtree'
filetype plugin indent on " required!

3. vim

4. :BundleInstall

And then, voilà! you have all your Bundle plugins installed. In my case, I then do :NERDTree and I get the nice folder viewer for vim.

Gabriel G Baciu

Software engineer, leader, entrepreneur, lately focusing on the science of leadership and success, healthy living, and low latency software systems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store