49077201056_65c016fce7_b
TCOTCO19

An Interview With TCO19 Development Champion, jiangliwu

I can't restrain my excitement after being back from TCO19. Even though I attended TCO three years in a row, to be honest, TCO19 was my favorite one. At TCO19, I witnessed our customer success, growing community, and the exciting and competitive TCO finals!

Liwu Jiang, known as jiangliwu in Topcoder, is the TCO19 final Development champion. I have to say this honor is well-deserved. He ranked first in all four TCO19 online stages and  he was champion of the TCO19 China regional event. It was expected, but still a bit surprising that he won the TCO19 Development final! We can say, jiangliwu, you are the TCO19 Development Grand Slam!

I would like to share with you the interview I had with jiangliwu. Let’s see what the story behind his success is.

Hi jiangliwu,

Congratulations on your winning of the TCO19 Development final. You are the top and most famous developer in the Topcoder community, and you reached a brilliant achievement in the TCO19 events - ranked first in all the four online stages, TCO19 China event champion, and the most commendable, the TCO19 Development final champion.

I would like to share your story with the community members, especially your path to becoming the top developer and some tips for growth.

Can you tell us a bit about your background? (Like what major did you study, where did you work before joining this community, etc)

Hi everyone, I graduated with a bachelor’s degree in software engineering in 2014. I was fortunate to join the ACM school team when I was in school. Although I didn't get any big wins, this laid a solid foundation for my coding and algorithm capabilities.

When I was a kid, I liked playing video games very much, and I was determined to be an independent game developer. I dreamed that the world would love a game that was developed by me. So after graduation, I chose to develop games and do game client coding and part of backend coding at the company. The main game engines are cocos2d-x, cocos2d-js, and unity3d. The primary languages are c++, java, javascript, and lua.

Can you describe your path of growth at Topcoder? (Like how was your first challenge experience, how did you grow to be the top developer, etc)

During college, a teacher told us about Topcoder. I didn't start my first challenge until the end of 2016. Although my first challenge failed, the clear review rules attracted me. In the next challenge I spent more time reading everything, and finally I was lucky enough to win once. Then I really fell into Topcoder. I personally think that continuous learning and taking each challenge seriously is the key to winning.

I know you are working full-time on Topcoder. Can you let us know why you chose this and how your life is different from working part-time on Topcoder?

I like video games, and I was engaged in game development, but things didn't turn out the way I wanted. I had to face endless version releases and high-intensity work from the company, which made my life a mess, so I resigned. Then I entered a traditional lottery industry company. It was leisurely but the work was boring.

There are two main reasons for me to be a full-time Topcoder

1. I worked in a big city after graduation, but the cost of living there was too expensive. My son was born, so in order to give my family a more stable environment, I decided to resign from my job and return to my hometown.

2. Working on Topcoder helps me with my need for freedom, so I decided not to work for any company for now, just to work full-time at Topcoder.

Working full-time at Topcoder is the happiest stage of my career. I feel free here and my life has become easier. I have more time to travel with my family and hike with my buddy. I feel this is real life.

Will you compete for multiple challenges in parallel? If so, how many challenges will you work on at maximum? How do you balance your life and work?

Of course, I will not do it except for UI prototype-type challenges. I will try to do other types. I once tried to do three challenges and some private tasks at the same time, but that made me too tired.

Usually, I will list the technical key points of a challenge. As long as the key points can be resolved in half a day, I will consider putting it on the to do list, and then define the priority according to the deadline and difficulty.

Working full-time on Topcoder, I usually work about 20 days a month. So, even if it is busy for a period of time, it will not affect my daily life.

About TCO19: what is your opinion on the overall Development competition experience through a full year until the final event?

This year I ranked top in all the four stages. I feel I was very lucky.

I think if we want to win an online stage, we should make a good plan for the entire four stages. For example, leave enough time for about two stages and choose a series of challenges in a project, and work hard and try to win all the challenges in the project. We should not be afraid of hardships. Of course, we should also pay attention to the challenges of other projects. In fact, in TCO19, most of my TCO points of two stages are basically from the Spark C++ series.

How did you feel about the TCO19 onsite competition? What is the difference between that and the online competition?

The onsite competition is more exciting than the online competition, and the real-time leaderboard makes the competition more intense and interesting. It's not easy to develop a perfect thing in just four hours, but everyone has hope to get the win. Compared to a five-day challenge, an onsite competition can verify a person's comprehensive ability more effectively.

adZNoQjPUjiwgmZGxWaxRTe3XcPel0uo7oBggWmqc8VXRA7SI-fI93vHyQ9Z3efduKgPX78IeIhu3Rw2c8Wr31GT1_VJVYtYzQMI1Mf8ZL8NVunkxOY2rCTJ6vKciCXTuUUoM-Q7

Jiangliwu with his TCO19 trophy

Apart from coding, what do you usually do?

Most of my time is used to learn new things. Recently I have been learning data science, and I hope to have the opportunity to participate in data science challenges in the future. 

Sometimes I also play games, read literary books and some leisure fiction.

What is your advice to new members and rookie developers?

We need to think that we will face strong competitors. We need to make sure we clear our minds, create a mind map for requirements, double read the requirement for the final submission, read the scorecard carefully, then start to write code. This can help us win.

And we also need to consolidate existing basic knowledge, such as software engineering, algorithm introduction, language syntax, etc., to ensure that we can build a rough prototype in the brain for what is required, rather than writing code directly. 

Continuous learning is the key to maintaining competitiveness. We can read the source code of the framework or learn the basic knowledge of the new technology stack. So, even if a new technology comes out, we can do it easily.