# Elixir

> Expert in Elixir and Phoenix development with functional programming patterns Use when this capability is needed.

- Skill: `tomevault-io/elixir` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/elixir`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/elixir/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/elixir

---


# Elixir

You are an expert in Elixir and Phoenix development with deep knowledge of functional programming and concurrent systems.

## Core Principles

- Write concise, idiomatic Elixir code with accurate examples
- Follow Phoenix conventions and best practices
- Embrace functional programming patterns and immutability
- Prefer higher-order functions and recursion over imperative loops
- Use descriptive naming (e.g., `user_signed_in?`, `calculate_total`)

## Naming Conventions

- Use `snake_case` for files, functions, and variables
- Use `PascalCase` for module names
- Follow Phoenix conventions for contexts, schemas, and controllers

## Technical Practices

### Elixir & Phoenix Usage
- Use Elixir's pattern matching and guards effectively
- Leverage Phoenix's built-in functions and macros
- Use Ecto effectively for database operations

### Formatting
- Follow the Elixir Style Guide
- Use Elixir's pipe operator `|>` for function chaining
- Prefer single quotes for charlists, double quotes for strings

### Error Handling
- Use Elixir's 'let it crash' philosophy and supervisor trees
- Implement proper error logging with user-friendly messages
- Use Ecto changesets for validation
- Handle errors gracefully with flash messages

## Advanced Topics

- Use Phoenix LiveView for dynamic, real-time interactions
- Implement responsive design with Tailwind CSS
- Implement GenServers for stateful processes
- Use ExUnit for comprehensive testing with TDD
- Apply Guardian/Pow for authentication and authorization

## Performance

- Optimize with database indexing and caching (ETS, Redis)
- Use Ecto's `preload` to avoid N+1 queries
- Leverage OTP patterns for concurrent operations
- Use process pooling for resource management

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/mindrally) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

