Readers of a particular age and background might be familiar with the American radio variety show “A Prairie Home Companion”. Every week the show’s host Garrison Keillor tells a rambling and amusing ongoing story of a fictional town in northern Minnesota named Lake Wobegon. It’s a great listen and truthfully a “podcast” ahead of its time. But for us, the most interesting part of the tale is the way Keillor signs off from the story every week. “…this is the news from Lake Wobegon, where all the women are strong, the men are good looking and all the children are above average.”
It’s humorous to be sure, but the pedantic among us might recognise the tongue in cheek observation that everyone can be “above average”. Certainly any group of people fall in a distribution around an average, but ask any particular individual if they are better than average at any given task and likely you’ll get an enthusiastic yes! Of course I’m a better driver than most folks out there. And of course you are as well, dear reader. The natural human tendency to overestimate one’s capabilities is so well known among social scientists that it has, in fact, been labeled, “The Lake Wobegon Effect” (Go ahead, wiki it…)
So what about coding? If I’m truly honest, I’m not a great coder. Years ago, before I found Tabnine and came to work for them, I worked for Google. While I was interviewing for Google I was trying to write an image classification algorithm under a time constraint. My python linter had enough fluff to fill a few throw pillows at least. I was able to go back and debug, re-write, fix the issues and get hired for the job…but it wasn’t elegant. I’ve met folks in my life that write code like they were born to it. It is a special person that sees code like music, or a novelist sees their language.
Fast forward to my interview with Tabnine and I faced the same issues. Live demo of code I wrote showing capabilities of the tools Tabnine provided. Fear, sweaty palms as I worked through the code in my head. But this is where things were a whole lot different. I had dropped in the Tabnine extension on VSCode and followed the simple directions. After consolidating the ML libraries and example repos into a root directory, Tabnine’s local model provided me with a highly specialized set of suggestions that were tailored exactly to what I wanted to do in my image classification demo. Drop a layer from the CNN to improve regularization? I commented my intentions and Tabnine pulled the correct TF function with suggested boolean values to make it happen. In short, Tabnine made me a better programmer.
Tabnine’s toolset will be different things to different people. Folks like myself will find the suggestions helpful and will lower time spent debugging and asking senior devs for review. It helps me get done what I need to get done faster and with less pain. Junior devs might find it even more helpful. Senior folks will find value in Tabnine guiding their teams with best practices, lowering tech debt and allowing them to focus on research or new innovation.
Over the coming months I’ll be writing a series of posts focusing on the value that Tabnine can bring to the spectrum of developers. I hope you’ll continue to join me.
That’s the news from Tabnine, where all the managers are hands-off, the devs are geniuses, and all the zoom meetings are above average.