Full stack developer specializing in data visualization. Experience in entertainment, financial, scientific and engineering industries.
Programming skills in PHP, Laravel/Lumen, Angular 2/4, Typescript, RxJs, MySql, PostgreSQL, MariaDb, DynamoDb, Docker, AWS, NodeJS, ElasticSearch, Flex/Actionscript, Express, Scala, Spark, C, Python, XML, Soap, JSON, Apache, Nginx, Tomcat, Java, Fortran, X-windows/Motif, TCP/IP sockets, pthreads, Omniture, Wowza, Swagger. Formerly an expert at all things VMS. Did Assembly programming on a Z80 in my youth.
|Master of Science|
University of Southern California, Los Angeles, CA. May, 1985. Major: Geophysics. Thesis: Wavenumber Filtering of Gravity Data and its Application to Interpreting Structure in the Western Transverse Ranges, California.
|Bachelor of Science|
Purdue University, West Lafayette, IN. May, 1981. Major: Geology.
|January 2017 to present||Deluxe Entertainment, Sfera division, Burbank, CA. Senior developer. Angular 2/4, PHP Lumen, Yii, Docker, AWS, Swagger. Second tier customer support. Performed hot fixes on the production Sfera distributed localization system. Lead architect for new application to manage world wide localized releases of movie trailers to social media platforms.|
|June 2014 to December 2016||Contractor, financial industry, entertainment industry. PHP, Lumen, Laravel, MySql, AngularJS, JWT, Typescript, nodeJS, ElasticSearch, ActiveMQ, Convergent, Python, NiFi, Java, Spark, Scala.
1) Created system to submit Informatica Swift packets for QA testing. Angular UI fetched and received documents from ElasticSearch and submitted them to nodeJS app which passed them to ActiveMQ, waited for the response, and then updated ElasticSearch and the UI. 2) Created call center audio transcript database. Angular UI can search for audio clips and play them back through browser. 3) Created custom processors in Java for proof of concept NiFi installation. 4) Did preliminary design work for a Kafka messaging system and a proof of concept Go application. Researched OpenStack and CiscoCloud Microservices Infrastructure.
|October 2015 to January 2016||Docler Media, Hollywood, CA.Senior Developer. PHP, Laravel, Lumen, Wowza. Designed and created a content management system for live streaming video.|
|July 2013 to May 2014||Deluxe Digital Studios, Burbank, CA. Lead Developer. Flex/Actionscript, AMFPHP, PHP and MySql, EC2, S3.
MediaRecall by Deluxe is a digital asset management system for video, audio, image and generic document content. Search on metadata to find content. Current client list includes the estate of Johnny Carson, Martha Stewart, Ralph Loren, Getty, Austin City Limits, Mayor Bloomberg, Oprah.
Was the only developer for a while, as the previous team had left or were let go. First few months were spent fixing bugs and stabilizing the platform for existing customers. Then as other developers were brought in, went on to redesign the back end tools used to ingest assets, assign them to a distributed work force, who would create clips from audio and video content, and assign metadata to assets.
Problem with the existing software include:
- New spins of tools were created for each customer or project. The tools became forks of forks. Each project had its own metadata schema, and matching database tables had to be created. As there were potentially hundreds of projects on the horizon, this was unmaintainable. I created a standardized database schema for all future projects that was more reliant on name/value pairs to store the metadata. Then for the Flex app used by the distributed workers to create segments and add metadata, I created an xml driven dynamic form generator, allowing each project and asset type to have different metadata layouts.
- Errors introduced into the metadata by the distributed workforce. This was due to an over reliance on free form text. The new tool uses constraint or taxonomy tables, and a way for workers to add to the tables for management approval.
- While previous projects had up to 10k assets to be assigned to workers, new projects had 100s of thousands of assets. I created an application to allow the managers to deal with this increase in number of assets, allowing for bulk assignments, batch assignments, and better views into what has been completed and what has yet to be done.
|August 2011 to March 2013||Disney Consumer Products, Glendale, CA. Developer. Flex/Actionscript.
Redesigned Disney Consumer Products Digital Media Center, which allows licensees to peruse and download digital assets for use in their product. Redesigned UI to make searching for assets more intuitive. Revamped interface with Omniture for more relevant metrics. Redesigned KAT, a metadata editing tool used to add collections to Digital Media Center. Migrated this AIR app from Flex 3.2 to 4.6, corrected the use of XML and data providers, better error handling, drastically improved performance on large data sets. Applications interacted with Documentum and Oracle. Created a Flex/Actionscript app to train clients on the use of their order management system. Helped with some PHP and JQuery development.
|March 2010 to May 2011||4Over, Inc, Glendale, CA. Developer, Flex/Actionscript, PHP and PostgreSQL.
Created Flex app that trade customers could embed into their website to allow their customers to design, submit and manage printing product jobs. Flex app was highly customizable for each vendor using different layouts controlled by php scripts, and selection of different css swfs. Created library of design tools for app. Wrote php scripts to retrieve and store data in PostgreSQL database. Wrote queries and performed PostgreSQL database administration.
|February 2004 to February 2010||Short Term Contracts, Developer.
HuTechnologies(later called Trevido), Lead Architect. Using Adobe Flex, Java/JSP, PHP and MySQL, created a metadata entry system for Informatica Powercenter. Custom Trees, Lists and Forms, and the heavy use of dynamic Context Menus allow user to navigate through, insert and modify rows in 52 table relational database. Flex app was designed so that layout of widgets completely controlled by PHP and JSP scripts via XML.
Advantage Rental Car, San Antonio, TX. While working from home in Los Angeles, created internal website on linux using PHP and Adobe's FLEX to monitor and perform maintenance of their VMS cluster. Rewrote legacy C and socket application on VMS for better reliability and throughput. All internet queries regarding rates and reservations go through this application. Created a prototype countertop display system using Flash/Flex and PHP/MySql to route frequent customers directly to their rental car.
Atomic Curve, Tustin, CA. Using PHP, MySQL, AJAX, and SOAP, created a web interface to the Adobe Document Server. Customers of the graphic design firm can make changes to brochures and other printed material, download resulting PDF files, and place orders for professional printing.
GMV Video, Australia. Using PHP and MySql, created prototype website to sell DVDs in multiple currencies. Created Flash application to preview video clips, which could be placed on other user's websites allowing them to earn commissions for routing customers to the main website.
Used PHP, MySql, Flex/Actionscript, AJAX to create a multi-lingual, multi-country membership site aimed at the Latino fitness community.
Used PHP, MySql, and Flex/Actionscript to create a social networking website where independent artists can promote and sell their music.
Created a Java jsp/Servlet interface to monitor and maintain Informatica workflows.
Created the websites for Vintage Muscle Mags, Johnny Vo Photography, Dan Lurie, Martin Pabon, Martin Gantman, NABBA Mexico and Montana Systems gym equipment. Created and maintain website MuscleMemory, which has been written about in various bodybuilding magazines.
|April 1999 to February 2004||
Instinet Crossing Development
Manhattan, New York (April 1999 to October 2002)
Los Angeles, California (November 2002 to February 2004)
Designed and created a client-server process to transfer customer stock orders via tcpip sockets across a firewall to Instinet's Crossing System. Customers ftp pgp encoded orders to a semi-public Linux box. The server process on the Linux box detects the encoded orders and notifies any connected client process on the VMS machines behind the firewall. The VMS process creates a script which is submitted to a batch queue. The batch job fetches the orders across the socket, process the orders, creates reports and sends the reports back to the customer via the socket.
Redesigned Instinet's Crossing System to handle multiple crosses. Ported the 15 year old code from VAX C to ANSI standard DEC C, porting from Vax to Alpha VMS. Rewrote major sections of the code to use object oriented-like techniques. The code was used in a new joint venture Japan Cross. Spent three separate months in Tokyo installing hardware and software, and training users. (The joint venture has since been sold back to Instinet.)
Designed and created a FIX interface to the Crossing System. The application, running on VMS, is multi-threaded and uses sockets to communicate with a Javelin engine. Customers can send single and list orders into any of the crossing databases, and receive order status and execution reports. Created Java applet using Swing to create complicated test scenarios for the FIX application.
After moving back to Los Angeles, continued production support of both the US and Japan's Crossing System.
|July 1992 to April 1999||Jet Propulsion Laboratory, Pasadena, CA. Multiple positions:|
|January 1997 to April 1999||
GUI programmer, database programmer, systems administrator
Using C and Motif, created graphical interface to allow users to perform SQL searches of an Oracle database for MSAS (Multimission Spacecraft Analysis Subsystem). This software is being used for the Cassini Mission to Saturn.
Performed programming (VMS & Unix) and computer systems administration and management (VMS and Mac) for Kidsat, a project where high school kids designed and managed an experiment that flew on the space shuttle three times.
|January 1995 to January 1997||
During the two years between the end of the SIR-C payload (see below) mission operations and the startup of the follow-on mission SRTM, was responsible for maintaining the hardware and software configuration. As it was decided that a third flight would not use the Ingres relational database product as in the first two flights, I rewrote certain SIR-C ground system software to use VMS indexed files in standard C instead of Ingres SQL, and the windowing interface using Motif instead of Windows4GL.
|July 1992 to January 1995||
Systems Administrator, Systems Manager, Network Manager, Programmer, Ingres Systems Administrator, Ingres Database Administrator
Primary systems manager for multiple DSSI VAX clusters with 10 Gbytes of disks and 20 VAXstations. Primary Ingres systems administrator. Secondary Ingres database administrator. Wrote various scientific graphical programs using FORTRAN, C, Motif, INGRES (SQL) and GKS. Responsible for selecting new equipment and preparing purchase orders. Assembled and installed new equipment. Responsible for selecting desired hardware and software maintenance contracts. Performed self-maintenance on certain hardware devices. Managed two other systems administrators.
In January of 1994, moved all equipment from JPL to the Johnson Space Center in Houston, TX. Installed equipment in the Payload Operations Control Center (POCC) in the Mission Control Center. Spent ten months at the space center in support of SRL-1 and SRL-2 (STS-59 and STS-68). While in Houston, was the primary interface between JPL SIR-C Mission Operations team & our European counterparts (X-SAR), and the people at JSC. Team leader for console position during each mission. Returned all equipment to JPL in November of 1994. Responsible for archiving all mission operations data and log files.
|May 1991 to June 1992||
Programmer, Short term contracts, various companies.
Santa Fe Pacific Pipeline, where I wrote an archiving system on the VAX for their remote Programmable Logic Controllers; Jet Propulsion Laboratory, Ocean Science Group, where I wrote various plotting routines using IDL on a Sun; and USC Department of Geological Sciences, where I rewrote a Grain Shape Digitizing System that I had created 8 years before.
|July 1989 to April 1991||
Systems Manager and Network Manager
Responsible for the day to day operations of 13 MicroVAX and VAXstation computers, 1 RISC Unix workstation, 8 PCs and 25 Macintosh computers, on a wide area network covering three sites. Supported over 200 users. Negotiated with sales representatives for the purchase of hardware, software, and maintenance. Performed scientific programming.
Was laid-off along with almost one half of the company, including 6 of 7 in the computer support department.
|June 1987 to July 1989|
Designed and implemented a flat-file database for patient and animal information for the collection of Positron Emission Tomography data. Performed scientific programming for the processing and presentation of PET imaging data. Created an automated archival and retrieval system of PET images to optical disk. Managed network of 9 MicroVAX computers and 2 PCs.
|July 1985 to May 1987||Senior Programmer
B.I.F., Camarillo, CA.
Designed and developed a Data Acquisition and Control System for a metropolitan water districts. This system, consisting of two networked MicroVAX computers, communicating with remote microprocessor over radio and leased-lines, allows operators to monitor and control all aspects of water distribution. The two host configuration allowed dual redundancy of collected data, as well as continued data collection and control in case of single computer failure. Project leader for team of four programmers.
|September 1984 to June 1985||Geophysical Programmer
Union Oil, International Division, Los Angeles, CA.
Developed an interactive 3-D seismic interpretation system using VAX computers and various high resolution video graphic devices.
|During Graduate School||Computer Consultant
1) Built optical digitizing microcomputer on S-100 bus using Z80 cpu for sedimentological laboratory to collect size and shape data of sand grains. Wrote programs to perform Fourier analysis of data. 2) Wrote interactive gravity modeling programs for oil company. 3) Wrote communication program to transfer data from CP/M system to VAX computer.
|August 1981 to August 1984||
Graduate Research and Teaching Assistant
Department of Geological Sciences, University of Southern California, Los Angeles, CA
Programmed VAX, PDP and CP/M microcomputer for research in gravity, paleomagnetic and seismic studies.
|Summers of 1980 and 1981||Geophysicist
Anaconda Copper Company, Denver, CO.
Responsibilities included collecting, processing and interpreting geophysical data, scientific programming, installing PDP microcomputer in Alaska field office, and creating a data transfer telecommunication program.
- DECUS Essential Tools Collection, 1996 for OpenVMS Alpha and OpenVMS VAX
A program to compare the contents of two directories on the same or different hosts. (VS0174) [.COMPARE_DIR]
- Jameson A.R., Li F.K., Durden S.L., Haddad Z.S., Holt B, Fogarty T, Im E, Moore R.K., "SIR-C/X-SAR Observations of Rain Storms", Remote Sensing of the Environment, 59:267-279 (1997)