What we use: our homebrew

I have become a open source tool junkie on my journey to find the right tools, and I hope all that my wasted time in setup and configuration will be of use.

What we use: our homebrew

I have become a open source tool junkie on my journey to find the right tools of our trade, and I hope that my time wasted on nginx will be of use to someone.

At Grus, we realized that a functioning system within a startup is setup homebrew. Unlike microbrews though [1], there are not many of these microsystems that are openly discussed and shared. They are at best almost-perfect-but-not-quite but probably worse, and therefore lie in the realm of the discreet, just like that code you wrote 5 years ago [2].

There are few things that we needed and here I write the open source tools that we use daily to manage our processes. We can't thank their developers enough for their efforts.

Rocket Chat as corporate chat

This was one of the things that we didn't make use in our old companies. It might seem counterproductive to have a chat service although we share the same room, it becomes indispensible when we investigate a bug, or a system issue. We get other engineers from other companies aboard here to discuss and resolve issues. We also have a "contact" chatbox that our customers or future customers can initiate chat with us.

Redmine as issue management system

This is a staple of our self management. [3] It is such a useless tool when it is not used, and such an invaluable tool when relied heavily upon. It brings a slight toll on our average response time, since you have to spend some quality time to compartmantalize and setup everything. Bu after a few rabbit holes down through the system engineering game, it brings extreme clarity to how to tackle huge issues.

ERPNext as ERP

ERPNext has a vivid open-source community with considerable momentum. [4] All our purchasing, sales, CRM, newsletters, warehouse management (buying, using reels of electronic components) and many other are serviced thorugh ERPNext.

Mayan EDMS as document management system

We use Mayan to save documentation that we create, and receive. In short anything that we need to have recorded like purchasing receipts, invoices, all incoming and outgoing mail, and hopefully all our user and technical documentation. We just habitually email all the content to a specific email address that Mayan checks regularly, and saves them for future reference.

Git as version management as gitolite as repository

We use Git because it has undisputedly proven itself in the community. We use Git-LFS where needed. In order to host your own Git server where you can push, pull, manage users et cetera, we use gitolite and Redmine Git Hosting plugin.

Ghost as blogging

Ghost is a flexible blog that also comes with a working set of simple functionality. Configuring it for specific applications require some affinity to write simple code, but that is exactly why it is powerful.

OpenLDAP for all authentication

Well, after 3-4 web services it is wise to service all of their logins through an OpenLDAP service.

Capella for engineering models

This will be covered in a different post, since it is one of the things we use that differentiates us as an embedded design company. In short, Capella is a Model Based System Engineering (MBSE) environment that is available open-source. The driving ideas are similar to UML (Unified Modeling Language), or even better to SysML(System Modeling Language). It gives engineers an overall schematic representation of the system that needs to be built, other than a documentation.

We believe in a future where the systems are built with discussions on graphically represented models, and everything else (such as system specifications, or test ) is derived from that, therefore we try to communicate through Capella models wherever possible.

  1. Check out http://brewtoad.com/ for that. (Unfortunately, brewtoad shut down before this post published.) ↩︎

  2. You know which one. ↩︎

  3. Though, I must admit, Rocket chat is stealing role from it, since essentially humans are lazy. ↩︎

  4. When we chose what to use, they were on version 8, and recently we have deployed version 11. ↩︎