
Hello, I'm
Rafael Fernández
About Me
I’m a Software Engineer with a formal academic background in Mathematics (Algebra) and a Master’s degree in Formal Methods in Computer Science, specialized in designing type-safe and composable systems using Scala and functional programming. I’m also experienced in Rust for performance-critical systems and actively contributing to open-source projects.
My engineering approach is grounded in mathematical rigor: I reach for typeclasses, algebraic abstractions, and property-based testing not as academic exercises, but as practical tools for building correct, maintainable, and scalable software.
Beyond Scala, I’ve been deepening my work in Rust — leading PoCs on high-performance data stacks (Apache Arrow, DataFusion) and contributing to projects like Apache DataFusion and Sail.
When I’m not coding, I enjoy traveling, exploring new cultures, and the nostalgia of arcade video games and their soundtracks.
Education
Formal Methods in Computer Science
Complutense University of Madrid
The aim of this degree is to be able to tackle complex computing problems such as establishing code correctness, using rigorous mathematical tools. Our approach provides an efficient and automatic generation of input test values that follows the Haskell formal syntax, precisely, a syntax-translation mechanism guided by the type declaration.
Thesis — Type-Based Test Generation for Haskell using Constraint Logic Programming. Haskell, Scala, Prolog, Property-Based Testing.
Mathematics
University of Málaga
Developing a deep understanding of abstract mathematical concepts, specializing in advanced algebra, including fields, category theory, and algebraic structures, while enhancing critical thinking and formalizing complex problems.
Thesis — Braids and cryptography. Python, SageMath
Experience
Senior Software Engineer
Madrid
Building an enterprise data platform: designed and implemented distributed execution engines for batch and streaming workloads on Apache Spark and Databricks. Developed production backend services in Scala (Http4s) backed by PostgreSQL. Led a PoC of a Rust-based processing stack using Apache Arrow and DataFusion. Designed and operated cloud infrastructure on AWS: S3 data lakes, SQS event handling, microservices on EKS, and workflow orchestration with Apache Airflow.
Stack — Scala (http4s, fs2, cats, cats-effect, circe, newtype), Rust (tokio, axum, sqlx, serde), PostgreSQL, AWS (S3, SQS, EKS), Databricks, HashiCorp Vault, Docker, Kubernetes, Apache Airflow, TDD.
Software Engineer
Madrid
Built and enhanced core backend components of the Stratio platform using Cats and Cats Effect. Designed and implemented functional backend APIs using Tagless Final and typeclass-based abstractions with http4s. Developed custom data source components and SQL connectors enabling interaction between the platform's SQL engine and multiple databases (PostgreSQL, MongoDB, Cassandra, Elasticsearch). Contributed to the query optimizer engine.
Stack — Scala (http4s, cats, cats-effect, circe, newtype), PostgreSQL, MongoDB, Cassandra, Elasticsearch, Kubernetes, Docker, TDD.
Software & Data Engineer
Madrid
Designed and developed a distributed processing engine capable of executing parameterized workflows based on predefined rules and operations, using Apache Spark as the execution runtime. Led performance tuning and optimization to efficiently process large-scale datasets on S3 and Hive.
Stack — Scala (http4s, cats, cats-effect, spark), Apache Spark, S3, Hive.
Software Engineer
Madrid
Designed and implemented a purely functional Scala framework using a domain-specific language (DSL) approach, built on a typeclass-driven design. Focused on composability, correctness, and performance for internal tooling.
Stack — Scala (http4s, cats, cats-effect).
Software & Big Data Engineer
Madrid
Designed and developed a Scala-based software framework for large-scale report generation, including a custom DSL to model and simplify complex processing workflows. Used Apache Spark as the distributed execution engine. Delivered fully automated, end-to-end processing pipelines integrated with Apache Airflow, HDFS, and MySQL.
Stack — Scala (cats, cats-effect, spark), Apache Spark, Apache Airflow, HDFS, MySQL, Python, Docker.