Oleg Andreev



Software designer with focus on user experience and security.

You may start with my selection of articles on Bitcoin.

Переводы некоторых статей на русский.



Product architect at Chain.

Author of Gitbox version control app.

Author of CoreBitcoin, a Bitcoin toolkit for Objective-C.

Author of BTCRuby, a Bitcoin toolkit for Ruby.

Former lead dev of FunGolf GPS, the best golfer's personal assistant.



I am happy to give you an interview or provide you with a consultation.
I am very interested in innovative ways to secure property and personal interactions: all the way from cryptography to user interfaces. I am not interested in trading, mining or building exchanges.

This blog enlightens people thanks to your generous donations: 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo

“Type hints” syntax suggestion for Ruby

According to previous note on interfaces in dynamically typed languages, it would be great if the API could specify type expectations even easier than a to_type message send to each argument in method body.

class Person
  def initialize(name.to_s, birthday.to_date = DEFAULT_DATE)
    ...
  end
end

Should be interpreted as:

class Person
  def initialize(*args)
    args.size == 2 or raise ArgumentError 
    name = args[0].to_s
    birthday = (args[1] || DEFAULT_DATE).to_date
    ...
  end
end

This idea can be applied to other languages as well.