Erin Tsai 

email : [email protected]

Senior Software Engineer

I was born in Kaohsiung as the first child of my family. I also joined the school wind band of Kaohsiung Girls' Senior High School to relax myself from pressure. As a love laughing person, I made a happy fragrance for people around me and it‘s easier to make friends.

I went to college through admission by recommendation and screening. Graduated at rank seven. Data Mining Laboratory was where I pursued my Master's degree. My thesis is Incremental Detection for Frequent Sub-Graph Patterns Changing on Data Streams. Graph is a kind of structural data. The complexity of mining a frequent sub-graph is NP hard. My thesis is compared with a foreign PhD. student's thesis which was posted in ICDM02 (gSpan : Graph-Based Substructure Pattern Mining) .

I worked for VIVOTEK INC. in 2006 to develop a H264 SoC (System on Chip) . Working on the IP camera and DVR software on the ARM-Linux platform with the C language. Integrated video and audio libraries, which are developed by the SOC team into software. Sent mpeg4/jpeg data stream to the RTSP server.

In October 2007 , the SoC department was spun off and set up by Vatics. In Vatics, I was in charge of OSD (on screen display) on a DVR (digital video recorder) developed with nano-x and FLTK.

Seagull Scientific was the company I worked for in 2008. I was working on barcode software. I ran a full stack development flow : study specifications, development, testing, code review and documentation. Use thermal printers to print out 1D/2D barcodes / printer code and verify with the scanner. Visual Studio, P4V, JIRA, Confluence, Crucible and VMWare were my daily utilities. I co-worked with software teams in the U.S. and fixed bugs developed by other teams. Also, I co-worked with QA and technical support.
In the first five years, I developed C++ and MFC in the OOP / OOD manner. There are a total of 2 applications to maintain and develop. Briefly listed what I was in charge of :
1. Developed new barcode functions Composite, UPC / EAN split digit text view, tested with thermal printer and validation.
2. Drawn barcode with a 90/180/270 angle rotation.
3. Use a third party library to show a table of data information .Insert / delete / modify / drag and drop to change positions of data.
4. Developed a stand-alone data source that was originally an object in all kinds of data sources in the main application, to meet with legacy needs and to develop new functions, such as importing/exporting documents; insert / deleting from all objects that referenced it.

Then I learned C# to develop new applications. With MVVM concept and using Caliburn Micro to develop from front end to back end. There are a total of 4-5 applications to maintain. Briefly listed what I was in charge of :
1. Re-developed a legacy string transform function into C#, it can search and replace, search and delete, search and insert before / insert after the string , prepend, append.
2. Developed a text editor with a third party library. It supported pure text / XML / HTML for users to edit. The editor can do XML / HTML syntax highlighting, undo / redo/save files / copy / cut / paste / font settings / search and replace / encoding.
3. Upgraded a third party's library to enable JSON syntax in the editor and fixed code in a third party library to meet legacy needs. Developed a JSON editor with this library that can do syntax highlighting and auto completion.

I want to keep studying and learning new knowledge. I also want to make the most contribution to my company.

  Taipei, Taiwan

Work Experience

Senior Software Engineer   •  Seagull Scientific

5+ years C++ MFC, WinForm
Developed and maintained 2 Applications
1 Developed barcode software.
2 Used third party library to show a table of data.
3 Developed a stand alone data source for main program objects to reference.
4 Developed managed code and WinForm.

6+ years C# MVVM, Caliburn Micro
Developed and maintained 4 Applications
1 Developed a legacy c++ string comparing functions to C#.
2 Used DevExpress library to develop a text, XML, HTML editor with syntax highlighting etc.
3 Upgrade a third party editor library and developed a JSON editor with syntax highlighting, auto completion.

Full stack development flow
1. In OOP/OOD manner from front end to backend.
2. Study, development, test, code review and documentation.
3. Visual Studio, P4V, JIRA, Confluence, Crucible and VMWare were my daily utilities.
4. Code reviews other colleague’s code.
5. Co-worked with American software teams, QA, and Technical Support.
6. Debugged managed/unmanaged code, Active X and VMWare remote debugging.

Dec. 2008 - March 2021

Software Engineer   •  Vatics

Department spinned off from Vivotek.
1. Developed OSD(on screen display) on DVR(digital video recorder) developed with nano-x and FLTK。
1. DVR Menu configuration : I define XML tag (Time/IP address/option choice/numbers/English input) to let the user configure to indicate the contents and configuration methods of the configuration page. Parse file to set every page in OSD.
2. Layout Manager of UI:I define the layout format(table with row span, column span and nested table) to let the user write XML files to meet his needs. Parse user files and shows a neat and flexible layout.
3. Command dispatcher: Send out user’s commands to other programs via Linux FIFO IPC.
2. Recorder database
To improve efficiency, we defined the Meta format to save recorded data into the database. Clips of a recorder are directly saved onto a disk not managed by a file system.

Oct. 2007 - Dec. 2008

Software Engineer   •   Vivotek 

Worked in the SOC department of H264/265 SoC.
Developed C program in an embedded system on arm-Linux.
1. Integrated Video and audio libraries, which are developed by a SOC team.
2. Send the mpeg4/ jpeg data stream to the RTSP server.

July 2006 - Oct.2007

Education 

2003 - 2005

National Taiwan Normal University

Information Technology

1999 - 2003

National Taiwan Normal University

Information Technology

Skill

Language 


  • C
  • C++ MFC
  • C# MVVM
  • OOP Programming
  • SQL

  • English
Powered by CakeResumePowered by CakeResume