Generating Watercolors with AI

We all have seen how artificial intelligence (AI) has been used with photography to do things like fix photographs in Adobe Photoshop, apply fun filters to photographs on Instagram, or transform a photograph to embody the style of a famous painting. The last example, style transfer, uses an AI model called a Generative Adversarial Network (GAN) and can also be used to generate entirely new images based on training it with a collection of images. This is what blew my mind this week.

I am part of a global organization at Microsoft, Commercial Software Engineering (CSE), where we help partners and customers with their most complex software engineering challenges by coding with them. The team is made up of software engineers, data scientists, and program managers like me who all love to hack and build stuff. We just completed a week-long hackathon combining virtual and in-person teams where individuals proposed ideas that interested them to work on and explore – in order to build a team to build something in less than four days.

Meeting Paul

Michael and Paul

Paul Butler, a software engineer, recent Computer Science graduate, and CSE team member, proposed an idea to use a Style GAN 2-ADA to generate artwork. I had been learning about GANs and my colleague Kevin Ashley just published a book on creating art with AI – and that really peaked my interest. I had never met Paul before, but we quickly found a common thread and interest – as we both went to college in Arizona: he’s an ASU Sun Devil and I’m a UA Wildcat – and he’s super smart. Paul knew how to run the GAN using Python but he didn’t have a training image set to work from – and that’s where I was able to help.

30 Years of Artwork

Ever since I started college studying architecture, I have been keeping visual journals of my artwork, taking a journal and compact supplies with me to document my journey when I travel for work or leisure. Having done this consistently for thirty years, I have filled more than 20 journals with drawings, watercolors, collage, pop-up craft, stickers, circuitry, and photographs. When the pandemic started and I had some time where I couldn’t travel, I scanned and categorized the pages using Adobe Photoshop Lightroom, adding dates, locations, and tags to the images identifying media and medium. Ending up with a collection of over 2,000 journal pages, I had tagged data set of imagery. I proposed to Paul that we use a subset of the pages, 315 of my watercolors, to train the GAN to make an AI that could create watercolors.

The Training set of 315 Watercolors


I had started watercoloring when I was 18 on a summer trip with Chuck Albanese, one of my architecture professors to sketch and watercolor in Italy and Greece. Watercoloring starts out hard as you learn to understand how to control the water and color, but like every skill you can get better at it with practice.

Pantheon, Rome in 1989
Joshua Tree, CA in 2020

I had just finished my first year of architecture school where I learned from Kirby Lockard how to accurately draw freehand perspective, which is crucial in watercolor as a painting often start with a base drawing in pencil or pen. I loved watercoloring because it was portable and quick so I could take my creativity with me wherever I went and create something in as little as 15 minutes.

Travel watercolors during COVID lockdown via Microsoft Flight Simulator

Journals as Memento Collections

Ever since that trip, for more than thirty years, I’ve been sketching and watercoloring and with the Grail Diary from Indiana Jones and the Last Crusade as inspiration, I started using journals to record my journey, thoughts, and ideas and to collect the ephemera that I gather along the way. What I found is that while I am sitting somewhere creating artwork to go on a page of my journal, my mind is recording everything around me, the people I meet, the conversations I have, what else I observe, and my feelings. The artwork turns into a mnemonic for the moment, a memento. My journal is a serial collection of personal mementos that I can openly share with others, knowing that I don’t have to write a personal narrative to record it. When I look at a page in my journal years later, I instantly recall the experience from years earlier.

Adobe HQ, Noida, India

Training the GAN

Paul started working on building the Python code to generate images and I started refining my watercolor collection, isolating the images on pages that had other content like line drawings, collage, and making a consistent collection of watercolors. Over the course of more than thirty years my style has evolved so there is a huge amount of variability in the collection, with the only common thread being that they were all watercolors and all created by me. Paul wrote the code so that a single numeric value from 0-999, a random number seed, would be the only input variable to generate each image. He ran the AI model for a few hours and we started seeing results come out of it and I was blown away!


Mementos in the Images

The AI found patterns and my techniques in the watercolor collection and started creating new unique abstract images that instantly triggered memories in me. I not only recognized elements in the images but those images triggered memories of the experiences that I had when creating them, combining these memories in a way that only happened for me in dreams. These images were mementos that spanned time and space.


The image above, #0780 reminds me of the time that I took my son Sam, then 12, to a nude figure drawing session at the local art store five years ago, where we both spent the evening sketching and painting. As you might imagine, it was a memorable evening, and seeing this image, I was brought right back there. As many of my watercolors over the years have been of monumental architecture, there is a heavy influence on the AI model for that kind of subject. In this generated artwork, I also see a hint of the architecture of Antonio Gaudi, one of my favorite architects whose work is the subject of a number of the paintings in the training model.


My Style in the Images

In the more than 1,000 generated images, I saw my style, composition, coloration, linework, and brushwork, but in very abstract forms, much more abstract than I’m comfortable with consciously doing in my work which today would be best characterized as Urban Sketching. Paul tells me that we can do much more to increase the variability, improve the quality, and refine the model. You will likely notice a recurring theme in many of the images of a monumental building on the right of the image; this is either an artifact of the AI model, or a hidden propensity for me to paint buildings on the right side of a watercolor – definitely an interesting direction for investigation. Paul is anxious to build a model against my whole corpus of artwork, which sounds like a very cool idea.


Putting the Artwork in a Gallery

I took more than 200 of the generated images and put them in a virtual art gallery using my Galeryst site. Generated artwork in a generated gallery seems very appropriate. I originally created Galeryst to share my journals with others as bound journals don’t typically exhibit well in physical galleries.

Generated Watercolor Artwork on Galeryst

Sharing the Entire Collection

Generated Watercolors in Lightroom

I’ve shared the entire collection of generated watercolor artwork using Adobe Photoshop Lightroom because I want your feedback on the images. You can also see a slideshow of the entire collection on the Lightroom site as well if you click on the … in the upper right of the page. Here is the feedback I would love from you:

  • If you like an image, click on the ❤️ heart button in the lower left corner.
  • If an image reminds you of something or somewhere, please click on the 💬 comment button in the lower left and leave a comment.

On Adobe Photoshop Lightroom Mobile, there’s a cool feature to “Choose Best Photos”. I ran the analyzer on the collection with a quality threshold of 16, and these are the top 16 that it picked:

Best 16 Photos as Chosen by Adobe Photoshop Lightroom

Pretty cool, right?

Mars Perseverance Landing with MakeCode Arcade

I look back at one of the first video games that I remember having fun playing: it was Lunar Lander created by Atari. Not only was it a game in the arcade which cost a shiny quarter per play, but it also ran on the TRS-80 computers in my schools computer lab which were free for me to use. I liked that deal especially as I was learning how to use BASIC programming to make the pixels move on the screen of those computers. For me, and many kids of my generation, computer games, very basic computer games, were our draw to computers. I poured through computer magazines which had listings of the BASIC code for games that I typed in, line after line. Debugging was going through the code again line-by-line until I found each of my typos. I then started on my own ideas: using a for/next loop, I was able to make a spaceship fly across the screen just like I saw the Kirk’s Enterprise accelerate to warp speed. I was hooked.

That’s how I started coding- that’s why I started my path in software at the age of 11 with games like Lunar Lander.

Lunar Lander

When I was sent an AdaFruit PyBadge by a colleague in December to experiment with, I immediately thought back about the games like Lunar Lander that inspired me as a young boy to start coding.

Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino
Adafruit PyBadge

The Adafruit PyBadge is a mini $34.95 computer that you can code with MakeCode Arcade, CirciutPython, or Arduino. You write the code on a computer and download it to the device which has a small color screen, buttons, lights, sensors, and a speaker, and various connectors to enable all sorts of other circuitry. I immediately thought of Lunar Lander but I also heard about the NASA Perseverance mission to Mars that was underway and thought I might try to create something similar for the Perseverance mission by the time it lands on Mars on 2/18/2021.

Once I started researching the mission, I realized that it was way more complex than the lunar lander. My challenge was to make a game around the landing of this rover on Mars. Here are the steps:

  1. Capsule enters Mars atmosphere and decelerates with heat shield
  2. Capsule slows down with parachute
  3. Heat shield ejected
  4. Lander drops out of capsule and starts rockets
  5. Lander gets close to surface and lowers rover to ground with cables
  6. Lander flies off
  7. Rover starts it mission to explore Mars looking for signs of ancient life.

My mission was to create a game around that so I started building it with MakeCode Arcade, using the drag and drop interface to make something fun. MakeCode is a web-based programming environment for kids that can be used to program MineCraft, hardware devices like the BBC micro:bit, Lego Mindstorms and games. My first experience with MakeCode was to animate the BBC micro:bit on the bag I use for my journaling/art supplies, which I’ve shared on Thingiverse. MakeCode Arcade is a version of MakeCode that makes it easy to build games with sprites, animations, and interactivity. The beauty of MakeCode is that you can switch between the graphical block-based programming and the code view to see that they do the exact same thing – a great way to “graduate” to text-based coding.

I was able to get pretty far but I ran out of time as the actual Perseverance rover will land on Mars in two days. I’ve shared the source code so anyone could try it out and use it as a starting point for their own experimentation. The amazing part about the Perseverance mission is that the whole landing sequence will have to be done via computers without direct human controls, most likely with artificial intelligence, since the time it takes for radio signals to travel between Mars and the Earth is between 4.3 and 21 minutes.

The gameplay is this: once the lander is detached from the capsule, use the down arrow to slow the descent. Once close to the surface, press the A button to release the lander. The lander can then explore the surface of Mars by pressing the left and right button, pressing A again to send a pulse looking for water underground. That’s as far as I got with the time that I had. Anyone is free to tinker, modify, and adapt it, just please share with me what you do with it. I’d love to see where this goes.

I think that the possibilities for kids today to learn coding and build fun games that can be loaded onto a tiny computer is so cool.  The block-based programming makes is so easy to learn the basic concepts of coding and creating fun games.   I printed a basic case for the PyBadge with my 3D printer and here’s my Perseverance game playing on it.

Perseverance Game on PyBadge in 3D printed case.

What can your young coder create today?

Animating your Web Meeting Experience

Like many of you in the pandemic, many of the hours of my days are spent in web meetings. For me it’s a combination of Teams, Zoom, WebEx, and Google Hangouts. Turning cameras on really helps to connect to everyone, even though it’s through a small array of dancing pixels. I’ve had fun using tools like Adobe Character Animator and OBS Studio with a reMarkable tablet to turn my camera feed into something a bit more interesting.

My COVID-19 Puppet in Adobe Character Animator
Using a reMarkable tablet with OBS Studio as a transparent whiteboard

Using Adobe Illustrator, I’ve made a custom frame that I’ve started using in OBS Studio to express myself, similar to how I might use my attire or decorate my workspace in an office setting. I apply a Chroma Key filter in OBS studio

My frame created in Adobe illustrator and saved as a .png image.

I then composite a number of text and image elements onto that have meaning to me – including a slideshow of my artwork. It’s been a great conversation starter before the start of a meeting. But I wanted to do a little bit more….

The frame and other sources in OBS Studio

Adding Animation

I’ve always thought that adding a little bit of animation might be fun with the free Microsoft Photos app. If you are involved in selling or talking about real world items or even virtual ones, there is a great opportunity to share animated 3D models of those items in your camera feed as well. Here’s how I did it:

The frame in the free Microsoft Photos app.
  1. I opened my frame .png image with the Microsoft Photos app and selected Edit & Create…Create a video with Music.
  2. I named the video Animated Frame and pressed OK.
Naming the project so I can find it later.
  1. I tapped on the 3.0 timespan on the first frame in the storyboard and changed the timespan to 10 seconds.
Editing the duration
  1. I tapped on the 3D effects button to open the 3D Effects pane
Selecting 3D effects
  1. In the 3D library tab, Sci-Fi & Fantasy group, I selected the Landing UFO and it was imported and showed up on my frame.
Adding a Landing UFO to my frame.
  1. I then dragged and resized the UFO to the upper corner of the frame.
Repositioning and resizing the UFO.
  1. In the pane, I changed the quick animation to Hover and reduced the volume to 0. I also dragged the timeline span to cover the whole duration of the video.
  2. I wanted to add one more effect, so I clicked on the Effects tab and added Plasma sparks, then moving it to the upper right and reducing the volume to 0. I also changed the timespan to cover the whole video duration.
Adding the plasma sparks.
  1. Now that I was done with that I clicked on the Done button and then the Finish video button, selecting the High 1080p video quality and pressing Export.
  2. I saved the file to my computer as Video Frame.mp4, resulting in this video
The final video that I will use.
  1. Next in OBS studio, I added a new Media Source called Video Frame, selecting my Video Frame.mp4 as the source file and checking the Loop button.
Adding the video as a media source in OBS Studio
  1. I added a Chroma Key filter to the Video Frame media source
Adding the Chroma key – you may need to adjust the settings to have the best effect for your animations.

And I have an animated saucer and plasma sparking in my camera feed once I press the Start Virtual Camera button in OBS Studio. The camera will then show up in my list of available cameras as OBS Virtual Camera. I have the frame image right behind the video frame image so I can turn off the animations if they get too distracting.

In OBS Studio with all of my sources ready to run a Virtual Camera
Resulting video composite.

The way that I look at it, If all people see of me is a rectangle of pixels the size of a credit card, I want all of those pixels to count. Please share what you create to make your web meetings more fun.

Using a reMarkable Tablet in Web Meetings

Scott Hanselman posted a video earlier this month that gave me an idea. He showed how he used OBS studio and Microsoft Whiteboard to do a transparent glass whiteboard in Microsoft Teams and I saw in it an interesting way to use my reMarkable tablet to do something similar.

reMarkable Tablet

Working from home, like many of you my primary device for work is a desktop computer which does not have the drawable surface and pen of a Microsoft Surface device. Recently, I got the new reMarkable 2 paper-like tablet and I really like it. The device works with a dedicate desktop app that, in addition to helping synchronize notebooks, it has a Live View capability where the display on the computer is in sync with the tablet and update every time the page on the tablet drawn on. I was able to take the live output from the reMarkable app on my PC as an input source in OBS Studio and replicate the transparent glass whiteboard effect that I could use during Microsoft Teams meetings. If you aren’t familiar with it, OBS Studio is a free, open-source application for Windows, macOS, and Linux that you can use to stream and record from your computer, mixing video, desktop windows, audio sources, and graphics. Here is how I did it:

  1. On my reMarkable 2 tablet, I added a new page to a notebook, using the blank page template and set the orientation to landscape.
  2. On my PC, I started the reMarkable app
  3. On my reMarkable tablet, I turned the LiveView (Beta) option on in the share menu
  4. Once I did, that I was prompted on the app on my PC to accept the LiveView request. At that point, the app’s screen mirrored my tablet.
  1. In OBS Studio, I added a Video Capture Device for my webcam and stretched it to the size of the screen output.
  2. I then added a Window Capture source, selecting the reMarkable app as the Window.
  1. Now the whiteboard is positioned over the video capture device. Before I resize it, I need to crop the edges.
  1. I drag the edges of the new Window Capture element with the Alt key pressed to crop out the frame and chrome around the whiteboard.
  1. Now I resize the whiteboard so it covers my Video Capture Device.
  1. The last thing I do is add filters to the Window Capture to make it all work. Select the Window Capture source, right click and select Filters…
  2. Add a Color Correction filter to make the white background green.
  1. Add a Chroma Key filter to remove the background. You may need to adjust the Similarity value if you use gray pens on the reMarkable.
  1. Add another Color Correction filter to make the black text white.

And then you can stream, record, or use OBS as a Virtual Camera in your online meetings. The whiteboard drawing from your tablet is saved and you can easily export it to a PDF or image and it is in the video as well.

A transparent whiteboard drawing with a reMarkeable tablet.

Give it a try today and add more drawing to your online meetings!


Some users have pointed out a limitation to the LiveView (Beta) feature in the reMarkable app where erasing on the tablet does not immediately erase on the LiveView. A quick fix to refresh the LiveView is to tap the Full-screen button in the lower right corner of the app to make the app go full screen, and then tap it again to go back to the original size. This triggers a refresh of the LiveView with the erased ink. I reported this bug to the reMarkable team.

The past few years I have been doing coaching and mentoring and have found it greatly rewarding helping others. Most people were finding me through my work at Microsoft and LinkedIn but I thought it was time that I launched a website focusing on it. My specific specialty is helping people combine their creative passions with their love of technology. Take a look today at

Take a look at what my clients have to say, the reading list, and the video list. I’d love your feedback, and if you want to book an appointment to discuss your career, please fill in the form on the home page and I’ll get back to you.

Painting the Blue Sky Crimson

With the warm Cote d’Azur late afternoon sun on my neck, I looked out on the deep blue cloudless sky of Nice and I knew right there that when I painted the blue sky it must be a bright crimson melting to yellow. Capturing the past two weeks in watercolors and sketches was my way of chronicling my family vacation from Spain to France. I have been doing a type of art/travel of journaling for thirty years now, punctuating my travels into individual pages in a leather-bound journal filled with watercolor paper. Now I was taking the scene in front of me and reconstructing it on one of those pages.  To explain how I constructed this specific painting I’d like to give you a bit of the story on how my style developed. Since I started watercoloring 30 years ago, I had learned and perfected a conservative wet-on-dry watercoloring technique perfect for portable watercolors and journals but now I was experimenting with a much more random whatever-may-come wet-on-wet vibrant-color method. I was trying something new and it was exhilarating.

To give a bit of a background, I learned watercoloring when studying architecture and always strived for accurately representing the colors that I saw. I used a travel watercolor set with nine mixing pans which allowed me to mix and develop a color off the page, and when it was just right, I filled my brush with it, and stroked on the page of the journal composing a colorful painting. The synthesis of color adjacent to the white of the paper gave the watercolor it’s unique feel. It’s a very safe method and the interplay of chroma was found in the intersection of opposites, mixing the red with the green, the blue with the orange.

Tarangire Safari Lodge, Tanzania, 2001
Tarangire Safari Lodge, Tanzania, 2001

The funny thing is that my drawing technique is the opposite of safe. My preferred drawing tool is an ultra-fine-point Sharpie pen with a deep black waterproof ink whose marks are indelible, definite, undoable. I always liked deep, dark, marks, never erasable graphite. My affinity towards pens over pencils started also in architecture school when I tried publishing my work with the common tool of the time, a Xerox photocopier. Back then, the photocopier reproduced the subtle shading of pencil drawings horribly so I gravitated towards the crisp, dark, blackness of fountain pens which flowed an opaque contrast onto the white paper. My favorite was the Lamy Safari, which unlike many I’ve used was extremely reliable. The black music of ink flowed from the nib with ease and fluidity keeping up with my ambition to chronicle places.

With that fountain pen, I honed my forgiving

Sagrada Familia, Barcelona, 1992
Sagrada Familia, Barcelona, 1992

sketching style living up to Mike Lin‘s mantra “be loose.” I developed my
poché styles of stippling, crosshatching, and controlled scribbling, understanding that the texture and tone mattered more than the color. Put together with a mastery of freehand perspective taught by the late Kirby Lockard at the University of Arizona, my style started to develop. I combined accurate perspective with a loose sketch style to quickly capture places, moods, ideas, notions, and the shapes that inhabited my vision. Nothing was out of bounds, musicians, animals, street scenes, doodles, all inhabiting the page along with the ephemera of my travels documenting my journey.

Always wanting to try new tools, I purchased a new travel watercolor kit online with an interesting array of 18 vibrant colors but with only two mixing pans. This forced me to try developing my colors on the page. I used a wet-on-wet on wet technique where I first wet the are that I wanted to color with clean water and then added dabs of color to parts of the water puddle on the page. The pigment particles suspended in the water spidered out across the puddle blending with other colors dispersing with their entropy. The flexibility of my journal meant more difficulty controlling the water as it inched towards the edges of the page aided by gravity and limited by the evaporating water. This was the challenge that I jumped at. A few months earlier, I had met up with some Urban Sketchers in London to spend the afternoon sketching and saw firsthand in Homephoenix Wong a watercolorist who purposefully painted in the wrong colors. It was marvelous seeing yellows, vermillion, and purples in a London overwhelmed by grays and browns. I had to try this.

Girona, Spain, 2018
Girona, Spain, 2018

What draws me to a scene asking me to sketch it is typically a combination of interesting geometry, depth, and contrast. Odd angles, hard and soft edges, and dramatic curves make the interesting geometry. A foreground that draws you into to a midground, in front of a background gives me the depth. Having the darkest points in the scene adjacent to the brightest points introduces the contrast that sets the mood. I then can interleave the colors through the composition to develop the personality of the sketch. The sketch is a scaffolding for the colors.

That gets me a back to the color of the sky. Color affects me. As I walk through a field of sunflowers in Provence, as I touch the red stones of hilltop Roussillon, The colors imprint on me begging my hand and eye to use them to chronicle the journey. By the time I had traveled from Gaudi’s Barcelona to the medieval city of Girona, to Provence and finally to the sundrenched Nice that a striking red and deep yellow had to get out onto my page. That’s why I painted the blue sky of Nice crimson and yellow.

Nice, France, 2018
Nice, France, 2018

My Story

Since a young age I was always good with computers. I spent many years of my adolescence tinkering on a personal computer: first TRS-80s at school, and then an IBM PCjr at home. It was a logical progression from building cities with Lego blocks to building programs in BASIC on a computer. At the time, no one understood what I was doing, and I had a difficult time explaining it to my family.


When I was in high school, I kept my interest in computers but also developed an interest in architecture and design. I attended the Career Discovery program at Harvard’s Graduate School of Design and found that I would love architecture school. Based on that experience, I enrolled in the College of Architecture at the University of Arizona. I did well academically, always keeping in tune with computer technology by working as computer lab monitor and as a computer salesperson at the university bookstore. I loved design. I designed everything from airports to houses to chairs to transportation systems. Each summer while I was at Arizona, I worked for Donald Wexler, AIA, first as an office assistant and later as a junior draftsman. I was able to see first-hand how an architecture office worked. The only computers in that office were used for word processing. As school, I used the computers available to me as tools to help with my tasks but I found then hopelessly rigid and underpowered to replace my simple sketchbook.

When it came time to select a topic for my thesis project, I decided to build Charette a prototype for a pen-based portable architectural design tool based on the architect’s sketchbook. The idea was to take the flexibility and informality of a sketchbook and combine it with a computer. Using tools like Fractal Design Sketcher and AutoCAD on a GRiD Convertible computer, I was able to demonstrate a vision of a portable design tool for architects. In my final year of architecture school, I saw two things: there were better building designers in my class than me and that I was better at computers than anyone else in my class. My mentor and thesis professor, Charles Albanese, AIA gave me this wonderful piece of advice: find what you’re good at and what you like and become the best at that. From that advice, I decided to go to graduate school to combine my aptitude for computers with my love of architecture.

I found the perfect program: UCLA’s School of Arts & Architecture had a Master’s of Architecture program specializing in Computer Aided Design Tool Development. I was accepted to the program and under the guidance of Charles Eastman, Robin Ligget, George Stiny, and Murray Milne, I learned about CAD Software Development. I learned the basics of C and C++ programming as well as how to use programs like WaveFront, SGI Performer, AutoCAD, and Photoshop in the context of architectural design. While at UCLA, I was employed in a work-study program at the UCLA Medical Center Computing Services as a network technician. The CTO of the Medical Center, Dr. Mike McCoy was interested in my research with pen computers from Arizona and I was able to work with him investigating the use of a pen computer as a digital patient record tool for medical professionals. For my graduate thesis project I built a CAD tool for constructing quadrilateral meshes for curtain wall design based on OpenGL and MFC.

CAD Software

Having received my Masters of Architecture Degree, I found a job with Tartus Development, Inc., a consulting firm in San Rafael, California which specializes in building CAD software for the A/E/C industry. I have been with Tartus since January 1995 and have grown to the role of Lead Software Architect. I have worked on various projects, but my main focus has been developing BC Framer for Boise Cascade Corp., a tool for automating the production of working drawings for floor and roof framing. Throughout my time at Tartus Development, I have investigated and used many technologies including MFC, the Standard C++ Library, OpenGL, Open Inventor, Ricoh DesignBase, AutoCAD, OLE for Design and Modeling, Microsoft XSG, XML, XSLT, BeOS, and Microsoft .Net.

Mind Mapping Software

In January of 2003, I started at Mindjet LLC in Larkspur, California as the Software Development Manager, leading a team of software professionals to develop MindManager 2002 for Tablet PC, released in April 2003 and MindManager X5 Pro, released in October 2003. I then moved to the new Business Solutions Group at Mindjet, where I will be working to design and develop new and innovative uses of MindManager X5 Pro. That role evolved into evangelism of the solution platform where I created the popular Mindjet Labs website.

Media Experience Evangelist

In April 2007, I joined Microsoft as an evangelist focusing on media and entertainment scenarios.  I focus on explaining and demonstrating technologies like Windows Azure, Xbox, WPF, Silverlight, Windows, Windows Phone, and most recently the Kinect Sensor.  In this role, I have worked with some of the largest media companies in the world, including Adobe, Disney, 20st Century Fox, Time Warner, CBS, Netflix, Sony, and Hulu and even had the opportunity to work with Ice Cube and interview him.

Creative Experience Engineer

Throughout my time at Microsoft, I have had roughly the same role, one of a creative experience engineer and a technical evangelist, explaining and demonstrating software development technologies.  Experimenting with technology and hacking together solutions with partners is a core part of that.  At Microsoft, the partner-facing evangelism/engineering group has changed over time with the technology landscape:

  1. Developer and Platform Evangelism (DPE): Communications Sector
  2. Developer and Platform Evangelism: US West Region
  3. Developer Experience (DX Corp)
  4. Technical Evangelism and Development (TED)
  5. Commercial Software Engineering

Over the past 14 years, I have had the pleasure to work with top Microsoft partners, helping them build apps and solutions using the various Microsoft developer technologies: Disney, Fox, CBS, NBCU, Netflix, Hulu, Time Warner, HBO, MTV, Turner, AT&T, ArcGIS, T-Mobile, Verizon, New York Times, Associated Press, DirecTV, Dish Networks,  Twitter, LinkedIn, Sony, Starz, Universal Music Group, Warner Music Group, FlashForge, Dremel, BeeVeryCreative, Technicolor, THX, Ultimaker, Fitbit, Ableton,  and Adobe.

Technical Program Manager

In 2020, I started a new role as a Technical Program Manager in Microsoft’s Commercial Software Engineering team where I lead cloud software development projects.  I have been focusing of projects that involve creation, production, distribution within the media and communications industry helping companies with their digital transformation.

3D Printing

Another project that I have been engaged with at Microsoft is working with the Windows 3D printing team to help hardware manufacturers make their printers work better on Windows and help software developers build 3D printing apps that work great on Windows.  As part of this, I presented about Universal 3D Printing for the Microsoft Build conference in 2016.  My growing catalog of original creations is on Thingiverse.

My Career

In my career in software, I found the three elements of any job that I need to keep me satisfied, engaged, and doing amazing work:

  1. The role must be customer-facing in a domain that interests me: this keeps me grounded in reality – as I hear from customers and partners directly what they are trying to accomplish.
  2. I need to play with technology and code: For me, playing with software and code is the best way that I can learn how to explain technology to others.
  3. I need to be creative: I look at code as a creative tool that sits right beside my sketchbook, watercolors, pens, and pencils.  When I get an idea, I need to build it.

Travel | Art | Journalist

Since starting the practice in architecture school, I have been filling journals with drawings, sketches, paintings, collage, and the ephemera of my travels.  I take a journal with me everywhere I go to be able to capture a place as an urban sketcher, chronicle an idea as a designer, or share an inspiration with others through the visual media.   With almost 1,800 pages over a thirty year span, I continue my craft wherever my work or life takes me.

Independent App Developer

One of my creative outlets is code – I build apps in my free time, primarily creative tools.

Sketch 360 for Windows 10 A drawing app tool to create immersive, 360 degree sketches.
Rotoscope for Windows 10 A rotoscoping app to assit in the process of drawing each frame of a video to create animations.
Journalist App Journalist A journaling app for Windows
Architecture for Windows Phone Browse architecture from around the world and nearby.
Architecture for Windows 8 Browse architecture from around the world and nearby.
Tile Charts for Windows 8 Turn your Windows 8 start screen into a dashboard of charts that automatically update
Authentic for Windows 8 Player for Connected Media Experience media packages.
Zoetrope Stop-motion animation app that turns images from the webcam, scanner, files, or drawings into video animations.
Time-Lapse for Windows 8 and Simplifies the task of creating time-lapse photographs by crowdsourcing the task.
Kinetic Typography Design tool for Kinetic Typography experiences which animate lyrics, poems, or speeches.
Topographic Create 3D-printable topographic maps from anywhere in the world
OpenJSCAD Use JavaScript or block proramming to make models to 3D Print
Transcoder Transcode audio and video files from one format to another
Animated GIF Creator Create animated GIF images from videos

Career Coach and Mentor

As creativity has been a core element of my career in technology, I have found that many people at various stages in their career have had challenges in building similar career paths.  As a way of giving back to my community, I have been engaging in informal career coaching and mentoring to help people build their authentic creative technology career.

If you want to have a talk, reach out to me on LinkedIn or go to my site

Creator & Founder, Galeryst

Over the past thirty years, I have been creating artwork, and has always been looking for ways to share my work that is primarily bound in the pages of journals. The global pandemic shut down in-person art galleries and exhibits for much of the world and that inspired me to find a way to recreate the art gallery experience online, not only for my own work but for artists everywhere. In 2021, I took a sabbatical from my work at Microsoft to build Galeryst to exhibit my own artwork and give artists around the world an engaging, interactive, way to exhibit theirs.  Since launch in December 2021, more than 500 artists have created galleries on Galeryst across the globe.

Last Updated 1/12/2021