<UPWORK>
2020 - Now
// Freelance Front-End Developer
- Created a real-time, React-based maritime mapping application that provides situational awareness of boats, airplanes, and other vehicles in the area. Primarily meant to be used on touch-centric computing platforms at sea to allow users to view the position, velocity, altitude and registered info of all vehicles over the past 5 hours on a customizable map. Data is sourced from ADSB and AIS and fed to the application via WebSockets and Google protobufs.
- Designed and implemented business and personal webpages for numerous clients in vanilla HTML/CSS/Javascript, as well as Wix and Webflow.
<CISCO SYSTEMS>
July 2011 - 2018
// Software Engineer III
- Worked on the React web client for Cisco Spark, an enterprise chat and web conferencing solution. Worked with team to implement meeting scheduling and notification, as well as audio/video conferencing using WebRTC.
- Created a Python-based network impairment testing framework using the Linux network stack.
- Worked with team to integrate machine learning algorithms into Webex to automatically detect poor audio conferencing quality and notify the user with possible solutions.
- Worked on end-to-end test automation framework library to remotely control Webex and Telepresence endpoints using Selenium and AutoIt GUI automation. Created custom RPC agent and client to do remote shell and AutoIt commands.
- Worked on optimizing support for Telepresence calls into Webex meetings, allowing those endpoints to better handle network impairments such as bandwidth restrictions or packet loss through the use of multiple video quality streams. Specifically worked on packetization and depacketization of RTP/RTCP extension messages for stream negotiation.
- Created a one-click, automated audio quality testing framework that automatically sets up an audio conference using the latest nightly Webex build and grades the audio quality using a centralized POLQA server. Quality is also tested under various simulated network conditions.
- Ported an audio Quality of Experience (QoE) library from Windows to Android, iOS, Mac, and Linux. This library generates audio quality statistics about audio conferences in real-time.
- Did performance and server fail-over testing for RabbitMQ. Wrote performance testing application in Python that simulated thousands of clients publishing and consuming from many message queues and tested server resilience and failover recovery rates.
- Created C++ DataConnector API that provides fast, reliable message-based communication between several servers via RabbitMQ. Messages are encapsulated in either XML or JSON and passed to RabbitMQ via the AMQP protocol. The API is completely thread-safe and also handles server fail-over and resend of lost/timed-out messages.
- Created a pure Javascript-based remote desktop viewing client that is now being integrated into the next generation Webex Meeting Center. Leveraged HTML5 Canvas, WebGL, and Broadway.JS for video rendering and WebSockets for network transport.
- Created a WebSocket H.264 streaming server in C++ to stream data to JS-based remote desktop viewing client.
<UCLA>
Sep 2009 - Oct 2009
// Lead Programmer for Body Hack project
- Designed and coded Body Hack, an interactive, full-body, purely gesture-based game best described as “karaoke with your body”, in cross-platform C++.
- Integrated video playback into a 2D game framework using libVLC and SDL_ffmpeg.
- Implemented real-time image processing and blob detection on camera input using OpenCV to detect player gestures and outlines.
- Created final version of Body Hack within 1.5 months in order to exhibit it at the UCLA New Wight Gallery and enter it into the Mail Room Fund Competition.