Why C/C++ made me quit a tenure track position at University | Our Story (I)

This is the first chapter of our story, a story in which we embarked on a journey to create biicode. We hope this gives you a hint of the pains and gains of creating a start-up from scratch. This is our story.

Why I quit a tenure track position as professor

I’m Diego Rodriguez-Losada, the first promoter of biicode and one of its founders. Right before embracing this adventure, I had a comfortable position as a professor in Universidad Politecnica de Madrid.

Diego biicode our story

Credit: Sintetia.com

I had been working very hard many years before and after my PhD: publishing research papers in top ranked journals, leading projects, etc. I had recently obtained my tenure track position, I was the first to do so in my department and probably the youngest in my college. I had also recently had my third child. I knew I was smart and I was also confident with my solid background, but compared to some of the brilliant and talented people I met during those years I felt merely mediocre. Meeting in conferences with some of the best brains in my area (Robotics), like S. Thrun or P. Newman was amazing, but realizing that even the local and much younger than me Spanish talents such as J. L. Blanco were far more capable than me, was simultaneously frustrating and inspiring.


This inspiration motivated me to join the open source movement. I started to release our C/C++ research code, working together with my friends M. Hernando (my former advisor) and A. Valero (former colleague, now an openHW and 3D printers master in BQ). We had a lot of trouble managing dependencies and I wondered about the absence of a good multi-OS dependencies manager for C/C++. I love C/C++, but it made me jealous how languages like python managed so easily to dependencies on third party code (e.g. just the simple task to use a serial port in any OS). Why couldn’t this be done in C/C++? Why libraries are so huge in C/C++, forcing one to use the whole library even for a simple task? Why one of the most used languages (up to 20% of the world source code) does not have a dependency manager?

Why couldn’t this be done in C/C++? Why libraries are so huge in C/C++, forcing one to use the whole library even for a simple task? Why one of the most used languages (up to 20% of the world source code) does not have a dependency manager?

So I imagined a simple dependency manager for C/C++ that completely avoided packaging and, at the same time, was able to reuse individual source code files easily. I even realized that such an approach could be great for every language, as exactly the same procedure for publishing, reusing, handling dependencies and conflicts for every language sound the proper approach to the problem. This however is yet a very abstract and probably naïve approach on the matter since dependency managers already exist for other languages and it is almost impossible to compete with them.

Let’s go!

I made some initial research to check that indeed nobody was building or trying to build something similar to this idea. And I decided that I could try to build it. How could I even dare think I could be able to build such a system? Why in heaven would I have any chance of succeeding in such a complex and challenging project?

Our Story starts with an Amstrad

Credit: Mo5.com

Those questions drove me back in time to my early teens, when I was a top student in school, and probably the typical nerd that built miniaturized fm radio emitters with my homemade PCBs (using acids, the reason why my mother was not very happy about it), and programmed videogames in our Amstrad CPC6128 instead of playing them. Those years I learnt that in technology, everything is possible: it is not necessary to be a genius, just smart enough and have a clear goal and ambition, have discipline and commitment and people you can learn from. And I learnt to love challenges. The PhD, the tenure track position… are probably partly just the consequence of that love.

As you can guess, I decided to quit my position (the first professor to do so and the only one until today in my University) and run my startup: biicode, where we are building this system, and I am enjoying an ecosystem of brilliant (more than me, as usual) developers and software engineers, that are also challenge-hungry and willing to learn. And we are very close to show that this technological challenge is, indeed, also possible. There is only a missing piece, a different kind of challenge I have possible underestimated: the community. This deserves a dedicated post, so stay tuned :)


This story continues with Miguel Hernando’s memories of where everything started. Find the second episode HERE.

Stay tuned

Related Posts
  • Jorge

    Strength, courage and our best wishes from Proximus team! :) We hope to see you soon!

    • http://about.me/diego.rlosada Diego

      Thanks very much, Jorge and the Proximus team! May the force be with you too :)

  • http://www.bonillaware.com David Bonilla

    It’s going to be hard but also fun. Remember that there’s no goal. The goal is the path you are walking right now :) Ejoy each milestone!

    • http://about.me/diego.rlosada Diego

      Totally true. Very hard, but I am really, really enjoying the experience and learning soooo much. One of the best things found in the path: AMAZING (amaising ;P) people with great doses of talent and passion. Thanks all for reading and sharing!

  • Juan José del Río

    s/abscence/absence/ :)

    • https://www.biicode.com biicode Team

      Thanks! :)

    • biicode

      Thanks, done!

  • Luis Díaz Más

    I feel terribly identified with your case. The project is very promising & ambitious, and it could improve greatly the things in the C++ future. Have you heard about the new “modules” support in which clang is working on ? http://clang.llvm.org/docs/Modules.html. I think that it is very related with the goal of biicode.

    • http://about.me/diego.rlosada Diego

      Thanks very much!
      Well, the modules it is not just a CLang thing, I think the ISO people are working on this. This will definitely be a major improvement for us developers of C/C++. And it will also improve the model of biicode, one of our major current problems is the preprocessor, one of the things that modules want to overcome. So if modules are really widely spread, together with biicode as dep manager with versions, which is quite orthogonal to modules, that could be possible the coolest dev ecosystem ever! :) :)

  • Pingback: biicode @ Spain Startup South Summit - biicode Blog()

  • Pingback: biicode is going open source: join us!! | biicode Blog()