Post Job Free

Resume

Sign in

architect / manager / project lead / engineer

Location:
San Ramon, CA
Posted:
April 12, 2016

Contact this candidate

Resume:

Fang Scott Pan

Objective: obtain challenging mobile or Client side architect / manager / project lead / engineer position at a dynamic company.

Summary Of Qualification

Strong software development management, especially offshore development team.

As Project Lead, had good architecture & management skills, to manage complete project life cycle.

Strong mobile phone client development (Android, iPhone, Windows Mobile, Blackberry).

Strong mobile client development and web server side development experiences.

15+ years of extensive programming experience in Java (Android, JSP, Swing, J2EE, JServlets, EJB), Objective-C, C, C++, VC++, MFC, XML/XSL, SOAP, web service, PERL, ODBC, JDBC, COM (ATL), VB.net, C#.net, CORBA, Visual Basic, PL/SQL, HTML/DHTML, Javascript, jQuery, Node.js, Express.js, Bootstrap.js, Backbone.js, Angular JS, NDK / JNI, Angular.js, Crashlytics (Fabric), Otto, Butterknife, Dagger 2, ReactiveX - RxJava / RxAndroid, JUnit, Espresso, Robolectric, Retrofit, Stetho.

Complete experience in architecture and development cycle of complex software systems on different platforms (Linux, Windows NT/2000, Java VM, J2EE, Solaris, Tomcat, WebLogic Application Server).

Rich experience in enterprise level architectures and technologies: Metadata search/query, ODBC & JDBC database programming, B2B, Portal, supply-chain, Client-Server, multithreading, distributed systems, windows program (UI and WinSocket), MAPI, Exchange Server/Outlook form design.

Rich experience of Windows, LINUX, Oracle database, SQLite database, and MySql database.

Technical Skills

- Platforms: Android, iPhone, Windows, Linux, UNIX, BlackBerry.

- Languages: Java (Swing, J2EE, JServlets, EJB), J2ME, C++, C, C# (.NET), VB.net, Visual Basic, COM, Win32 SDK, MFC, Perl, CGI, UNIX shell, PL/SQL, SQL, HTML, CSS, DHTML, Javascript, jQuery, Angular JS, WinSocket.

- Specs & Interfaces: WSDL / Web Services, SOAP, IPC, RPC, LDAP, ADSI, XML/XSL.

- Database: ODBC, JDBC, Oracle 8i, MySql, MS SQL Server, Sybase Server.

- Development Cycle: MRD, EDD, design pattern (UML), code review, unit testing, Test Plan, debugging, documentation, Bugzilla, Jira, Rational ClearCase, Subversion, Git, Agile, Scrum.

- Knowledge base: Performance analysis, socket programming, TCP/IP.

Interpersonal Skills

- Work well independently and as a team player. Able to work long hours under deadline pressure. Dedicated, hard working, and reliable. Result-oriented.

- Aggressive with a can-do positive attitude; lots of initiatives and a strong innovation ability; have been an excellent troubleshooter in all the companies.

- Good communication skills as manager, project lead and team member.

Professional Experience

02/2014 – present Mobile and Cloud Architect and Developer;

Activince Technology Inc., Fremont, CA

Verizon Messages (VZM) social networking Android app: Led and finished the Group Communication feature and SYNC feature for the app in a small Android team.

-VZM is a social networking and communication app that let a user seamlessly send and receive messages with 1 account on different devices (e.g. Android phone, tablet, iOS device, and desktop of MAC, PC and Web) with thousands of other users.

-Participated in the server API design for the Group Communication feature that allow up to 200 users to participation of the chatting at the same time.

-Participated in the app architecture design for the Group Communication modules.

-Programmed the UI, database, logics, and server communication of the Create Group, Edit Group, Find Group, Leave Group, and Avatar / background image management.

-Programmed the SYNC feature to cover both initial SYNC and incremental SYNC that can efficiently recover all the groups, subscribers, and messages on different devices.

-Programmed the UI, database, logics, and server communication of the Conversation Compose screen.

-Programmed the sending / receiving of multimedia messages (e.g. audio, picture, video).

-Programmed the management of conversation message status (e.g. sending, sent, delivered, delivered to some, read by some, read by all, deleted, etc.).

-Programmed the UI, database, logics, and server communication of the Group Subscribers management (find contact, invite contact to join, delete subscriber, etc.).

-Programmed the group Account Management and Account Provisioning.

-Programmed the stubs to integrate with the IBM MQTT layer.

-Programmed the typing indicators feature, GCM notification feature.

-Programmed the remote server HTTP fetching, JSON parsing, and DB handling.

-Fixed the bugs in the lifecycle of Android screens, and fragments.

-Otto, Butterknife, Dagger 2, ReactiveX - RxJava / RxAndroid, JUnit, Espresso, Robolectric, Retrofit, Stetho.

MobJob Android app: Finished the 2nd version of the app in a 2-developer Android team.

-It is a social learning and task app that gives you great opportunities for extra job, learn about new products and get paid by cash & prizes for your expertise.

-Programmed the location-based service completely as solo player.

-Programmed the UI screens with extensive human interactions.

-Programmed the google map with location markers.

-Programmed the Task state machine and complex algorithms.

-Programmed the remote server HTTP fetching, JSON parsing, and DB handling.

-Redesigned the new app architecture for the next phase.

-Fixed all the bugs in the lifecycle of Android screens, and fragments.

-Fixed the memory problems including dangling object pointers, leaked DialogFragment, leaked Activity, onSaveInstanceState & onRestoreInstanceState of activities and fragments when freed by OS.

-Mobile A/B Testing with Mixpanel and Kissmetrics. Crashlytics (Fabric).

Verifier Sentry Android app: Managed and developed the whole app.

-It is a native Android app that lets the security guard scan CAC/PIV card, Contact card, NFC Contactless card, and ePassport of a visitor, to fetch the information from the different credential cards and ePassport.

-It also takes the fingerprint of the visitor through fingerprint image sensor, and compares it with the stored fingerprint in the credential cards or ePassport.

-Programmed the contact card asynchronous scanning module, NFC Contactless card asynchronous scanning module, and ePassport asynchronous scanning module.

-Programmed the fingerprint capture screen.

-Programmed the android UI screens including Settings, Activity Logs, User Management, Whitelist Management, Blacklist Management, Scan Result.

-Programmed the database layer to read/write access the Sqlite database on device.

-Compiled the existing C++ source codes into .so shared library files for Android as NDK, and programmed JNI wrapper to invoke the .so shared libraries at run-time.

Rapid ID Android app: Managed and developed the whole app.

-It is a native Android app that lets the police in the streets take the fingerprints of a suspect and take face-detection photo, through fingerprint image sensor and camera, and synchs with the remote HTTP web service, for criminal records.

-Programmed the face-detection module.

-Programmed the fingerprint capture screen.

-Programmed the HTTP module to send GET and POST requests to HTTP web service, with XML body.

-Programmed the backend service that detects the database changes repeatedly.

-Programmed the android UI screens including Hand & Finger Pick, Settings, Activity Logs, User Management that have self-refresh function.

-Programmed the database layer to read/write access the Sqlite database on device.

-Compiled the existing C++ source codes into .so shared library files for Android as NDK, and programmed JNI wrapper to invoke the .so shared libraries at run-time.

VSee Android app: Developed the 1st version of whole app in a 2-member team.

-It is a native Android app that does 4-way group video calls, screen sharing, data sharing, and instant messaging, with a clean interface, by using secure, low-bandwidth calls on 3G, 4G, and WiFi networks. Especially useful for remote medical diagnosis and discussion.

-Ported the iPhone C/C++ libraries into .a static library files for Android NDK.

-Ported the following 3rd-party open source C / C++ libraries into .a static library files for Android NDK usage by modifying source codes and make files: Boost-for-Android, cryptopp, curl, jsoncpp, tinyxml2, zlib, WebRTC, reciprocate, libvpx, gloox.

-Compiled all the .a static library files into a big .a static library.

-Wrote testing Android apps to invoke the NDK .a static library.

-Programmed the UI screens and workflows for this 4-people mobile conferencing and data sharing app.

Large Image Cloud project:

-Designed the image Cloud for all entities to share (upload and download) the large volumes of images of different users.

-Programmed and fixed bugs in the web UI side, using Node.js, Express.js, Bootstrap.js, Backbone.js, Angular JS, HTML, CSS, Javascript, jQuery. RESTful API.

-Programmed part of the storage component on the Cloud side.

11/2010 – 2/2014 Android Mobile Architect and Development Consultant;

Samsung Inc., Sunnyvale, CA

Android UPnP / DLNA Home Entertainment Center project:

-Researched and reprogrammed the LINUX UPnP Proxy server into Android NDK project. Figured out the compiling and linking with complex 3rd party C libraries. Modified the UPnP Proxy server's source codes to handle new business logics and technical specs.

-Programmed the Android service to call the NDK shared libraries (.so files), and the Android UI application as the User Interface Controller to do service control.

-Developed the UPnP API layer as Android client library, through which the Android devices can communicate with each other to narrow down the item search in the house.

-Developed the UPnP API layer on Android Tablet, to control the remote smart Android TV to play/stop/record video; to invoke social networking feature on the Android TV and invoke the Android device to finish the social networking requests. UPnP Cling library.

-Architected and programmed the server side TV EPG show display & selection pages, with row scrolling and pagination, using HTML, CSS, Javascripts, jQuery, HTML5, XHTML. The TV show web pages are displayed in the browser in Samsung Galaxy Android Tablet, Android SetTop-box, and can control the remote Android TV to play the remote video stream fetched from the video server (Flash or Octoshape or RTSP).

Android LCX project for pictures (Android Client & Cloud):

-Managed a team of 6 people (engineers, researchers, and testers).

-Architected and programmed the Android Client service and app:

-Allow the user to highlight a piece of email or a web page, and select system Share menu, which sends intent to bring up the LCX app. Jsoup, NER NDK component.

-Android UI screen to allow user to create Activity & Scenes, and receive suggested Scene list of pictures & descriptions from Cloud.

-Service to detect the proximity of points of interest in terms of GPS positions.

-Associate the user-taken pictures to GPS positions, annotation, and other metadata. Forward the pictures and their metadata as XML and JSON blocks to Cloud.

-Allow multiple people to click on Facebook links or SMS links as invitation, to invoke local native Android app to join existing Activity.

-Bluetooth carding reading and writing.

-Call the Cloud through HTTP RESTful APIs, to do upload, delete, search, query.

-Call the underlying service through asynchronous listener as callback.

-Architected and programmed server cloud:

-The XML communication module that interprets XML requests from Client and prepares XML / JSON responses to Client.

-The Search request API and its handling to return CMF GUIDs.

-The Query request API and its handling to return metadata, based on the requested CMF GUIDs and Query criteria from the user.

-Organize the related, high-quality pictures to form the Life Play Back as a video.

-Playback of the pictures by the order by time and GPS positions, as video.

-Designed the database on server side (MySql 5.x).

-Node.js, Express.js, Bootstrap.js, Backbone.js, Angular JS, jQuery.

-MySQL database.

Android Content Metadata Framework for Movies & Pictures (Android Client & Cloud):

-Managed a team of 6 people (engineers, researchers, and testers).

-Architected and programmed the Android Client framework and apps:

-Metadata Collector/Markup API, so a new picture is attached with UGC metadata (i.e. GPS coordinates, address, altitude, date/time, humidity, temperature, and other sensor-based metadata, device name/ model, owner, copyright, etc.).

-GUID generation mechanism to track a movie or picture uniquely and globally.

-UI methods (Spen, Touch, Voice, Soft Keyboard collection methods) to take the user’s annotation of a movie or picture.

-NER (Named Entity Recognition) and NLP (Natural Language Parser) plug-ins.

-Asynchronous way to communicate with server for metadata uploading by XML.

-The preparation of Search & Query request as XML POST to server (for GUIDs), based on the user’s Search or Query criteria.

-Architected and programmed CMF Metadata Cloud:

-The XML communication module that interprets XML requests from Client and prepares XML responses to Client.

-The metadata uploading API and its handling.

-The Search request API and its handling to return CMF GUIDs.

For picture Search, it searches through the CMF Cloud database.

For movie Search, it does Federated Search against multiple commercial movie vendor web sites (i.e. Netflix.com, RottenTomatoes.com, CMF.com, etc.).

-The Query request API and its handling to return metadata, based on the requested CMF GUIDs and Query criteria from the user.

For picture Query, it fetches from the CMF Cloud database.

For movie Query, it does Real-time Query against commercial movie vendor web sites (i.e. Netflix.com, RottenTomatoes, CMF.com), by vendors’ APIs.

-Programmed adapter that can be extended to other vendors (i.e. imDB, hulu.com).

-Node.js, Express.js, Bootstrap.js, Backbone.js, jQuery.

-MySQL database.

Android NDK JNI porting of video-audio-related open source projects:

-Installed the LINUX Ubuntu Virtualbox as the dev machine & set up the programming environment for C / C++.

-Ported the following 3rd-party open source C / C++ libraries into .a static library files for Android NDK usage by modifying source codes and make files: Boost-for-Android, cryptopp, curl, jsoncpp, tinyxml2, zlib, WebRTC, reciprocate, libvpx, gloox

-Compiled all the .a static library files into a big .a static library.

-Wrote testing Android apps to invoke the NDK .a static library.

12/2009 – 11/2010 Senior Android Mobile Software Developer;

Motorola Inc., Sunnyvale, CA

Contacts application on Motorola Android phones: Programmed Contacts application for the Motorola Android smart phones.

-Developed the Contact Pickers module (the single contact selection, multiple contacts selection, contact data selection, contact database search engine and UI, group filtering).

-Developed the Contact Hide module and the Social Networking Feeds Block module (hide / show individual contacts and groups, and filter the feeding of individual social network friends and Facebook, Twitter, Myspace to avoid flooding of messages).

-Designed the Sqlite3 database schemas, programmed the data Provider layer’s functions that handle IPC database manipulation as both transaction and batch job, overloaded the Android core engine’s contacts database management function calls. Modified the module that did SYNC job with the server, that did aggregation & merging of contacts.

-Simulated the Android’s “All Other Contacts” virtual group feature of gmail account into Motorola’s customized Contacts app. Fixed bugs for the other Contact modules (android widgets, SQLite transactions, and Twitter comm component).

-Studied the Android platform source codes from Google. Modified the source codes to migrate from the old eClair platform to the new FroYo platform, for Contacts module.

-Analyzed the Sim Manager module’s requirements and database design. Guided the China team to finish the programming of the Sim Manager, as gatekeeper.

05/2008 – 12/2009 Software Manager of Mobile Development;

Activince Technology Inc., Fremont, CA

Did hands-on architecture and programming on the following projects, while managed an offshore team of 6 engineers in China to finish the following projects.

MobileOne wireless web server for mobile clients: Managed and programmed the extension of the MobiOne wireless web server running as RIM wireless backbone infrastructure, to support the wireless eCommerce protocol requirements, including Web Service, HTML to wsdl transcoding, Javascript, HTML, DHTML, CSS. SSL support by including the 3rd party libcurl library. Programmed the web pages running on different BlackBerry smart phones connecting to the wireless MobiOne server, to simulate the JSP pages running on Apache web server through wired network.

eBay client application on BlackBerry smart phone: Managed and programmed the eBay client application as web widget in JAVA to run on different BlackBerry smart phones, using the BlackBerry API and J2ME API, connecting to the remote HTTP WAP server. The protocol is Web Service (wsdl SOAP over wireless HTTP).

TicketMaster client application on BlackBerry smart phone: Programmed the TicketMaster client application in JAVA to run on different BlackBerry smart phones, using the BlackBerry API and J2ME API, connecting to the remote HTTP WAP server.

Foodpics Log software for iPhone: Based on the UI and workflow design from program manager, managed and programmed the complete iPhone version of Foodpics Log software, for the diabetes patients to track the meals and snacks taken as food logs. Used Objective-C and pure C language. Features programmed for the iPhone application: Image processing, web server hosted on iPhone device for WiFi, email through SMTP, gzip compression, encryption & decryption, animation, jQuery, CSS HTML presentation across different browsers, PhoneGap, network checking, page navigation controller, table view, image table view, image photography through iPhone camera, etc. Already for sale on Apple App Store.

04/2007 – 06/2008 Sr. Software Engineer of Linux Mobile Client & Web Server;

@Road, Inc., Fremont, CA

Falcon truck dispatch project: a client-server system with mobile device as the client and Servlet Engine as the web server, with communication protocol of HTTP/HTTPS. The client, as embedded Linux system, interprets the messages from the server and display the messages according to the pre-defined XForms XML definitions. The server forwards the messages to the backend processing system through JMS. Participated in the architecture design of this client-server system. Researched and designed the XForms XML definitions to separate the content transfer and message display. Designed the database tables.

-Server: Architected and programmed the Servlet Engine on Apache / BEA Weblogics platform that can handle 20 millions records per day. Programmed the reporting engine that delivers online reports. UI programming, JAVA, JSP, JMS, J2EE, Servlet, JDBC, Oracle9i, Struts, AJAX, D/HTML, CSS, JavaScript, RESTful Extensions, and cross-browser development. Part in SHELL scripting.

-Client device: Designed the Embedded LINUX device’s software architecture, and programmed the modules of mailbox, logging, file system on RAM, NVRAM & Flash chip, in C language. Programmed the GUI display layer as HTML & XML parsers.

-Communicated directly with customers to get requirements and helped design the MRD.

11/2005 – 03/2007 Project Lead of Web Development;

Symyx Technologies, Inc., San Jose, CA

Project Resource Management web project: Managed a team of 4. Collected requirements from the customers (managers and directors of different internal departments, Program Managers and other developers) in meetings and personal contacts. Was in charge of the whole development cycle: requirement collection and analysis, MRD, ERD, architecture design, module design, development, testing, debugging, and deployment. Based on HTTP network protocols, programmed several network management projects, in JAVA, JSP, Struts, CSS, DHTML, HTML, Javascript, jQuery, AJAX, STRUCTS, on the platform of LINUX with Apache web server and Tomcat application server. Systems management part in PERL scripting.

Accounting Billabe FT Calculation batch job: Collected the requirements of the accounting department’s billable full-time calculation for SEC report every quarter. Programmed the batch job process in Java that runs in the background of server and query the Oracle 9i database to prepare the real-time reports.

01/2005 – 12/2005 Testing Tool Software Consultant;

Clarity Medical Systems, Inc., Pleasanton, CA

Testing Tool software for RetCam II device: RetCam II is the medical device for neonatal and pediatric retinal imaging. I programmed the automated tool to test the RetCam II device and software, to verify and validate that it can enable the timely evaluation of patient images from remote locations and provides patient database application for image storage and retrieval. Also, the automated testing tool software can validate the quality of the images (noise filtering). Also wrote the documentation for FDA auditing.

07/2003 – 12/2004 Co-Founder / Director of Engineering;

Quantum Route, Inc., San Francisco, CA

Point-Of-Sale software: Managed a team of 10, to produce this very thick client application, including sales register module, inventory control module, customer relationship management module, automatic online ordering module, reports module, training module for the beauty salon industry. It was sold successfully to GME, the largest beauty salon chain store in the USA.

Phase I: Got the customer’s requirements, and turned the customer requirements into MRD (Marketing Research Document). Designed the whole architecture of the JAVA application. Detailed the architecture into EDD (Engineering Design Document) and GUI design. Designed the JAVA class models by UML. Programmed the core engine of POS (about 30% of the whole product).

Phase III: Managed offshore team of 10 engineers in China, to finish the other 70% of the whole product

QServer JSP web server (PRM product): It is a Web-based, database-driven on-line application JSP application for the Quantum Route headquarter to consolidate the data from all the stores.

12/2001 – 07/2003 Software Consultant;

Savi Technology Inc., Sunnyvale, CA

SMM (Savi Mobile Manager) Handheld Project: Programmed the SMM project in C# on Windows Mobile (logging module, RFID communication module, scheduling module, error-handling module, controller module, mailbox module, mobile HTML templates for dynamic loading & displaying). Implemented RFID communication module (raw data communication SDK layer, checksum algorithm, error-handling algorithm, re-sending layer, synchronous mode and a-synchronous mode).

Retriver Project: Took over the RFID wireless Retriever legacy software, multi-threading, large-scale (over 2 million lines of source codes), 3-tier, distributed architecture. Picked up in 6 months without documentation. Used VC++, and Corba (IPC).

Client Layer: Defined the UI features for the administrators of the software, designed the whole UI to be user friendly, intuitive, and easy. Programmed the UI part in VC++ (with MFC). More than 300 army sites are using this software (over 30K users).

Middleware (server) Layer: Programmed the whole application’s server modules (14 modules including more than 100 features) in VC++. Did unit testing, debugging, documentation. Wrote testing applications to find the performance bottlenecks and tuned up the source codes to enhance the performance. For enhancement, programmed the modem communication module (ISP, Direct Dial-in, DDN, etc.) and the database middleware layer modules, connecting to RDBMS of Oracle 8i database. Managed the whole development cycle. Wrote installer programs and documentation.

Hardware SDK Layer: Programmed the SDK layer, to interpret the requests from the middleware layer into sequence of simplified UDAP commands, and further digest into bits commands to communicate with multiple remote wireless Retriever devices. After getting the results from the hardware devices, translates the bits into UDAP responses.

7/1999 - 11/2001 Project Lead & Senior Engineer;

BidCom, Inc., San Francisco, CA

Distributed Data Computing Architecture of 2nd version B2B product: Participated in the architecture of the 2nd version, as B2B web portal with heavy focus on Object-Oriented design and distributed data computing, multi-tier, thread-pooling, and load-balancing. Used XML interpreter to guarantee a simple but extendable program interface. Programmed in WebLogic (JAVA). Implemented the whole UI using HTML, DHTML, Javascript.

Construction Project & Document Management Project: Implemented it using Java JSP, J2EE, JServlet, EJB, JDBC, XML, SOAP, and Oracle 9i. Programmed part of the workflow engine on BEA WebLogic. Designed part of the database table structures.

Portfolio Management Project: Played a key role in the complete software development process cycle of the web portal for construction industry.

Client Part: Participated in function and data model specifications. Designed the whole UI to be very user friendly, intuitive, and easy. Used VB to mock up quick UI effects to demo to the users. Implemented the whole UI using HTML, DHTML, Javascript.

Middleware (server) Part: Independently programmed the whole application’s middleware using J2EE as JSP. Designed the architecture of the Web-based, 3 tier, multi-threading online document editing management architecture. Programmed front and back ends on NT & Linux. (Java, JSP, EJB, JDBC, Oracle 8i, PL/SQL, XML, SOAP, WebLogic, JavaScript,). Performance tests & enhancements to tune up source codes and DB schema. Coordinated a team of 3 developers & project schedules. Coordinated Release efforts.

UNIX admin & LINUX admin: Performed daily admin (15 LINUX boxes in dev environment). Wrote C / Bourne shell scripts to simplify DB admin and automate daily work. Installed, and administrated mail system, and web server.

Oracle Database admin & Network admin: Performed daily DB admin for dev environment, with Oracle 8i and JDBC drivers on Solaris. Worked with firewall, Enterprise security and authentication systems, NT Domain Controller, DNS, Active Directory, ADSI, LDAP, RADIUS and Microsoft Security Configuration Manager.

4/1998 - 7/1999 Systems Software Engineer;

Savi Technology, Mountain View, CA

Asset Management Project: Played an important role in the complete software development cycle of the large-scale, 3-tier Client-Server Oracle-DB-centered asset management system using VC++ (with MFC library), CORBA, PL/SQL, SQL. Documented / analyzed the customer requirements as System Analyst; created part of the function specifications. Designed class flow using UML. Programmed a big portion of both Information Presentation UI (a very rich MFC client application) and multithreading middle-ware servers in VC++. Used CORBA as the IPC and RPC communication protocol. Programmed part of the backend database layer using VC++ and ODBC. Coordinated a team of 3 developers’ engineering & release efforts.

Collected Requirements as Field Application Engineer: An excellent technical troubleshooter in finding and fixing the problems on the customer sites. Traveled to the customer sites to interact with customers for requirements. Setup system for demo.

6/1996 - 4/1998 Internet Programmer;

Investools, Inc., Redwood City, CA

Workflow Engine: Participated in design of workflow engine. Programmed in C & Perl. Implemented the pushing engine’s local desktop agent in Java

Middleware billing and refunding project: Wrote middleware software in C to handle financial information with Sybase database, including complex financial logics.

Education

MS in Computer Science, San Francisco State University, CA

(Thesis: Java Modeling and Simulation of Distributed Networks with Performance Analysis: it is a very rich Java Applet application.)

BA in Economics, Stanford University, CA.



Contact this candidate