While furloughed during the COVID times I started a little pet project, The Brick. It inspects your existing database tables and views, and auto-creates any missing MVC things to become a minimally scaffolded functional thing, running just in RAM. The thought was for this thing to help out during the early phases when you’re building a new app – the pages you haven’t done yet can at least show something. Or if all you wanted was a simple admin interface, it would allow you to easily browse through the data in a Rails app with zero footprint – no files created and it all just works.
After regrouping back in the office then this side project went on the back burner, and over the past year I’ve just been messing with it after work and on weekends. Finally released v1 of it back in March. It became smarter about belongs_to and has_many associations, now supports all popular relational database engines, auto-creates RESTful API endpoints when the Swagger gem is present, etc. It’s grown up and has become more useful.
At work it so happened that we needed APIs to be auto-created for our Rails app based on existing database views, so of course I mentioned this gem. Put together a quick demo to show it working, and the team got pretty excited, with my manager saying, “I didn’t know that we were this far along”. At that time I was thankful to have contributed to the open source community, and thought my employer was thankful in the same kind of way.
After a second demo showing the full feature set of this open source gem, my manager then realised – hey – this is not owned by the company, and something that an employee has created on their own. He brought up the thought, “this puts us in a difficult position because I did not know that we had released a gem”. So I explained, “well, the company hasn’t released this gem – it’s work I’ve done in my spare time in order to contribute to the open source community”. It then takes the direction, “read your contract – anything that an employee creates while employed with the company belongs to the company”. And I continue with, “what if I wrote a book and published it – would that be company property?” and so forth, continuing with, “we use hundreds of gems that people have created and that is not work owned by the company. We’ve even contributed updates to those gems so that the entire community benefits.” And it goes on with this manager indicating, “I didn’t know that we had delivered updates to other gems – and this work also puts the company at risk. I should be made aware of that.” I, along with all of my team mates, are completely aghast by all of this.
Now three days into this mess this manager is having a meeting with HR to see what legal options are available.
I had moved my family from California over to UK in order to help out at this small startup, and am completely disgusted that things could ever have gotten to this point. These kinds of actions are sure to make it more difficult to hire new developer talent, this at a time when it would be useful for us to grow our team.
Perplexed as to how this ever could have beome this insane, at this point I’m just wondering – has anyone else faced anything similar with an employer? Have you had to educate people about how open source software works, or the overall ethos of the Rails community?