Enabling DEBUG logs in Production

Debug logs… can’t live without them, can’t live with them. “Debugging in production" is always tricky. Logging at debug level at all times is too verbose. The log noise is useless and it would take up too much space. Not logging them at all defeats the entire point of having them. So where’s the happy medium?

Let’s begin with the understanding that debug logs are for debugging — which means there’s some issue or an error. We can all agree that we want logs some times, but not all the time. So what can you do? Here are a few…

Artificial Intelligence, Machine Learning

Chess is hard. Chess “on ice” is infinitely harder.

The majority of turn-based games, that AlphaZero has been applied to, all share one common aspect — they are played on a board with discrete locations for pieces. This is true for Go, Chess, Shogi, and numerous other games.

Source: Free Image by Kristin Hardwick

A board with discrete spaces can be easily represented as a small image. A chessboard would fit into an image of size 8 pixels by 8 pixels. For comparison, the stock photo above is 960 pixels by 640 pixels. Convolutional Neural Network (CNN) was specifically designed to do image analysis. It learns faster than a fully connected artificial neural network (ANN)…

How to get that amazing crema without owning an espresso machine.

If you’re a fan of an espresso martini you might be surprised by how easy they can be to make at home. This drink dates back to 1983 and started off, in fact, having a shot of espresso in it. Espresso, Vodka, and something sweet to cut the flavor. Most common ratios are:

  • 2 pt Vodka
  • 1 pt Espresso
  • ½ pt coffee liqueur
  • ½ pt simple syrup

1 sheet to rule them all…

It all begins with an unmanageable S-bomb email chain.

Should someone schedule something?

And then…

📆 Scheduling over email is dumb. You can use Doodle or … a spreadsheet!

🏨 Picking a venue … Some sites have a “group & share” feature, or…

On achieving the great results with forward thinking values.

Waldemar Brandt on Unsplash

Employees within companies or teams can usually agree on the goal. This part is important to remember because the next step is harder — agree on the approach. What’s important to remember is that no approach is perfect, no approach will satisfy everyone, but also that no approach is 100% wrong.

Being ambitious in your career or company is a good thing, but ambition also means that you are trying to get more done than you have done in the past. This means that something has to change, and disagreements on what can bring friction to progress and turmoil to…

Where intuition leads to mistakes

Intro to A/B Testing

A/B testing, also known as Split Testing, has many benefits. It can allow you to

  • Confirm your hypothesis.
  • Discover preferred behavior of customers.
  • Measure the effectiveness of a new feature.

The premise of A/B testing is quite straight forward — split the traffic of users into two groups, known as buckets, and provide one bucket with a varying experiencing from the other. Observe the traffic of the buckets and learn how the groups’ behavior differs.

Intro to A/A testing

Before proceeding with experimentation it’s vital to confirm the correctness of the testing engine. This is achievable by executing what is commonly called the A/A…

Joking, but serious…

When you’re done reading this, have a good laugh, and then go write your tests!

Delete code that is not covered by a test.

This may seem like a silly concept but if you are able to remove “dead” code you are doing yourself a favor. Code that is not covered by a test might be broken. If it’s not running in production then there’s even a bigger chance that it’s broken. Leaving it around not only lowers your test coverage percentage but also creates a danger for someone in the future to start using broken code. You can always get your code back from your version control.

Add code to functions that already have tests.


It was 6 p.m. on a Thursday and the office was getting empty. I walked to the common area and saw the lonesome ping-pong table waiting patiently. “Who is the best nowadays?” I wondered, “Who all even plays?”

I began to think of ways to keep track of games, and scores, and preferably rankings. Paper and pencil seemed dated. Using some app seemed heavy handed since I’d have to get everyone to use the same one. “What is the most lightweight way to get people to track their games?” I thought. …

Whether you’re starting a new company or adding a new feature in your existing product, I strongly recommend adding metric monitoring early on to both your engineering as well as product data. Whether that be database query latencies or number of page views — start recording it early in your development. I know it may be hard to justify this work and you may be thinking, “I don’t have time to add monitoring” or “The data is too sparse and will be much too noisy to be useful” or “I’ll debug it in production when it’s bad.”

Mikhail Simin

Reverse Engineer

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