JOHNNY DAI Santa Clara, CA ? 412-***-**** ?****************@*****.***
DETAIL-ORIENTED AND PASSIONATE SOFTWARE ENGINEER
Programming Language: C, C++, Java, Assembly Language( MIPS), SystemC,
Intermediate: Html5, JavaScript, Automation testing Platform, Jasmine Unite testing, MySQL, TDD
Tools: Linux( bash shell ), Hg Tortoise( Version Control ), GCC, Visual Studio, Eclipse, Arm-cross complier
Experience: Linux( bash shell ), Linux kernel,OOP, Multi-Process programming, Embedded Programming
CAREER HISTORY
SOFTWARE ENGINEERING INTERN, EMULEX?SAN JOSE, CA 11/2014 ?Present
Emulex is a leader in providing hardware and software solution for Network connectivity, management &monitoring
1.Developed ?Space Manager?application in C++ to allocate the required memory space from the front-end
2.Participated in developing Linux Driver on ARM 9 Linux kernel and Interface on M3 firmware
3.Developed a wrapper allowed C++ program to call functions written in C
4.Debugged in both Windows and Linux environment and porting application from Windows to Linux
5.Developed Automation testing platform and Using 揓asmine?to do Unit testing for Web-page
HARDWARE ENGINEERING INTERN, TENOVA?NEW HAVEN, CT 01/2014 ?4/2014
Tenova is a worldwide supplier of advanced technology and solutions for mining industry and complete process areas
1.Used Graphical programming to design a data analysis system on Cold Rolling machine抯 FPGA control modules
2.Designed a PID control algorithm to increase the stability and reduce the Reaction time of the Control system
EDUCATION
Master of Electrical & Computer Engineering,-University of Pittsburgh-Pittsburgh, PA
Bachelor of Electrical Engineering, Northeastern University
Relevant Courses
Operating System ? Computer Organization ? Data Structure ? C programming language
Embedded System ? Computer Architecture ? Computer Network ? Introduction to Algorithm
PROJECTS
Implement Process Synchronization in Linux
1.Used spinlock to design two system call wait and signal in Linux kernel to implement semaphores
2.Used semaphore to avoid racing condition on share memory (C, Linux)
Simulate Behavior of Memory Management Unit
1.Simulated the functionality of Memory Management Unit (C, Linux)
2.Implemented TLB and demand paging policy and translated the virtual address to physical address
Light Weight User-Level Thread On Linux
1.Designed and implemented a light-weight user level thread library (C, Linux).Published it on GitHub.
2.The library supports thread creations, termination, wait, sleep and semaphore for synchronization ?
Tomasulo Algorithm Simulator( Computer Architecture)
1.Created a C++ program to simulate Tomasulo Algorithm, demonstrate CPU out of order execution
2.Highly configurable: CPU parameters set by configurable file. Generate cycle accurate execution result
16-Bit RISC Processor ( VLSI Design: Schematic, RTL, Layout )?
1.Designed instruction set follows MIPS architecture and wrote an assembler in python
2.Designed, simulated/tested 16-bit RISC and done the RTL synthesis, place and route.
Network On Chip Design And Analysis( SOC Design & Simulation )
1.Designed a 16-node network and its routing strategy, simulated in SystemC
2.Evaluated and Compared the performance with different routing algorithms
Remote Control Heater Via WIFI-( Embedded, C, Arduino )
1.Hacked a heater making it remotely controllable with an Arduino board and Mobile device
2.Created a client-server network to transmit command from client side to server side