Charles J. Rojo


Hello, welcome to my home page!
This is my source of information about some past and future career efforts.

About Me

Me at Nola

I am a Software Engineer with a Bachelor's degree in Computer Science from Stony Brook University, pursuing a Master's degree in the same. I'm accomplished in both academia and industry, and I've had the pleasure of working with many talented individuals on a wide range of applications. I've worked on an open-source interpreter for the "Prolog" programming language (see "XSB Prolog"); a Microsoft Excel plug-in; an optimized visualizer for medical MRI-scanned or CT-scanned volume data (see "Glass - Volume Renderer"); ; a hospital's emergency room doctor scheduling program; and even a Nintendo-inspired video game(see "Sogarman").

I have several years of software development experience, and I'm currently employed as a full-time developer of geospatial technology. Things are busy, but every now and then, I get some spontaneous energy to work on side-projects that I feel hold promise. (see below).

I have an infrequently-updated blog where I discuss some elements of software engineering, personal projects, late-night ideas, class work, and life in the presence of today’s technology & society. It’s open-ended, but I try to keep it thought-provoking. Have a look at it:

Thoughts ~ My Blog on Computing, Technology, and Life.

Resume

My resume is accessible as a web page or downloadable as a Word document, though it’s a bit dated. Contact me at the email in the links for the most up-to-date info:

Current Projects

Below are the in-progress and upcoming personal projects I have in the works:

Vocabulary Builder:

I'm building a tool (in C#) experimenting with a few audio and visual association techniques to aid in memorization of new languages. It grew out of my effort to re-learn Spanish.

MultiTouch Display:

Do you watch CNN? If you do, you’re probably familiar with John King running over to a giant glowing screen and poking around at random animated statistics. In the past, most have reached for a computer mouse to interact with the digital world. A mouse gives us a single spot on the digital surface; a tiny little spot, through which we’re expected to crawl through the vast info-super-highway. It works, and it’s better than a keyboard, but is it natural? We have ten fingers and two hands, but today's computing devices largely ignore these “extras.” Imagine, for a minute, watching someone working on an invisible computer at their desk. They’d spend probably 80 percent of the day just wiggling and tapping their fingers. Most of the day. Every day! That's just odd, and there are better ways that we can work.

I'm working on hardware and software aspects to improve the new movement of “multi-touch” computer interfaces. You’ve seen them recently in the iphone and the giant news-media screens, and these new multi-sensor surfaces open up digital interaction to many finger tips, many hands, and many people, simultaneously. With such possibility, software objects can be made to seem and behave like true-to-life objects. They can be manipulated with many fingers, stretched, twisted, pushed, and pulled. Computing can suddenly be a more natural and accessible experience - much closer to what our true form allows.

Inexpensive techniques to build surfaces like these has become public, notably that of Jeffery Han from NYU. I've followed his technique, and I’m looking to create some novel extensions to it. I'm working to design interesting new ways to interact with today's heavily used software. (The browser, the text editor, and the development environment).

Code Builder:

I’m a programmer. From the outside, my work looks like a series of hours spent typing in a text pad, and occasionally connecting nice little graphs together. From the inside, I know of programming as so much more than simple text editing. But the truth is that, when the finger hits the keys, the programmer is editing text. In today's world, a coder must always resort to struggling with inherent peculiarities of a basic text editor to get his rules into the processor. I have several design ideas for a new software engineering framework that will eliminate the subtle annoyances we deal with associated with this fact. My goal is to allow programmers to elevate themselves above the text, to better comprehend and manipulate the large collections of code we’re expected to perfect. Using the power of the Graphics Processing Unit (GPU) to speed visuals and smooth dynamics, this framework will strive toward several ideals:

  • Programmers spend many hours & days fiddling with whitespace, tabs, and line positioning in their code editor. In the Code Builder framework, I’ll exploit the inherent building-block structure of all code to eliminate this need. The programmer will be able to customize a comfortable view of any code with simple actions, to help keep concentration on what matters – the design.
  • Today's coding frameworks can display some charts and reference traces with a few buttons and right-click menus. They help us get around the code, but they are primitive, disconnected views that often disrupt focus. Code Builder will emphasize connections among the code blocks in natural, smoothly visual ways that minimally impact focus.
  • Pattern design and pattern recognition are key concepts that underlay software development. This framework will work to recognize, represent, and allow for edition of code patterns in an intuitive way.

Personal Information

I'm a 26 year old guy that lives in Long Island, NY. I’m perpetually perusing that slice of happiness =) When I'm not programming, I'm enjoying time with friends and family, keeping up with news, reading [computer] science books & papers, and seeking exotic travel destinations. Thanks for reading!