Software Engineer (Android) - SwiftKeyTHIS POSITION IS BASED IN LONDON AND REQUIRES RELOCATION. We need the person to be in the office and working remotely is not an option.
SwiftKey is now proudly part of Microsoft.
The SwiftKey Android keyboard is our flagship product, bringing together all that we know about language inference into a single market-leading application. As a keyboard, it occupies a unique position, having to interact with every other app installed on a device, as well as the end user and the underlying OS. In turn, this means that it presents an unusually broad set of development challenges, running the gamut from providing a compelling UX at the front end, via interacting with our extensive set of cloud services and underlying inference engine, to dealing with the idiosyncrasies of different apps and the complexities of marshalling all the data that a user generates when they interact with the keyboard. All this, and it has to run in a small amount of memory, and quickly enough that the user doesn’t even notice we’re doing it.
If this sounds like the sort of challenge that interests you, we’re looking for engineers of all levels of experience to join our Android development team. Whether you are a new graduate who might have done their final year project in Android, someone with a couple of years of experience in writing mobile apps who’s looking to step up to the next level, or a veteran developer who wants to work on one of the Android world’s star applications, we’d like to hear from you.
We ask that you have the following:
• Competence in Java programming
• Basic familiarity with Android development
• A commitment to doing things the right way and an understanding of the importance of testing
• An undergraduate degree. This could be in computer science, but anything that trains you in logical thinking and problem solving is also fine
• Enough experience to render this irrelevant
In addition, any of the following would be helpful, but are by no means necessary:
• Experience in writing complex applications or platform components for any sort of constrained environment
• A degree of comfort in using dynamic as well as statically typed languages
• Experience in C++
• Experience of performance profiling and tuning
• Interest in and/or knowledge of natural language processing
• Fluency in more than one natural language
• A practical understanding of statistics