no need to worry we love good feedback here at Tabnine ;-) Your observations are appreciated. In this case we are using general code and not a custom model but if you would like a custom model then I would wager you would get better variable names... maybe even "awesome".
Our goal with our customers is to build models based on the best custom code and input from the best developers so that your new devs can learn from YOUR CODE and with YOUR BEST PRACTICES.
When looking across a single companies codebase, how will you distinguish "best practices" from "we know this is bad but it works don't break it"? I have yet to work somewhere where the former is more than 5-10% of the code in production so I worry about this making it harder to raise the bar.
I would find it a more compelling pitch to say tabnine will help me and my teammates follow more general best practices, though I understand how subjective that is.
A model is only as god as the code that it trains on and the people it learns from. In your example above we can build a custom model on "best practices" code and not the companies codebase. Our work here has focused on working with ISV's like AWS, GCP, etc as they will have best practices for their tech. We then pull that together for a team in a custom model.
Do you models incorporate any sort of time-based weighting, where more recent code is weighted more heavily? Seems like that would also help this issue, as more recent code tends to be closer to what we hope future code looks like. But then how do you let best practices evolve over time?