“Double Selfie” by darkday. is licensed under CC BY 2.0

Using vpn-slice with OpenConnect for Split Tunneling

In this new world of global remote-work most of us are connecting to corporate VPNs the entire day to access internal servers while accessing resources on internet and jumping into video calls.

A usual VPN configuration routes all the network connections through the VPN tunnel, dramatically slowing down connection to internet resources.

Split tunneling is a networking concept which allows to discriminate between IPs that have to be accessed through the VPN tunnel and IPs that have to be accessed directly. Practically, split tunnel lets your computer accessing the secure network through the VPN tunnel, while also accessing internet directly.

“lego minecraft 21115” by mureut.kr is licensed under CC BY-ND 2.0

How to host a Minecraft server to connect/play from iOS/Android apps

My 6 years old son recently got into the Minecraft world, and I like to think that playing games like Minecraft, offer a bevy of educational benefits because it involve coding, collaboration, and participation with peers. Because of that I jumped into the task to host a simple Minecraft server where my son and his friends can play in a safe way.

After download and installing the Minecraft Java Edition server and not be able to connect to it using the Minecraft running in an iPad, I learned there are two different versions of Minecraft: the Java Edition and the…

“VPN Green” by Infosec Images is licensed under CC BY 2.0

Updated guide (2020)

If you have been using Cisco AnyConnect VPN client in Mac for a while probably you have the impression that is not the best tool (and you are not alone). OpenConnect is a command-line client for Cisco’s AnyConnect SSL VPN, that can be used as an alternative to Cisco AnyConnect client.

The following guide to install and setup OpenConnect in Mac is based on this good guide prepared by Michael Klett and the feedback it has received over time.

  1. Install OpenConnect via Homebrew
brew update
brew install openconnect

2. (Optional) Running OpenConnect requires sudo. …

In the current times we are using Zoom or Bluejeans a lot, if you are using Chrome and you’re tired of closing the tabs opened when you click in a Zoom or Bluejeans link I made a simple Bluejeans/Zoom Closer Chrome extension that automatically closes those tabs.

If for any reason you wan to to install this extension from the source, do the following:

Simple and Free

Pro-Tip: if…

In StreetEasy we process tons of images that brokers and agents send us about their listings, recently we started getting the following error when we were processing images for few specific domains:

OpenUri error for url - https://***.com/my-listing.jpg :: OpenSSL::SSL::SSLError, SSL_connect returned=1 errno=0 state=error: sslv3 alert handshake failure

The errors started happening ~close after we upgraded our Docker images from Ruby v2.4.3 to v2.6.3 (BTW we are also on Rails v5.2 😀), digging into our new setup after the upgrade, we found we are now on a very recent version of OpenSSL:

> OpenSSL::OPENSSL_LIBRARY_VERSION => "OpenSSL 1.1.1c 28 May 2019"…

Because I’m a huge fan of dockerizing all of my development environments, I don’t want to install node, npm (or yarn), and create-react-app
in my machine, not even for generating a create-react-app scaffold.

For that reason I created a simple docker image, that does only one thing, installs create-react-app and generates a create-react-app scaffold.


$ docker run --rm -v $PWD:/app edgargonzalez/create-react-app my-appCreating a new React app in /app/my-app.Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...
Happy hacking!

Github repo

The code for the Docker image lives in the following repository:


If you are joining a team, or have new folks join yours, onboarding is crucial. During this period, you must share expectations and build trust.

A useful technique to kickstart this process, that has been recently adopted by Engineering Managers across the industry, is to create and share Manager READMEs. A Manager README is an operating manual that serve as your introduction to new teams and new hires.

Inspired by others, I have created my Manager README. The living document is in Github.

Below I’m posting a medium friendly version:

My Manager README

Hola, I’m Edgar, as your manager, I look forward to…

Because I also use Sublime Text to take notes, write PR reviews in Github, etc, I end having a lot of temp untitled docs. Something that I found useful was to configure Sublime Text to use Markdown as the default language for new documents, in this way all the untitled docs will default to Markdown.

Below is the script I’m using, if you want to use it, just add it in your Sublime Text Packages/User directory

BTW if you work very often with Markdown docs I strongly recommend you to install MarkdownEditing, a package for Sublime Text 3, that provides nice syntax highlighting and color schemes, and also some useful key bindings.

There are use cases in which you don’t want to have duplicate Sidekiq jobs running, to address this, Sidekiq has a unique jobs feature.

Recently we released some recurring jobs with the unique job feature, and started experiencing random issues after a new deploy happened, the job was not longer enqueued. We found the issue happened if a new deployment occurred while the job was running, for some reason the unique lock was not removed when the Sidekiq worker was restarted.

Marathon (we are running our applications on top of it) has an application setting named taskKillGracePeriodSeconds that controls…

Recently I have been working on fixing our JWT Rack middleware to sign error responses as well (i.e 404, 500, …).

So, to test my changes I needed Rails to handle errors like production when running my request tests. One approach is to set config.action_dispatch.show_exceptions to true for the test environment:

However this will affect the default behavior for the entire test suite, which is not what I wanted, so I need a way to just change the value of action_dispatch.show_exceptions for specific specs. Not hard right? just set the value inside a before block, for instance (lines 17–19):

Edgar Gonzalez

Current iteration: Sr Engineering Manager @StreetEasy (@Zillow) | Previously: Director DevOps & Data @BlueApron · @Piictu (@TechStars NYC) · http://gonzalez.io

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