An interest plugin I've found recently (Neovim only) is Deoplete, which is basically Ctrl-n on steroids. As you type, it shows a list of completions without any kind of slowdown (on my 4 yo MBA). For some languages, such as TypeScript, it even shows type definitions. It's close to being on-par with the smart completion in IntelliJ.