After something like ten or maybe seven years of the chalkboard motif, I've decided to
totally redesign my site -- mainly because the code for it was so ugly.
Apart from some stuff in the "About" section, there isn't much to see here, at the moment.
I'm just letting you know.
You can listen to some of my favorite music while you're waiting for me to fill up this site
(assuming you've got Adobe Flash installed in your web browser, of course.)
Like I wrote on the front page: Not much to see, right now.
I am kind of in the middle of something, but I'm not in the mood to go on about it just yet.
So, what would you like to know?
Wow. OK, how much time do you have?
Actually, I'm not quite ready to get into all that. I'll go on about myself some other time.
(Résumé available here
(Letter of recommendation available here
As a professional computer programmer since 2007, I have put my broadly applicable skills to use in
multiple industries. Most recently, I've been a full stack C# .NET engineer, and for the past three years I
maintained and developed the platform services suite of operations for Buzztime
. For the last two of my three years there, I was the chief developer on Buzztime's platform
services, and among my accomplishments were implementing a REST layer over the suite of operations (which were
originally designed as SOAP-only) complete with an Amazon S3-based security model, standardizing the services into
a business object/data access/business logic model, interfacing with partners in India, UK and Ukraine to develop and
support new functionality, greatly improving platform services' debuggability and enhancing its unit testing
functionality (particularly of the data access layer), and even concepting and prototyping game software in Unity
Going back to the beginning of my career, I began my trade as a computer graphics technician for
video games. I developed work pipelines for artists, and served as a liaison between the art and programming
departments of gaming companies. I acted as a technical director and a buffer between left-brained and right-
brained personnel; from the art department's point of view, I obviated their having to deal with technical issues
by (1) explaining complex tasks to them in artistic terms, (2) creating tools that performed the more mundane parts
of their jobs and accelerated the rate at which they could create assets, (3) taking on highly technical graphics-
related art tasks myself, and (4) mentoring artists who had yet to grasp technical concepts with which they needed to
From the programming department's perspective, I knew enough about what they did that I could be
trusted to engineer the artists' workflows such that the programmers got graphics that they could use, and in a
timely fashion. (Of course, getting things done on time is largely dependent on good management, which any
experienced video game developer will tell you is probably scarcer than one can reasonably expect.) I was
also the person whom programmers contacted when they had special needs or ad hoc
tasks that just couldn't wait,
and that they themselves didn't have the time or the artistic skill to perform.
After that, I advanced to roles as a generalist and tools programmer. While I have always
been tasked as the person chiefly responsible for authoring plug-ins and scripts for production apps like Maya and 3ds
Max, roughly 75% of the work that I did during that time was .NET programming (chiefly in C#, with some F# for the
code-behind in several applications): WPF GUI apps, console tools, Excel add-ins, Silverlight apps, TCP/IP
client/server libraries, cloud programming (e.g. Google API -- composing HTTP requests, sending and receiving data
to/from Google Drive, etc.), SQL database set-up, querying and manipulation, and other applications. As well,
I have experience integrating C++ APIs into full-blown C++ engines; for example, making the FaceGen low-level graphics
API work with Sony's 3D graphics engine, PhyreEngine, which involved mostly real-time deformation of geometry at the
vertex level as well as real time texture map manipulation, and assorted image processing algorithms.
My experience as a CG tech goes back to the early 90s, when I worked on the first couple of
American football video games (which wound up being the best-selling sports titles
for Sony's first PlayStation). In addition to my standard duties of creating environmental graphics (I
built and textured most of the stadiums and playing fields) and all of the football helmets, team logos, team
fonts, and playbook drawings, I also generated weather effects. This was all back in my Alias PowerAnimator
My programming skills came into play on my next big project, which was the hit MMORPG
, on which project I was the sole character
modeler, UV mapper, and rigger. During my seven-year stint on EQ
, which spanned development of the
original release and the first three expansions, I authored numerous MAXScripts and other tools, which were
used by designers and artists alike to populate zones, automatically deform meshes, and other tasks. My
main tools during this period were PowerAnimator and Maya (modeling and scripting), 3D Studio MAX (UV mapping,
rigging, and scripting), and the WIL
programming language (non-3DS MAX
auxiliary tools). It was during this period that I learned Java, MEL, and MAXScript.
After EQ, I left Sony Online Entertainment to work as a founding member of Sigil Games Online.
I was the character art techincal guru for Vanguard: Saga of
; I developed the character art pipeline from the ground up (everything from workflows to naming
conventions to file organization), and created and maintained a slew of character art tools (and a lot of
documentation that few people bothered to read). I also provided assistance to the coding department in
creating tools for our character artists. During this five-year period, I learned C++, and I wrote
countless MEL scripts and numerous Maya API plug-ins, some of which I
posted to HighEnd3D
When Sigil Games Online went bust, I took a five-month hiatus to spend time with my wife
and our newborn first child, and to devote significant time to a big project that I'd been considering for some
time (and on which I still work in my spare time, of which there is precious little). My next employer was
Red 5 Studios
, an MMO outfit located in Orange County. I was
employed as the studio's sole art technician, and I spent most of my time there writing MaxScripts and C++ plug-ins
for 3D Studio MAX. During that time, I also expanded my programming experience to include C#, which became
my favorite language pretty much instantly (although my love for it has since been eclipsed by my passion for F#,
which I picked up shortly after starting my next gig).
My next employer was Kung Fu Factory
, where I was a
senior programmer. My duties comprised loads of C#, MaxScript, and Python tool development (including a
-like animation state transitional tool that was used by game designers), the integration of
into Sony's PhyreEngine via the FaceGen C++ API, the development
of numerous .NET WPF GUI applications (including Silverlight apps, which ran on both Windows and Mac OS workstations),
console tools, technical assistance and pipeline advisement for our art leads, and a little proactive SQL database
set-up, management, and implementation (with an eye toward improving the efficiency of KFF's art pipelines). In
my private moments, I fiended on the .NET language F#, which remains my favorite programming language to this day, and
which I eventually incorporated into my work for the company during the development of several .NET tools and
Here's a glowing
letter of recommendation
from the president of Kung Fu Factory.
Although I was hired by Buzztime
partly to assist them with
Unity 3D development, I did that only in the first couple of months of my time there. The remainder of my time
I spent as a .NET back end programmer; for the first year, as a subordinate to our chief engineer, and then as the
chief custodian of Buzztime's platform services operational suite. Here, my knowledge of design patterns and
best practices for software architecture and programming were crucial to my successes, and it was here that I gained
considerable experience in SOAP and REST programming under ASP.NET, unit testing, mocking, HTTP protocols and
communications, the C# async/await model of asynchronous programming, the general application of SOLID principles,
and other software technologies and methodologies. As well, it was here than I began researching the Akka actor
(message queue) model of distributed processing (inluding Akka's remoting features, which greatly facilitate the
distribution of workloads among multiple servers), and by the end of my time at Buzztime, I had begun
implementing an F# version of the REST layer that I'd authored, as a proof of concept.
My current employer is Webroot
, a company that specializes
in online security. I've come quite a way from video games, a career path that I chose quite deliberately in
my efforts to become a superior programmer and software architect. It's all part of my journey toward the
ultimate goals of (1) achieving a coding zen state and (2) completing one or two dream projects. The
While I am in the process of updating this page with samples reflecting my most recent work as
full stack .NET architect and as a tools coder, you can see some examples of my older work below:
(Oops! To see these media, you need to install version 9 or later of Adobe's
Click image/video or play/pause button to stop/resume playback.
Full-body character models in Maya demos by Den Beauvais,
property of Sony Online Entertainment.
, the out-of-browser Silverlight app featured in the demo reel, may be
installed at this link
. (After the progress counter
reaches 100%, right-click the page and select the installation option.) I don't think that it works in
Chrome any longer, but it should function properly in Internet Explorer.
The image and video player is
's highly versatile and overall brilliant
, which employs
It's a drawing of a tree.
My wife studied psychology in school. She once asked me to draw a tree,
so I did.