Virtual Reality Web App Refactoring, Eyexpo Tech Corp, 2018-10 ~ present
- Re-implemented Web VR app MVP using Ionic(Angular) framework and Node.js Express framework
- Set up projects to use Typescript compiler, Typescript Linter, Webstorm debugger
- Implemented an API gateway server using GraphQL query language for backend microservices
- Created GraphQL schema for first-party and third-party frontend clients
- Wrote Docker files used for building Docker images for deploying micro-services as docker containers
- Deployed Dockerized Angular web app, API gateway, and microservices as docker containers to development server
- Administered dev server set up to run Docker Swarm on Oracle VirtualBox virtual machines on CentOS Linux server
- Designed high performance file uploading system which uses various uploading strategies, stream, parallel processing for user uploaded files
- Set up localization for Ionic Angular web app
- Planned to use Kubernetes for container orchestration
- Planned to implement OpenTracing to collect application metrics
- Planned to implement Prometheus to monitor system
- Distribute iOS app through TestFairy with provision profile from Apple’s Enterprise Program
- Resolved technical debt from legacy codes
Virtual Reality Stitching R&D, Eyexpo Tech Corp, 2018-09
- Set up OpenCV C++ development environment to be used by Java Native Interface (JNI) in Android Studio
- Set up OpenCV C++ environment in Xcode on macOS
- Assisting computer vision researcher in creating customized stitching algorithm in C++ using OpenCV library
Virtual Reality Mobile SDK, Eyexpo Tech Corp, 2018-08
- Created an Android panorama viewer widget SDK for 360 photos using OpenGL for business partners as mobile developer
- Embedded React 360 panorama viewer for webview locally on mobile app for faster panoramic image load time
- Provided documentation on how to use the Android SDK
- Published panorama viewer SDK to private repository on production server using JFrog’s Artifactory
Virtual Reality Web App, Eyexpo Tech Corp, 2018-02 ~ 2018-09
- Created a Web VR app from concept to minimum viable product (MVP) as full-stack developer
- Created highly scalable architecture SaaS (Software as a Service) cloud-based software solution using RESTful APIs in HTML5, JavaScript, CSS3, PHP, MySQL and Laravel, with tools such as NPM and Composer
- Implemented virtual reality viewer progressive web app (PWA) using A-Frame/three.js with which users can view 360 panorama photos (up to 8K in resolution) with 3D models on desktop browsers and mobile browsers, with web app manifest, service worker, and IndexedDB to create reliable, fast and engaging offline experience
- Developed a high-performance virtual reality editing tool which can be used by professional photographers, content creators and organic users to create virtual reality tours which display a list of panorama scenes (~50MB in file size each), teleportation and hotspot widgets, as well as glTF (GL Transmission Format) and GLB 3D models
- Analyzed and improved web app loading time (Google Chrome DevTools), resolving race condition between A-Frame and Angular frameworks, implemented progressive image loading for slow network which pre-loads different sizes of image blobs asynchronouly (ES6 Promise) onto system memory for faster in-app A-Frame scene loading, used Cache API to allow offline usability in absence of network, modified A-Frame source codes to implement touch controls with proper sensitivity on mobile devices
- Designed SQL database schema, created database migration and maintained data integrity
- Worked on server-side panorama image stitching tool (Hugin) to create virtual reality panorama photos, experimenting on porting to client-side and mobile
- Developed responsive frontend UI components for displaying on mobile phones, tablets and desktop using SCSS, Bootstrap, Material Design and Webpack
- Experimented client-side image resizing tool created by Web Worker and WebAssembly(WASM) to minimize server-side workload
- Integrated Google Maps API and implemented localization
- Configured, deployed and administered server EC2 instance and S3 hosted on Amazon Web Services (AWS), and managed Ubuntu server instance through command line
- Created virtual reality viewer Android app using Google VR SDK and image processor in C++, Java and Kotlin