PRINCIPAL SOFTWARE ENGINEER

  • Hangzhou, Zhejiang, China
  • Full-time

Company Description

Leading Products – Innovative Ideas – Exceptional People ….MicroStrategy, A Dynamic Place to Work!

At MicroStrategy, we are passionate about creating powerful, disruptive technologies that transform how companies do business. Innovative products and ultimately our success are rooted in one driving force—our people. Our casual and flexible environment encourages creativity and collaboration, so you’ll have the opportunity to initiate and contribute to challenging projects, while pursuing your interests and developing, both professionally and personally. Bring us your passion, curiosity, and fresh ideas, and be a part of technology innovation at its best!

Job Description

Develop product features through their entire lifecycle: requirements analysis, design, implementation, unit testing, optimization, maintenance and enhancement.

· Work with Product Owners to analyze, evaluate and refine feature specifications.

· Work with other SEs in product team to deliver valuable features in fast iterations.

· Be responsible for certain part of MSTR product, to maintain its quality, integrity, efficiency, and reusability.

· Coordinate with quality engineers to share design information and provide testing suggestions.

· Create prototypes and experiment with new technologies to resolve technical risk and provide guidance for production development.

· Evaluate and assimilate new technologies and processes with MSTR development platform and process.

· Share knowledge and support fellow team members in an open, collaborative atmosphere.

· Prototype and Leverage Big Data technologies in Data Import Architecture.

· Build the native gateway to Hadoop cluster to leverage the data to MicroStrategy Server.

· Design and implemented distributed computing architectures using both your own code and the latest advances in open sources.

· Work with the latest technologies including Apache Spark, Parquet, and the hadoop stack.

· Scale up our ability to handle 100Ms of customer records, then billins and beyond.

· Build robust, efficient, maintainable, high-performance software.

Qualifications

· Bachelor’s Degree, Master’s Degree, or Ph.D. in Computer Science, Software Engineering, or related field.

· Strong analytical and problem-solving skills.

· Solid foundation in computer science fundamentals, including data structures, algorithms and time/space analysis.

· Must have experiences in each of the following areas:

o Writing code in Scala to solve performance and scalability problems.

o Working with Big Data technologies subh as Hadoop, Spark and Hive.

o Working with internals of distributed data processing engines such as Spark.

o Development fault tolerant systems, performance optimization and implementing high performance code.

· Must have ability to expertly design and produce high quality, high performance code ready to ship

· Good communication skills in English and the ability to work as part of a team.