Menu

Shen-Fong Hung

About me

Hi, welcome to my personal website. I am a Computer Science graduate student at USC. Prior to this degree, I got a M.S. in Communications Engineering and B.S. in Electrical and Computer Engineering at National Chiao Tung University, Taiwan. I have 4+ years C/C++ and Java programming experience, and am familiar with SQL, NoSQL(MongoDB) databases as well as computer networking. My passion is to work with extremely talented people and collaborate to develop products that make people better life. I enjoy working on backend and infrastructure to make products be more reliable. In summer 2019, I joined Google as a software engineer intern, which I built status page for network system of GCP and data-plane health check library for Google virtual network to enhance the resilience of GCP.


I'm activing seeking for full-time software engineer position.

Please feel free to view my Resume and Contact me!

Education

My educational background

  • University of Southern Calforina, CA, U.S.A.

    M.S., Computer Science (Aug 2018 - Present)

    - Awards: The Xinran Ji Memorial Scholarship

    - Overal GPA: 3.9/4.0

  • National Chiao Tung University, TAIWAN, R.O.C.

    M.S., Communications Engineering (Sep 2016 - Jun 2017)

    - Overall GPA: 4.00/4.00

    - Thesis: Joint Wireless Charging and Hybrid Power based Resource Allocation for Energy-Efficient Small Cell Networks

    B.S., Electrical and Computer Engineering (Sep 2012 - Jun 2016)

    - Ranking: 1/44; Overall GPA: 3.97/4.00; Major GPA: 4.00/4.00

Experiences

Working, Intern and Research experiences in the past

  • Google

    Sunnyvale, USA

    (May 2019 - Aug 2019)

    Software Engineer Intern

    - Built status page for network system of Google cloud, which can monitor networks information

    - Implemented virtual machine to virtual machine data path health-checkers using C++, multi-threaded programming to detect data-plane failure

  • University of Southern California

    Los Angeles, USA

    (Jan 2019 - May 2019)

    Grader of CSCI 570 (Analysis of Algorithm)

    - Built status page for network system of Google cloud, which can monitor networks informationCo-worked with 5 other graders to provide homework feedback to over 500 students in CSCI 570 (Analysis of Algorithm)

  • Umbo Computer Vision Inc.

    Taipei, Taiwan

    (Jul 2017 - Oct 2017)

    Software Engineer Intern

    - Improved QA testing process by developing automated testing script using Python, Selenium, MongoDB under Unix

    - Created testing plans for 2 critical and several minor revisions; reviewed 40+ features of product interfaces and functionalities for web, Android App and IOS App; communicated testing results with developers

  • Mobile Intelligent Network Technology Laboratory (NCTU)

    Hsinchu, Taiwan

    (Sep 2015 - Jul 2017)

    Research Assistant, supervised by Prof. Kai-Ten Feng

    - Researched L2/L3 networking protocols for 4G/5G wireless networks with green communications technologies

    - Designed two novel MAC layer resource allocation algorithms using nonlinear optimization theory to enhance at least 15% energy efficiency compared to traditional LTE-A networks

    - Constructed heterogeneous wireless networks software simulations’ environment and programmed proposed algorithm using MATLAB

    - Published and presented to 50+ professionals at IEEE Wireless Communications and Networking Conference 2017

  • IMEC TAIWAN (R&D Department)

    Hsinchu, Taiwan

    (Jul 2015 - Aug 2015)

    Summer Firmware Engineer Intern

    - Built communication system for microcontroller of smart watch by implementing I2C protocol using C

    - Collaborated with two other colleagues to port smart watch sensors drivers to MCU framework

  • Freelance Web Deveploer

    Hsinchu, Taiwan

    (Jan 2015 - May 2015)

    Web Developer

    - Developed websites for two global firms. Works included ,

    - Coordinated website functionality with website designer; constructed website framework using Wordpress, and modified website layout and functionality to follow designers’ design using HTML 5, CSS, PHP, and Wordpress plugin

Projects

Some interested projects implemented in the past

  • Weenix Operating System

    Techniques: C, GDB, Operating System

    Weenix is a small Unix-like operating system. It is compiled into x86 and runs in the QEMU emulators on Ubuntu. We implemented the following kernel functionalities to make it works. Firstly, multiple processes, threads, and scheduler is implemented. To simplify some concurrency issues, one thread per process is performed in the kernel. Then, the file system is implemented. File system operations involve looking up a given block of an inode,then reading or modifying that block. Finally, virtual memory management is performed. Virtual memory management is a key component for user-space memory management.

  • Wireless Power Transfer and Energy Harvesting Applications for Small Cells Networks

    Techniques: MATLAB, Non-convex optimization, Non-linear Fractional Programming, Wireless Communications

    We are the first research team that applied both wireless power transfer applications and green power base station to enhance the energy efficiency of small cell networks. I took part in MAC layer protocol design, which proposed JWHRA algorithm for resource allocation policies. Since the problem is a non-convex optimization problem, fractional programming and some mathematic transformation are exploited to solve this problem. MATLAB simulations are implemented to evaluate the performance of proposed algorithm. The simulation results show that our proposed algorithm can enhance 15% energy efficiency while converging to optimal strategies in small number of iterations.

    -

    -

  • Power Control for Wireless Interference Network

    Techniques: MATLAB, Non-convex optimization, Wireless Communications

    In this project, we proposed different algorithms to get the power allocation policies in the wireless interference networks under different signal-to-interference-plus-noise ratios (SINRs). Under Shannon capacity theorem, the power control variables in data rate formulation are not in convex form, which causes this optimization problem is a NP-Hard problem. However, we successfully proposed algorithms to solve this problem by using geometric programming and some mathematic approximation techniques. MATLAB simulations also show that our proposed algorithms can converge to solutions in small number of iterations while enhancing total data rate.

    -

  • Augmented Reality

    Techniques: C++, OpenGL

    We built an application that can recognize human skeleton’s positions and then can interact with virtual objects using this information. Firstly, we used Kinect as sensor to detect human depth information. The human depth information then reconstructed to human skeleton’s positions using OpenNI Nite2 library. On the other hand, we used OpenGL to create virtual 3D model. By using the human depth information, the human skeleton's position, and the positions of the virtual objects, the objects in far distance were filtered out to create realistically visual effect. In addition, by using these data and information, user can also control the virtual objects in real time.

    -

  • TravelMap Android App

    Techniques: Java, Android, PHP, MySQL

    TravelMap is an App that can let tourists search the restaurants and attractions nearby. It is a course project of database system. When users enter their location, they can view the shop's information, average spending in that shop, the reviews from other users, and the restaurant's menu if they are in restaurant. Users can also rate their experience in that shop personally.

  • Group Manager Android App

    Techniques: Java, Android

    Group Manager is an Android App that provides a platform for group members to manage their projects in more convenient way. We provide two modes for users to manage their tasks. In the project mode, users can manage all the tasks that belong to the project. In the to-do list mode, users can manage their own tasks. Since this App supports for multiple users logging in simultaneously, we also wrote a script using Java to manage user's data in the server side.

  • To-Do List

    Techniques: Java

    This is the course project of JAVA Programming. In this to-do list application, users can classify different items using different colors based on the importance of the tasks. Moreover, users can set a time reminder for the tasks. When the time is up, a notification message will pop up to remind users for the task. This application also integrates the to-do lists into the calendars, so when users open the calendars, they could check their tasks list in the corresponding dates.

Contact information

Please feel free to send me an email/message or give me a call.

I will get back to you as soon as possible!