Software Engineer Resume
5.00/5 (Submit Your Rating)
SUMMARY:
- Desired Industry Electronic/Semiconductor/Embedded Linux QNX Software
- Self - Assessment: Optimistic and progressive, with a passion for challenging projects, Able to take initiative, work under pressure and to confront challenges.
- Especially skilled with peripheral drivers of embedded Linux system such as UART (tty), I2C, SPI, EMMC, USB and to the relevant Linux design architectures.
- Experience working through the kernel code from device tree to Processer bottom layer hardware driver, upper protocol driver and device driver. Recognized as expert in peripheral driver of Embedded Linux/QNX platform of Confidential Beijing office.
- Embedded Linux peripheral drivers (4 years)
- Embedded Qnx (1 year)
- USB protocol (3 years)
- Profibus fieldbus protocol (1 year)
- Continuous Integration (Bamboo) (2 years)
- Niagara Tridium (2 years)
- Shell Scripting (2 years)
SKILLS
Embedded Linux peripheral drivers (4 years)
Embedded Qnx (1 year)
USB protocol (3 years)
Profibus fieldbus protocol (1 year)
Continuous integration(Bamboo) (2 years)
Niagara Tridium (2 years)
Shell/Batch Scripting (2 years)
Java (Less than 1 year)
Python (Less than 1 year)
FreeRtos (1 year)
PROFESSIONAL EXPERIENCE:
Software Engineer
Confidential
Responsibilities:
- Realize data reception, write data to SD card, HMI page display, key management, backlight management, master and slave device time synchronization, power-down protection of key data, regular output of IO signals and other tasks.
- The first two tasks are the critical and highest priority tasks.
- Realize the UART to receive data through the baud rate do the CRC check ensure each second to refresh the data, and save it to SD card.
- HMI part uses 6 GPIO buttons to switch between different screen pages, allowing customers to select different temperature points to query real-time and historical data, and provide customers with the function of modifying the RTC time.
- Fedd dog function to ensure the firmware is working.
- When power is off, save critical data to EEPROM.
- Regularly synchronize the RTC of the master and slave devices. control serial port to output expected data to this device, and on PC part, take advantage of Python to draw the expected history data line in order to do the further comparison between the host and the received dada on device.
Confidential
Software Engineer
Responsibilities:
- Based on the Message Unit mechanism of IMX6; learn and summarize it. On each core side, there are four 32 bits data registers and one interruption register, any value is written to any data register, it will be shifted to the other side's counterpart data register immediately. Interruption register can help other side to generate an interruption to inform the value change of data registers.
- Design access shared memory mode as HOST-CLIENT mode. A9 is client, M4 is the host; when shared memory is available, M4 can read/write it directly, but for A9, it would send application(through Message Unit registers introduced in item 2) to M4, after get the approvement, A9 could get the authority to control the shared memory.
- Design A9(Linux) side's driver architecture, including file operation's read/write/ioctl key pointer functions, and Linux wait queue to realize to make process sleep when memory is not available and wake up process when receiving the approvement from M4 side.
- Design interruption to receive the response from M4(Freertos) side, and wake up wait queue head's all wait queue.
- Design ioctl function to support set maximum waiting time for waiting the response from M4, and to support user to relocate new number of pages to work as shared memory.
- User interface design.
- Task5: Secure boot: during boot system, realize the function that verify the kernel image signature, after signature verification pass, decryption kernel image, device tree and other relevant files to designated memory address, booting the system. Once the security verification is failure, system will suspend the launch.
- Everest Controller develop tools: Linux gcc(Cortex A9) ; Freertos(Cortex M4); Oscilloscope;
Confidential
Software EngineerResponsibilities:
- Resolve the Niagara4.6 porting issues running on the QNX platform's Java virtual machine.
- Resolve the issues of QNX resource managers Niagara application execution will finally call the QNX bottom layer driver to complete its task.
- Write user interaction script for user network configuration, account addition, password modification, usb function on and off, wifi function on and off. design and realization in QNX system: during system booting, controller will verify relevant Java package(format x.jar) 's signatures to ensure system launch the correct Java package without modification.
- Add the SPI interface for the KSZ9896 switch chip's register access;
- Porting the RSTP code. For this point, I did not do more.
Confidential
Software Engineer
Responsibilities:
- Configure JACE8000 to ensure it run based on BACNET protocol.
- Niagara Workbench side human interface program based on Java.
- Java coding for tackling getting IO output data.
- Java coding for analyzing the testing result and generating testing report.
- The task has been done, and adopted in Edge10 project's IO hardware testing.
- LABVIEW as the input device; JACE8000 controller; JAVA Eclipse; Niagara's Java environment.
Confidential
Software EngineerResponsibilities:
- Setup a Bamboo agent platform with Windows7 system.
- Configure an Ubuntu virtual machine running on Bamboo agent.
- Write Batch script on Bamboo agent to checkout firmware source code from SVN.
- If the compiling is successful, Task1 works as a parent task to call following Task2.
- Write script to trigger Clockwork to do the static code analysis, and generate report file, update to SVN designated path, inform team members.
- Write Batch script on Win7 to move firmware source code and testing code to Ubuntu system virtual machine's share folder
- Write Shell script on Ubuntu system to compile firmware and testing code.
- Shell scripts on Ubuntu runs unit test(CPPUTEST) to test target code, analyze the result, copy report file to designed folder.
- Win7 Batch script analyzes the report file, if there is some errors, cause Bamboo to generate a red email to each member.
- Win7 batch script compile firmware to binary file, and download to target board, and reboot it.
- Checkout testing Robot Framework scripts to run test code, the testing scripts can communicate with target board, and generate the testing report file with xml format.
- Call Bamboo to analyze the xml format reporting file.
Tools: Bamboo, Klockwork, Shell script, Batch script, Robot Framework, SVN, Python
Confidential
Software EngineerResponsibilities:
- Robot Framework and Python are installed and configured on the two server, especially Python serial library, Robot Framework serial library, telnet library, ssh library.
- Ensure the whole system work normally.
- Program testing cases based on Robot framework to support Jace8000 device's features.
- To ensure one set of testing suite to support telnet, ssh and serial console three modes.
- We design the one set of testing scripts, and import different ssh, telnet and serial console relevant library through keywords file.
- When import different configuration parameter that is about which mode of the three, it will automatic run the testing in expected mode.
- Combine scripts with Bamboo to ensure CI.
