Yes it is possible, and it is actually the behavior on the demo calendar on https://fullcalendar.io/
gruvbox for sublime text. It is also available for VIM, RubyMine, etc.
count will perform similar to size. However, for the life of the object (typically just the instance of the request), it will perform another Count(*) query. So, if you are getting the count of an object multiple times within a view or method of that instance, it would make multiple database calls.
length can actually be fast if you have already eager loaded the objects from the association. However, for the most part, I avoid length.
size is similar to count with the exception that it will "cache" the Count(*) query or perform it if necessary. It's basically like a memoization of the count.
One of the drawbacks is the added complexity of having an engine. If your main app is really complicated and has a lot of dependencies, it might be worth scripting a task to copy and modify the main app into the dummy app. Another drawback that I found a few years ago were that the ActionMailer Previews for the engine had to be within the main application. It was an annoyance, but got by with it.
Depending on the size of your HR application, it might be a good thing to separate the TLM (Time & Labor Management) stuff. If you added an onboarding module as well, you could make this into an engine as well.
Basically, If there is a group of users who would not have the need for a particular grouping of features, because they are either an additional cost or premium feature, then I would build this kind of functionality into a separate engine.
I'll consider covering an episode with scanning QR codes. Are there any particular libraries that you're interested in?