Lately I saw a lot of excitement around writing asynchronous code, non blocking, lock free, etc… This is good as we are moving towards more parallelized/concurrent softwares and libraries. There are nice performance improvements ahead. But I fear that we are going into having code hard to understand and therefore to debug.
Setting up a search engine in one thing, but to make it actually work, in the human sense, is another story. Having a search which basically does a grep on all your content is the bare minimum you can do, but what makes Google awesome is that when you search something, you find quickly good content. When you search something, you should find good results, and the good results first. Here some of the things we did to make the Scoop.it search looks good.
Now that have learned and practiced software engineering a good amount of time, I think I can share back some of my experiences and discuss with you about some hopfully interesting ideas.