Responsibilities
- 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
Requirements
- 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