• Translate application storyboards and use cases into functional applications
  • Design, build, and maintain efficient, reusable, and reliable Java code
  • Ensure the best possible performance, quality, and responsiveness of the applications
  • Identify bottlenecks and bugs, and devise solutions to these problems
  • Help maintain code quality, organization, and automation
  • Document development phases
  • Ensure our applications are secure and up-to-date


  • Master’s degree or above in Computer or Software Engineering, with good foundation in algorithm/data structure
  • Proficiency in data structure and common algorithms
  • Strong foundation in Java and good understanding of basic framework such as I/O and multithreading. Familiar and competent in JVM principles
  • Familiar with Java Web development technologies, such as Spring, MyBatis, JMS, REST WebService etc
  • Familiar with the design and application of distributed systems, such as Hadoop, Spark, Zookeeper, Kafka etc. Strong ability in rationally using common distributed technologies for problem solving
  • Familiar with database-related technology such as Mysql/Redis/Mongodb/HBase/ElasticSearch/HDFS
  • Strong interest in technology; possess good learning attitude and strong communication skills and the ability to work well in a team
  • Proficient understanding of code versioning tools, such as Git