Dropbox migrated from Nginx to Envoy

Recently I came across an interesting article – “How we migrated Dropbox from Nginx to Envoy”. There are a few reasons for such complex and unobvious transformation:

Nginx served us well for almost a decade. But it didn’t adapt to our current development best-practices:
– Our internal and (private) external APIs are gradually migrating from REST to gRPC which requires all sorts of transcoding features from proxies.
– Protocol buffers became de facto standard for service definitions and configurations.
– All software, regardless of the language, is built and tested with Bazel.
– Heavy involvement of our engineers on essential infrastructure projects in the open source community.

If you want to get more details and discuss this topic with its author Oleg Guba do not miss the biggest Russian conference Highload 2020, November 9-10, 2020 in Scolkovo.

How to Build Your First SaaS

I remember the time when I was a part of the team to provide our web-based applications as service (SaaS). We had ideas, of course, based on our previous experience in the web development area. But it was really difficult to start.

This time the situation is changed. Many web apps are SaaS-based now. And you can find not just short posts about SaaS but the articles for long reading. One of these is The SaaS Handbook – How to Build Your First Software-as-a-Service Product Step-By-Step.

The article describes a tech stack (it’s JS – Node.js + Preact – an alternative version of the React), structure, design, integrations with third-party services, and deploy and gives tips and ideas to build your version of the SaaS..

How to be more productive with Slack

Slack became a standard de-facto to communicate teams in IT area for sure. It has a lot of useful features as well as smart business decisions such HipHat acquisition.

Here is a nice article with seven points which help you to be more productive using Slack. My favorite tips are reminders and giphy. Plus ability to keep track of important messages.

Reminders are really excite. For example, to set reminder to notify you today at 12pm to come to the office just send this command to the slack bot:

/remind me to come to office today at 12pm

And Slack bot will send you notification today at 12pm. It’s also possible to set reminder for your colleague or channel as well as one time reminders or recurring ones.

Hide up/down arrows on inputs with type=”number”

HTML5 brought many cool things and input type number is one of them. It allows to input only numbers from the box and there is a way to specify limits for input values. However together with those useful features it has one annoying thing – up/down arrows on the right side, embedded into field. If you don’t like them just change field type to textinput and they disappear. But there is a more elegant way to hide them and the same time use all advantages of HTML5 number form input. Just add to your CSS file following code:

.no-spinners {
  -moz-appearance:textfield;
}
.no-spinners::-webkit-outer-spin-button,
.no-spinners::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

After that add class no-spinners to any number input you would like to see without up/down arrows.