Pursuing My Art & Design Dream

I aspire to be one of the best software engineers.

In my study life, I strive to acquire the quality and knowledge needed to be a software engineer. I enjoy solving problems that come up in practice. In the project AI_Emoji, I wrote Android's gesture recognition, face recognition, login and registration functions. Specifically, I wrote the process of sending requests from Android to Baidu’s server, and the interface (using Android animation) mainly for login and registration of Android side. I have encountered an interesting concurrent problem, that is, gesture recognition must be preceded by face recognition. Two threads cannot be started for processing at the same time. Otherwise, it will be processed into a picture with only gesture recognition or face recognition. Logic always exists in every line of code, even the wrong code has its own wrong logic. I know that as long as I follow clues like a detective, I can find the root of the problem.

Furthermore, successful software depends on close cooperation. In the computer graphics class, I worked with Miss Wang to write a simple robot with various visual effects using WebGL. In fact, we each wrote half of it. We sat together to discuss, unified variable names and understood each other's code structure, and finally successfully integrated them together.

Last but not least, a good software engineer is always hungry. I spent a few months learning the Spring MVC framework on my own, and applied it to my second semester of my junior year course, Practice in Game Programming, to write the server for a game called "You Draw AI Guess", which I was also responsible for on the Android side. In order to improve my own learning, I live-streamed my learning process every day, and I felt a sense of commitment and responsibility in the process of learning with my unfamiliar online friends. Therefore, I registered an account in BiliBili. I used the tomato working method to learn and decorate my studio with some famous aphorisms. At the same time, I played white noise. Every day, about five viewers came to watch my learning process. Staying hungry is not a motto but an everyday work for me.

This persistence paid off, and over the course of three interviews, I beat out the other candidates by solving four data structure and algorithm questions, writing a singleton pattern for Java in under three minutes, and describing my knowledge of the [University Name]P/UDP protocols in a complete and clear manner, Beijing Bytedance Network Technology Co., Ltd. decided to give me an internship as a backend developer. During my internship, I used the Go programming language, which I've never worked with before but later appreciated some of its unique differences from the Java language. And I would like to continue to learn more about different programming languages in the course, such as Principles of Programming Languages. What I experienced most in using Go language was its coroutine, and my first contact with Go language coroutine was when I was writing the function of querying word frequency. When I first imitated the former programmer's method and tested this function in Linux environment, there was a catastrophic timeout. So, I printed out the log to analyze the time-consuming part of the program. I used coroutines to split the large number of RPC calls and distributed locks to ensure data consistency. The simplicity and elegance of the Go coroutine was amazing. It was disappointing to see that the optimizations were still not enough to satisfy my needs in practice, so I tried to batch query the MySQL database, and used Redis to cache the query results and boost the throughput via pipeline. Finally, the performance of my application improved significantly, five hundred words could be looked up in less than three seconds.

In the course of my internship, I also encountered other concurrency problems, such as master-slave synchronization, and data errors because of parallel processing in a loop, which made me interested in Concurrent Algorithms and Data Structures. I realize that while there are 10,000 ways to implement a feature, there are not many reliable and high-performance implementations. I also aspire to contribute constructively to the reliability and performance of a system by learning Computational Complexity and Databases, and Database Systems Implementation, where mathematical knowledge would undoubtedly be the finishing touch. Besides, I have just chosen to develop a donation system based on blockchain as my undergraduate dissertation, so I would like to continue studying Vulnerability analysis and threat models for Distributed Ledgers as my future postgraduate dissertation. Since [University Name] have abundant studying resources to enable me to learn deeply into subjects that I had been interested in, such as computer graphics, and bring a deeper level of mathematical knowledge and aims to combine practice and theory, I believe, through this program, I will be able to achieve my goals. All students have had chances to attend many seminars such as the first Oxbridge Women in Computer Science Conference, Google Women in Tech Training Day, and visited Facebook’s London office. These events will enable me to plan my future career development better.

I would continue pursuing a career as a back-end software engineer and a project leader in a famous network company like Alibaba Group, Google and Amazon after graduation, and [University Name]'s in-depth teaching would certainly enable me to achieve my career plans. To nourish my dream, I hope to study at The [University Name] with extensive communication with other universities, and an international platform. I knew that the MSc Advanced Computer Science at your university teaches the advanced techniques and ideas that are being developed in application domains and the rich and diverse theories that underpin them. For sure, attending those subjects will give me seasoned guidance to improve the practical programming skills, which will make me more competitive and productive in future career development. I believe further study at your program is indispensable for me and could equip me with an excellent basis for my future career development.