About Me

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Martin Fowler, 2008.

About MetalBlueberry

me

I’m a passionate developer with experience in the world of BigData and Machine Learning.

I feel comfortable working with Python and Go, and I have no problem understanding other programming languages. I know how to use Docker and most of the time, I deploy applications inside docker containers.

I would like to become a senior Go developer and I’m investing personal time to keep moving in that direction.

I’m always looking for new challenges and constantly learning new things.

Experience

Form3 - Senior Software Engineer (Go)
  • Fully remote work environment with people with different nationalities.
  • Maintain Faster Payments Service connectivity improving stability and automation. (Alerting, Automatic incident responses)
  • Work on a highly available and secure environment.
  • Produce documentation.
2021
Tecnalia - Tech Lead
1 years 3 months
  • Leading a full-stack team (6 People) (Java/Go/Angular)
  • Implementing best practices (Testing, SonarQube, Pair Programming, Daily stand up…)
  • Set up CI/CD pipelines. (GitLab, Docker, Docker Swarm)
  • Knowledge sharing among the organization (Talks, Workshop, Documentation)
2020
ERNI/HP - Cloud Software Engineer
9 months
  • Mentoring the team to learn Go
  • Migrate legacy cloud infrastructure from Java to Go (AWS Lambda, Dynamo, S3)
  • Collect metrics to understand current limitations and design future architecture accordingly (AWS Cloud Watch).
2019
ERNI/HP - Data Management Analyst
1 years
  • Understand, Define, Structure and Quality Control of data generated by Large Format Printers.
  • Build Jupyter notebooks to present the information (Python/Pandas/Plotly)
  • Build dashboards for monitoring (PowerBI/Plotly-Dash)
  • Build scripts for unstructured log processing (Logstash, regex)
  • Create a data warehouse (Amazon S3, Parquet, CSV)
2018
ERNI/HP - junior Business Analyst
1 years 1 month
  • Bridge between business requirements and development team.
  • Write technical documents documenting business rules for implementation. (Markdown/Jira)
  • Support QA team during quality checks. (SQL)
  • Develop POCs for new proposals before delivering the task to the development team (Python, Go)
2017
My Escape - Hardware/Software Developer
1 years 3 months
  • Develop an automation software for Escape Room management(C#,WPF. State Machine)
  • Develop PCB for DAQ based on Atmega328 (Arduino) over TCP/UDP (Atmel Studio, Altium)
  • Develop a user screen to play videos, messages and receive user input (Qt, QML)
  • Design games for the Escape room
2016

Technical background

During my career, I’ve been involved in several big data-related activities. ranging from data acquisition to reporting. The role could be described as a Data Engineer1.

I’m familiar with the following technology stack related to IoT

  • Acquisition: Arduino/ Raspberry Pi
  • Transport: MQTT, HTTPS, TCP/UDP
  • Processing: Python Pandas
  • Formats: Parquet, CSV, JSON, XML…
  • Storage: S3, PostgreSQL, MongoDB…
  • Analysis: SQL, Python Pandas, Jupyter Notebook
  • Reporting: REST API, Plotly Dash, Power BI

As a developer, the following is a list of technologies, tools, frameworks… that I’m familiar with, sorted by how comfortable I feel using them. A higher position means more comfortable.

  • Fluent (used last year)

    • Go
    • Linux
    • Git
    • VSCode
    • Docker
    • Python - Dash
    • Python - Flask
    • Traefik
    • GitLab CI/CD
    • Java
    • HTML/CSS/JS (This blog)
    • MongoDB
    • Vue + Vuetify
    • SQL
    • Web Assembly (Go)
    • Ebiten (Go game engine)
See more
  • A bit rusty (more than a year without update)

    • AWS - Dynamo
    • Jupyter notebook
    • AWS - CloudWatch
    • AWS - S3
  • A long time ago (more than 3 years without update)

    • MQTT
    • Redis
    • C/C++ for micro controllers (Arduino)
    • Qt/QML
    • Rabbit MQ
    • Unity 3D game engine
    • Blender 3D modeling software
    • SolidWorks
    • C# with WPF for windows
    • Godot 2D game engine

Best Practices

I put a lot of effort into writing high quality code. This includes testing, CI/CD pipelines, documentation, and code best practices.

Soft Skills

I’ve attended several workshops by Enric Lladó related to communication and leadership where I’ve learned how to communicate efficiently and how to be a good leader. I enjoy helping others to grow and the tools provided by Enric have been really useful in this task.

I have been in the role of a Tech Lead2 in a team with 6 members and I enjoyed it a lot.

I have no problem speaking in public and I’ve been doing workshops, talks, and courses in front of many people since the university. I love sharing knowledge.

I have been working with people in other countries like China and India and I know what it means to have a different time zone and customs.

I consider myself a person that does things with passion and with a lot of patience.

I speak English fluently and Spanish. I tried to learn Japanese a few years ago, but failed.

I don’t hate Mondays. I like to read the documentation and I always read the instructions before using any new device. But I have to admit that I almost never read “Terms and conditions”.

If you want to learn more about how I came to be what I am today, you can read the long story or the F.A.Q.

Academical background

You can check my LinkedIn for more info about my academic background.


  1. Data Engineers are the data professionals who prepare the “big data” infrastructure to be analyzed by Data Scientists. They are software engineers who design, build, integrate data from various resources, and manage big data. Then, they write complex queries on that, make sure it is easily accessible, works smoothly, and their goal is optimizing the performance of their company’s big data ecosystem. ↩︎

  2. Tech Lead is a software engineer responsible for leading a team and alignment of the technical direction. Providing a strong technical direction involves establishing a technical vision, resolving technical disagreements and managing the technical quality of team deliverables. Effective technical leadership ensures the team uses appropriate engineering practices (such as CD or automated testing), invests in continual improvements to tooling or technical debt, and that the system evolves to meet its changing needs and environment. ↩︎