Lucas San Román

I'm a Senior Software Engineer currently specialized in the Elixir programming language and the BEAM runtime. I have experience building and maintaining backend systems in complex domains, and I have a strong interest in the development of tools and libraries to help other developers to build more maintainable systems.

I volunteer as a moderator for the Elixir Discord server, where we provide assistance to other members of the Elixir community ranging from beginners to experts working on large scale projects. I'm the author of the Sourceror library for AST-based Elixir source code manipulation, which helps to solve the long lasting issue of the lack of refactoring tools in the Elixir ecosystem.

Professional experience

Felt
Senior Software Engineer
November 2022 - September 2024

I developed and maintained the backend and realtime systems for the Felt mapping application. I also developed the Felt API to allow developers to programatically interact with the maps, and built the foundations for the live connections to external data sources. During this time I also developed tooling to help the team to maintain the codebase, like ChannelHandler, library to help with the maintenance of complex channel modules, and ChannelSpec, a library to specify JSON Schemas for Phoenix Channels, and test utilities to ensure the correctness of the system.

Packlane
Senior Software Engineer
July 2021 - November 2022

I maintained and improved a legacy Elixir and JavaScript/React codebase for the coordination of manufacturing and logistics of custom packaging solutions. I participated in all stages of product and feature development, from idea, to design, to implementation and deployment. I also regularly engaged in several investigations about complex domain problems and urgent/critical bug fixing. My work also involved the constant evaluation of access patterns to optimize our usage of the PostgreSQL database.

Open Source work

Sourceror

Sourceror is a toolkit to work with the Elixir source code. It's the first library in the Elixir ecosystem that empowers Elixirists and tool authors to build refactoring tools and migration scripts, similar to what jscodeshift has to offer for the JavaScript world. It provides an annotated Abstract Syntax Tree for the Elixir language, and a fork of the Elixir parser to backport features I contributed to Elixir 1.13 to older Elixir versions.

Contributions to the Elixir language

I contributed a series of pull requests to core Elixir to enable programmatic manipulation of the source code. Through PRs #10990 and #10988 I helped solve the lack of the primitives required to build refactoring tools, an issue that was affecting the whole community since the early days of the language, in an incremental an backwards compatible way.

The Embers Social Network project

Embers was an exploratory project to build a social network platform built from the ground up with Elixir and the Phoenix Framework, where users could share a variety of multimedia content with their followers. Some of its features included a personal feed updated in real time, a private messaging system, real-time notifications, and asymmetric tracking of online presences.

Technical skills

Elixir

I have been using the Elixir language since 2018, and I volunteer teaching and helping solve problems to other members of the Elixir community. I have a very solid understanding of the AST representation of the Elixir code and how to use it to build macros and tools, which is the area I'm currently working on in the Open Source space. I understand the fundamentals of the OTP like GenServers, supervision trees and single node concurrency, which are the features of the language that I leveraged to keep my projects stack simple and manageable.

JavaScript

I have been using JavaScript for 5+ years for personal projects. I have good understanding of ES6+ features, Promises, and event loop macro/micro tasks. I have experience with Parcel and Snowpack build tools, Vue 2, Solid and Svelte frameworks, React hooks inspired libraries, and state management patterns like Meiosis, which I used to build my personal library untitled.

PostgreSQL

I've been using PostgreSQL since 2018, when I migrated away from MySQL. I have experience setting up indexes to speed up queries, on setting up constraints at the database level instead of relying on application level validations, and I have basic knowledge of EXPLAIN queries to find inefficiencies in query plans.

HTML, CSS and web accessibility

I have experience working with modern CSS features like flexbox, grid and custom properties, pre-processors like SASS and post-css as well. I have experience creating responsive and accessible web experiences, and I prefer to use progressive enhancement techniques whenever possible. The present resume is built with these technologies and with accessibility in mind.

PHP

I used PHP for my web projects until I discovered Elixir in 2018. The previous version of the Embers project was built using the Laravel framework v5.6.

Docker

I have basic understanding of Docker, which I used to build Elixir releases, and also to set up development environments with docker-compose.