Cloud Developer at SwiftKey
London, United Kingdom (Posted Oct 28 2015)
About the company
SwiftKey is an innovative startup that creates world class language technology. We’ve been named the No 1 hottest start up in London by Wired magazine, the 5th most innovative productivity company in the world by Fast Company and we made the prestigious Sunday Times list of the best companies to work for.
SwiftKey keyboards (Android and iOS) are powered by web-based services to enhance the user experience. Those services, commonly known as SwiftKey Cloud, contribute to make Swiftkey the top keyboard in the mobile market.
As an engineer working in SwiftKey Cloud, you will join a team responsible for:
Enhancing prediction quality with our Personalization and Backup & Sync services.
Distributing content to users through our in-app store.
Ensuring 99.9%+ uptime.
Designing and maintaining highly scalable RESTful microservices
We are looking for an engineer with experience in designing, implementing (in Go), testing, deploying, monitoring and maintaining distributed web based systems. The ideal candidate will be a strong communicator, who enjoys working as part of a team and learning new skills and technologies.
Skills & requirements
Required technical skills:
Experience with at least one imperative language (Go, Java).
Deep understanding of how web based communication works including the related communication protocols (IP, TCP, HTTP).
Deep understanding of how REST APIs work and capable of implementing one.
Security oriented aptitude including a good understanding of common security issues in web based applications and capable of designing systems to avoid them.
Familiar with cloud deployment and experience in implementing and maintaining a deployment script to deploy a web service (preferably Chef/OpsWorks, Docker experience also a plus)
Experience with at least one versioning tool (preferably git)
Solid understanding of data structures and algorithms and capable of applying them appropriately
Good understanding of SQL and experience with at least one SQL database
Good understanding of NoSQL and experience with at least one NoSQL datastore
Familiar with testing and capable of writing unit, integration and end-to-end tests for a client-server system
Familiar with the concept of monitoring and capable of monitoring a client-server system
Desired technical skills:
Although not strictly necessary all the following skills are also desired.
Fluent in Go
Good understanding of how binary protocols and binary data formats work, and familiar with Thrift. with Amazon AWS, in particular EC2, OpsWorks, SQS and SNS.
Familiar with continuous integration (we use Travis)
Enthusiastic about agile development
Familiar with the concept of micro-services and experience of implementing a micro-service based architecture
Proven capability for designing and implementing web UIs, including a good understanding of HTML, CSS and web design in general. Familiarity with AngularJS, Bootstrap and CoffeeScript or LiveScript a plus.
Experience of developing REST APIs for mobile clients
Experience of load testing and performance tuning RESTful services
Instructions how to apply
[ job website
Let them know you found the job via http://www.golangprojects.com
(Companies love to know what recruiting strategies that works)