I'd like to start by giving a little background information about my work experience. Like many developers trying to make a name for themselves, I too started as a freelancer; my work consisted of simple client applications or RESTful APIs.
While working on all sorts of projects the CEO of a tiny startup called me and asked if I was interested in working long-term with them: this was like a dream come true.
You see, the atmosphere in a startup is very different from that of a traditional company, there's a lot more experiments with new technologies, much more freedom to try new things.
There's also another aspect that defines a startup, one that is largely ignored while discussing them: the shortage of money.
Initial struggles and our breakthrough
Building a large-scale application without funding can be difficult - schedules need to be respected and tons of hours are spent working on a project without the certainty of it ever being finished or used - and to optimize work as much as possible we heavily relied on open source frameworks and libraries.
This is not what saved our business though, using it just meant that we worked less on problems that had already been solved. The major breakthrough was publishing some of our work as libraries. Our thought process was this: "If this app fails then we'll have wasted our work, so let's publish it and hope that someone else would find it useful".
That was the best decision we had ever made.
Our libraries were quickly noticed by other fellow developers and word got out about who we were and what we stood for. Working for free and giving to the public were major selling points for us.
Eventually our name reached some investors who saw our projects and began giving funding, a new startup had solidified. After months of uncertainty, standing on stable ground was a great sensation, we did it without marketing, without sponsors, we succeeded just because we had created something useful.
Ever since I've witnessed the power of a good open source project, and the effect it could have on a company I vowed to always distributes my most frequent work as packages or libraries.
Even when working with bigger companies I always suggest publishing libraries to get our name across, build an image of developer-friendliness that can boost our brand and - most importantly - have a bigger audience to test parts of our code as independent and useful products.
I hope you join me as well. Thank you for reading.