dhung
There are some folders that Kite ignores, namely folders that usually contain private data. More info here: https://help.kite.com/article/97-adding-libraries-from-pytho...
First, the most important consideration for us was if our completions model could provide a good user experience 1) locally and 2) with minimal CPU and memory usage footprint. While we're constantly tuning the product's performance, Kite already uses less memory and CPU than TabNine. We know how important it is to save resources (and battery life!) when you're developing, so this was a huge sticking point for us.
Second, we've also put a ton of thought into dealing with the visual noise that completions of this nature introduce. The completions that are predicted by models such as Kite's and TabNine's can sometimes be irrelevant or redundant, so it's important to design filters that reduce the amount of what we call "low value" completions shown so that developers are less distracted. In Python, we have a best-in-class static analysis engine that we use to filter out low value completions. We don't have our own proprietary JS static analysis engine yet, but we've done some UX "hacks" to make sure Kite's JS completions aren't redundant and don't crowd out other completions the user may find useful e.g. native completions from the IDE.
Third, (and this is a point mainly for Python), is that Kite is much more than just completions. We also provide help for calling functions, instant documentation and we have some more features in the works. Completions certainly help developers physically write code, but we know that "writing code" also includes a lot of reading, debugging, etc. So we're trying to build a product that helps out developers in all phases.
It may be useful to differentiate between what data we collect and what data we don't collect in order to clear up any confusion.
1. What we collect
We collect a variety of usage analytics that help us understand how you use Kite and how we can improve the product. These include:
* Which editors you are using Kite with
* Number of requests that the Kite Engine has handled for you
* How often you use specific Kite features e.g. how many completions from Kite did you use
* Size (in number of files) of codebases that you work with
* Names of 3rd party Python packages that you use
* Kite application resource usage (CPU and RAM)
You can opt-out of sending these analytics by changing a Kite setting (https://help.kite.com/article/79-opting-out-of-usage-metrics).
Additionally, we collect anonymized "heartbeats" that are used to make sure the Kite app is functioning properly and not crashing unexpectedly. These analytics are just simple pings with no metadata, and as mentioned, they're anonymized so that there's no way for us to trace which users they came from.
We also use third party libraries (Rollbar and Crashlytics) to report errors or bugs that occur during the usage of the product.
2. What we don't collect
* Contents (partial or full) of any source code file that resides on your hard drive
* Information (i.e. file paths) about your file system hierarchy
* Any indices of your code produced by the Kite Engine to power our features - these all stay local to your hard drive
Kite's mission is to use machine learning to automate away the tedious and repetitive parts of programming in order to enable software developers to be more efficient and productive. Our product brings the web's programming knowledge — intelligently sorted completions, all the documentation, and thousands of great examples — right into your favorite editor.
To learn more about who we are, our engineering culture, and whether this is the right place for you, read our Key Values profile: https://www.keyvalues.com/kite
Here are our open roles:
- Algorithms and Data Structures Engineer: https://kite.com/jobs?job=algorithms&ref=keyvalues
- Backend Systems Engineer: https://kite.com/jobs?job=backend&ref=keyvalues
- Desktop Engineer: https://kite.com/jobs?job=desktop&ref=keyvalues
- Fullstack Web Engineer: https://kite.com/jobs?job=fullstack&ref=keyvalues
- Machine Learning Engineer: https://kite.com/jobs?job=ml&ref=keyvalues
Tech Stack: Go and JS (React) are the main languages we use. We also use objective C and C# for OS specific code as well as some Python and Java.
Kite is building a machine learning powered assistant for programmers to help them code more efficiently in real time. Kite brings the web's programming knowledge — intelligently sorted completions, all the documentation, and thousands of great examples — right into your favorite editor. We're also building out some more advanced features that we believe will make programming faster and more enjoyable.
To learn more about who we are, our engineering culture, and whether this is the right place for you, read our Key Values profile: https://www.keyvalues.com/kite
Here are our open roles:
- Algorithms and Data Structures Engineer: https://kite.com/jobs?job=algorithms&ref=keyvalues
- Backend Systems Engineer: https://kite.com/jobs?job=backend&ref=keyvalues
- Desktop Engineer: https://kite.com/jobs?job=desktop&ref=keyvalues
- Fullstack Web Engineer: https://kite.com/jobs?job=fullstack&ref=keyvalues
- Machine Learning Engineer: https://kite.com/jobs?job=ml&ref=keyvalues
Tech Stack: Go and JS (React) are the main languages we use. We also use objective C and C# for OS specific code and also Java for our PyCharm plugin.