Passionate programming lover, started coding at an early age. Keen on software development and interested in big data (information retrieval, cloud computing, machine learning, etc.) as well. Currently working as Software Engineer at Microsoft.

yiwei.ch | yiwei.ch@live.com | github.com/yiweichen

Work Experience

Software Engineer II
London, UK, Jun. 2017 – present
  • Working in Bing team on search technologies across Microsoft products.
Senior Software Engineer
Ocado Technology
Hatfield, UK, Mar. 2017 – Jun. 2017
  • Supported the existing codebase and developed new features and improvements for the website with a Scrum team practicing agile software engineering methodologies.
  • Provided technical support and hotfixes on emergency issues with production systems.
  • Handled business queries and explained technical details to non-technical audience.
  • Expertised in several areas of the business systems and provided technical insights and advice in project planning meetings with product owners and stakeholders.
  • Coached and mentored new starters; hosted Scrum ceremonies.
  • Technologies included Java EE, Spring Frameworks, Struts, AWS, Selenium, Tomcat, SQL, HTML, CSS, JavaScript, jQuery, Backbone.js, etc.
Software Engineer
Ocado Technology
Hatfield, UK, Sep. 2014 – Mar. 2017
  • Software Engineer (SE1): September 2014 – August 2015
  • Software Engineer (SE2): September 2015 – March 2017
  • Developed new features and functionalities for Webshop (ocado.com)
  • Technologies involved: Java, HTML, JavaScript, CSS, jQuery, Sass, Struts, Spring Frameworks, Amazon Web Services, Selenium, etc.
Support Engineer Intern
Microsoft China
Shanghai, China, Jul. 2012 – Mar. 2013
  • 9-month internship as a Support Engineer Intern at APGC Global Technical Support Center in Shanghai, as well as a member of the Microsoft Private Cloud project.
  • Main responsibilities included design and deployment of private cloud solutions, developing automated deployment scripts, tutorials, demos and manuals, trouble-shooting for private cloud deployments, etc.


M.Sc. in Web Science and Big Data Analytics
Department of Computer Science, University College London
London, UK, Sep. 2013 – Sep. 2014
B.Eng. in Software Engineering
School of Software Engineering, Tongji University
Shanghai, China, Sep. 2009 – Jun. 2013
  • Core topics: Operating Systems, Computer Networks, Programming languages (C/C++, C#, Java, etc.), Databases, Data Structures, Algorithms, Object-Oriented Analysis and Design, Design Patterns, Compiler Principles, Embedded Systems, Software Engineering, etc.
  • Core member of the university team for ACM International Collegiate Programming Contests, won several medals in the Asian regionals.
  • Intensive coding practice in courses, involving various programming languages.
  • Outside the courses, highly interested in web development.
  • Thesis project focused on WebSocket and implemented a web-based real-time online auction system with PHP, MySQL, HTML5, CSS3, jQuery, Node.js, etc.


  • Programming: C, C++, PHP, JavaScript, jQuery, HTML, CSS, XML, JSON, SQL, Python, C#, Java, Node.js, Lua, etc.
  • Data Analysis: Hadoop, AWS, Information Retrieval, Data Mining, Machine Learning
  • Languages: English, Chinese Mandarin, Chinese Hokkien


Online Learning to Rank: Absolute vs. Relative [PDF] [Poster]
Yiwei Chen and Katja Hofmann
The Companion Proceedings of the 24th International Conference on World Wide Web (WWW 2015), pp. 19-20, Association for Computing Machinery (ACM)
Florence, Italy, 20 May 2015.

Contests and Awards

  • 2014 UCL Real-Time Bidding Algorithm Challenge, ranked 3rd of 17 teams.
  • 2013 Microsoft Beauty of Programming, Semi-final advanced.
  • 2011 Tongji Programming Contest, First Prize, ranked 4th of 66 teams.
  • 2011 ACM International Collegiate Programming Contest, Asian Regional (Fuzhou) Invitational, Silver Medal.
  • 2010 ACM International Collegiate Programming Contest, Asian Regional (Chengdu), Bronze Medal.
  • 2010 NetEase Youdao Programming Contest, Round 3 advanced
  • 2010 Google Code Jam, Round 2 advanced, ranked 588th global
  • 2007 National Olympiad in Informatics in Provinces, First Prize

Selected Projects

Learning to Rank in Information Retrieval, Apr. 2014 – Sep. 2014

The thesis project of my Master’s degree, providing an empirical analysis of approaches for online learning in information retrieval. With Machine Learning, an information retrieval system could adapt itself to the users by learning from their interactions with the system, e.g. clicks on the result list. However, learning from user interactions is challenging, as the interaction feedback is usually noisy and likely to change when the system changes. The main objective of this work was to implement and compare the two different categories of algorithms proposed for dealing with the learning from user interactions problem in information retrieval. We conducted two experiments in total and presented results of our experiments as well as an empirical analysis on these approaches. Findings from this work include the relative performance of these approaches compared in terms of their learning speeds, noise-resistance abilities, performance limits, and preferred application scenarios.

Real-Time Bidding Click-Through Rate Prediction, Mar. 2014

A UCL data mining challenge about online advertising. The goal was to predict click-through rates of each future online-ads impression, given historical data collected in the past. The training data was in the form of raw features (e.g. user-agent string, advertiser id). After processing the raw data into normalized feature values, applying regression model and conducting the training, our prediction results ranked 3rd among 16 participating teams. Python was used as the primary programming language in this project.

Real-Time Online Auction System, May 2013

The thesis project of my Bachelor’s degree, aiming to make use of the newly proposed feature of HTML 5, the WebSocket protocol, in an application that requires high real-time capability. The system was implemented using mainly PHP + MySQL, as well as Node.js for the real-time bidding server. The Socket.IO framework was used to implement real-time communications between the server and clients. The library jQuery and new features of HTML5 and CSS3 was used in the front-end development.

WordPress Plugin: Chinese Tag Names, Mar. 2012

A small plugin that solves a big problem. There is a bug in WordPress running on Windows servers that annoys Chinese WordPress bloggers. When a tag contains Chinese characters, its permalink cannot be accessed correctly. This plugin solves the problem. In fact, once the plugin is installed, all permalinks (tags, categories, articles, authors, pages, etc.) containing Chinese characters can be accessed. The plugin is published on the official site and have more than a thousand downloads.

WordPress Plugin: RenRen Connect, Mar. 2012

A WordPress plugin that connects the blog site to RenRen, a Chinese Facebook-like social network. Using OAuth 2.0, this plugin provides features such as third-party account login, synchronizing statuses and posts, displaying latest statuses from RenRen, etc. The plugin is coded in PHP, and integrated properly with the WordPress dashboard, by invoking the WordPress APIs. It also employs jQuery for its front-end features.


  • Guitarists Club of Tongji University – Staff Member, Sep. 2010 – Jun. 2013
  • D-Bug, a campus band in Tongji University – Founder, Vocal, Rhythm Guitarist, Sep. 2009 – Jun. 2013
  • Student Union of School of Software Engineering, Tongji University – Staff Member, Sep. 2009 – Jun. 2013
  • Welcome Ceremony & English Evening of School of Software Engineering – Organizer, 2009 – 2010