This document provides an introduction and overview of Erlang/OTP. It begins by comparing Ruby and Erlang, noting that Erlang makes hard things possible and impossible things trivial. It then discusses what Erlang is, who uses it, and some of its key features like being concurrent, distributed, fault-tolerant, and enabling hot upgrades. The document contrasts Erlang's functional approach without objects to more object-oriented languages. It provides examples of Erlang syntax including numbers, atoms, lists, tuples, binaries, and functions. It also discusses concepts like pattern matching, single assignment, lists, list comprehensions, recursion, and behaviors for building concurrent programs. In closing, it notes that