Xiao Dong Resume

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Dong Xiao

60 Lodge Cres, Berwick, VIC 3806


Mob: 0422743886
xiaoydl@hotmail.com

OBJECTIVE

Looking for a position where I can maximize my strong full stack .NET and long enough progressively
enterprise applications developing experiences.
COMPUTER SKILLS
Embedded: C++11/17, Linux, STM32F3/F4/F7/H7, CMSIS/CubeMX, FreeRTOS/ChibiOS, lwIP,
SCons/cmake/make, GPIO/UART/RTC/ADC/DAC/PWM/I2C/SPI/CAN/DMA/SDIO/USB
.NET: C#, .Net Core 3.1, ASP.NET/ASP.NET Core, Entity Framework, NHibernate, Dapper, WCF,
WPF/Silverlight, NUnit, Wix
Python: python2.7/3.8, gevent/asyncio, flask
Web and SPA: Javascript ES6/ES5, React/Redux/Chai/Mocha/Webpack, Vue/Vuetify,
JQuery/CSS(Bootstrap)/HTML
Docker: docker file, compose, swarm
Cloud: AWS/TerraForm, Azure/Powershell/CLI/ARM
Database: SQL Server 2005/2008/2012/2014, Postgres, Oracle 10g
Business Intelligence: SSIS, SSAS, SSRS, DevExpress
Data Analysis: Python (NumPy, Pandas, Matplotlib, Pylearn, Tensorflow, Keras)
Healthcare: HL7, Mirth connector, CoPath
Java: J2EE\J2SE, Spring, Hibernate/JPA, Maven/Ant, JUnit, Applet, Adobe BlazeDS(Flex)
Web Servers: IIS 5/6/7, Oracle Web Application, Tomcat
Platforms: Microsoft Windows XP/Vista/7/10, Windows Server 2003/2008/2012, Linux(RedHat AS 5/Ubuntu)
Tools: VS 2008/2010/2015/2017, Eclipse, Git, Subversion, TeamCity, NCover, Jira

CERTIFICATION

AWS Certified Developer - Associate


(License 0K8DJ3CCBBF4Q99Z)

Coursera - deeplearning.ai
Neural Networks and Deep Learning
Improving Deep Neural Networks
Regularization and Optimization
Convolutional Neural Networks
Sequence Models

Microsoft Certified Professional (921371 / dongxiao)


Azure: Developing Solutions for Azure
MCTS: Business Intelligence Development and Maintenance
MCTS: Database Development
MCTS: ASP.ENT Developer

EXPERIENCE

Senior Software Engineer


2011 – Present

Leica Biosystems
The company: A global leader in automation and workflow solutions for anatomic pathology lab, provides
pathologists, histologists and researchers a comprehensive range of products for each step in the pathology
process.

TAIPAN
Leica’s next generation advanced slide staining instrument. It’s such a complex instrument that took a long
journey to reach its roll out moment right now. I joined this project at its middle stage and learnt
tremendous embedded development and system integration knowledges.
Role: Key developer
Responsibilities:
- Slave Firmware: ChibiOS based real time applications running on multiple STM32f407/429 self-
designed boards.
 Enhanced bootloader application which initialize and upgrades firmware using ethernet
communication interface.
 Developed firmware application running on 27 boards which interact with on board devices,
downstream sensors, devices, and upstream applications. The hardware interfaces I
programmed include
 Lwip stack for ethernet communication between slave to slave and slave to master boards
 CAN bus for step motors to drive robot movement and piston pumps
 PWM for multiple speed pumps and fans
 GPIO for vary valves, solenoid switch and locks
 ADC for reading temperature and pressure sensors
 RTC for logging timestamps
 UART for multiple command-controlled devices
 SPI and I2C for multiple on-board FRAM and peripherals
 Implemented on-board workflows documented by principle engineer for achieving various
functioning sub-systems.
 Enhanced and improved build scripts (SCons and cmake) to speed up built time and output
informative reports (static memory usage, test coverage and etc.)

- Instrument Control: a coroutine based python application for inter-boards and external
communication middleware.
 Using gevent as backbone implemented the IO bound message processing and relay
system, which handles command requests and responds, firmware events and sensor
status data emitted from all 27 boards. The size of message data is huge and using
coroutine based parallel programming is the key to success comparing to previous
unsuccessful development iterations.
 Jadak camera development - decode 24 slide barcodes from slide drawer’s image
 Proposed and implemented the camera control directly through socket connection
instead of vendor provided SDK to improve performance and stability.
 Implemented python version image packets transmission protocols defined by vendor
 Preprocess image using OpenCV to improve decoding results
 Built multiple frameworks for running calibration scripts used by electronical and mechanical
engineers.

- Domain Control: a ASP.net Core based functional application for managing and scheduling slide
staining procedures.
 Implemented ZMQ based communication infrastructure.
 Implemented stories, learnt job scheduling algorithms.
 Implemented Swagger interfaces for query and priming data used by integration and
automation tests

- Master GUI: a React + Electron based desktop GUI application.


 Code maintaining and backend support

- Serpent: a Vue based front end and python flask + asyncio based back end signal data graphing
and instrument calibration tool set used by hardware engineers and testers to diagnose and
calibrate instruments.
 Built the whole backend infrastructure which performs multiple tasks in parallel, includes
 Decode packed signal data in high performance way
 Persist in HDF5 or Parquet format with big amount data (GBs per hour)
 Query data using PySpark/Parquet or PyTable/HDF5
 Ad-hoc scripts execution environment for diagnose and calibration
 Implemented Machine Learning algorithm(Anomaly Detection) POC for detecting heater and
peltier’s condition utilizing Parquet files and Spark’s MLib
 Support front end development with whatever they want

BOND boards replacement


A feasibility project for replacing legacy boards of BOND serial products. As its urgency nature I was pulled
in to help to code interface between newly designed PCB board (STM32H7) and existing application.
- Implemented I2C communication bus between on-board components/peripherals, based on
FreeROTS framework and ST’s latest CMSIS HAL and CubeMX technology.
- Implemented Lwip stack for ethernet communication
- Implemented SD storage and USB stack for USB peripherals and storage
- Developed a testing tool set using a serial (UART) communication port and a python based
GUI/Console application

CEREBRO
A sample tracking system enables laboratories to track each sample through every step of process to
improve patient safety, laboratory productivity and analytics.
I have been nursing this product from its hard birth to its commercial success with over 80 clients
worldwide.

Role: Key developer


Responsibilities:
- Core components development:
● Full stack .NET developments range from WPF MVVM client implementation, to WCF SOA
services architecture, to NHibernate/Dapper ORM data access developments.
● Identified and resolved key performance issues either caused by code errors or architect flaws,
especially by multi-threading and database queries/ indexes found in production.
● Worked closely with BA and testers to make sure acceptance criterias met and release tollgate
passed.
● Applied TDD and SOLID coding principles wherever possible, and refactored legacy code to
make code injectable and testable.

- Database development
● The owner of database development. Wrote SQL scripts and stored procedures range from
database creation, schema changes, data migration, to ad-hoc queries and large database
population for performance testing.
● Database performance tuning. Identified critical performance impact queries emitted in C#
code, and lack of indexes in database tables. Proficient at utilizing SQL profiler, execution plan
and dynamic management views to troubleshoot performance issues.
● Implemented data security solution using Transparent Data Encryption (TDE)
● Implemented database replication automation scripts
● Proposed and implemented indexed views for speeding up queries and reporting

- BI and reporting development


● Initiated BI solution for end user self-service analytics
○ Designed and implemented data warehouse using snowflake(Kimball) methodology.
○ Implemented multidimensional data cubes using SSAS
○ Implemented ETL process(SSIS) to populate data warehouse and load to build SSAS
cubes
○ Documented guidelines of consuming analysis service from Excel PowerPivot
○ Proposed to upgrade to tabular model
● Data mining
○ Implemented mining model(Decision Tree) to predict slides turnaround time
● Reporting
○ Maintained and improved ASP.NET MVC reporting framework
○ Introduced online report designer using DevExpress web controls
○ Implemented predefined reports
○ Proposed and implemented database views exposed to end user for custom report
designing
- RESTful external interface API
● Maintained and improved outbound web service for exposing CEREBRO service to LIS and third
party instruments through Mirth connector
● Maintained and improved inbound web service for pushed data from third party instruments

- LIS(Laboratory Information System) integration


● Mirth connector channel development using Java and Javascript
● On demand integration development, e.g. requested by clients with specific requirements and
environments
- Agile team engagements
● Architect, components, release notes and other documentations
● Team mentoring and code reviews - ensure TDD and integration tests coverage.
● Maintain and improve build automation
● Liaise with Business Analysts and Test team on acceptance criterias

APIQ
A mobile lab management system provides reagent inventory management and instrument dashboard.

Role: Developer
Responsibilities:
- Back-end data service development – C#/IIS/WebAPI
- Front-end SPA development: Angular JS

BOND
A fully automated immunohistochemistry (IHC) and in-situ hybridization (ISH) staining system that improves
speed, efficiency and quality to histopathology laboratories and hospitals.

Role: Developer
Responsibilities:
- Front-end development – C#/Silverlight
- Back-end Asp.net + IIS development
- Database maintaining and performance tuning - PostgreSQL

RemoteCare
A cloud based remote support and IoT solution (built on top of Axeda platform) used for Leica's various
instruments.

Role: Major developer


Responsibilities:
- Designed and implemented the initial release
- MSI installer - packages third party components and deployment configurations
Software Architect / .NET Developer/ Analyst Java Developer
2006-2011
Fabric Group, Melbourne
Fabric is a professional web application developing and hosting IT company. Its strength is in the field of
logistic application development. Major clients include AaE, Star Track Express, AXA, Yarra Tram, and
PhotoArtGallery.com.
Projects I involved in are:

Star Track Express portal ( www.startrackexpress.com.au )


Role: Architect / Programmer Analyst

Australia Air Express Track and Trace ( trackandtrace.aae.com.au)


Role: Architect / Programmer Analyst

Australian Air Express Cross-Docking ( www.owxd-aae.com.au )


Role: Architect / Programmer Analyst

Australia Air Express Freight-Master (www.freightmaster.aae.com.au )


Role: Java Programmer

PhArt Photogallery ( www.photoartgallery.com )

Analyst .NET Developer


2005-2006
Integration of Credit Dodo Australia, Melbourne
Card Pre-Authentication Middleware with Online Credit Card Payment System

EDUCATION
Bachelor of Computer Science 2004
RMIT, Melbourne
Master of Business 2008
Victoria University, Melbourne

You might also like