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.
-- Milo
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?
About you.
About your work.
Who made your site?
What's this thing that looks like a tree?
Wow. OK, how much time do you have?
Just kidding, not a lot here, yet. I like to program computers and write music.
Here's an excerpt of something that I composed:
OK.
(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. 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. 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 be familiar.
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.
1991 to 1995
My experience as a CG tech goes back to the early 90s, when I worked on the first couple of
NFL GameDay and
NCAA GameBreaker 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
days.
1995 to 2002
My programming skills came into play on my next big project, which was the hit MMORPG
EverQuest, 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.
2002 to 2007
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
Heroes; 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.
2007 to 2010
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).
2010 to 2014
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
Morpheme/Havok
Behavior-like animation state transitional tool that was used by game designers), the integration of
FaceGen 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
libraries.
2014 to 2017
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. I single-handedly developed a REST (Web API 2) implementation
of Buzztime's SOAP services, complete with an Amazon S3-based security model, standardization of the services into
a business object/data access/business logic model, and considerable improvement of platform services' debuggability
and unit testing functionality (particularly of the data access layer). By the end of my time at Buzztime, I had
begun coding an F# version of the REST implementation that I'd authored, as a proof of concept.
Today
For the time being, I've moved away from video games entirely, in a deliberate effort to become a
superior programmer and software architect. My current employer (who shall remain unnamed, after some tool
tried to have me fired for running afoul of politically correct orthodoxy) is one of the world's biggest names in
online security. My role is that of senior software engineer, and my primary duties involve chief architectural
and programming duties on their threat look-up SDK (C/C++, Linux and Windows), as well as co-programming of their two
large-scale threat information servers (one Linux, the other Windows) and the coding of .NET Core AWS Lambda tools.
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 adventure continues...
Thanks.
I did.
Well, most of it, anyway; I designed it, I created the graphics, and I programmed it
(HTML, JavaScript, CSS).