Log in

No account? Create an account
Dennis Gorelik
06 July 2019 @ 02:34 pm
An insightful article that explains why we should minimize number of technologies we use to run our product, and be careful with what new technologies we are ready to use in production.
New tech typically has more known unknowns, and many more unknown unknowns. And this is really important.
Adding the technology is easy, living with it is hard. These are all the things you have to worry about.

I could brew install a new database right here right now while giving this talk, and start writing some data to it. ... But it’s another matter entirely to run that thing in production at a professional level.
If you’re adding a redundant piece of technology, your goal is to replace something with it. Your goal shouldn’t be to operate two pieces of technology that are redundant with one another forever.

When you add a thing that replaces another thing, you should be committing to a plan to replace the old thing. It might be a long term plan. And you should be committing to rewriting the new thing using the old tools if the new tools don’t actually work out.

Discussion on Hacker News

Originally posted at: https://dennisgorelik.dreamwidth.org/175034.html
Dennis Gorelik
29 June 2019 @ 01:47 pm
One of Ukrainian programmers I hired one year ago (let's call him "The Dude") took a 3 weeks break for his University session.

This was the third session break already.
The Dude wrote "Session will be finished at 8 of June."
I asked him to focus on finishing session and then come back to work full time.

The Dude stopped replying to our emails (that was ~expected until June 8). But then he did not show up on June 8 either.

So I decided that he decided to silently quit (like it already happened with 2 my other remove programmers I hired in the past).
But no - the dude showed up June 25 (17 days later after the planned end of his University session) as if nothing happened.

The Dude 2019-06-25 15:34
Hello. I can work again and, as I understand, we need to talk about it.

Dennis 2019-06-26 00:45
Why are you showing up only now? I thought you are gone completely without notice.
You wrote "Session will be finished at 8 of June."

The Dude 15:56
I have some personal problems and spend more time on session. Only yesterday I finished course work)

Dennis 15:56
Why you did not tell us that you had these problems? You could, at least, write an email.

The Dude 15:58
I watched time to time to email and zoom. Nobody ask me, so I decide that no problem.

Dennis 15:59
That is not correct attitude. And in fact, you received emails with direct questions to you, but did NOT reply.

The Dude 16:01
Yes, I saw them.
First about time, which I poorly remember, when I check it.
Second looks like just notice, that Andrey solved crash in another way and I need to review it.

Dennis 16:03
If you do not remember, you should reply anyway. You are not a princess that we all should run around.
I told you multiple times about importance of timely communications. I told you multiple times that you are severely undercommunicating. But you just reject to learn it. So for me it seems hopeless.

The Dude 16:06
I know that, I am not a princess)
I just decide that it's not a problem.
Okay, sorry for that.

Dennis 16:07
Breaking promises is a problem.

The Dude 16:07
What promises do you mean?

Dennis 16:07
Promise to show up on June 07.

The Dude 16:10
I already told, that I have some problems and unfinished session.
I told that I will start to work after session, as we discussed. You don't accept partial work, so I decide to continue when I will can work without delays.

The Dude 16:24
Well, okay, maybe it's better)
About work and time.
Can I send invoice about time, which I worked before delay?

Dennis 16:33
Yes, please send the invoice for the time you already worked.

The Dude 16:33

Dennis 16:34
Deciding to continue with your session and other business was OK.
Not notifying us about your decision -- was NOT ok, and makes you unreliable worker (which we do NOT need).

The Dude 16:41
Okay, understand you.

Originally posted at: https://dennisgorelik.dreamwidth.org/174672.html
Dennis Gorelik
04 June 2019 @ 02:59 pm
Edward from Google Ads (former Adwords) asked me to change my "Post jobs for free" ad campaign strategy from "target cost" to "maximum conversions within budget".

This is an annoying tactic of a short-sighted salesperson that sells ads.

What Edward calls "budget" is, actually, an "ad spending limit" that I use as a protection against accidental overspending due to mistake in my ad campaign settings.

My wish is NOT to spend my "budget" every month. I want to get an optimal results for my money (more recruiter registrations per $ amount spent).
If I am getting good results - I may increase my budget. But spending my whole budget every day simply because I defined that "budget" -- is a sloppy advertising strategy.

It is funny how Edward confused "budget" and "spending": my "PostJob-ResponsiveSearchAds" campaign has $7/day budget and zero spending, but Edward said that "PostJob-ResponsiveSearchAds" campaign "is spending 7 dollars on".

I told Edward that I do not need his advice, because I do not consider it relevant to my goals.

Originally posted at: https://dennisgorelik.dreamwidth.org/174228.html
Dennis Gorelik
02 June 2019 @ 03:25 pm
If you are a social network, what country do you show for a location that is disputed between two countries?
Instagram shows "Europe/Simferopol" instead of "Simferopol, Russia" or "Simferopol, Ukraine".

Originally posted at: https://dennisgorelik.dreamwidth.org/173916.html
Dennis Gorelik
31 May 2019 @ 10:42 am
lauren@sarantisfakaris.com called me from 1-702-276-3321 and told me that her card is registered for her coworker that lives in Peniswaniya (the actual credit card entry says "Pennsylvania").

Originally posted at: https://dennisgorelik.dreamwidth.org/173733.html
Dennis Gorelik
21 May 2019 @ 02:58 pm
Alabama, Mississippi and Georgia try to adjust the Roe vs Wade balance and reduce the maximum pregnancy length when it is still legal to do an abortion [down to ~10-12 weeks of pregnancy].

I am ok with such attempts to experiment on a state level. For me it is even interesting to compare what would be the consequences of such abortion ban in Alabama, Mississippi and Georgia relative to other states.

However Georgia's legislators went too far:
Even women who seek lawful abortions out of state may not escape punishment. If a Georgia resident plans to travel elsewhere to obtain an abortion, she may be charged with conspiracy to commit murder, punishable by 10 years’ imprisonment. An individual who helps a woman plan her trip to get an out-of-state abortion, or transports her to the clinic, may also be charged with conspiracy. These individuals, after all, are “conspiring” to end of the life of a “person” with “full legal recognition” under Georgia law.

That part of Georgia State legislation is stupid. It infringes or important civil freedoms we enjoy in the US (freedom of travel and freedom of states to define what is legal or not on their territory).
Georgian legislators could have stayed reasonable and actually reduce max legal term for abortions (inside of Georgia state). But now it is more likely that the whole Georgian anti-abortion legislation will get thrown out [by the Supreme Court].

I would also recommend these righteous legislators to learn from the fate of Elena and Nicolae Ceaușescu. Ceaușescu couple, effectively, got killed by the fetuses Ceaușescus saved earlier in their anti-abortion ban -- when these former fetuses grew up.

Originally posted at: https://dennisgorelik.dreamwidth.org/173491.html
Dennis Gorelik
20 May 2019 @ 12:06 am
My FICO score:
783 in April.
801 in March.
786 in February.

What is your FICO score?

Originally posted at: https://dennisgorelik.dreamwidth.org/173180.html
Dennis Gorelik
19 May 2019 @ 07:52 pm
Election system needs to be simple and fair.
That is why in a democratic elections -- one citizen has one vote.

However there is a problem with "one person - one vote system": there are a lot of poor citizens with voting power who do are not able to manage their personal finances well. If elections were completely fair, then this poor majority would define how country's economic system runs. The end result will be similar to what Venezuela has right now (oil-rich country has struggles with even getting food and electricity, thanks to the socialism that breaks Venezuela's economy).

In order to prevent catastrophic economic decisions, more government power should be transferred to the people who understand how to manage the economy better -- the relatively small group of rich people.

One way to do that -- would be to elect the government -- proportionally to how much taxes a person pay to the government (private corporations elect their corporate boards in a similar way). For example, $10,000 in taxes that a household paid in the last 4 years prior to the election -- would represent 1 vote.

But such strong "taxes -> government power" link will lead to a lot of people who do not pay taxes (or pay very little taxes) to have almost no representation in the government. Such powerless situation frustrate people. Collectively, poor majority still has a lot of "people power" even though they do not have money. "People power" should have a legitimate representation in the government.

The adjustment "taxes power" solution is to mix in "people power" solution.
So every $10,000 paid in taxes would get 1 vote, but also every person would get a vote.
I, personally, am in favor of such mixed "taxes power + people power" system. But such mixed system is too complex to understand for most citizens.

So most democracies (including the United States democracy) evolved to apply "corruption" fix to their democracy.
"Taxes power" is substituted with "corruption power". So now rich people can sponsor politicians in order to influence the outcome of the democratic election and get some power back from economically clueless majority.

Unfortunately, corruption has a lot of negative side effects. For example, it may be very tempting for a business to spend $1M kickback on a politician in order to get $10M in form of government handouts. In well-functioning democracies (such as the US democracy) kickbacks are illegal.
But some forms of corruption are explicitly legal. In particular, it is legal to sponsor politicians' campaigns, so the corrupting money will be spent on convincing the voters to support the politician. That form of corruption results in brainwashing campaigns which may also have some negative effects, but these negative effects are not nearly as bad as negative effects from kickbacks.
If corrupting sponsor-politician deal is too bad -- the brainwashing campaign will not be able to convince the voters to accept the bad deal (at least not in a society that respects a free speech).
And even if brainwashed majority accepts a bad deal, they do NOT riot against it, because they had a chance at election to reject that deal, and have another chance at the next election to reject that bad deal.

To summarize:
1) "Sponsoring election campaign" form of corruption is a practical way to improve performance of a pure "people power" democracy.
2) "Sponsoring election campaign" corruption still has significant disadvantages, but these disadvantages are not nearly as bad as allowing economically clueless majority to run the country unchecked.
3) It is possible to setup a well-functioning democracy without legalizing any corruption at all, but the alternatives (such as "taxes power + people power" system) are more complex than existing "1 citizen - 1 vote" election system.

Originally posted at: https://dennisgorelik.dreamwidth.org/172842.html
Dennis Gorelik
Some companies, when they list their job openings on Taleo ATS (Applicant Tracking System), create publicly available testing ("tst") or staging ("stg") environments.
For example:


Google happily crawls these testing and staging environments:
59 results
50 results

What do you think: why these Testing and Staging environments are public?

Meanwhile, core production environments are available too:

Originally posted at: https://dennisgorelik.dreamwidth.org/172696.html