Edmond Ho

About

My name is Edmond Ho. I write software for a living and for pleasure.

So far in my career, I’ve worked on a fairly wide variety of projects using a fairly wide variety of languages on a fairly wide variety of platforms; some of these projects are described below.

Here follows my brief reminisces with respect to programming so far:

The first program I remember writing was a pretty nifty little Logo program that I wrote sometime in elementary school, on the classroom Apple II. Though that program is now regretably lost in the big bit bucket in the sky, I do remember it drew a rather snazzy (though woefully inaccurate) picture of the New York skyline.

Aside from brief flirtations with Lego Logo later in elementary school and HyperCard in middle school, I didn’t really write anything else until high school in the mid- to late-90s, when the World Wide Web was becoming popular.

Under the influence of one of my favorite teachers, I spent hours and hours making webpages. (Thankfully, most of those early efforts have been lost — I shudder to think how they would look to modern eyes.) Back in those days, hitting “View Source” to learn HTML — and eventually CSS and JavaScript — and fooling around with Photoshop was all great fun. Web design was the first way I explored my interest in graphic design and user interfaces. I even got a summer job doing it, which paid for my first laptop.

Eventually, though, the novelty wore off a little, and I shifted my attention to what I considered more “serious” programming. I was very fortunate to be able to do just that as a computer science student at Stanford University, along with a little art history.

After graduating in 2004, I wrote a small video game, worked as system specialist on financial enterprise software, experimented with graphics programming in my spare time, and then co-founded a small business, as well as a few other sundry projects on the side.

I’m most interested in application-level software development, although I am rather curious about systems-level and network programming as well. Recently, as Director of Technology at Ravel Virtual Studios, I’ve been most involved in writing bespoke Mac OS X applications and in web development. I’ve recently found my interest for web development rekindled, in light of the rather impressive capabilities of HTML5, AJAX, and modern JavaScript.

My personal ambition as a programmer is to one day write the Great American Video Game; it’s probably better to leave the Great American Novel to the writers. Someday...

Until then, there’s always something to learn about programming, and I still have a lot to learn — sometimes it’s frustrating, but it’s incredibly exciting more often than not. In the end, I can’t imagine doing anything else.

Ravel Virtual Studios

Ravel Virtual Studios is a company that I co-founded in 2006 and where I am currently the Director of Technology. Our mission is helping composers who don’t have access to live musicians.

In a nutshell, Ravel Virtual Studios is a for-hire virtual orchestra — when composers send their scores to us, we quickly return a high quality recording of their piece, performed with the best orchestral sample libraries available. Our service is much more affordable than a real orchestra and at very nearly the same level of quality and realism.

One of my responsibilities is the development of bespoke in-house software that automates significant portions of our workflow. I’m also responsible for the design and development of the Ravel Virtual Studios website and the web app that we and our clients use to manage their projects. I’ve re-designed both our website and web app — to improve usability, legibility, modularity, and attractiveness — as illustrated below:

Another hat I wear at Ravel Virtual Studios is the role of art director, which gives me a chance to stay sharp with Photoshop. I designed our corporate identity and logo; the logo was especially fun to work on. I also design most of our promotional materials, such as posters, fliers, letters, and CDs.

Visit the Ravel Virtual Studios website.

Tactics Big

Tactics Big is a small video game that I wrote a few years ago in 2004. It’s a simple turn-based tactical RPG featuring giant robots, set in a film noir retro-futuristic metropolis. Fans of a certain cult-classic anime will instantly recognize the reference.

I developed Tactics Big primarily to teach myself video game programming (it was written in C++, using OpenGL and SDL), so it’s somewhat rough around the edges. I did everything myself from scratch: design, programming, and art.

There was one aspect that I didn’t do myself, which was the planned soundtrack. For that, I asked my friend, composer Ron Artinian, for help. He wrote a wonderful piece for full orchestra and choir. However, he told me that it would be very difficult to obtain a proper performance of the piece. This problem was the inspiration that eventually led to the two of us founding Ravel Virtual Studios.

Visit the Tactics Big website.

Nimbus

Nimbus is a mostly-abandoned graphics experiment I worked on during 2005. I had intended to write a puzzle game centered around dynamic weather, so I needed a cloud simulation. The prototype became Nimbus, a proof-of-concept for a lightweight cloud rendering engine written in C++, using OpenGL and SDL. I also developed a bare-bones asset creation plug-in for Blender — a popular open-source 3D modeler — written in Python. Currently, Nimbus doesn’t do anything useful, but it does look pretty.

Visit the Nimbus website.

Résumé

Experience

Co-Founder & Director of Technology / Ravel Virtual Studios / Manhasset, NY / May 2006–present

  • Designed and developed bespoke in-house music analysis software to automate most of business-critical workflow.
    • Version 1: Suite of plug-ins for Sibelius music notation program, written in ManuScript scripting language.
    • Version 2: Stand-alone application written in Tcl/Tk. Added more sophisticated automation functionality. Improved stability significantly, improved run-time performance 50×.
    • Version 3: Native Mac OS X 10.6 application, implemented in Objective-C with Cocoa framework, embedded Tcl interpreter, and embedded SQLite database. Improved stability for large workloads.
    • Version 4: Optimized version 3. Added more automation functionality, improved run-time performance 2×, and reduced memory usage 10×. Implemented GUI using Cocoa AppKit.
  • Designed and developed RVS website and customer interaction web application. Two iterations of each:
    • Website: Written in XHTML, CSS, and JavaScript with jQuery. Custom lightweight CMS written in PHP5 to pre-generate static pages. Version 2 improved response time 50% and ease of navigation.
    • Web app: Written in PHP5 with Zend Framework, MySQL, XHTML, CSS, and JavaScript with jQuery; integrates with Authorize.Net for credit card processing and Amazon S3 for scalable large file hosting.
  • Primary graphic designer for promotional materials. Designed corporate logo and identity; logo is a USA registered trademark. Provided art direction for contractors who developed brochures and trade convention booths.

System Specialist, Enterprise Systems / Fidessa / New York, NY / May 2005–May 2006

  • Member of on-site Fidessa Trading Platform support and development team at Banc [sic] of America Securities equity trading desk. Added and enhanced FIX protocol communication links to other financial institutions.
  • Developed new profitability report scripts in Tcl, integrating Fidessa database and internal BAS data services.

Projects

Developer / Independent Project: Nimbus / Franklin Square, NY / August 2005–February 2006

  • Developed a very lightweight graphics engine that renders realistic-looking clouds, written in C++ using OpenGL and SDL. Wrote Blender plug-in that facilitated cloud asset creation, written in Python.

Developer / Independent Project: Tactics Big / Franklin Square, NY / September 2004–April 2004

  • Developed a turn-based tactical RPG (about giant robots). Written in C++ using OpenGL and SDL.
  • Programmed cel-shaded lighting, UI, and game mechanics. Created all art assets: 3D models with MilkShape 3D and textures with Photoshop. Wrote technical specification and user manual.

Developer / CS Senior Project: Proper Motion / Stanford, CA / March 2004–June 2004

  • Developed networked multiplayer real-time 3D spaceflight combat simulator, featuring realistic Newtonian physics. Written in C++ using OpenGL and SDL.
  • Worked as graphics, physics, and gameplay programmer in team of two.

Education

Stanford University / Stanford, CA / B.S. in Computer Science / June 2004

Skills

Languages: C, C++, Objective-C, Tcl/Tk, XHTML/HTML5, CSS, JavaScript, PHP5, SQL

Frameworks and APIs: Cocoa, Tcl C API, Zend Framework

Protocols/File Formats: MIDI, MusicXML

Download résumé as PDF.

Contact

Email —
LinkedIn — linkedin.com/in/edmondho1
vCard — Download

Copyright © 2011 Edmond Ho.