valley startups, consultancies, agencies, corporations ▸Instructor at Spokane Community College, 2000-2007, teaching computer science and web development
days (2000-2005) - Java and PHP ▸Then… Lots of Ruby (2005 - present) ▸Taught at SCC (converted curricula from Java) ▸Blog posts, presentations, interviews ▸High paying jobs ▸Still a joy to develop in
by the late Joe Armstrong, 2007 ▸Created in 1986 at Ericsson ▸“…used to build massively scalable soft real-time systems with requirements on high availability.” ▸“…telecoms, banking, e-commerce, computer telephony and instant messaging”
million lines of Erlang and reported to achieve a high availability of nine “9”s. ▸Cisco reports that 90% of all internet traffic goes through Erlang controlled nodes ▸Scalable, fault-tolerant, functional (immutable data, functions, pattern matching, tail recursive, etc.)
designed for building scalable and maintainable applications.” ▸“…leverages the Erlang VM (BEAM), known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and embedded software domain.
replicate it transparently across a cluster. Common use-case is users currently online (uses conflict- free replicated data type CRDT) ▸Contexts - standard way to define domains that cleanly separate concepts from technical implementation. ie. Accounts (users, authentication, etc.) ▸Channels - soft real-time communication between millions of connected clients (ie. chat room, breaking news, vehicle map tracking, multiplayer games, etc.). Think ActionCable but can actually scale ;p ▸Umbrella - put code in organized apps that enforce domain code to stay away from web interactions - ie. web, db, domains “Phoenix is not your app” ▸Pub/Sub - Pubnub, services
in the VM ▸Tasks - Asynchronous background work (Sidekiq). Available right in the VM ▸Supervisors - Architect a self-healing system that can recover when unexpected things happen. “Let it crash!”. Available right in the VM. Think Akka.
way to build interactive, real-time web applications in Elixir, writing little or no custom JavaScript. ‣ LiveView, built on Phoenix’s excellent websocket report, harnesses the Erlang VM’s ability to run millions of tiny, isolated, stateful processes. ‣ LiveView simplifies development by keeping the view logic server-side, yet achieves stunningly fast updates and low latency.