Biicode (just the company) post-mortem

This is certainly a bad moment for every founder, investor and employee of a startup: the moment to certify the death of a company. Fortunately, as the title says, it is only the company what is in trouble, biicode as a product/technology is at the moment in good health and operating properly. However, in our commitment of transparency with our users and stakeholders in general, we think it is important to let you know.

Biicode is a great project, but it is also a startup, a business. That means that we hired people to develop the platform, and expected that at some point our revenue would be able to pay that people and also hopefully generate some profit. But it didn’t. We have been running on our investors money plus some public government loans for the last years, and we have been able to develop what we think is an amazing technology. We were running out of cash, so we started to work on a new funding round well in advance. But finally we were not able to close it, and now our expenses and burn rate are not sustainable anymore, so we must continue without employees and face a new stage that will most probably mean closing the company.

As a startup we have made many of the errors a startup typically makes. An important one was probably that our technology was a bit opinionated about software engineering processes, and we failed to adequately and timely listen (that means also filtering out lots of noise) to user feedback. Even if we realized it almost a year ago and started to make huge changes to the platform through our 1.0, 2.0 and 3.0 releases, that was not enough.

We were able to gather lots of users love from the open source community, and blog posts talking nicely about us started to flourish since last November’14, so we were able to grow about 25% month over month in activity (measured in API-calls to our server, that means, people actually using the tools to code with them), for the last 6 months.

But still, our total number of registered users was not as large as expected (now reaching 4000), and the most important reason: we failed to upsell the service and get enough premium paying customers. Practically all of the above activity was from open source users. But production C/C++ development can be quite different from other technologies, projects are very large, and introducing biicode in those projects is quite a time investment, and timings for new projects and introducing new technologies can be large too. Too large for a startup, even this technology could be a great business for a bigger corporation with more time and resources. We understand this can be a major concern for prospective investors, so we certainly do not blame on the VC ecosystem (in this case the Spanish/EU one) neither have we thought that our luck would be different in the USA.

I will write soon more detailed posts about all the many lessons learned in this startup adventure, but a very important one I don’t want to skip here is to acknowledge and be grateful. First I want to thanks the biicode team (you can find most of them, especially those that have been “bleeding” with me the last months: Luis (Laso), David, Fran, Maria, Jordi, Manu and Miguel. Thanks for your passion, support, friendship, and the indecent amount of extra work hours. You are the best team a tech startup can dream of.

Many thanks to our investors Big Sur Ventures – Necotium and Fundacion Jose Manuel Entrecanales, who believed in biicode and have supported us for so long. They have both been great investors, but I want to give very special thanks to Jose Miguel Herrero, our lead investor from Big Sur Ventures – Necotium, for his incredible support and commitment. KPIs, go to market, strategy, funding, hiring,…  Even these tough days, when you get to know the real values of the people around you, we have learned so much from him thanks to his continuous involvement and support. If you have a great project looking for funding here in Spain or even Europe and you are not pitching Jose Miguel you are definitely missing an incredible opportunity.

And finally, you, our users: I don’t have words to say thanks enough. You have supported us, invest your time to help us improve thanks to your feedback, comments and suggestions. You have used biicode for your libraries and your projects, making our dream of such a tool a reality. Many of you have even said that you love it.  We were C and C++ developers, and seeing other colleagues use biicode and loving it is the best reward we could have, and you gave it to us. I am very sorry we have not managed to fully guarantee its survival in its current form.

But we have not given up, fortunately, biicode as a project/technology is alive, and even if our resources are lower, there are still hundreds of active users enjoying it. We have released a full stack as open source (MIT license), including a server you can host on premises. It still lacks a web interface, but is fully operational and can be managed with little “devops”, and having an open-source web interface is a matter of time. The central biicode servers, site and web are fully operational, and they will be for at least 6 months more, probably 1 year if possible. We will personally continue to operate and support them (up to the legal limits). What the future will be, nobody knows. We believe that it is a good moment for the community to take over and start to see biicode as ours, a project of the C/C++ developer’s community, and hopefully together we will find the way for it.

So this is not a goodbye, just the beginning of a new stage for biicode. See you there and thanks again for everything.

CEO biicode

Give sound to your C++ projects with fmod

When developing new applications or tiny games with SDL, OpenGL or small3D, a requested and valuable feature is adding sound effects, raising alarms or creating new atmospheres. With this feature in mind and thanks to the work of FMOD and Miguel Hernando we announce today a new block that incorporates all the functionality to your project: EasySound.

What does fmod do?

EasySound wraps the main functionality of the low-level fmod api and can deal with different kinds of sound files and formats: mp3, wav, ogg. FMOD is an audio tool developed by Firelight Technologies focused on the development of professional video games. It has been used in over 2000 games and has integration with well-known game engines such as Unity or Havok.

fmod logo

At EasySound block, there is a simple class called EasyPlayer which is a very straightforward way to handle sounds.

Continue reading

About non-intrusive polymorphism

Polymorphism in C++

C++ implements subtyping polymorphism in the form of virtual functions, member functions that should be overridden on derived classes, in a way each class implements its own behavior for the function:

Continue reading

Come to the Dark Side, we have t-shirts

In order to get started with biicode and support our open source project we launched a while back a our Darth Vader++ campaign in which anyone that uploaded any piece of code to our cloud and had it reused by any other user would receive for free our Darth Vader++ t-shirt. The campaign has been a huge success, many libs and frameworks have been uploaded and  most importantly reused in other projects. The campaign has put in contact many lib authors with people that have reused their code in ways they could not expect. Some other times, users just asked the authors or maintainers for use cases of their code and followed up with an example. Creating community, that’s what all this is about.

Come to the Dark Side and join the C and C++ siths

Continue reading

Criticizing the Rust Language, and Why C and C++ Will Never Die

This is an original text by Eax Melanhovich that was rigourosly translated and kindly shared by Andrey Karpov. The original translation can be found here. Many thanks to both. 

Why C and C++ Will Never Die

I couldn’t but notice how much interest the readers of this blog [the author’s blog] had shown in the topic “should we let kittens play with new balls of wool?” So I felt like sharing a few more of my reflections on a related subject in regard to the C and C++ languages and the odds that Rust will kill them. No need to tell you that it will inevitably cause a big holy war, so before you proceed, think twice if you really want to go on reading this post and especially participate in a “constructive debate” via comments.

Continue reading

The Pragmatic C++ Programmer

 A couple of days ago I was studying at my university library when my colleague Miguel Madrid got up and started to traverse the library looking for programming books. It’s a game we usually play, to find out a good quality book in a place full of Java 2 SE manuals…

There are some gems on that library though. There’s a couple of copies of Alexandrescu’s “Modern C++ Design” (No longer that Modern, right?) and “C++ Template Metaprogramming”, the latter only borrowed by me in the last five years according to the registry. I always try to have a copy of both, it’s easy since there are only a few people doing C++ there, never reaching the “TMP mental asylum” I’m usually in.

But that day, Miguel reached me with a copy of “The Pragmatic Programmer”. “One of the most influential books in the history of software engineering” the cover says. I’m so scared of how software engineering examples look like


Continue reading

Compiling with biicode: CMake, build process, IDEs and more

biicode knows how source code files connect to each other. With this information, it creates a boilerplate CMake layout to build your project automatically. biicode then detects how sources connect and builds a dependency graph following #includes and implementations generating, for each block, a CMakeLists.txt defining variables to the dependency graph detected.

This translates into a CMakeLists.txt file with just one line by default:

Even though the boilerplate might be enough for some projects, here’s a guide to fully control the building process.

Today, we explain the different options available in biicode once you’ve got your CMakeLists.txt ready.

Compiling with biicode

Continue reading

Project Domo: Domotics with Arduino

Turning the heating on before arriving home, watching real-time video from the inside, automatically turning the alarm on when you leave home… These are common tasks you would like to implement in a smart domotized home.

However, incorporating domotic systems to our home is still hard due to lack of an effective, simple and cheap commercial solution that fits our needs, or maybe the steps required to make it yourself are far too complex. When you realize the options available aren’t what you were looking for, and you have tried DIY solutions to automate things with Arduino, the idea comes up clear to your mind: I want to create my own domotics with arduino.

Domotics with Arduino

In this post I will talk about my domotics project using Arduino to incorporate some automation to my bedroom.

Continue reading

biicode works now with VersionEye

At biicode we want to provide a new programming environment to C and C++ developers. Our tool already includes its core dependency management features alongside CMake build system. With biicode you can also publish your code to our cloud and keep it private. But a complete environment requires more tools like IDEs, compilers etc. Since software is present everywhere and the state of technology requires it to be up-to-date constantly, developers work hard to push their code’s latest version as soon as they know it works better than the previous one.
VersionEye logo

Continue reading