If you are not aware of BrowserStack, we are a bootstrapped startup, based in Mumbai, India, with lots of very happy customers. (if you want to use BrowserStack for open source, message me and you can use it for free).<p>One of the problems we face when hiring is find “problem solvers”. Here are a few of the problems we worked on reasonably recently, to give you an idea:<p>1. Android Emulators take a lot of time to load. Its a known thing, and it got better in recent releases, but we support many old versions, and our problem was to make it faster. One of the solutions we came up with was to restore from snapshot instead of booting afresh. A lot of ancillary problems arose, like how to open a given URL in the emulator that boots from scratch, and adb was not an option, as it takes a lot of time for it to register there.<p>2. One of features we release recently, we call “AutoFit”, where in when you resize your browser running on your laptop, we resize the remote browser. Issuing a simple window resize was initial idea, but then there was problem when new window, alerts or context menus not coming in right place.<p>3. Mobile Screenshots Problem: we needed to be able to take upto 10 screenshots per second and upload them to S3, from an app that is running in background. There were many problems here, like making sure files get uploaded as fast as possible without effecting normal network usage on mobile. Or taking the screenshots themselves from an app running in background in iOS.<p>Along with these problems, some of which we have already solved, we have usual “standard problems” like writing well tested, scalable software systems, dealing with all sorts of attacks on all sorts of different VMs we support, making a kick ass UI, loads of specialised system services, applications we distribute to our customers and so on.<p>So how to go about it?