Isilon's continued hiring surge in the Great Northwest brought me someplace new last week: Pullman, Washington. If you don't know where Pullman is, it's right next to Moscow.
As in Moscow, Idaho.
Imagine travelling through wheat fields, crossing over a hill, and driving straight onto the campus of Washington State University (WSU). For me it was a throwback to my days at the University of New Hampshire, where I drove through cow fields to arrive in downtown Durham.
I didn't drive to WSU. I flew into the Pullman-Moscow airport (I took a great picture of this airport, which I've attached to the end of this post). It's great getting your luggage the moment you step off the plane.
For me the parallels between WSU and UNH don't stop at geography. I found that the WSU EECS curriculum also parallels some of the O/S, compiler, and hardcore CS theory that I experienced during my undergrad years.
However, the WSU students that end up at Isilon join the front line of critical-path engineering deliverables. And I'm not just talking about the graduates.
I'm talking about the summer interns too.
What's In The Water?
I was fairly shocked when I heard that Isilon puts all of their summer interns on critical deliverables. In my experience, certainly the occasional intern shines from day one and you put them on a critical path deliverable.
But to put all of them on kernel tasks? Designing features from scratch? Implementing data path drivers and file system code?
Part of it speaks to the volume of challenging work that needs to be done. But there has to be something else that prepares these students to join the front lines. So a few of us visited WSU to dig a little deeper.
What I found at WSU is best explained by recalling how my particular CS degree prepared me for coding data path software.
Eighteen months elapsed from the day I started as a co-op student at Data General to the day I first started designing RAID algorithms. I would say that those eighteen months allowed me to develop "quality speed". This term refers to my own ability to write well-designed software, using disciplined software techniques (quality), in a short amount of time (speed). I spent my first year and a half working on bit-density simulations (Pascal) and optical disk simulators (C).
Like many CS grads I had a solid grasp on data structures and algorithms. I could design quickly. But I hadn't been formally introduced to all the tricks of the trade that shaved days and weeks off of the implementation process: shell-scripting, compiler flags, makefile expertise, awk/yacc, and all that good stuff. I learned these things on the job. Disciplined software engineering techniques were also taught to me on the job. Acquiring all this knowledge from my co-workers brought me to a place where I could work on the mission critical stuff.
I found that the curriculum at WSU also has the foundational focus on data structures and algorithms. There was a strong emphasis on Operating System and Compilers (two critical areas of knowledge for writing embedded storage system software). I found three other things that helped me to understand how undergrads become capable of immediately contributing the way that they do:
- The introduction to Data Structures includes not only instruction in the 'C' language, but Python is leveraged as well. This language not only facilitates faster learning of CS concepts but also teaches the student how to make progress faster on their designs. Textbooks have already appeared on the subject.
- CS students take Data Structures first, Advanced Data structures second, and guess what comes next? CptS 224: Programming Tools: debugging tools, scripting languages, UNIX programming tools, etc. This course is taught to sophomores. The tools of the industry, especially for kernel-level work, are taught as part of the curriculum.
- I found three courses of note in the junior year: Software Engineering Principles, Software Design, and Systems Programming.
If you're interested, peruse the catalog of courses. It's solid.
Any program is a reflection of both the faculty and the students. I met with and lectured to both of them. The chemistry was easy to see.
This is good for Isilon; the move to Pioneer Square happens today, and we'll be needing way more than 200 technologists.
Director, EMC Innovation Network