# Guillem Marpons 🇵🇸 🇺🇦 (@gmarpons.eurosky.social)

Profile: https://sifa.id/p/gmarpons.eurosky.social
Headline: Tècnic en Tecnologia @ L’Energètica
Location: Barcelona, Catalonia, Spain

## About

Less is more. As a software engineer with extensive experience with functional languages, I can help you enhance simplicity, scalability, and maintainability of your software system by judiciously applying functional principles to your codebase (no matter the language), your domain model, or the overall architecture of your application. Both me and my code are easy to work with.

## Experience

- **Tècnic en Tecnologia at L'ENERGÈTICA** (2025 – present)
  Domain modeling and implementation, systems architecture.
- **Project Manager at Aiguasol** (2024 – present)
- **Software Engineer at CarbonCloud** (2021 – 2024)
  ▪️Helped understand business problems and create working solutions in a fast moving domain. ▪️Driven an initiative to transition to a more scalable and evolvable, event-driven architecture. ▪️Designed, built, maintained, monitored, optimized web apps (full-stack) and APIs on AWS.
- **IT Consultant at Freelance** (2015 – 2021)
  ▪️Consultancy on Open Source software management and procurement. ▪️Development, training, mentoring and functional analysis services.
- **Open Source Fellow at Tweag** (2020 – 2021)
  ▪️Made AsciiDoc front-end for Pandoc: https://www.tweag.io/blog/2021-06-15-asciidoc-haskell-pandoc/. ▪️Created the first grammar-based parser for AsciiDoc: https://github.com/gmarpons/asciidoc-hs/.
- **Document Engineer, Technical Writer, Docs-as-code Evangelist at Decidim** (2018 – 2018)
  ▪️Requirements capture, design, and implementation of Decidim's documentation site. ▪️Trained Decidim contributors on AsciiDoc and Git.
- **Document Engineer, Technical Trainer, Docs-as-code Evangelist at Barcelona City Council** (2018 – 2018)
  ▪️Designed and implemented a collaborative documentation site and publishing workflow. ▪️Trained city civil servants on AsciiDoc and Git.
- **Free/Libre and Open Source Software Consultant at Barcelona City Council** (2017 – 2018)
  ▪️Trained and advised city civil servants in procurement and development of Open Source software. ▪️Contributed to the Barcelona Digital Standards: https://www.barcelona.cat/digitalstandards/.
- **Software Developer at BMAT Music Innovators** (2016 – 2017)
  ▪️Drastically reduced complexity of stream analysis pipeline leveraging PostgreSQL advanced features. ▪️Developed applications in Python, mentored junior engineers.
- **Technical Trainer at BMAT Music Innovators** (2016 – 2016)
  ▪️Trained staff in UNIX command line, SQL, and data modeling.
- **Research Assistant, Doctoral Student, Software Developer at Universidad Politécnica de Madrid** (2007 – 2014)
  ▪️Publications: http://babel.ls.fi.upm.es/~gmarpons/. Also presented in academic conferences. ▪️See the Projects section for my contribution to European research projects.
- **Product Design Engineer at Muestra de cine de Lavapiés (Lavapiés Film Show)** (2013 – 2013)
  ▪️Developed video projection device with energy monitoring using Arduino and Raspberry Pi.
- **Formal Methods Consultant, Technical Trainer at INECO** (2009 – 2009)
  ▪️Defined methodology for modeling and verification of railway systems (UML/OCL, model checking).
- **Junior Researcher, Software Developer at Loria** (2006 – 2006)
  ▪️Designed and implemented a mechanism for inheritance without sub-typing. ▪️Paper (vol. on "Reuse of Off-the-Shelf Components"): http://dx.doi.org/10.1007/11763864_15.
- **Teaching Assistant at Universitat Politècnica de Catalunya** (2004 – 2004)
  ▪️Programming lessons in C.
- **Software Developer at RECERCA INFORMATICA SL** (1998 – 1998)
  ▪️Developed (in Java) for a startup that pioneered the UML/CASE tool revolution.

## Education

- **Universitat Politècnica de Catalunya** — Master of Science - MS (1996 – 2002)
- **Universidad Politécnica de Madrid** — Master of Advanced Studies (aka Suficiencia investigadora) (2008 – 2010)

## Skills

- Property Based Testing
- Software Architecture
- Object-Oriented Programming (OOP)
- Search Engine Optimization (SEO)
- Prolog
- Software Quality Standards
- Continuous Integration and Continuous Delivery (CI/CD)
- Static Analysis
- Object Constraint Language (OCL)
- Software Verification
- Research and Development (R&D)
- SQL
- NoSQL
- Jenkins
- Technical Writing
- Event sourcing
- Web Applications
- Erlang
- Eiffel (Programming Language)
- HTTP API
- Domain Specific Languages
- Cloud-Native Architecture
- Interpersonal Skills
- Amazon Web Services (AWS)
- Agile Methodologies
- Problem Solving
- Relational Databases
- Knowledge Sharing
- Cross-functional Communication
- Functional Analysis
- Data Structures and Algorithms
- Formal Methods
- Computer Science
- Software Development
- PostgreSQL
- Elasticsearch
- Linux
- Microservices
- Requirements Analysis
- Datalog
- Functional Programming
- Data-intensive applications
- Haskell
- Apache Kafka
- Code Review
- Pair Programming
- MongoDB
- Kubernetes
- C++
- C (Programming Language)
- AsciiDoc
- Git
- Java
- Arduino
- Training
- Docker
- Cross-functional Team Leadership
- Domain-Driven Design (DDD)
- Elm
- Ontologies (OWL, Description Logics)
- Unified Modeling Language (UML)
- Model Checking
- Scientific Writing
- HTML/CSS
- Test Driven Development
- Python (Programming Language)
- Parsing and Compiler Construction

## Projects

- **Global GCC (European ITEA project), https://itea4.org/project/ggcc.html**
  ▪️Designed extensible tools for enforcing MISRA-C and CERT Coding Standards (security, maintainability). ▪️Built them first as a GCC extension, then ported to LLVM/Clang.
- **ProTest: Property-based Testing (European STREP project)**
  ▪️Developed an Erlang/OTP package for runtime monitoring of applications.

## Volunteering

- Community Representative at Decidim

## Honors and awards

- Top student on three courses: Declarative Programming, Description of Programming Languages, Applications of AI
- Degree project with honours: library of multi-dimensional data structures in C++, inspired by STL and Boost libraries

## Languages

- English (full_professional)
- Spanish (native)
- Catalan (native)
