Wednesday, February 27, 2008

interview with ian kitajima

ian is the leader of the dual use group: A grassroots industry group for Hawaii's defense and dual-use companies. he is also a marketing manager at oceanit.

ian is a really cool dude. i met at local business function after work. its kind of a classic networking example (which by the way is really really important in hawaii). from that meeting we worked on a few events together.

i've learned a lot from ian in the short time that i've known him. we have had twitter discussions, chats, and even complained profusely about our jobs over lunch (just joking). i hope to learn a lot more from him. we both have similar goals.

the moral of the story is you should go to all business events, no matter how boring. cause you might meet people. people that you can learn a lot from. haha. :)

i've mentioned before in my blog that hawaii needs stronger tech leaders. let me put it another way, we need more ian's.

here is how this interview works. the questions that i ask are highlighted in bold. ian's responses are in italics.

I've been an admirer of Oceanit for a long time, yet I know relatively little about your company. Can you give a brief explanation of what your company does? Also, (and almost more importantly) can you explain how Oceanit accomplishes your goals? In other words, what is your company's culture?

Oceanit. It's definitely a culture of innovation. Easy to say, hard to do. From an employee perspective, I think culture is something you pickup daily. For example, it's something I pickup from the people at Oceanit - which is why the people you work with are so important, but that's for another story. From a corporate perspective on how to create a culture of innovation, it's something we (as leaders...i'm talking about a way of being that's not a result of a title) have to live on a daily basis. It starts with Dr. Patrick Sullivan, the founder of Oceanit, and flows to all parts of the company. For example, one way the cultural context gets set is during the Monday business review sessions. For example, I throw out a radical idea, then realize people are going to think I'm crazy and that was stupid of me to stick my neck out, but it's safe to do because 2 minutes later Pat will throw out an even crazier idea, and with that simple act he sets the context or culture. You start to feel like you're not so crazy and that feels great. Pat sets the context (in various ways) that it's safe to think innovatively. Very very important. You once asked me what is our mantra? I said one word, "innovation". But creating a safe environment to innovate is just the beginning. We have to live innovation not just in the research stuff but in all areas of the business. I head up the marketing group and i tell my guys if i get hit by a bus tomorrow just remember the message or theme is "innovation". So if you're wondering what should the the theme for the corporate christmas gift, or the theme of our nano lab open house, or the mesage for a story on the KGMB9 evening news, you already know it.

As to what our company does, we focus in four areas: life science, aerospace, IT, and consulting engineering. The Star Trek sick bay bed, the Star Trek tricorder, Superman vision that can track where a bullet is coming from, Spiderman-like abilities to climb walls, etc.. Put another way, we're like an idea factory that creates all kinds of innovations, and the best ones are spun off into new companies so they can focus and get to market. Put in another way, we're trying to change the world by building a technology industry in Hawaii, even if it means building it one startup at a time.

Now how do we accomplish this? I would say that what we do and who we become in 5 years or in 50 years is determined by the pains/problems in 5 years, in 50 years. What we do as a business also depends on the people we're able to attract and grow here at Oceanit. And the third thing that determines what we do in the future (which is key but is so subtle), is we don't let our past or who we are today, determine what we will become in the future. Ten years ago we knew nothing about space situational awareness (SSA). Today, SSA is the number one problem for Space Command, and we're right in the middle of it, as we deploy our worldwide network of small autonomous stations. That's liberating but with it comes the challenge of managing diversity...I could go on and on but hopefully that gives your readers a sense of our culture and philosophy. Here is a link to a Pacific Business News article about our internal innovation fund which is just another example of how we live a culture of innovation at Oceanit.

Tech firm pays workers to dream
(BTW, the PBN story was inspired by you and your blog in a way. I had previously pitched the story of our innovation fund at the end of last year, and your blog got me inspired to pitch it again.)

Wow, thats cool.

Your explanation of how crazy is accepted is really funny. At times I think I'm going crazy... But, I don't think people quite understand my craziness. Haha. So, its really amazing to hear your explanation of a "safe environment to innovate" and "idea factory that creates all kinds of innovation". That all sounds really fantastic. I also think its awesome that Oceanit shares its philosophy and culture with the rest of the industry.

But...(here come the hard questions)... but, what does this all mean for computer science students? Here come a series of questions: If I was a computer science student reading about Oceanit, I'd think Oceanit is awesome, but with 30 PhDs, why would Oceanit care about little old me? How do CS students prepare for a career in Oceanit? Oceanit seems like a great engineering company, but how does the software developers fit into the innovation?

CS is the glue. Look at any of the big prime defense contractors. Out of 50K employees, maybe half are CS, because CS is the way you glue/integrate systems together. CS is critical, and that's why CS would make someone valuable at Oceanit, even if you don't have a Ph.D. Oceanit started off as an engineering company, doing ocean, environmental, and coastal engineering, evolving into R&D for the federal government, evolving to become an incubator of spin off companies. Noah's Ark had two of everything, we're trying for at least one of everything!

Finally, do you have a list of books, articles, websites, activities, and groups that students can begin to utilize to grow?

As for books, articles, websites, etc...Here are some of my thoughts for maximum growth

1. Internships. Get hands on experience now. Always take on the toughest assignment.

2. Find a mentor. Pick someone who's 20 years older who you want to be like. If you can't find a mentor, it's probably because you're not ready. There is a saying, "when the student is ready, the teacher will appear." Get a mentor, and be coachable.

3. Books: Deep Survival (very good book about why we fail and ultimately succeed), Tipping Point/Blink, Corporate Lifecycles, The Starfish and the Spider (about decentralized networks), Positioning (anything by Ries and Trout), Information Rules, Art of the Start (anything by Guy Kawasaki), Win Friends and Influence People, Think and Grow Rich,'ve got to get specific because i read a lot.

4. Personal development. Learn about yourself so you can get out of your own way. This has been my secret. I'm not the smartest but I work hard, and I try to stay out of my own way. Does that make sense. So do some serious personal development workshops, like the one Burt Lum and I are bringing to Hawaii in early March. Visit

5. Peers: Choose them carefully. You become like the people you hangout with.

6. Company. Choose this one carefully as well. If you want to get a lot of experience, work for a small company. Learn what it takes to make payroll!

7. Pain. Take the pain when you're young. Work the toughest assignments, and work a lot of them. Get as much experience as you can.

8. Values. What are our personal values? Humbleness or arrogance? Giving or taking? Integrity or deception? Building or destroying?

9. Alignment. Align your personal and career goals. If you want a career to take you around the world, e.g., work 2 years in Tokyo, 2 years in Paris, 2 years in NY, etc...that's all very possible but don't set a personal goal of wanting a house with the white picket fence and your spouse and child waiting at the door welcoming you home for dinner at 6pm. You will be stress knowing they are waiting for you, and they will be unhappy...what's real is showing up 2 hours late will be just as devastating.

10. Life partner: Though this is #10, this should be #1 on your list. Who you make your life with, will determine your future happiness and success, or misery! This is so important, because this is about alignment again. Are you and your spouse going in the same direction? Do you want the same things? Would you be good friends even if you weren't married? So i need to repeat it again - the #1 thing you can do to be successful and happy is to marry the right person! Listen to your mother and friends if you're proven to be a poor partner picker! Say that 3 times really fast.

[end interview]
i'm not sure i asked the right CS questions to ian. my basic point to him was that i saw a lot of hardware related innovation from oceanit. not too much software stuff. so, the question was basically... how does your software people get involved in innovation when most of the work is on the hard sciences side? anyway, i'll ask him that later.

here is a blog that i wrote in the dual use NING space:
someone sent this article to me the other day, "Hire Learning",

i have been discussing with anyone that will listen about the problems that i have been noticing in technical education. its very interesting that the problem is bigger than any one solution. problems like this needs to be attacked in a coordinated fashion. it takes the involvement from government, industry, and most importantly people. mentor someone, give them hope, show them what is possible, and help them do it.

i often feel overwhelmed by how i can make a difference. but, i so desperately want to. i know i'll figure it out.

and this is why ian is a really cool guy... here is his response:
Right on Aaron! And yes, you will. Remember, making a difference is about the daily small things that add up over time. Yes, swing for the fences when it makes sense, but this is also a marathon more than it is a sprint.

I just read a very nice quote, "grow a leader, grow an organization." I think the same would apply here. Let me know how i can support you.

Tuesday, February 19, 2008

interview with daniel leuck

Daniel Leuck is the President of Ikayzo, Inc. (, he is by far the most knowledgeable developer that i know. dan is one of those developers that really really really really loves to hack. the thing that i admire about dan is that he shares that love for software development with others; it's infectious.

i was lucky to catch a few moments with dan. this is a short interview, we promise to dive deeper into details in follow up interview.

here is how this interview works. the questions that i ask are highlighted in bold. dan's responses are in italics.

The idea is to help students learn more about the companies and people in Hawaii's high tech industry.

I'm in! We have the same interests. I want to keep Hawaii's best and brightest in Hawaii so I can hire them :-)

You seem to always be on the cutting edge of technology. When we first met years ago, it was Beanshell. Now, you seem to really be into Adobe Flex and other RIA applications. What is it that attracts you to these cool and new technologies? More importantly, how do you integrate it into what you do into your business model?

As software architecture consultants for companies like Bank of America ( and ValueCommerce (, its our job to be on top of new technology developments, especially in the areas of rich client development, social networks, and content management. Our customers expect this. If they hear about a relevant new technology before I tell them about it, I'm not doing my job.

The RIA space is evolving at breakneck speed. I love working with technologies like Adobe's Flex and Microsoft's WPF. These frameworks make it easy to develop rich clients that look great.

That sounds like a pretty fun business model; especially for your developers.

It is :-) Its important to enjoy your work.

I want to shift the interview slightly. We both agreed that connecting with students is a high priority. Why do you think its vital for you to focus your precious time on growing Hawaii's tech industry?

Everyone knows Hawaii needs a more diversified economy. The burgeoning technology sector seems like our best bet. For technology companies to success we need skilled workers. Right now we loose many of our best and brightest to the mainland as soon as they graduate. I frequently hear students say they are planning to move to California or New York as soon as they graduate because there are no good tech jobs in Hawaii. This is a myth. It may have been true ten years ago, but it certainly isn't true today. Ikayzo and our neighbors at the Manoa Innovation Center frequently have to go to the mainland to recruit because we can't find the people we need locally.

My reasons are as selfish as they are altruistic. I love this state, and I don't want to leave. For my business to grow its important that we have local talent and a vibrant technology community.

Also for those that are not aware, can you highlight some of the opportunities that you are involved with?

Sure. Interesting current projects include:
  • A .NET desktop client framework for a major US bank
  • A behavioral analysis and ad targeting system for a large Japanese affiliate marketing company
  • Creative work for a set of Facebook apps with over five million users

    We also have some community projects like TechHui ( and OOI. OOI is an open source portal for Flex applications we will be releasing later this year.

    Lastly, what can others do to help the efforts?

    There are many ways to help the vision of a silicon island become a
    reality. Here are a few ideas:
  • Volunteer to teach technology classes at local schools
  • Participate in community projects like HOSEF (
  • Support laws and candidates that favor Hawaii's high tech businesses
  • Invest in local high tech companies

    BTW - I enjoyed reading you blog. "Hacking will get you dates." ROTFL :-)

    [end interview]
    i think we are just scratching the surface in this interview. i'm constantly amazed by dan's commitment to the local high tech community. for example, dan has sponsored the honolulu coders meetings for years. i've been out of touch with dan for a while, i think that was a mistake. there is a lot i can continue to learn from him... more to come.
  • Sunday, February 17, 2008

    resume visualization

    i just had a wild idea about visualizing information on resumes. i haven't exactly fleshed out a lot of details yet, but i decided to make a mock up and get some feedback.

    the basic idea (and i'm not even sure my idea is original or not, it probably isn't) is that reading resumes suck. reading resumes is an investigation into what the person knows. even a C-student can make their resume look good. resumes suck; they suck so bad that we need phone screening, reference checks, 2-tier interviews., etc.

    okay, so i just discovered that i'm not just visualizing existing information on resumes, i'm also expanding what's on a resume. the problem with the standard one-page resume is that you are bonded by space. on one page, everyone looks the same. that's why i like a academic curriculum vitae - they are very verbose and pretty much as everything. the more content the better. anyway, the reason why you can't hand in a academic CV is because its too hard for the employee to properly read and understand everything. ONE PAGE!!!! i think the ONE PAGE rule is really stupid, but nevertheless we must obey (haha, i almost always have more than one page).

    anyway, getting back to the idea. i want to create a graphical resume that contains all the information that a CV has but all on one page. then the employee is basically looking for the "right" graphic. here is my 10 second prototype:

    so the basic idea, is that the employee can quickly see my strengths and weaknesses. (haha. i guess i should have shown the differences a little bit better in my prototype). but you get the gist of it. basically, i could imagine this graphic on a resume site and it lets people drill down to get the data. after all, its always about the data.

    i'm interested in what you guys think about my initial brainstorming. any thoughts, comments, questions, etc?

    Thursday, February 14, 2008

    hackystat problem v2.0

    my last hackystat problem blog was solved pretty swiftly see the mailing list; SensorBase REST API now includes "snapshot", performance improved and DPD zero issue bug .

    Tonight I tried to use the Telemetry Viewer to check some data points out. I used the Telemetry Viewer deployed on the public server (v.8.1.214) and i have Firefox 2.0. Check out the video for a description of the bug:

    the problem seems to be the following:
    1) all the charts for the project Hackystat doesn't seem to do anything in the viewer. i click on "Chart" and nothing happens. (in the video you see the app flicker, but nothing really happens.)
    2) i can't seem to see my data in the Default project. A script error appears. and i get an empty blue chart.

    what's unsure:
    1) i'm not sure if the public version of the Telemetry Viewer is the latest and greatest version.
    2) does it supposed to work with the version of Firefox i have? or is anything else on the client side preventing the right functionality?
    3) has no one else seen these problems?

    it works locally at our work place.. not sure whats wrong with the public server.

    interview with russ tokuhama

    russ was the first real hacker that i knew. when i was going through school i was lucky enough to be able to ask russ all kinds of tough questions. he introduced me to emacs and helped me through some b-Tree stuff and even lisp assignments. russ was a lot of help. the great thing about it was that i knew that there were normal people hacking away. the little time i spent with russ gave me a short glimpse into "real world" hacking. it showed me that hackers weren't some nerdy unsocial animal locked in some cubicle typing away.

    the one thing that i have tried to do through the years, is figure out away to work with russ on a project. i'm still trying to figure out how that will work, because i can learn a lot from someone like him.

    thanks russ for all that you have done to help me get to where i am. i continue to learn from you.

    here is how this interview works. the questions that i ask are highlighted in bold. russ's responses are in italics.

    What was it about software that drove you to this industry?

    As an telecom engineer at the local telephone company in the 80s, we used programs written in BASIC on an HP2000 minicomputer to generate the materials list, labor hours, and project cost for work orders in the switching centers. While these programs speeded up the process of cranking out work orders, there was a certain amount of distrust of their output. Some it was in response to edge cases that didn't make sense but were mandated by the engineering management as acceptable. This fueled a desire to know more about writing and getting programs to work properly.

    I took an evening class on programming languages but dropped out due to a heavy work load and because I was totally clueless about programming; the thought process, how to organize things, and language syntax. Try learning Fortran, COBOL, and a couple more languages in an eight-week course after learning BASIC. It seemed like there were too many ways to do things and no clear direction to move in. The good thing was I was introduced to "The Elements of Programming Style" [1]. There seemed to be
    some hope of understanding how to fix programs that did stupid things. I wanted to help my fellow engineers get their jobs done and have some higher level of confidence in the programs that they used. It was always frustrating to work with programs that blew up or had subtle errors in their output that you couldn't trust them. Some of the guys that wrote the programs used clever tricks that made it hard to debug their program when things didn't work right. How good is that? By the way, there a few
    women engineers but only one was an computer science graduate and did work on some of the programs.

    Can you elaborate about the steps that you took that guided toward to software?

    When I graduated from college with an Electrical Engineering degree, the only class that I had in programming was in PL/1. We punched 80-column cards, passed the set of cards through a window in the computing center, and waited a day or so for the output; whatever that was (hopefully it compiled and ran). I didn't want anything to do with computers. Who would with that kind of environment?

    Ten years later, while working at the local phone company, I took an intro class to programming. We used BASIC on a paper terminal (keyboard and printer in one device; no screen) with a 300 bps dial-up link. The programs that I used for my engineering work ran on the same set-up.

    Six years later, I got the opportunity to learn UNIX (The AT&T System V flavor) and C. "The Unix Programming Environment" [2] and "Advanced UNIX Programming" [3] were my bibles. Two coworkers and I wrote a replacement for an aging (no more hardware and software support) realtime system that the telephone company used to send the time and charges for long distance calls to hotels so that they could put them on the guests' bills before the guests checked out. Those were the days of dial-up networking. Of course, "The C Programming Language" [4] was right there, too. It actually took me three years to understand it. Only by diving into a nontrivial project and living and breathing it did things finally start to sink in. I still love C.

    The UNIX philosophy of small programs that do one thing right and are composeable resonated with me (think "has-a" in OOP and Decorator pattern). I used a combination of an awk script (precursor to Perl) and a tiny C program wrapped by a shell script to decode the long distance telephone billing tape so that some other programmers could debug and reconcile the normal billing tape processing that ran on the Tandem (fault-tolerant minicomputer) and the IBM (mainframe) systems. There wasn't any easy way to "see" what was on the billing tape so fixing problems in customers' bills was difficult. That was a fun challenge that had clear monetary benefit for my employer.

    I also looked at Forth (invented by Charles Moore for controlling large telescopes at observatories; you'll find it in Sun's boot prom). I didn't have a formal background in systems analysis and design so I tried to read as much as I could get my hands on. "Starting Forth" [5] and "Thinking Forth" [6] gave some advice on how to think about and design programs. I didn't program much in Forth but I tried to apply the ideas to whatever language I was programming with. I read Byte magazine a lot. I tried to understand the articles that I read and get ideas from them that I could apply to my programming. "The Mythical Man-Month" [7], "Programming Pearls" [8], and "The Practice of Programming" [9] are some of the books that I've read that have influence my software development and system administration activities.

    While working for the local telephone company, I took evening classes in data structures and algorithms using Pascal and completed other classes on software engineering, databases, and systems analysis. I even completed a masters degree in Information Sciences. Since then I have taken other classes in software engineering and operating systems.

    While working for the Information and Computer Sciences (ICS) Department at the University of Hawaii at Manoa, I learned Java, Extreme/Agile Programming, Design Patterns, Object-oriented programming, and Test-Driven Development by reading books, articles, wikis, and blogs and by diving in and trying it out. When I graduated from college, a civil engineer agreed to talk to me as kind of a practice interview even though he didn't have any job openings. He gave me the best advice which was that if I thought that I was done learning when I graduated from college I was mistaken. I would have to teach myself and learn what was needed to do my job whatever that was.

    1. Kernighan, Brian and Plauger, P. J.; The Elements of Programming Style
    2. Kernighan, Brian and Pike, Rob; The Unix Programming Environment
    3. Rochkind, Marc J.; Advanced UNIX Programming
    4. Kernighan, Brian and Ritchie, Dennis; The C Programming Language
    5. Brodie, Leo; Starting Forth
    6. Anderson, Anita and Tracy, Martin; Thinking Forth
    7. Brooks, Frederick; The Mythical Man-Month
    8. Bentley, Jon; Programming Pearls
    9. Kernighan, Brian; The Practice of Programming

    Wow, that is an awesome journey. It is interesting to compare your journey with the relatively easy journey that students in ICS are taking. It seems that these kids are spoiled, in that they think that taking their 2 1/2 years of ICS classes means that they earn the right to start being a developer. These students probably have no idea what "attack the essence" means or where it comes from. In my opinion, there seems to be real disconnect between school and the real world. Keep in mind that I think the disconnect works both ways. Maybe school isn't "teaching" the right things and maybe the real world isn't embracing the right things. I've said for a while that the students are clueless, but now I'm also thinking that the real world is also clueless. Something seems wrong.

    So, here is the next question. Do you agree with my opinion that there is a disconnect between school and the real world?

    Yes! One fundamental problem for the disconnect is unrealistic expectations of what the other one wants.

    The traditional premise of colleges and universities is to provide students with a foundation from a wide range of disciplines and thinking so that they can use their own heads and tell what is right and what is wrong. In other words, be good citizens. Engineering being an applied science leans more towards having some tie-in with the real world.

    I have an undergraduate degree in Electrical Engineering but I don't think that I was really prepared to go out into the real world and do any "engineering work". I had no clue what "engineering work" was. I didn't know what to expect, what was going to be expected of me, or what areas of electrical engineering study that I needed to concentrate on in order to be prepared for a particular company.

    My eyes were really opened by a consulting electrical engineer when he told me that his company's work mostly centered on almost rote application of laying out of wiring that meets building code specifications. He was very honest in saying that there wasn't any "design" work in the sense that I would be given a problem and had to design a solution that fit the budget of the building project. My early work with the local telephone company as a switching systems engineer was similar to what he described. I followed industry and company accepted practices. There were standards to follow and stick to.

    As far as computer software development goes, if I were graduating from college now I think I'd be in the same state of cluelessness. I wouldn't know what would be expected of me because I wouldn't have thought to ask someone who worked in the industry. This may be one way that the real world can help students and schools. Students can get a clue; not just seniors about to graduate (the usual focus of employer fairs and recruiting visits). Schools can get a clue by listening to what skills and/or conceptual areas are lacking or weak in new graduates that are hired or in their current employees.

    Another unrealistic expectation is that the real world can tell students what to study and can tell schools what to teach. The real world has a tremendous variety of jobs and a lot of times a job title or position description doesn't begin to describe what is needed to do the job or what kind of skills or educational backgrounds are needed to be successful in performing a job. Besides, there are many clueless managers and supervisors. What you get from them may be very distorted so should schools or students follow what they're being told? A school can't mold its curriculum to what a handful of local businesses say that they need. What about providing their students with the basics and skills to find employment outside of the local economy?

    As you can see, the disconnect is very real for various reasons. While it may seem a frustrating waste of time, having representatives from various employers meet with students to clue them into what would be expected of them may make a difference for some of the students. Advisers and professors may also benefit from this by getting a better feel for that to suggest to students when asked for advice or a least provide contacts so that students can do some investigation on their own.

    Internships may be another way to clue students and employers in. They are often sold as a way to give students a peek into the "real world" of professionals but often the business isn't really prepared or able to mentor and develop professionals from students. For example, the lure is "earn while you learn" but when a project or a task needs to be done there's a lot of context that isn't technical but is all about the corporate culture; they way they do things. That can't be imparted in a couple of weeks and it varies tremendously from company to company.

    It's not about perks (for example, Google) but the way that things are done, the way that things really get done, and the way that people interact with each other. How are the managers? From the top level to supervisor or even down to the project lead. What are their interactions with other managers and with subordinates? What are the interactions between the subordinates within a group and between groups? The dynamics of personnel interaction are very complicated.

    Another difficulty that school has that's different from the real world is the time frame. In the real world, projects have deadlines. But, the project scope and time scale (days, weeks, months, years) are not easily scaled down to a one semester (12-16 week) class. To make things worse, if course content spans two semesters and different instructors, there is more of a disconnect between the two leaving students confused or having no idea how things fit together. Of course, this happens in the real world, too. Projects or tasks get put on hold because of higher priority items. Then, you've got to go back and get started all over again when you pick it up again. The focus should not be trying to duplicate the real world but, instead, trying to make the concepts meaningful to students so that they'll know how to apply them. Business schools use case studies to get students to think about how to arrive at a good solution and not just the right answer when there isn't any right answer.

    One thing that intrigued me when I read about it was the ETC, Entertainment Technology Center, at Carnegie Mellon University. Check out: They're claim to fame is a MET (Masters of Entertainment Technology) program that prepares students to work at places like Pixar, Industrial Light & Magic, or Electronic Arts. The thing that sets them apart from others is their close ties and interaction with industry. A number of their faculty come from industry or have worked in industry. They even have a Global Director of Career Services. Check out the faculty at: Carnegie Mellon says that they have a deep tradition of "hands on".

    Despite all of this, there's no guarantee that a student will find employment with a company nor that an employer will find a qualified new hire. Only time will tell. The thing that you may notice looking at their faculty page is that where their faculty are now is not necessarily where they had initially set their sites when pursuing their undergraduate degree. Life is what you make it.

    So for students going out in to the real world, they need to realize that they are responsible for improving themselves. For employers, they'll need to find ways to help their employees do their best and become the best that they can be. Sounds like the Army (lol) but the reality is that it's about people and people helping one another to do better. The other choice is the bucket of crabs where everyone that
    tries to go up gets pulled back down by the others.

    Very interesting. Thanks for the great responses. One last burning question.

    It seems that we totally agree about the disconnect. So, as a manager how do you tell if a new grad applicant has what it takes to make it? I recently got into a debate about what types of skills a company should look for in a new grad hire. Early on, I thought the best thing to do was look at the applicant's software skills; for example, subversion use, unit testing, refactoring, algorithms, etc. That path got me a little frustrated because I was not finding those skills in new grads. So, I think I switched to looking for smart people that can learn and think outside of the box (thinking that the software stuff can be taught). The realization was surprising for me; I never thought I would think that way. But, I think I'm almost forced to. Its a sad thing.

    The question is what kinds of things that you look for in a superstar new grad hire? Or even do those superstars even exist now days? Your thoughts.

    Are there superstars? If there's a guy or gal that seems to be a superstar, I tend to be very suspicious. I'd be wondering where their heart at? Are they looking to help or hinder? You want a guy that can fit in with the team. You want them to be able to express their ideas but also be willing to compromise or back off without feeling like they need to get revenge and mess things up. You'd like to be able to trust that they'll get the work done. You'd like to have them care about the work that being done by not only themselves but the entire team.

    I just bought "The Pragmatic Programmer" by Andy Hunt and Dave Thomas (first published 2000). I've skimmed it at Borders on several occasions. The first two tips from that book are "Care About Your Craft" and "Think! About Your Work". That's basically what I'd be looking for. They count these as the characteristics of a Pragmatic Programmer: early adopter/fast adapter, inquisitive, critical thinker, realistic, and jack of all trades. I have their Ruby and Rails books and their ideas resonate with me.

    I was going to give a list of questions to ask during an interview and a list of things to look for during the interview from the answers that a candidate gives. Since I haven't that means that there's just no formula to follow. You can follow what Joel Spolsky (Joel on Software - Chapter 20: The Guerilla Guide To Interviewing) has to say. But, what we really want to do is get the job done and have fun doing it. So, why not find people who want to do the same? If you get people who don't,
    you won't be happy or get the job done.

    I do have to qualify things and say that I'm not a manager. I have been on interview committees. I have recommended a candidate for hire provided someone was going to mentor that person if hired. Unfortunately, that never panned out. Since that time, I think I've come around to realizing that mentoring a person is very difficult. It's too easy to micromange them thinking that you know better and even that you know it all (in the context of the job).

    [end interview]

    my thoughts
    if there is on thing that you take away from this interview it is what russ thought was the best advice given to him:

    He gave me the best advice which was that if I thought that I was done learning when I graduated from college I was mistaken. I would have to teach myself and learn what was needed to do my job whatever that was.

    the other striking thing is that russ still pushes on the learning process. i'm not sure, but i think he doesn't really have a need for ruby on rails, yet he quenches his thirst for knowledge by learning new programming languages and frameworks. he does that because he wants to continually learn (kaizen) and he follows the "Care About Your Craft" mantra!

    Wednesday, February 13, 2008

    showing hawaii high school students cool tricks with the wiimote

    on friday, february 8, i participated in the College of Engineering High School Engineering Expo. thanks goes out to the supporters of the College of Engineering, the staff, faculty, and engineering students for volunteering their precious time for this event. to help out with this event we put together a demonstration of something kids can relate to - a Wii remote!

    we borrowed the idea from johnny lee. johnny, is pretty famous, so if you didn't hear of him yet. you are pretty much out of touch (inside joke: scuba steve is laughing right now). anyway, this dude invented a series of wiimote experiements. its really cool stuff, watch his videos for yourself.

    here are some pictures of the stuff we created:

    the kids at the expo were really be interested in what we showed them. there were a lot of "cool", "thats crazy", "wow", "i didn't know you could do that", which is great! next time i'll figure how to get the kids to say, "i want to make one my self", "how do i make one", "i'll make one and write software for it".

    i think a cool thing to do is get all the infrared LEDs i can and make a hundred pens and send them to the schools. this could be a science fair type thing or it could be a lesson in class. so, basically i want to make a lesson in a box. the box would contain everything a high school teacher needed to use this in the classroom.

    it would have:
  • an already made infrared LED pen
  • parts for the students to make their own pen (say a couple more pens)
  • the wiimote software - with instructions on how to set up. for example, add directX to the cd so teachers can install that quickly.
  • an informative video about how the wiimote works and how the wiimote experiments work.
  • and more teacher lesson plan stuff. for example a sample lesson plan, homework suggestions, etc.

    here are some of the things that i have to figure out.

    1) i need to find a clear pen casing of some sort - so the students can see what's inside the pen. something like this would work great.
    2) how to get all those parts? in bulk? and from where?
    3) who can help me with the teacher lesson plan stuff?
    4) getting someone to do the informative video.
    5) what are the requirements for getting plans approved for the DOE?

    i think this is a fantastic idea that i can actually do to help STEM in hawaii.
  • Saturday, February 9, 2008

    hackystat problems

    i was inspired to work on hackystat this weekend. being that i've been out of the game for a while, so i decided to check out the user interfaces first. unfortunately, things didn't work out so well. here are some highlights of my journey into trouble.

    i started out by executing a sensor:

    C:\java\svn-hackv8\hackystat-sensor-ant>ant -f


    [hacky-checkstyle] 35 Checkstyle issues sent to (1 secs.)

    Total time: 5 seconds

    then i went to view it in the sensor data viewer. but, oops where did that data go? i remember something about it not being historical and it just shows the new data. okay, that is strange requirement, but maybe it isn't "broken". but then again, thats a pretty strange requirement. who is going to go to the sensor data viewer before sending data so you can watch new data coming in. anyway.... moving on....

    i fired up sensor data browser and found the data. it looks pretty good there.

    okay, so what now? i have data, so what can i do with it? i fired up the telmetry viewer and found that none of the charts worked. well, i guess i'm not sure if the telemetry viewer was busted, or if it was the DPD service, or if it was the sensor base client, or if i didn't check the sensor data browser first i might have thought i didn't send the data. i had to double check at this point; i checked my sensor log file, sensor data browser, and then tried to fire up the DPD rest api...

    following the REST api instructions for the DPD service, in constructed a URL that i thought would show me some data. i executed the url and found an empty set of data. hm....

    i kind of don't understand what is wrong at this point. it would be great if i knew at the very least if my url was right. i tried typing in some crazy date and got a blank page. i guess that validates that i got the previous URL right. i think...

    i'm not sure what is wrong at this point. to summarize here is what happened.
    1) sent some checkstyle data (validated it in my sensor logs)
    2) saw the data in sensor data browser
    3) didn't see the data in the sensor data viewer, because it only shows new data
    4) none of the telemetry charts worked
    5) i couldn't figure out if my URL for the REST DPD service was right or not and i couldn't see the DPD data as i hoped
    6) my last chance at doing something was ended when i couldn't create a new project in the project viewer.

    needs more transparency
    so, i guess i wasn't too successful in working on hackystat tonight. i'm even more confused when i started out. i think the problem is the transparency into what is going on. the distributed nature of the applications hides the "knowledge" of what is actually going on. an outside user would have no clue that the telemetry viewer uses the DPD service, which uses the sensorbase (actually i'm not even sure thats correct). the transparency in data flow is set to pitch black.

    hm....... i guess it's just me.

    Saturday, February 2, 2008

    student portfolios

    i started to write a response to philip about the great idea of starting student portfolios. mid way in writing the response, i noticed i lost the point of my email, but really liked what i wrote. so, instead of sending it to him i am posting it here.

    Here is my initial reaction.

    First, I think the blogs were a major success last semester. Blogging has become a great tool for Austen and I to communicate our ideas and actually writing them down helps a lot. (a side note, is that I think you are missing out on the Google Reader fun. google reader has totally changed how i learn and how i learn about others.)

    With that being said, I am a little disappointed that the students don't blog on their own. I know its a hard thing to do. But, it is really useful to practice communicating. (i find it funny actually, its kinda like PSP, good while in class but students stop after class is done). To be honest, to a certain degree we are watching them and they have an opportunity to impress us (and the rest of the world). I think we are looking for insightful posts about teamwork, software development, ideas, etc - it takes practice and they should start now. and i'm not sure i saw a lots of communication between blogs, like comments etc. it would be great if that happened more.

    Now on to the professional portfolio. I've noticed that a lot of the students blogged about creating their portfolio and their blogs say that they learned a lot by just creating the initial version. Thats great! Learning is the most important part. I think learning what value you add is far more important than showing it on a web page. After looking at a few of the students pages, i noticed that it didn't keep my interest. So, i thought about that for a while and came up with a list of things that does interest me.

    Here is what i am interested in learning about a student:
    - students that can communicate clearly
    - students that are confident in what they have studied
    - demonstrate that they have learned concepts and apply it to the real world
    - demonstrate that they have worked on teams and in different situations
    - show that they have been a leader
    - show that they have been a follower
    - prove that they have critical thoughts about a subject
    - prove that they are driven
    - prove that they have problem solving ability and then demonstrate it
    - highlight something they wrote
    - highlight a successful project
    - explain why a project was not successful
    - tell them why the company should hire them
    - explain why they want to work at the company
    - show the company that i did my homework
    - have technical ability

    the bottom line is that if the students did all those things; i'm going to check HIRE on my evaluation form. if I found a student like that, then who cares if they know Java. i guess i've learned that learning how to hack is the easy part. being able to show, demonstrate, prove, explain, and communicate those other things is not easily learned. i much rather teach someone java, than teach someone to communicate effectively. i even would rather teach someone the concepts of software engineering, than teach someone how to critically think.

    thats why, i think portfolios are probably a small part of the story. teach the students how to think, communicate better, evaluate teams, learn from past experiences, and collaborate effectively and then you'll get a superstar student ready to soak up even more technical knowledge and theory.

    but that's just me. i tend to be the type of person that thinks people are not replaceable. a person's potential is defined in their personality and drive; its not in their current technical skills.

    with that being said, i do think a professional portfolio can highlight things i just said, but it takes a different focus. i have some ideas on how you can focus things differently... i'll leave it up the students to figure that out.