Most important projects I’ve conceived, designed and developed from scratch, both personal or for third-party organizations in a professional basis. Most of them are open-source, and I’m always looking for new ideas and collaborations.
Massively vertical and horizontal scalable SFU built on top of
Mediasoup, automatically managing the resources based
on their capacity, so in theory with the enough resources it could be possible
to host videoconference rooms with unlimited number of participants in a
transparent way for both users and developers, and API compatible with
Mediasoup so it’s possible to upgrade current code bases to use it and scale
in a matter of minutes. Initially a personal proof of concept, in the first
month of development (March 2021) it got interest from several companies, so I
decided to develop it as a commercial product. It’s still a work-in-progress,
but it already supports vertical scalability with multi-CPU Mediasoup routers,
horizontal scalability with routers over several servers, and easy integration
with current code bases, being mostly missing just only the support for routers distributed across multiple CPUs over several servers. In addition to that, long
term roadmap includes support for transparent decentralized P2P video streaming.
Linter to check global quality of projects, based on my experience doing code auditories. Not only checks for code quality or best practices, but also has rules to validate project structure, file names conventions, complexity, documentation, tests…
This project also involved the development from scratch a project-level rules async engine and of a tasks runner with support for parallel execution and multiple optional alternatives, since none of them was available at that time.
Minimal operating system build on top of Linux kernel usingo Node.js as its user space and fully managed with npm. It’s mostly focused for Cloud and Fog computing, at the same time for education and embeded systems, and has some unique features like isolated filesystems for each user (it was planned to isolate each one on its own LXC container) to allow full customization of the system by their users, or multiple flavors depending of the user needs (also as a single-process OS or bootable USB, and was planned support for networked GUI).
This project won the spanish national IX Free Software Universitary Championship, was my bachelor thesis (graduated with distinction), and I was also invited to give some keynotes at OpenExpoDay 2015 and JsDayEs 2017 conferences.
IX Concurso Universitario de Software, Zaragoza 7th & 8th May 2015:
XXVIII Jornadas Técnicas del GUL UC3M, Leganés 10th November 2016 (spanish):
JsDayEs 2017, Madrid (english):
Novática 236.pdf, April-June 2016:
They were also given honorable mentions for the projects:
NodeOS of Jesús Leganés Combarro (Rey Juan Carlos University).
Se entregaron también menciones especiales para los proyectos:
NodeOS de Jesús Leganés Combarro (Universidad Rey Juan Carlos).
The Case for Writing Network Drivers in High-Level Programming Languages, 13 September 2019:
This project won the “Most Innovative Project” award in the spanish national VII Free Software Universitary Championship and was invited to give a keynote at first spanish WebRTC summit at Politechnic University of Madrid, November 2012.
VII Concurso Universitario de Software, Granada 23th & 24th May 2013:
Introducing ufo.js: A browser-oriented p2p network.pdf, February 2014:
Among real life applications using the datachannel as best as they can, we should definitely mention shareit and sharefest. Such applications allow browsers to share files in the absence of any form of upload to external servers, as opposed to well-known services such as Dropbox or Google Drive. Both shareit and sharefest use an external server holding and managing a connection to each peer; these connections are used to accomplish all the signaling procedures between peers. Thus the actual p2p communication happens during file transfers.
Note: ShareIt! used an external server to bootstrap the initial discovery and signaling with other peers, once they were connected to at least another peer and being part of the P2P network, the discovery and signaling with new peers was done directly between peers over the P2P network itself, leaving the connection with the external server as a fallback mechanims.
Modular filesystem build with Python and using SQLite to manage metadata, allowing to the user to customize its behaviour by using plugins, and inspired by other new generation filesystems like BeFS, ZFS or Ext4.
This was my first open source project with some public repercussion, and won the Madrid local edition of the spanish national V Free Software Universitary Championship and was Honorable Mention in the national edition, both in 2011.
Initially designed as a one-to-one high performance files transfer protocol based on WebRTC DataChannels, it evolved into a transport-agnostic streams-oriented communications protocol for general purpose heavily influenced and based by Node.js streams. Taking ideas from P2P architectures (conceptually, I consider it myself ShareIt! 2.0), it implements advanced features like asynchronous send and reception, flow control with backpressure, use multiple transports in parallel, or auto-recovering.
This project was sponsored by Takeafile Labs with funds from European Union Horizon 2020 program.
Node.js bindings for Orion IoT server.
Although it was initially requested to develop just only a one-to-one proxy
server between the
Orion IoT Server and other APIs like Google Spreadsheets or
Amazon DynamoDB, I took the initiative to a bottom-to-up development focused on
following Node.js best practices and standard protocols, and building an
expansible system based on reusable modules (the initially requested server
ended being just only 70 lines of code) with one-to-many publishing support in
half the initially estimated time. This is one of the projects I’m
professionally more proud of at various levels, but this would have not been
possible without a good in-detail documentation of the
Orion IoT Server, clear
requirements and objectives, and giving me creative liberty from their side.
This project was sponsored by Telefónica R&D division.
Kurento is the lead WebRTC media server, powering Skype web conferences or Facebook and WhatsApp multi-user videochats, thanks to its flexibility and performance. In contrast to other ones, it’s focused on provide a thin low-level layer on top of GStreamer with an easy to use API instead of a high-level aproach that does everything that’s needed to create a videoconference aplication. Kurento team was acquired by Twilio in 2016.
client APIs and its WebRTC
browser utilities, based on my
previous experience from developing ShareIt!. After that, in 2020 I
was sponsored by Veedeo.me to update
browser utilities package to make use of current WebRTC APIs and to follow newer