How to Manage a Manager?

  • 1129 words
  • 6 minutes to read
  • comments

No secret, we you all have managers. Some of them are great, while many are simply idiots. What do you do if you happen to have a boss that fits perfectly into this dominating category? Quit and try to find a better place? This may sound like good advice, but you know as well as I do that a new boss most likely won’t be any better. Don’t quit. Stay. Manage the manager. Most of them are manageable.

Саботажника Саакашвили геть!

  • 368 words
  • 2 minutes to read
  • comments

Бывший президент Грузии Михаил Саакашвили в феврале 2015-го стал советником Порошенко. Через три месяца из рук своего начальника он получил украинское гражданство и должность главы Одесской ОГА с зарплатой $280 в месяц. Еще через полгода его лишили грузинского гражданства. В течение следующего года Саакашвили сделал ряд громких обвинений в коррупции, в том числе в адрес Авакова, Яценюка, и самого Порошенко. В ноябре 2016 он заявил об отставке с Одесского поста, и Порошенко его уволил, избавившись одним махом и от советника. Вчера Саакшвили был лишен украинского гражданства.

My Favorite Websites

  • 828 words
  • 4 minutes to read
  • comments

I recently published a summary of the software and hardware I’m using every day. Now I’ll list my most favorite websites and online services, which help me do my daily job: write code and manage projects.

The Bigger Victim of Sexual Harassment

  • 757 words
  • 4 minutes to read
  • comments

You most probably are aware of the recent sexual harassment scandals in Silicon Valley, which led to serious career problems for Dave McClure (former CEO of 500 Startups), Travis Kalanick (former CEO of Uber), Chris Sacca, and a few others. Let’s try to put emotions aside and analyze what’s happening and what long-term consequences this panic may have for our male-dominated engineering environment.

Am I a Sexist?

  • 767 words
  • 4 minutes to read
  • comments

Recently I said a few words in my Telegram group about “women in tech,” which led to some negative reaction on Twitter. I believe I owe my readers an explanation. Some of them already got confused and came to me with the question: “If you’re so much against slavery, where is this male chauvinism coming from?” Let me explain what’s going on. Indeed I am a big fan of freedom, but recent hysteria around gender equality is not helping us to become more free. Instead it is causing quite the opposite effect.

Лагерные активисты

  • 728 words
  • 4 minutes to read
  • comments

В любом учреждении пенитенциарной системы — тюрьме или зоне — есть категория заключенных, сотрудничающих с администрацией. В начале прошлого века в советских лагерях системы ГУЛАГ их называли “активистами”. Они помогали администрации поддерживать порядок и дисциплину среди заключенных. Надо ли говорить, что во все времена арестанты относились к подобному “активу”, как минимум, с опаской, а, как максимум, резко враждебно.

My Work Environment

  • 962 words
  • 5 minutes to read
  • comments

I was asked in my Telegram Group which tools and hardware I use in my daily work. Here is the full list of what I have and even how much I paid for them. Maybe it will be helpful for someone.

DynamoDB + Rake + Maven + Rack::Test

  • 1054 words
  • 5 minutes to read
  • comments

In SixNines.io, one of my Ruby pet web apps, I’m using DynamoDB, a NoSQL cloud database by AWS. It works like a charm, but the problem is that it’s not so easy to create an integration test, to make sure my code works together with the “real” DynamoDB server and tables. Let me show you how it was solved. The code is open source and you can see it in the yegor256/sixnines GitHub repo.

Gluten-Free Management Recipes

  • 970 words
  • 5 minutes to read
  • comments

We live in the era of organic food, eco-friendly toilets, zero-emission cars, and harassment-free offices. Our management practices have to keep up—they must be zero-stress, conflict-free, and idiot-friendly. If you’re still stuck in the old carrot-and-stick, mediocrity-intolerant, primitive mentality, these recipes will open your eyes.

Any Program Has an Unlimited Number of Bugs

  • 574 words
  • 3 minutes to read
  • comments

This may sound strange, but I will prove it: no matter how big or stable a piece of software is, it has an unlimited number of bugs not yet found. No matter how many of them we have already managed to find and fix, there are still too many left to count.

Single Statement Unit Tests

  • 868 words
  • 4 minutes to read
  • comments

Many articles and books have already been written about unit testing patterns and anti-patterns. I want to add one more recommendation which, I believe, can help us make our tests, and our production code, more object-oriented. Here it is: a test method must contain nothing but a single assert.

Monikers Instead of Variables

  • 410 words
  • 2 minutes to read
  • comments

If we agree that all local variables must be final, multiple returns must be avoided, and temporal coupling between statements is evil—we can get rid of variables entirely and replace them with inline values and their monikers.

Что делать с клятвой?

  • 285 words
  • 1 minutes to read
  • comments

В 1985-м году, когда мне было девять лет, меня торжественно приняли в пионеры и я дал клятву “жить, учиться и бороться, как завещал великий Ленин”. Прошло 30 лет и Верховная Рада приняла закон “Об осуждении коммунистического и национал-социалистического (нацистского) тоталитарных режимов в Украине и запрете пропаганды их символики”. Что мне делать с моей клятвой?

A Remote Slave Is Still a Slave

  • 948 words
  • 5 minutes to read
  • comments

Working remotely is definitely a trend, according to the BLS and my personal observations. “Let them work from home” seems to be the silver bullet for every second startup and even some big companies like Buffer, Automattic, Groove, and many others. However, in most cases, the replacement of a brick-and-mortar office with a virtual one doesn’t help companies and their slaves employees become more productive.

SixNines.io, Your Website Availability Monitor

  • 419 words
  • 2 minutes to read
  • comments
badge

Availability is a metric that demonstrates how often your website is available to its users. Technically, it’s a ratio between the number of successful attempts to open the website and the number of failed ones. If one out of a hundred attempts failed, we can say the availability is 99 percent. High-quality websites aim for so-called “six nines” high availability, so named by the number of 9s in the ratio: 99.9999 percent. We created a service that helps you measure this metric and demonstrate its value to your users: SixNines.

Мы не рабы, рабы не мы

  • 514 words
  • 2 minutes to read
  • comments

“Чтобы быть свободными, нужно быть рабами закона” — смысл этого известного высказывания Марка Туллия Цицерона предлагается раскрыть не одному поколению выпускников средних школ на экзаменах по литературе. Ожидается, что школьники к своему совершеннолетию должны понимать, что только то общество выживет и будет процветать, где следуют правилам и уважают общепринятые законы. Единственной и безусловной альтернативой “диктатуры закона” по версии школьной программы, является хаос, в котором общество неминуемо деградирует и разрушается.

Why I Won't Help You Via Email

  • 262 words
  • 1 minutes to read
  • comments

I’ve been blogging and writing for almost three years now, and a few times a week I get emails or Facebook and Telegram messages from people I don’t really know. They ask questions about Java, management, object-oriented programming, and other things they believe I understand and can help them with. Well, my contact details are published right in the header on my blog—what else would I expect, right? True, but even though I always reply to them, I never answer their questions.

Почему я не выступлю на ITEM

  • 721 words
  • 4 minutes to read
  • comments

Я расскажу историю целиком, а вы сами решайте, на чьей вы стороне. Я выступаю на IT конференциях часто и много. Обычно мне неважно, кто их организует, за чьи деньги и сколько на них зарабатывают. Мне важно, кто меня приходит послушать, и довольны ли они тем, что я могу им рассказать. Но в этот раз все оказалось сложнее, и я отказался выступать на двух конференциях в моем родном городе.

Flexibility Equates to Lower Quality

  • 846 words
  • 4 minutes to read
  • comments

There are two opposing mindsets: “If it works, it’s good” vs. “If it’s good, it works;” or “Make it work” vs. “Make it right.” I’m talking about the software source code. I’ve been hearing this almost every day in blog comments: Why do we need all those new OOP principles if our code works just fine without them? What is the point of introducing a new way, which is supposed to be “better,” if the existing, traditional, semi-object, semi-procedural, not-so-perfect approach just works?

PDD in Action

  • 428 words
  • 2 minutes to read
  • comments
badge

Puzzle Driven development (PDD) is a methodology we’ve been practicing on our teams for more than seven years. Using PDD, we delegate the responsibility of task decomposition to its performers, eliminating the role of a project manager. We’ve been using our proprietary software for that. A month ago, we made it public, open source, and free. It is available as 0pdd—a GitHub-based chat bot.

SOLID Is OOP for Dummies

  • 789 words
  • 4 minutes to read
  • comments

You definitely know the SOLID acronym. It stands for five principles of object-oriented programming that, if followed, are supposed to make your code both legible and extensible. They were introduced almost 30 years ago, but have they really made us better programmers in the time since? Do we really understand OOP better thanks to them? Do we write more “legible and extensible” code? I don’t think so.

The TDD That Works for Me

  • 1290 words
  • 7 minutes to read
  • comments

Test-driven development (a.k.a. TDD) was rediscovered by Kent Beck and explained in his famous book in 2002. In 2014, David Heinemeier Hansson (the creator of Ruby on Rails) said that TDD is dead and only harms architecture. Robert Martin (the inventor of the SOLID principles) disagreed and explained that TDD may not work only in certain cases. A few days later, he even compared the importance of TDD with the importance of hand-washing for medicine, and added that “it would not surprise me if, one day, TDD had the force of law behind it.” Two years later, now just a few months ago, he wrote more about it, and more, and more. This subject seems to be hot. Of course, I have my own take on it; let me share.

Traits and Mixins Are Not OOP

  • 1001 words
  • 5 minutes to read
  • comments

Let me say right off the bat that the features we will discuss here are pure poison brought to object-oriented programming by those who desperately needed a lobotomy, just like David West suggested in his Object Thinking book. These features have different names, but the most common ones are traits and mixins. I seriously can’t understand how we can still call programming object-oriented when it has these features.

245 лет сепаратизма, от Вашингтона до Захарченко

  • 571 words
  • 3 minutes to read
  • comments

В июне 1772-м году в заливе Наррагансетт (ныне штат Род-Айленд, США) небольшая группа контрабандистов напала на правительственный военный корабль, ранила капитана, разоружила команду, ограбила судно и сожгло его. Так началась война Американских колоний за независимость от Британии, героем которой стал полковник Джордж Вашингтон, ставший несколько лет спустя их первым президентом. Почти два с половиной века спустя, в марте 2014 года несколько тысяч человек штурмовали здание Донецкой администрации и подняли над ней российский флаг, что положило начало войне на Донбассе, известной нам сейчас как война с Россией (по версии Порошенко) или борьба за независимость (по версии Захарченко). Что общего между этими двумя событиями?

How to Handle the Problem of Too Many Classes

  • 823 words
  • 4 minutes to read
  • comments

During nearly every presentation in which I explain my view of object-oriented programming, there is someone who shares a comment like this: “If we follow your advice, we will have so many small classes.” And my answer is always the same: “Of course we will, and that’s great!” I honestly believe that even if you can’t consider having “a lot of classes” a virtue, you can’t call it a drawback of any truly object-oriented code either. However, there may come a point when classes become a problem; let’s see when, how, and what to do about that.

Why I Don't Talk to Google Recruiters

  • 878 words
  • 4 minutes to read
  • comments

This is a real story, and it’s not only about Google. I’m getting emails from recruiters at Amazon, Facebook, and smaller Silicon Valley startups. They find me somehow, most likely through this blog, my books, or my GitHub account. They always start with “We’re so impressed by your profile” and finish with “Let’s schedule an interview.” I always reply with the same text, and they always disappear, only to come back in a few months under a different name. Let me explain my reasons; maybe you will do the same and we can change this situation in the industry.

Национализм будущего

  • 912 words
  • 5 minutes to read
  • comments

Народ, нация, народность, этнос. Этими и похожими терминами обозначают группы людей, идентифицирующих себя по тем или иным признакам общности, таким, например, как язык, обычаи, идеология или религия. В любом случае, как отмечал Лев Гумилев, неизменным объединяющим посылом для них является: “мы — такие-то, а все прочие — другие”.

sixnines availability badge  GitHub stars