Programming Elixir, Phoenix, OTP, macros, etc.
def handle_event("save", %{"book" => params}, socket) do
case Library.create_book(params) do
{:ok, book} ->
{:noreply,
socket
|> put_flash(:info, "created a new book")
|> redirect(to: ~p"/books/#{book}")}
{:error, %Ecto.Changeset{} = changeset} ->
{:noreply, assign(socket, form: to_form(changeset))}
end
end
Teaching Elixir, OTP, metaprogramming, & concurrent programming
I enjoy spreading my love of the Elixir ecosystem
Database design, administration, & optimization (esp. PostgreSQL)
- Wrote my first triggers & stored procedures 20 years ago
- Built & operate a 3-server primary/standby PostgreSQL cluster using CloudNativePG & PVs
Kubernetes & Podman
- I built & administer a bare-metal K8s cluster, which is serving you this slideshow
- Replaced Docker with CRI-O & Podman, which don't run as root
- Currently upgrading my cluster to be highly available, with redundant control-plane nodes and load balancers
Networking
(Computers, not People)
Since 2019, I've led a platform team with responsibility for networking across multiple environments
Linux
- Over 20 years experience building & administering Linux servers
- Currently manage over ten servers I built myself
Wrote two books on leadership
Fostering collaboration
Since becoming a team lead in 2019, I've focused on fostering collaboration & true teamwork
Photo by Desola Lanre-Ologun on Unsplash
Coaching & Mentoring
I've long enjoyed sharing knowledge with others and am proud of those I've mentored who have thrived
Photo by John Schnobrich on Unsplash
Microservices System Design
I believe in small, autonomous, "two-pizza" teams. Teams can operate autonomously using domain-driven design, microservices, and event-driven architecture, coordinating via thoughtfully designed APIs
Photo by Sarang Pande on Unsplash
Education
- Ph.D., Economics, Stanford University
- M.A., East Asian Studies, Stanford University
- M.Sc., Economics, London School of Economics
- A.B. (magna cum laude), Government, Harvard University
Photo by Good Free Photos on Unsplash
Likes
- Prioritization & getting stuff done
- Meetings with clear objectives
- Collaboration & teamwork
- Brainstorming & exploring options before plunging into projects
- Leaders who speak last, not first
- Diversity, which improves decision-making
- Cross-functional, autonomous teams with responsibility for & authority over their domain
- Modern DevOps tooling & practices
More Likes
- Teams that care for one another & provide psychological safety
- Modifying code in small increments, keeping it constantly releasable
- Honesty & forthrightness
- Thoughtful tactics guided by long-term vision & mindset
- Humility & constant desire to learn and improve
- Wikis & other docs that communicate business intent across time & space
Dislikes
- Unfocused, rambling meetings
- Heavy process (e.g., fullblown SCRUM)
- Artificial deadlines
- Separate departments for databases, QA, Ops, planning, coding, etc.
- Execs micromanaging non-strategic matters
- Metrics purporting to capture individual developer "productivity"
- Meetings to point JIRA cards & schedule long-term work
- Treating devs as "resources" rather than people
Work I Enjoy
- Senior/Principal Elixir Developer
- Elixir Team Lead/Manager
- DevOps Team Lead/Manager
Contact Me
- https://www.JamesLavin.com
- james@my-domain-name-immediately-above.com
- https://www.linkedin.com/in/jameslavin/
- https://www.youtube.com/@elixirzone6902/videos