Wei Zhang
*.*******@*****.***
Mobile: 206-***-****
Summary:
Extensive C/C++/C#/Java software development on Windows/Linux environment.
Experience in creating SOAP and REST web service/microservice/APIs.
Solid experience at MVC/JavaScript/HTML frontend development.
Strong Azure cloud development experience with Azure Active Directory Graphic API, Azure Blob Storage and Azure DataLake.
Hands-on experiences on Apache Hadoop big data framework, including HDFS, HBase, Hive/Drill/Phoenix, Hue, Yarn, Zookeeper, etc.
Super experience with both relational and NoSql databases, SQL query, stored procedures.
Expert knowledge and experience on CI/CD and DevOps.
Solid monitoring system Sensu/Splunk.
Very strong debugging and troubleshooting skills.
Proven ability to work on multiple projects and meet deadlines.
Strong leadership skills with extensive hands on experience.
Self-motivated, committed team player with excellent communication skills.
Software/Hardware:
Hadoop, HBase, CouchBase, Hive/Drill/Phoenix, Azure, C, C++, C#, Visual Studio, .NET, IIS, ASP.Net, ODBC, WCF, WPF, Windows Form, SOAP, REST, Microservice, Fiddler, SoapUI, Postman, Selenium Web Driver, PuTTY, FileZilla, Java, NetBean, Eclipse, CheckMarx, CI/CD, Chef, Sensu, Splunk, Jenkins, WIX, MSI, SCCM, Orca, Powershell, regex, Expresso, SHA512, PL/SQL, Stored Procedures, DBP, T/SQL, Oracle, IBM DB2, MS SQL Server, SQL Server Profile, SQL Compare, FoxPro, Access, Windows, UNIX, Linux, shell scripting, Ruby, Powershell, MOTIF, gcc, gdb, dbx, idebug, MFC, STL, Win32 API, COM, DCOM, Silverlight, JSON, XAML, Linq, XML, XSD, XSL, HTTP/HTTPS, MSP, TCP/IP, UDP, FTP, socket, pipe, multiprocessing, multithreading, ZeroMQ, IBM WebSphere MQ, Network Security, Encryption, PKI, Authentication protocols, Automation Test, Platform Builder, Product Studio, WTT/WTT Mobile, Visual Visio, Beyond Compare, BBPack, TFS, StarTeam, CVS, AccuRev, Git, Visual Source Safe, GSM, Windows Mobile 7, Bing search engine.
Experience:
Visa Inc. (placed by Aditi) Jan 2018 – Sep 2019
Software Engineer 5
Responsibilities:
Partner closely with teams to improve online payment processing business consists of customer faced and internal web services/microservices
Architect the Active-Active Automation transaction switch between two data centers by implementing retry tag in response messages
Improve application logging by 20% overall with Event Tracing for Windows (ETW)
Centralize application logging to message queues ZeroMQ with socket programming
Work on SHA512 hash upgrade project, replacing all SHA1/SHA256 hashes with new SHA512 hashes
Work on WIX installer and Chef tokens
Run CheckMarx security scan before each release
Write optimized and quality code
Work on unit testing, code coverage, code review, and regular check-ins for continuous integration
Release support
Environment:
Visual Studio, .NET Framework, C#, IIS, ASP.Net, SOAP, REST, microservice, Selenium
, Fiddler, Postman, Online Payment, Event Tracing for Windows, HTML, JavaScript, JSON, XML, Linux, PuTTy, Java, Eclipse, Splunk, ZeroMQ, socket programming, SHA512, SQL Server, Stored Procedures, DBP, WIX, CheckMarx, AccuRev, Git, Crucible, Chef
DS-IQ Inc Aug 2010 – Oct 2017
Senior Software Engineer
Responsibilities:
Work closely with developers, business product managers, project managers and IT operation team throughout each phase of every release cycle ensuring quality from design to fast-paced execution.
Work on middle tier APIs in C# .NET to handle business data between backend and front UI.
Design and implement some WCF SOAP/REST web services and clients.
Create some Drill custom functions in Java, including decoded the HBase data previously written in the special format by Phoenix to make the data readable in Drill.
Create a service in C# run by a SQL job to fetch data from HBase via Hive/Drill ODBC and load to CouchBase; and created CouchBase views for Technical Project Managers.
Fetch different feeds from HBase tables and write to local file systems, then BuckInsert to temp tables then merge to destination tables in SQL Server, implemented with C# and ODBC driver.
Create an application to collect user sign-in data in DS-IQ Azure applications using Azure Active Directory Graph API.
Develop a configuration portal web service for developers to manager some key application configurations in SQL database, the UI is created with MVC/HTML/JavaScript, and Linq to SQL database.
Drive and architecture the Go CD (continuous delivery) system, which is the continuous build, deployment, integration testing system to make DS-IQ products (both Windows and Linux platforms) release fast and automatically.
Nugetize DS-IQ products.
Create some Sensu plugins with Ruby/PowerShell to monitor DS-IQ products and servers.
Play a leading role in earning Microsoft Gold Partner Certification for DS-IQ.
Anticipate in migrating all DS-IQ windows platform products from VS 2008/SQL 2005/IIS 6 to VS 2010/SQL2008/IIS 7.5, then to VS 2013/SQL2014.
Setup VS team foundation server 2013.
Environment:
Hadoop, HBase, Hive/Drill/Phoenix, Azure Active Directory Graph API, Azure Blob Storage, Azure DataLake, Visual Studio, .NET Framework, C#, IIS, ASP.Net, WCF, WPF, Windows Form, SOAP, REST, Fiddler, SoapUI, Postman, Selenium, ODBC, Nuget, PuTTY, FileZilla, Ubuntu Linux, Java, NetBean, Eclipse, CouchBase, SQL Server, DACPAC, SQL Compare, SQL Server Profile, SCCM, GO CD, Jenkins, WIX, MSI, Orca, Ruby, Powershell, Active Directory, MVC, HTML, JavaScript, regular expression, Expresso, Windows 7/2008/2003, JSON, XML, XSD, XSL, HTTP, HTTPS/SSL, FTP, TFS, Subversion, VPN.
Microsoft (placed by Comsys) Aug 2009 – Aug 2010
Software Development Engineer in Test
Responsibilities:
Work closely with PM/SDE to extend the monitoring and reporting infrastructure for new features.
Development owner of VLAD, a validation tool, using C#/XSL/XSD.
Integrate VLAD with C++ Win32 projects using PinVoke.
Test owner of monitoring tools XTS and Thermometer.
Anticipate in review of PM specs and dev specs.
Design test plans and test cases, and develop automation test tools.
Maintain and develop web services for lab server management.
Write SQL queries to create server utilization reports.
Run sanity test for new OS image.
Create VHD and VM via Hyper-V, VM via Virtual PC to test applications under different OS environments in one machine.
Troubleshoot service defeats, failures and performance issues.
Provide technical support to customers across search team for VLAD test creation and test failures.
DRI of a test cluster in turn.
Provision and rollout OS update and new services.
Environment:
Search Autopilot, Visual Studio.Net, .NET Framework, IIS, AS.Net, C++, Win32 API, C#, Linq, PInvoke, SQL Server 2008, store procedures, query script, Active Directory, LDAP, unit test, Web Service, Silverlight, WPF, XAML, regular expression, Windows 7/2008/2003/Vista/XP, IE 8/7/6, Product Studio, Bugger, Hyper-V, Virtual PC, VHD (Virtual Hard Driver), VM (Virtual Machine), XML, XSD, XSL, SOAP, HTTP, HTTPS\SSL, WTT, Visual Visio, Source Depot, BBPack.
Microsoft (placed by Longtop International) May 2008 – June 2009
Software Design Engineer
Responsibilities:
Extend the automation infrastructure for new features.
Add new components to the infrastructure to deal with new features as they are developed. This also includes synchronization of PIM (profile and contact) and IM (messenger).
Design and implemented a UI inside device using .NET CF to configure error codes of MSP services and HTTP & MSP servers.
Create a test application in C# to automate the daily work routine from launch Virtual studio, launch Virtual PC/device emulator, select/attach an image, run some scripts to initialize the environment, run some tests, to launch Hopper.
Design and implement test plans and cases, automated tests and unit tests.
Run BVT, Unit Tests, Components Tests and automation tests before each check in.
Run localization and globalization testing.
Work on the messaging layer for new protocols, these are web services that need to be emulated by the infrastructure.
Refactor/refine the current design.
Write Windows batch files and Platform Builder scripts.
Coordinate team teams in China.
Environment:
Windows Mobile 7, Visual Studio.Net, .NET CF, Windows CE, C#, C++, Win32 API, PInvoke, batch scripting, Windows Vista, multithreading, Automation Test, Manual UI test, Platform Builder, Microsoft Team Foundation, Product Studio, Bugger, Virtual PC, device emulator, XML, SOAP, MSP, HTTP, WTT/WTT Mobile, Visual Visio, Beyond Compare, Source Depot, BBPack.
Staples, Inc. (placed by DB Concept) Jan 2008 – May 2008
C++/Java Software Development Engineer
Responsibilities:
Accountable for designing, developing software code and associated life cycle deliverables for DPS Client Adapter.
Construct Staples DPS (Data Protection Service) Client Programming (C++) Technical Design documentation, which covers the C++ classes and methods that Staples internal systems can use to integrate with the DPS server.
Interpret process, data modules, and business requirements into software code.
Perform all of the steps required to design, test, and code.
Implement some design patterns including singleton and worker factory, and some STLs including list, vector, map, and iterator.
Develop procedures and operating instructions, and successfully moved programs into production.
Provide production support through problems analysis and resolution to correct deficiencies.
Run performance tests.
Play leadership role.
Environment:
Visual Studio.net 2003, VC++, Win32 API, Windows XP, Red Hat Linux, AS/400, gcc, gdb, Java, NetBean, XML, IBM MQSeries, Network Security, Encryption, PKI, Authentication protocols, multithreading, TCP/IP, Oracle, shell scripting, StarTeam.
Thomson Financial (placed by Software Research Group) Mar 2007 – Dec 2007
C/Linux Software Development Engineer
Responsibilities:
Anticipate and analyze the business rules and technical specifications design for FIX products.
Process input messages, generated output messages from/to message queues.
Develop business logic programs, sub-routines with C to implement business rules and technical specifications.
Design and implement most GUIs with MOTIF with C.
Write complex stored procedures, dynamic SQL and cursors.
Use message queues and shared memory for IPC.
Parse/display/save request&reply XML messages for replay.
Automate batch process of request/reply XML message files using shell scripting.
Environment:
Suse Linux, RS6000, C, MOTIF, vi, bash script, XML, IBM WebSphere MQ, FIX, TCP/IP, IBM UDB DB2, DB2 SQL PL, shell scripting, CVS.
Université de Sherbrooke May 2003 – Apr 2006
Research Assistant
Responsibilities:
Develop a variational approach as a super solution to Shape from Shading, enhancing the low resolution Digital Elevation Model from a high-resolution color image.
Develop a texture synthesis project that creates texture images of arbitrary size based a sample texture.
Implement a 3D image location and rotation algorithm.
Compare the accuracy of existing interpolation algorithms.
Display/analyze 2D/3D images using MATLAB.
Develop a model of the knowledge structures that underlie cognition to explain human cognition by playing the game of Tic-tac-toe, based on the strategy of goal stack, which is coded with Common Lisp in ACT-R
Environment:
Windows 2000, Visual C++, Win 32, MFC, MATLAB, ACT-R, Common Lisp
ZTE Corporation Jan 2000 - Sep 2001
Senior Software Engineer
Responsibilities:
Analyze client requirements, map out summary/detailed design, design and develop of unit test and integrated test plans, and review peer code.
Implement a set of processes to control the transformation of configuration data between the SMC and database server.
Design conceptual and physical database design and modeling with ER diagram.
Write ANSI C code to read configuration data into the short message server from database server, and write the data into local disk in case the disconnection with database server.
Write complex T-SQL to create, update the structures of data tables, backup and restore data.
Perform load tests at million records by coding SQL to make up a heavy volume load.
Design and implement GUI with VC++ and using DBlib to access SQL Server.
Prepare project document including technical and user document.
Provide technical support to customers via phone or onsite.
Product upgrade on site.
Environment:
Windows NT, SQL Server, Oracle, T-SQL, client/server architecture, multiprocessing, ANSI C, VC++, Win32 API, MFC, TCP/IP, UDP, SMPP, VSS
Education:
Master degree in Project Management
Université du Québec en Outaouais, Gatineau, Canada
Bachelor degree in Computer Science
Bishop’s University, Sherbrooke, Canada
Bachelor degree in Computer Engineering
Beijing Institute of Technology, Beijing, China