Mobile And Cloud Architect And Developer Resume
Fremont, CA
OBJECTIVE:
Obtain challenging mobile or Client side architect / manager / project lead / engineer position at a dynamic company.
SUMMARY:
- 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
PROFESSIONAL EXPERIENCE:
Mobile and Cloud Architect and Developer
Confidential, Fremont, CA
Responsibilities:
- Led and finished the Group Communication feature and SYNC feature for the app in a small Android team.
- 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.
Android Mobile Architect and Development Consultant
Confidential, Sunnyvale, CA
Responsibilities:
- Android UPnP / DLNA Home Entertainment Center project:
- Managed a team of 6 people (engineers, researchers, and testers).
- 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 Confidential 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.
Senior Android Mobile Software Developer
Confidential, Sunnyvale, CA
Responsibilities:
- Contacts application on Confidential Android phones: Programmed Contacts application for the Confidential 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 Confidential ’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.
Software Manager of Mobile Development
Confidential, Fremont, CA
Responsibilities:
- 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.
Sr. Software Engineer of Linux Mobile Client & Web Server
Confidential, Fremont, CA
Responsibilities:
- 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.
Project Lead of Web Development
Confidential, San Jose, CA
Responsibilities:
- 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.
Testing Tool Software Consultant
Confidential, Pleasanton, CA
Responsibilities:
- I programmed the automated tool to test the Confidential 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.
Co-Founder / Director of Engineering;
Confidential, San Francisco, CA
Responsibilities:
- 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).
- Managed offshore team of 10 engineers in China, to finish the other 70% of the whole product
- It is a Web-based, database-driven on-line application JSP application for the Confidential headquarter to consolidate the data from all the stores.