Antonio Navarro

Senior Engineer

About Me

As an experienced software engineer, I have a strong passion for working with cutting-edge technologies and pushing the boundaries of what’s possible. Currently, my focus is on web3, distributed, and decentralized systems, where I am constantly exploring new approaches and techniques to build the next generation of decentralized applications.

In addition to my work in web3, I also have a background in Big Data and data processing, where I have built and managed complex systems for processing and analyzing large datasets. With a deep understanding of data pipelines, distributed computing, and scalable architecture, I am confident in designing and implementing robust data processing solutions.

I am always looking for new challenges to tackle and exciting opportunities to grow my skills.

Outside of work, I am always learning and have a variety of hobbies. Currently, I am exploring synth music generation and built my own e-bike. I also enjoy sports, having played Rolled Hockey competitively. I am an outdoor enthusiast and love to hike, exploring every corner of Granada’s beautiful landscapes.

Projects

Personal pet-project that can expose torrent files as a standard fuse mount, and download them on demand, allowing random reads using a fixed amount of disk space.

Torrent client with on-demand file downloading as a filesystem.

Distribyted tries to make integrations with other applications among torrent files easier, presenting them as a standard filesystem.

We aim to use some compressed file characteristics to avoid downloading it entirely, just the parts that we’ll need.

Also, if the file format is not supported, distribyted can stream and seek through the file if needed.

Kubo was the first IPFS implementation and is the most widely used one today.

Kubo implements the Interplanetary Filesystem - the Web3 standard for content-addressing, interoperable with HTTP. Thus powered by IPLD’s data models and the libp2p for network communication. Kubo is written in Go.

  • Runs an IPFS-Node as a network service.

  • Command Line Interface to IPFS-Nodes.

  • Local Web2-to-Web3 HTTP Gateway functionality.

  • HTTP RPC API (/api/v0) to access and control the daemon.

  • IPFS’s internal Webgui can be used to manage the Kubo nodes.

SQL layer on top of immudb prototype. Second prize on the immudb Coding Challenge - Winter 2020 Edition

SQL engine which parses standard SQL (based on MySQL syntax), resolves and optimizes queries. It provides simple interfaces for custom tabular data source implementations:

  • Generic extensible SQL engine that performs queries on your data sources.

  • Provide interfaces so you can implement your own custom data sources without providing any (except for the mem data source used for testing purposes).

  • Have a runnable server you can use on your specific implementation.

  • Parse and optimize queries while still allowing specific implementations to add their own analysis steps and optimizations.

  • Provide some common index driver implementations so the user does not have to bring their own index implementation, and still be able to do so if they need to.

Now heavily used and maintained by the awesome Dolt team.

I was a contributor and maintainer of this project. I've implemented a lot of new functionality like the first version of the packfile writer with delta selection. I learned a lot with this project about low-level performance improvements and heavy profiling.

go-git is a highly extensible git implementation library written in pure Go.

It can be used to manipulate git repositories at a low level (plumbing) or high level (porcelain), through an idiomatic Go API. It also supports several types of storage, such as in-memory filesystems, or custom implementations.

It’s being actively developed since 2015 and is being used extensively by source{d} and Keybase, and by many other libraries and tools.

A project created by some of my colleagues and me on a hackathon. Now is one of the main company pillars.

gitbase is a SQL database interface to Git repositories.

It can be used to perform SQL queries about the Git history and about the Universal AST of the code itself. gitbase is being built to work on top of any number of git repositories.

gitbase implements the MySQL wire protocol, it can be accessed using any MySQL client or library from any language.

src-d/go-mysql-server is the SQL engine implementation used by gitbase.

Working directly with a great SAP team on their offices, we created a SQL distribution layer based on Apache Spark for his new in-memory database called Velocity. The project lately was renamed to SAP Hana Vora.

We started this project as a POC to show to management. After two weeks we had a working prototype able to create aggregations on top of Apache Spark Streaming with a small config file.

Stratio Sparta is the easiest way to make use of the Apache Spark Streaming technology and all its ecosystem. Choose your input, operations, and outputs, and start extracting insights out of your data in real time.

Experience

All in Bits

gno.land

Senior Engineer

March 2023

Gno.land is platform to write smart contracts in Gnolang (Gno). It uses an interpreted version of the general-purpose programming language Golang (Go).

  • Streamlined the team’s working workflow by implementing improvements and standardization measures
  • Contributed to the codebase by proposing and implementing new code improvements and refactoring strategies
  • Assisted in identifying and addressing potential performance regressions through benchmark analysis and reporting
  • Helped to create and developed https://gno-by-example.com/ to enhance project visibility and discoverability
  • Played a key role in project documentation by establishing a solid foundation and creating comprehensive documentation resources
  • Enhanced code throughput visibility by designing and implementing benchmark charts for Continuous Integration (CI) purposes

Protocol Labs

protocol.ai

Senior Engineer, IPFS Stewards Team

Apr 2022 - Feb 2023

Kubo (go-ipfs) is the earliest and most widely used implementation of IPFS.

  • General maintenance of the IPFS Go ecosystem and libraries, fixing bugs and adding new features into the canonical IPFS implementation: Kubo.
  • Improving the Kubo Routing system, allowing to compose routing implementations depending on the use case (indexes vs DHT).
  • Resource Manager implementation and UX tweaking and bug fixing, simplifying the API facing to the user.

Molecula Corp.

molecula.com

Senior Engineer, Core Team

Sep 2020 - Jun 2021

Pilosa is an open-source, distributed bitmap index that dramatically accelerates continuous analysis across multiple, massive data sets.

  • Refactor cluster management logic from Gossip protocol to Raft, using etcd for distributed consensus.
  • Design and prototype new and generic SQL interface and new data storage formats.

Source{d}

sourced.tech

Lead Engineer Data Processing Team

Jan 2019 – Nov 2019

Lead Engineer at Data Retrieval Team

Oct 2017 – Jan 2019

BigData Senior Engineer

Sep 2016 – Sep 2017

Source{d} looks to build the first AI that understands and writes code.

  • Development of low-level git functionality (LRU object cache implementation, delta objects generation).
  • Manage and coordinate a 5 people team.
  • Development of a new SparkSQL gitbase data source, supporting pushdown of standard expressions, like filters and projections, but also aggregations and functions depending on the query.
  • Manage open source projects (issues triaging, design document creation for new features, community management) like go-git, go-mysql-server, and gitbase.

StratioBD

stratio.com

Big Data Engineer

Feb 2014 - Sep 2016

  • Analysis, design, and coordination of the development of Stratio Admin, a platform to govern data management clusters, using Spring MVC, Jetty, Chef Server, Cassandra, ElasticSearch, Jclouds.
  • Real-time event processing platform developed based on Spark, using a CEP (Complex Event Processing) engine, Hazelcast, Kafka, Spark, Cassandra, MongoDB, and ElasticSearch.
  • Analysis, architectural design, and development of a real-time data analysis application based on hypercubes. Technologies: Kafka, Spark, Cassandra, MongoDB.
  • SAP Hana Vora SparkSQL layer development, implementing queries push down, distributed aggregations, versioning and performance improvements.
  • Document design to implement data lakes at Santander bank,
  • Data Lake implementation and first use case doing data cleaning techniques to normalize data, data versioning, metadata, etc. using Spark, Spark SQL, Spark Mllib, Cloudera, etc for Santander bank

TECHNOactivity

www.technoactivity.com

Senior Software Engineer

Dec 2012 - Feb 2014

Analysis and architectural design of a fully distributed, highly available, cloud-based REST API which forms the core of a mobile payments processing solution licensed by the Central Bank of Spain.

Project’s technological highlights:

  • Use of agile project management and tracking solutions such as JIRA and GreenHooper.
  • Continuous integration tools, such as Nexus and Jenkins.
  • Cloud deployment workflows based on Amazon Web Services.
  • Low-level monetary transactions management with redundancy, error prevention, and detection.
  • Behavior analysis based on a rules engine employed as part of proprietary fraud detection and prevention system.
  • Batch execution of automated banking operations in the background.
  • Interactive API documentation generation using Swagger.
  • Administration backend based on the Play Framework.

Antena 3 (Paradigma Tecnológico)

www.antena3.com

Software Engineer

Oct 2011 - Dec 2012

  • Analysis and development of Android Second Screen application, ANT 2.0 V2.
  • Development of “Modo salón”, an Antena 3 application designed for TiVo devices, using Java, Maven, and Junit.
  • Development of “Actibva” (stock market and news viewer) for LG TVs, using Java, SOAP, REST, Object Oriented Javascript, and Jquery.
  • Development of an audio and video transcoding application with REST API, using Maven, Spring, Spring Security, Jersey, Junit, Velocity, Jetty, and MongoDB.
  • Modular developments and troubleshooting for web and CMS solutions for Antena 3, Onda Cero and Europa FM, using Spring, Maven, GWT, Tomcat 6, Lucene and Hibernate.

AT Sistemas

atsistemas.com

Software Engineer

Sep 2009 - Oct 2011

  • Enterprise application development using Java, Struts 1, Spring, Spring MVC, Maven, Artifactory and Tomcat 6.
  • Use of agile development methodology applied through Scrum.
  • Participation in projects for Mutua Madrileña (Intranet) and Franquicias Plus web portal.
  • Use of application management and continuous integration solutions such as Hudson and Sonar.

Sadiel Desarrollo de Sistemas

ayesa.com

Junior Software Engineer

Jan 2009 - Sep 2009

  • Enterprise application development using Java, Struts 1 and 2, JSF, Spring, Lucene, Ant, Maven, Artifactory and Tomcat 4/5/6.
  • ORACLE / PLSQL database programming using TOAD as a management tool.
  • Participation in projects for “Junta de Andalucía” (eGovernment), “Agencia Andaluza del Agua” and “Nuevo Plan de Vivienda 2009”.

Education

IES Mar de Cádiz

Desarrollo de Aplicaciones Informáticas

2006 - 2008