t some point during your career as a developer you will consider writing a library. Sometimes you want to do it simply to be able to reuse your code in an elegant way. Other times because your code-base is getting so big that you feel the urge to modularize it. Sometimes you just realize you invented a cool new way to perform a specific task and you want to share it with the rest of the world. Whatever your motivation is you will come across some choices and difficulties which hard to predict and even harder to solve. Questions about the build system, the publishing process, the Android vs Java compatibility and many many more are waiting for you. In this talk I will try to show you the best practices my team and I came up with to write libraries both in Java or exposing a C/C++ code-base. We will discuss API design, CI techniques and performance considerations try to provide you with the right tools for the job.