I began my career as a programmer early in High School, before I had regular access to a computer. I would write down programs on paper and then type them in when I could get computer time at school. In time the other students were soon happily playing the video games I wrote. I found programming to be addictive and fun. I’ve never felt any differently. I program in a variety of languages, and perhaps more importantly, I pick up new languages quickly.

Programming philosophies

Here are a few thoughts of mine on programming.

Code should be supportable

I believe in properly commenting code, writing unit tests, and programming with established best practices. For example, when programming in Perl, "use strict" is of course a must.

Peer review is a good thing

Peer review of code should be done with a constructive and cooperative approach. Every time my code has been reviewed or I have reviewed other people's code, good things have come from it.

Use existing solutions. don't Reinvent

We programmers often have a desire to write things from scratch, even when they already exist. It's usually best and more time efficient to use well-established solutions and pre-existing code where possible.

Keep it Simple

The "coolest" solution is not necessarily the best. Using existing code has many advantages. It's also usually worth going for the solutions that are the easiest, quickest, and most straightforward to implement.

If in Doubt, Ask the Experts

When stuck on a programming problem, the fastest solution is often looking for help. Googling finds the answers to most problems, but beyond that, there are many forums and various online communities. It's also worth knowing lots of experts who you can ask. I have many very smart friends.

Release early, release often

This is an Open Source refrain that continues to ring true.

Some Programs I've Written


I have designed and coded many large systems. But I still like showing off this little graphical program that I wrote. I came up with the math and the concepts. To see it, click here.


Problem: All licenses were being hand generated.  Turn around time was slow.  A large team was required to handle the requests.  Customer satisfaction was low and errors were common.

Solution: Project managed and was primary programmer and designer of a web and email based tool to automatically authorize and distribute permanent and temporary licenses for internal and external use.  Key-O-Matic generates licenses for multiple licensing mechanisms, multiple computer platforms, over 100 products, and for multiple countries.  Evaluation license durations, number of licenses, and marketing letters can be customized by product.  Both web and email forms are easy for customers and license administrators to use.  This tool has vastly improved accuracy, efficiency, and customer satisfaction. It has been in production since 1994 and is still being used by customers today.

Cash Back

Problem: The backup system at Industrial Light and Magic failed more often than not and was badly designed. Management was unwilling to pay the high price (about $35k) for an off the shelf backup system for backing up over 100 SGI and Sun machines. ILM had some backup challenges other companies did not face.

Solution: I designed and coded an elegant backup system. The configuration file was straightforward. The automatically generated backup results log was also easy to understand. Restoring files was not hard. It worked elegantly with the roughly 24 backup tape drives and 100+ machines. Unlike most facilities, we moved machines constantly. The backup system retried machines throughout the night whenever needed. Once implemented, it performed flawlessly. A week after it was put in place, it restored the animation for a velociraptor that had been accidentally deleted.

System Info

Problem: At Industrial light and Magic, before Nagios existed, we had no decent reporting tools to let us know what machines were running out of disk space, having tape drive errors, getting low on memory, and a myriad of other vital system admin issues.

Solution: I designed and coded a system that checked all of the machines regularly, and sent a daily e-mail with the highlights. When a high priority situations were detected, I was alerted right away. The system operated beautifully and made it far easier to properly manage the many machines I was in charge of.

Trust System

Problem: Different users deserve different amounts of trust. This was an important element in The Human Creativity Project.

Solution: Designed and wrote a system to normalize ratings and compute trust across a variety of parameters. This was built on top of a MySQL database.


Contact Julian

Get in touch and chat about your company or project.

Julian Cash     415.738.9385     julian@HireThisGeek.com or see the contact page.

Project Management
Tech Support
System Admin
Swirling Joy
Image Fun