Welcome to Milo Online

    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:  

(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.

Here's a glowing letter of recommendation from the president of Kung Fu Factory.

    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.

    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...

    I did.

    Well, most of it, anyway; I designed it, I created the graphics, and I programmed it (HTML, JavaScript, CSS).

    The image and video player is LongTail Video's highly versatile and overall brilliant Flash player, which employs Geoff Stearns' SWFObject code.

    It's a drawing of a tree.


Yeah, but what does it signify?
    *Shrug*  My wife studied psychology in school.  She once asked me to draw a tree, so I did.

Milo D. Cooper
Software Engineer
F#  C#  C++/C
Windows, Linux