My Info

Hi, my name is Aubrey Fletcher and this is my website. This website is a single page design, it is mobile friendly and responsive (just like me).

Resize your browser to see the layout change.

I built this site with technologies like nodejs, gulp.js, compass, sass, breakpoint and susy. These technologies make a pretty efficient and fun, workflow. To learn more, contact me at:
973-760-4119 or mbzaubrey@yahoo.com

Picture of Aubrey Fletcher

Aubrey Fletcher
Pictographic Design LLC

973-760-4119
mbzaubrey@yahoo.com


Summary of Qualifications:

Expertise in web/mobile programming with very creative and innovative ideas. 12 years experience in designing and developing e-learning, online and offline applications.

Professional Experience:

  • Sr. Programmer, Torque Creative Mercedes-Benz USA, Montvale NJ 2003-present
  • Responsible for the development of various applications utilizing Flash, Xcode, Eclipse for Android and all other appropriate programs or platforms.
  • Application development:
    Sprinter360 vehicle environment kiosk and iOS app.
  • MBUSA Alive Augmented Reality for iOS and Android. Papervision3D for the AMG/MB Visualizer (in 500 dealerships nationwide) and MBUSA.com, sprintervansusa.com, micro sites for VoicesOnline, global training courses with multiple language and SCORM and AICC capabilities.
  • Authored tools:
    Custom and lightweight AS3 TweenEngine, Event APIs and Automation scripts used in various applications by developers at MBUSA. Meta-data reader and writer for video and images. Customizable and skinnable video components used in MB, Sprinter and AMG touchscreen kiosks and web pages. Quiz components to educate and evaluate dealer technicians and sales staff. Functional ipad apps used in various video shoots.


Daily Tasks

I have been lucky to work with creative and talented people during my career. At MBUSA's Torque Creative in-house agency, it was no different. I have spent the last 12 years at MBUSA and have learned a lot. Tasks I have been involved with at Torque Creative, are:

  • Maintaining applications including ongoing updates and bug fixes
  • Creating and developing e-learning courses and interactive games
  • Managing multiple projects to meet deadlines
  • Handling creative and technical aspects in numerous e-learning courses
  • Leading full scale projects that require multiple team members with diverse skillsets
  • Creating simple systems for use by non-programmers
  • Critiquing and consulting on designs and implemented programming solutions
  • Working in a collaborative and agile team environment
  • Creative Thinking

Other work

I have worked on many projects outside of MBUSA in the past and present. Here are some:

Freelance 2000-present

  • Consulted and assisted on Nurse Betty web site for Showtime
  • Created interior and exterior 360s for Razorfish
  • Created multilingual JAK Series video app for Pfizer
  • Created calibration apps for Krämer AG pharma dedusters
  • Created a Crestor interactive kiosk for AstraZeneca

Skills

In-depth knowledge of web technologies, photography, graphic design and mobile development.

Languages

  • ActionScript 2 & 3
  • CSS
  • HTML
  • Java
  • Javascript
  • Objective-C


Programs

  • Adobe CC
  • Eclipse for Android
  • Subversion
  • XCode

Past work

Flash Artist/Programmer, CD Meyer Inc Fairfield, NJ 2000-2003

Responsible for coding games, web sites, applications and kiosks in Flash. Developed Flash kiosk applications for Commerce Bank and Point2Explore.

Education

Alfred University, BFA, 1998

I have developed kiosks, wheels stands and video player presentations for automotive and pharmaceutical brands like Mercedes-Benz, AMG, Sprinter, AstraZeneca and Pfizer. The Mercedes-Benz and AMG build-your-own experiences were customer facing in over 500 dealerships nationwide, with tracking and usage metrics. The Visualizer projects are among the jobs of which I am most proud. Creating immersive interactive interior 360° environments with the Sprinter brand, for kiosks, ipads, and websites has also been a very fulfilling experience. For Pfizer, I developed a multilingual video presentation application to be delivered in the field via thumbdrive. Recently, I have developed a demystifying market research Fortuneteller kiosk for AstraZeneca's Crestor.

My first and most consistent role at MBUSA, is to support Learning & Performance. I have developed countless elearning games, animations, video players, and interfaces for Learning & Performance. Many of the content systems that I started in 2003/2004 have been widely adopted by the team, and are still in use today. In my effort to help the rest of the Torque Creative team stay efficient and productive, I created automated build processes that have made a very big difference that I am very proud of. The automated tasks have made a consistent and easier-to-troubleshoot environment, with the added benefit of saving hundreds of hours on repetitive daily tasks.

Global Training

Global Training

Global Training courses are built for a world wide audience, are AICC compliant, and are built to adapt to various languages including Japanese. These courses have started to become available on mobile devices.

Learning & Performance

Learning and Performance

Learning and Performance courses are built in Flash, and use a broad set of APIs, games, and engaging visual experiences to inform the learner and track progress.

Apps

Here is a sample of my apps.

Microsites

Here is a sample of my microsites

Coding


The videos and animated examples on this page are in part, the result of my programming and scripting work. In this coding section, I have provided an example of my code.

Below, I describe how a simple use case an Event API that I have coded. I developed the Event API for Flash and it has been a very useful tool. It is a singleton that both sends and receives anything from bitmapdata to simple strings, across movieclips or loaded files. Because of the way my API dispatches it's event, their is no need to directly reference a function through the parent/child structure tree. This means you can call the function on a deeply nested clip or even one that has lost scope. You can send an object with any properties that you wish. The object is turned into a special afArgument, that gets broadcast anywhere that you set up a listener for it.

Feel free to try it out. You will need to use this ready to publish (fla and swc) packaged as a ZIP. For your convenience, scroll down to review a very simple use case with notes:

</>EventAPI with usage example

//afEventDispatcher is an event api. It will dispatch to a function anywhere and everywhere you have attached a listener for the afDispatcher.AF_EVENT.

//The afEventDispatcher has these two following public methods:
//.getInstance(this); Gets an instance of the of the afEventDispatcher
//.afEvent(object); Requires an argument of type Object; to pass messages to the dispatcher.

//The afEventDispatcher has one type of event:
//.AF_EVENT has the normal event properties, with the exception of the special property "afArgument." The afArgument is the object argument sent using .afEvent(object); and contains all of the objects properties.

// afEventDispatcher has two parts. The best way to try it out out is to copy both parts.
// First set up your file to receiving messages.
// Second set up your file to send a message.

//USE CASE NUMBER ONE (RECEIVING)
//In order to receive the eventObject, follow these four setup steps:

//First, point to dispatcher_AF.swc in your library path and import it.

import com.aubrey.eventDispatcherAFArgs.afEventDispatcher;

//Second, create a afEventDispatcher variable, and instantiate it.

var afDispatcher:afEventDispatcher = afEventDispatcher.getInstance(this);

//Third, attach a listener for afDispatcher.AF_EVENT

afDispatcher.addEventListener(afDispatcher.AF_EVENT, af_Event_received, false,0,true);

//Forth, write the function that will respond to the afDispatcher.AF_EVENT argument.
//This function will listen for the afDispatcher.afEvent(theObj);.

function af_Event_received(e):void{
 // Here you see theObj being read in as e.afArgument.
 trace(this.name +" af_Event_received: (afArgument.isType = "+e.afArgument.isType+")");
 switch(e.afArgument.isType){
  case "example":
   trace(e.afArgument.myValue);
  break;
 }
}


//place the ^above lines of code onto any timeline.

//USE CASE NUMBER TWO (SENDING)
//In order to send the an eventObject, you need to follow these three setup steps:

//Use the below line to dispatch the AF_EVENT with an argument object.

//First, point dispatcher_AF.swc in your library path and import it.

import com.aubrey.eventDispatcherAFArgs.afEventDispatcher;

//Second, create a afEventDispatcher variable, and instantiate it.

var afDispatcher:afEventDispatcher = afEventDispatcher.getInstance(this);

//Third, write a function that puts afDispatcher to use. The function below will dispatch an afDispatcher.AF_EVENT with an argument object.

function myExample():void{
 trace("myExample");
 var theObj:Object = new Object();
 theObj.isType = "example";
 theObj.myValue = Math.random() +" is myValue";

 // theObj gets passed into the af_Event_received as an AF_EVENT.
 afDispatcher.afEvent(theObj);
}

myExample();