I find it oddly hard to switch fields. I guess I did web stuff for too long and filled my CV with it. Although i regularily do other stuff (embedded eng, systems eng) and find my existing skills applicable to a large extend employers seem to be put off by my history in web.
From reading the docs I see a pretty generic device fleet management framework. What makes this software specific to sex toys besides the intention of the authors and the name? Couldn't you just as well manage - i dunno - a fleet of corporate e-scooters with it?
Thinking this thought further made me giggle. Imagine devs deciding it's the best option for managing some enterprise device, onboarding would be so funny. "Yeah and now you need to enter the address of our buttplug server [..]"
You're absolutely correct! I mention this elsewhere in the documentation even. Buttplug really is just a userland HID manager at its core. The only specialized part is the context of commands we send to devices.
The original plan (and it may still happen, who knows) was to figure out a way to chop off that top message layer and create a generalized system for doing exactly what you've said. That was going to be called 'deviceplug', and it's why btleplug is under the 'deviceplug' org on github (https://github.com/deviceplug/btleplug). I've just never gotten around to it because I'm not quite ready for the additional support burden yet.
All that said, Buttplug is also a haptics experimentation project aimed at finding out what it's like to create a way to communicate about a very specific type of touch via technology and programming. There are specific goals within the project related to that, but the amount of tech required to actually pull that off means I end up with what basically amounts of a fleet management framework. :)
Yeah, basically I share those doubts. Still I'm still considering rewriting might be worth it at this point still. The question why it came to be is probably mismanagement, changing business requirements, a very inconsistent and highly volatile "microservice" backend made across hundreds of developers across the globe. Corporate shenanigans you name them. So the software being in a weird environment is nothing I can change. I just want this piece, the stuff me and my team works with to still be able to produce new stuff and be as much of a pleasure to work with as possible.
Some notes that make me actually favor a rewrite:
* Despite of being a considerable large codebase not a single piece of software made it past the "just for presentation" purpose - no customers or production software involved. (Also parts of it are infact already cancelled by management and therefore obsolete)
* Team morale is very low as practically any task currently
means dealing with a ton of cruft
* We actually piled up a refactoring backlog, that grew so big it practically will touch everything. Like obsoleting an outdated store package that contains 70% of the business logic. Migrating to vue3 will pretty much touch every view as our class decorator syntax stuff won't be straightforward to migrate. Then theres not much left.
Well I'm not in charge, but I think my input has a high influence in the decision making. The company is a multi billion dollar international multi, so cost is not really the issue here. It's more an organizational problem. Therefore I also don't think moving to a specific framework or a new design pattern will help us by a lot. It's more transforming the current state to _any_ consistent pattern with a certain level of quality. And I'm trying to figure out whether the team would benefit from a radical or iterative approach.