Profile 00 00@2x

Yu Te, Wu (吳宥德)

Enthusiastic about learning and experiencing various unknown things. Good at reasoning and analyze principles behind the system.
AI Engineer。Backend Engineer。Fast Learner。Self-motivated。Cooperative

Meteo Piano - AI/Backend Engineer

Taipei, Taiwan
[email protected]

https://github.com/BreezeWhite

Skills

Backend

FastAPI / Celery / RabbitMQ / Docker / PostgreSQL


Familiar with building on AWS cloud services and constructing RESTful backend. Used to developed a distributed system that can be extended easily to deal with several computational heavy workloads, and in the same time the endpoints won't be affected while processing these jobs. All the log information will be simultaneously streamed to CloudWatch and also the original log files to S3 bucket to effectively monitor the status of server. An simplified example project can be found here.


Machine Learning

Keras / Tensorflow / Numpy / Scikit-learn / Matplotlib


Have developed several machine learning projects. Used to hack into FastAI package to integrate into my own requirements. Had also deep dived into tensor2tensor library to search for implementation details and the required functions. Continuously learning the cutting edge AI techniques and get updated news about AI development by following blogs and accounts on twitter.


Cloud Platform

AWS / Firebase


Cloudformation, S3, Lambda, Cognito, Elasticsearch, EC2, Cloudwatch, IAM, SSM.


OS

Linux / Windows


Familiar with Linux bash command and shell scripts.


Language

  • English - TOEIC 770 (2018/08)

  • Japanese - Fair

  • Taiwanese - Fluent


Development

Github / CircleCI


Familiar with version control using Git. Integrate daily work using CI/CD services such as CircleCI and Github Actions.


Task Management
  • Agile development

  • Scrum

  • Jira


Others
  • Java / C++ / C# / Unity

  • HTML / CSS / JavaScript
  • Sphinx

  • Overleaf (Latex) / Markdown

  • PowerPoint / Word

Experience

Meteo Piano。AI Backend Engineer, 2021 / 07 - 2021/ 11

Build an end-to-end AI system, transcribing images into Midi files and build a backend system for hosting the system.


。Proposed the first end-to-end solution for Optical Music Recognition problem, which there was not yet any

    known project, to the best of our knowledge, dealt well that achieved our expectations.

。Built and integrated existing tools to a distributed restful API server in one month.

。Actively cooperated with the frontend engineer.

。Deploy sevices to AWS EC2, integrated with S3, VPC, ECS, and Load Balancer.

IIS, Academia Sinica。Research Assistant, 2017 / 06 - 2020 / 12

My research topic was about music transcription, which given the raw audio, the system produces symbolic representations such as MIDI. Published papers can be found here.


2 top conference papers.

1 journal paper which represented the first experimental results all over the world in the field of

    note-level multi-instrument transcription.

。Accomplished my master thesis under the co-direct with both labs' director at school and IIS.

。Developed projects that one of them earned over three hundred stars on Github and being actively requested

    for cooperation opportunities.

TrendMicro。Backend Engineer Intern, 2019 / 07 - 2020 / 06

Develop and maintain existing infrastructure on AWS. Accomplished every assigned tasks in a short time. Received admiration from team members for the fast learning speed and effectiveness on solving the problems. Actively cooperated and communicated with the team while developing on solutions. The team strictly followed the best practices of development such as clean code, applying unit tests, CICD, and code review, etc.


。Proposed a complete solution to a long-lasting problem across teams in my first two months of internship.

      - Actively work and communicate with other teams in English.

      - Self-learnt and researched all the AWS background knowledge and technical details for solving the task.

      - Shared the solution with different teams, and helped multiple teams deploying to production environment.

Optimize CI/CD flow, saves up to 50% of runtime.

。Develop new strategy for Blue/Green deployment process on AWS.

。Refactor the deployment scripts for better readability. Write unit-tests to ensure the correctness.

。Translate Python code from machine learning team into Java backend code.

。Effectively handles each task within a short period without much explicit instructions.

。Feedback from my mentor said I'm just like a black box, no need to give much instructions, and still can

    accomplished every assigned tasks.

Blay。Backend Software Engineer Intern, 2018 / 09 - 2019 / 05

Help maintain and monitor the existing services. I've self learned lots of things there and the experience formed the foundation of my career.

。Self learn and explore the codebase without any guidance.
。Self learn necessary concepts about AWS and explore the existing services on the cloud.

Task Captain of MIREX, 2018 / 08 - 2018 / 09

I was one of the captains of MIREX (Music Information Retrieval Evaluation eXchange), which was hosted by the community and played an important role in the field of Music Information Retrieval (MIR). Many of the evaluation standards and paper results were published and evaluated by the organization. As the captain of Audio Melody Extraction task, I helped evaluating results submitted by research teams all over the world. The process all worked remotely and had to cooperate and communicate with the host and the research teams, all in English.

Career Highlights

Learning Python from scratch and publish an IEEE paper within 6 months.
Integrate 7 different independently developed AI projects into one single command line tool in 4 months.
Learn 5 new programming languages and build a full-stacked website in 1 semester (6 months).
Developed an end-to-end solution for Optical Music Recognition problem without prior knowledge to the field in 2 months.
Build a distributed restful API backend server in 1 month.
Accomplish tasks the same speed as the full-time employees while as an intern.

Education

National Taiwan Normal University - M.S. in CS, 2018 / 9  - 2020 / 8

My research field while in master degree was about music transcription. With the cooperation and directed under IIS, Academia Sinica, we combined multiple AI techniques to analyze the music. The research results was also published to IEEE TASLP as a journal paper. The master thesis was also being selected to the final round of Merry Electroacoustic Thesis Award.

National Taiwan Normal University - B.S. in CS, 2014 / 9  - 2018 / 6


Projects


Omnizart

Omniscient Mozart, is the first python package that integrated with various automatic music transcription techniques, including multi-pitch estimation, chord recognition, drum transcription, symbolic-domain beat tracking, vocal transcription. The repository has earned over 300 stars on Github. All the modules are provided with pre-trained checkpoints. The core spirits of designing the API and CLI are simplicity and ease of understanding. We have also received several cooperation invitations.

  Besides the transcription utilities, Omnizart also provides a consistent way of managing the life-cycle of training models. From dataset downloading, feature generation, to the final MIDI result synthesis for convenient listening. Not only it's easy to use, the concise and consistent API design also makes it easy to extend.

  All the models are implemented in Tensorflow 2.3.0. Unit tests are applied to critical functions. Linters are used to ensure the coding style. CI/CD will be triggered while being pushed to the repository and will automatically check with linters and unit tests. Documentation pages are automatically generated with Sphinx. The docker image and PyPI package will be published after pushing the version tag, all being done automatically.


Github

Documentation


- Supports CLI usage.

- Use Github Actions for CI/CD to automatically run daily works.

- Accompanied with complete API documentation.

- Provides docker image and PyPI package.

- Equipped with unit tests and linters.


Paragraph image 00 00@2x
Paragraph image 01 00@2x

THSR Ticket

To learn the principals of how crawler works, combined with the self needs, this side project was thus born. It's often forgot to book the tickets when the train is available, thus I thought it would be great to let computer do the thing for me.  To simulate the booking process, it is required to observe the communication between the browser and the server while booking the tickets. We can later use the program to mimic the process.

  Different from most of the crawler, I didn't use Selenium or any other kinds of engine. Instead, I used 'request' package to send and fetch the packets. The time is thus being hugely saved since there is no need to render the page and run the JS scripts. The architecture follows MVVC mode to split the responsibilities. Schemas are also applied to check the format of both input and output data. This project also integrates unit tests and CI/CD flow to ensure the correctness of the program after each commit.


Github


- Fully functional booking process of Taiwan High Speed Railway.

- Unit tests are applied.

- Linters are used to ensure the code format.

- Uses Github Actions as the CI/CD service.

Music Transcription

Leveraging the cutting-edge AI techniques, with the newly proposed feature representation, we applied the models to multi-instrument transcription task and achieved SOTA performance. The base architecture is an U-net model, with improvement on the bottleneck block. We accommodate two types of layer: Atrous Spatial Pyramid Pooling (ASPP) and Self-Attention, to further improve the performance. The feature used both frequency-domain (spectrum) and time-domain (cepstrum) representation. The combination referred to CFP. Due to the nature of sparsity in the multi-instrument labels, we further modify the loss function to focus on the true-positive samples. Combined with various improvement, our research results shows the SOTA performance on different transcription tasks. Furthermore, we served the first evaluation results on note-level multi-instrument transcription all over the world.


Github

Paper

 

 - Pre-process the dataset and generate the required feature.

 - Build and train the model.

 - Able to train the model in different modes.

 - Easy to use for transcribing any given audio.

 - Provides pre-trained models.

Paragraph image 00 00@2x
Paragraph image 01 00@2x

Transcription Visualization

A visualization project of music transcription. The main idea is to dynamically 'draw' a special illustration for each piece by setting up conditions and rules. During the playing of the song, the drawing animation will also being displayed synchronously. You can watch how the illustration was being generated. The program was written in Processing, which is sub-classed from Java and has its own IDE. This was a funny experience and had learnt a lot from the development.


Demo Video


  - Define different visual elements for drawing.

  - A special output illustration for each music piece.

  - Solo development.

Gesture Recognition

This is a cooperative project with the outside artist. The goal is to use the gesture to control and generate the music. We used Leap Motion to detect the gesture, Unity as the main control interface, and C++ program to run the core algorithm. The communication between Unity and C++ program used ZeroMQ package to send and receive signals and data. The final results shows that we can control the volume and speed of the music by self-defined gestures in real-time.


  - Use Unity to build the menu and control interface.

  - Record and recognize gestures.

  - Real-time recognition and music control.

Paragraph image 00 00@2x
Paragraph image 01 00@2x

Website

A side project to get familiar with frontend techniques. Implemented a live message board works like a chatroom. You also login to leave messages. Your message will show up on the right hand side, and for others will be on the left.   The database uses Firebase, and the CSS template leverages Material Design Light.


Blah-Blae-Blog


 - Database uses Firebase.

 - Uses Material Design Light as the CSS template.

 - Live message board.

MUlody

This is a class project of database. We implemented a SoundCloud-like website that can play the music and build playlists. You can also register and login to the website, then managing the uploaded music. Though the requirements of this class was a basic website that can manipulate data by using MySQL in any form. We still seize the chance to implement a relatively functional website and learn different techniques for building a website during the process.

  The website was hosted on my personal computer using Apache server. The backend language used PHP, and the database was MySQL. Common security problems were also took into consideration. To avoid SQL injection, we have also used PHP built-in functionalities to deal with the problem. All the passwords were stored after hashing, with salt added, to increase the security. We also registered a domain name to easily access the website. HTTPs was enabled, too.


Github


  - Account management.

  - Upload/manage/search for music, and give tags and short explanation to    the music.

  - Leave messages to the music and give it 'likes'.

  - Customize playlists.

Paragraph image 00 00@2x
Powered by CakeResumePowered by CakeResume