Frankly, I just don't think that I was good enough technically. I have always viewed myself as a "top 1%" person in my field, and Google gets the very best people in the world. Several weeks after my interview, I got an email from one of my interviewers who told me that some absolutely awesome people interview at Google, and do not get hired.
This might have had something to do with it also: I started out "luke warm" wanting the job (because I have a near perfect lifestyle living in the mountains) and it was only late in the day, after the interview process was about over, that I really, really wanted the job. I might have come off a little pompous earlier in the day. (Originally, I got a cold call from Google's HR department - I did not first contact them. I had two long telephone interviews that were a lot of fun, then they flew me to California for an onsite interview.)
I do not have any patents, but I am wildly creative. I don't think for a second that it is "ageism" - not that kind of place.
re: working on search technology: sort of: one of my real passions (technically:-) is AI and text mining. I used to have a live semantic search demo on my web site that used word sense, treated proper names (human, place, products, etc.) specially.
Anyway, I really enjoy my consulting business, so I am happy enough to have the day at Google, then get back to my own stuff.
One more thing: in just one very long day of interviews, I had my attitude adjusted re: software development:
I am a hacker (at heart), and I always look to rapidly coding something that works and is solid.
At Google, it seemed to me that their main focus is on algorithmic development. In the few months since I was at the Google campus, I have found myself "slowing down" and spending much more time thinking through issues of scalability and efficiency (and not just use a "good enough" algorithm, or pull my copy of Cormen/Lieserson/Rivest Algorithms book from my book shelf and not do much original thinking).
Anyway, I thought that it was cool that an investment of one day actually changed some of my own attitudes about software development (and I am an older guy, coding since the 1960s:-).
To be honest, when Google flew me to California for an interview, I was luke warm about the idea of working for Google because I love my life style living in the mountains of Northern Arizona.
However, after spending a day being interviewed by 6 extremely bright and creative people, I very much wanted the job (I did not get it, oh well). It is true that bright people want to work with other bright people. Anyway, it may sound strange, but I view the interview process as a very positive experience (also, after 30 years of working, it was the only job that I tried for that I did not get, so I was able to set most ego stuff aside). In addition to the interviews themselves, I got to have lunch with Peter Norvig and before I left the Google campus a nice person let me ride a Segway:-)
It really is true that a few very good people are way better than many above average people.
One of the most fun times in my career was when I had a boss who has a PhD from MIT and hired many other PhDs and MSs from MIT - some of the best colleagues that I ever had.
Personally, I think that I am going to invest in Google stock, but I am likely to wait for a few months after the IPO (or make a low bid for the IPO).
I have written several published books - overall a very fun experience, but for one thing:
I would occasionally get emails from people teaching classes to students who no-way could afford to buy my books (usually in 3rd world countries). These teachers would ask for permission to copy a few chapters for class distribution - something that I did not have the right to do.
My solution to this problem was to write 2 free web books using a Creative Commons license (I was the featured commoner about a year ago).
I still write books for publication, but to be honest, writing free books under a CC license is way more satisfying.
I tend to make lots of CDR backups, so about once a year I like to create a directory of the "best stuff" on backup CDRs, then burn this directory to 2 new CDRs - this helps avoid bit-rot and gives me an additional optimized backup set where it is easier to find stuff. I like to also occasionally store these newer backups at relative's houses (off site backup:-)
Anyway, this may sound like a nuisance to do, but this scheme works for me.
Good read! This paper (with the discusion of the goodness/fastness of file appends) made me more interested in Prevalence - so much so that I am using it for my new project.
Yes, I know that it is a beta system, but for really crucial business email, I keep a flat file where I copy and paste emails for local backup (but, I almost never bother to do this).
Setting up Gmail was trivial - just forwarded email from my domain name. It is a little strange using a web based email system but because it uses a Mozilla plugin it is really more like a fat client. I find that the convenience of getting my email from any computer I am using outweighs any hassles of a web interface.
Oddly enough, I don't use the search capability very often, but it does work well. I like the way threads are organized in "conversations" and a new email to a "conversation" moves the entire conversation to the top of the Inbox.
-Mark
I wrote a book on UML, but use it lightly
on
UML Fever
·
· Score: 3, Informative
Paul Harmon and I wrote a book on UML about 5 years ago.
At first, I thought that UML was a godsend because it did away with 12+ different modeling languages.
Still, for most of my work, schedules are very tight and my customers usually want to spend as little money on development as possible, so I find myself only using what I consider to be the highest value diagram types: use cases, very general class diagrams, and sequence diagrams.
I am negotiating right now with one of my customers to get a long-term grant to build a GPLed Knowledge Management (as apposed to just content managment) layer on top of the Python/Zope/Plone stack.
I usually use Java (or Common Lisp) for development, but Plone offers so much infrastructure out of the box, that the decision to use it seems right. (Although I have been experimenting a lot with OpenCMS, which also looks very good).
-Mark
Google web services (SOAP) API is very cool
on
In Google We Trust
·
· Score: 5, Informative
For developers, the Google SOAP API is great. I used it a year and a half ago for a demo system that answered "who" and "where" questions posed in natural language. You need to ask for a license key that allows 1000 SOAP based calls a day. In addition to searching, you can also use the Google spelling corrector with this API.
I live in a really remote area (mountains of Northern Arizona), so I work mostly by telecommuting.
A few years ago, I worked with a bunch of very talented Russian guys and also very talented Brazilian developers. They received a very low pay by our standards, and I consider a telecommuting U.S. programmer has to, in the long run, compete with foreign developers. Because of my experience, and "time zone advantage", I set my rates at about double what a very good overseas developer gets.
Actually, with my current consulting rates and book royalties, I am very satisfied with the living that I make.
I am fortunate to be the number 1 hit for the keywords "Java consultant" on Google and Yahoo.
I have never played any games what so ever to get there. What I do however is try very hard to place interesting and useful content on my site (mostly 'free web books').
I don't think that it matters so much what you do in life so long as you love doing it. I have been programming computers since the early 1960s, and I still love it!
Since I am basically addicted to OS X, this is good news:-)
Apple has always had pricey, but cool stuff. I paid a premium for my Apple II (serial number 79 !! - I used it to write the free Chess program that was on the demo cassette for the Apple II).
I paid a premium for my first Mac in 1984.
Sometimes, more expensive products are just worth it.
..which is something that a lot of people seem difficulties doing.
Don't get me wrong: nothing wrong with planning for the future, or in a quiet moment remembering cool stuff that we did with our grandparents when they were still alive, but almost all of our thoughts are best focused on what we are doing now.
BTW, I too often rant to my friends and family about what I consider to be an indication of the fall of western civilization: too many people are caught up in a lust for material possessions - I think that is just another aspect of not living in the moment.
1. An old friend of my Dad's, Chandrasekhar (who passed away a few years ago), was a very well respected scientist (and I remember from my childhood that both he and his wife were very nice people). He had an X-ray telescope named after him, BTW.
2. I visited India a few years ago, and I got a very positive buzz from the place. Sure, there was some poverty, but I got the feeling that 30 years of promoting education is really paying off for India. When I got home, I told my friends that if India were a company, I would buy their stock:-)
I moved from San Diego to the mountains of Northern Arizona - the cost of living is way, way less here (despite the fact that we live in a tourist spot - Sedona).
I agree with a lot of what you say: Swing on Mac OS X is fairly good. I think that part of this is Apple's patches to Java to share library code - if, for example, you already have a Swing application running, starting a second is a little faster.
I don't know if I agree that the lack of a GUI app builder is such a bad thing in Eclipse. While I admit that I sometime fire up NetBeans to build a shell for a new GUI application, in general, I like to just code to the Swing APIs directly in Java (but,most of my Java work is server side - so, I am not an expert in Java GUI apps).
But, I must disagree with your last paragraph - Eclipse is just a better development environment for Java.
Eclipse is also a very good platform for building IDEs for other languages. I am working a little with the people who write Amzi Prolog (helping with the Mac OS X port) - one of them (Mary) wrote a very slick Eclipse plugin for developing Amzi Prolog.
I find NetBeans to be useful and always keep it installed, but my use patterns for Java IDEs are:
IntelliJ - 75%
Eclipse - 20% (I expect to use Eclipse more than IntelliJ eventually)
Emacs/JDE or NetBeans - about 5%
Emacs is still my favorite "IDE" for Lisp, Scheme, and Python though.
I have been a Linux user for about 10 years (when I first got Slackware over a 1200 baud modem) and until recently I was using a super-cheap Linux box to run Java server side stuff for my little NLP software business.
I switched over to using an old G4 Mac for running web services about 4 months ago. It is a little too early to tell, but I seem to be spending less time taking care of the G4 server (approxametely 1 hour a month - and I think that I used to spend 2 or 3 hours a month messing with my Linux server).
America could be heading for financial trouble, if the federal deficits and the state budget disasters do not get solved...
It amazes me how many people here in the U.S. do not understand this!
I have friends and relatives who are still accumulating more debt for unnecessary things.
Unfortunate uniform behavior of both the general public and Federal government. The situation is a little different for the state governments: they know that they can not print money.
I am (mostly) a Java consultant and an author, and I found Linux to be a more productive environment than Windows (good command shell, Unix utilities, etc.). I spent way less time maintaining a Linux development system than Windows NT or 2000.
However, I spend even less time maintaining my OS X development machines (I use 3), and OS X has all the Unix niceness that I need for software development.
As far as writing goes, I wrote 2 published book entirely using Star Office (then Open Office) on Linux, and just imported the material into Word on Windows before shipping stuff off to my publisher. Mac OS X has both Word and Open Office.
-Mark
P.S. the X server for OS X is great, so running Linux apps like konqueror, yast2, etc. on my OS X desktop for my Linux server is nice. Great fonts - KDE apps look great!
.. to both cooperate on Linux and base their IT on Linux.
Personally, I now use Mac OS X (after about 10 years of enthusiastic Linux use:-) but there are several reasons for non-U.S. companies to standardize on Linux and cooperate on region specific versions:
Cost savings
increased security - not trusting a U.S. company (Microsoft)
improved CS education: really learn how an OS works in school by having the ource code
good performance on lower end computers
easier to create new inovative IT applications when you have control over the entire software stack
Thanks for the tip! I just upgraded to the test OOo 1.1.2 fix1 version and it really is fast!
I will still keep NeoOffice/J around though.
BTW, I have written 2 of my last 3 published books using OOo. (Using Word to check and re-write the files just before sending to my publishers).
-Mark
Sounds strange, but it works well!
I wrote a blog entry in NeoOffice/J.
-Mark
Good question!
Frankly, I just don't think that I was good enough technically. I have always viewed myself as a "top 1%" person in my field, and Google gets the very best people in the world. Several weeks after my interview, I got an email from one of my interviewers who told me that some absolutely awesome people interview at Google, and do not get hired.
This might have had something to do with it also: I started out "luke warm" wanting the job (because I have a near perfect lifestyle living in the mountains) and it was only late in the day, after the interview process was about over, that I really, really wanted the job. I might have come off a little pompous earlier in the day. (Originally, I got a cold call from Google's HR department - I did not first contact them. I had two long telephone interviews that were a lot of fun, then they flew me to California for an onsite interview.)
I do not have any patents, but I am wildly creative. I don't think for a second that it is "ageism" - not that kind of place.
re: working on search technology: sort of: one of my real passions (technically :-) is AI and text mining. I used to have a live semantic search demo on my web site that used word sense, treated proper names (human, place, products, etc.) specially.
Anyway, I really enjoy my consulting business, so I am happy enough to have the day at Google, then get back to my own stuff.
Best regards,
Mark
One more thing: in just one very long day of interviews, I had my attitude adjusted re: software development:
:-).
I am a hacker (at heart), and I always look to rapidly coding something that works and is solid.
At Google, it seemed to me that their main focus is on algorithmic development. In the few months since I was at the Google campus, I have found myself "slowing down" and spending much more time thinking through issues of scalability and efficiency (and not just use a "good enough" algorithm, or pull my copy of Cormen/Lieserson/Rivest Algorithms book from my book shelf and not do much original thinking).
Anyway, I thought that it was cool that an investment of one day actually changed some of my own attitudes about software development (and I am an older guy, coding since the 1960s
-Mark
To be honest, when Google flew me to California for an interview, I was luke warm about the idea of working for Google because I love my life style living in the mountains of Northern Arizona.
:-)
However, after spending a day being interviewed by 6 extremely bright and creative people, I very much wanted the job (I did not get it, oh well). It is true that bright people want to work with other bright people. Anyway, it may sound strange, but I view the interview process as a very positive experience (also, after 30 years of working, it was the only job that I tried for that I did not get, so I was able to set most ego stuff aside). In addition to the interviews themselves, I got to have lunch with Peter Norvig and before I left the Google campus a nice person let me ride a Segway
It really is true that a few very good people are way better than many above average people.
One of the most fun times in my career was when I had a boss who has a PhD from MIT and hired many other PhDs and MSs from MIT - some of the best colleagues that I ever had.
Personally, I think that I am going to invest in Google stock, but I am likely to wait for a few months after the IPO (or make a low bid for the IPO).
-Mark
I have written several published books - overall a very fun experience, but for one thing:
I would occasionally get emails from people teaching classes to students who no-way could afford to buy my books (usually in 3rd world countries). These teachers would ask for permission to copy a few chapters for class distribution - something that I did not have the right to do.
My solution to this problem was to write 2 free web books using a Creative Commons license (I was the featured commoner about a year ago).
I still write books for publication, but to be honest, writing free books under a CC license is way more satisfying.
-Mark
I tend to make lots of CDR backups, so about once a year I like to create a directory of the "best stuff" on backup CDRs, then burn this directory to 2 new CDRs - this helps avoid bit-rot and gives me an additional optimized backup set where it is easier to find stuff. I like to also occasionally store these newer backups at relative's houses (off site backup :-)
Anyway, this may sound like a nuisance to do, but this scheme works for me.
-Mark
If that link gets slashdotted, here is another link of a PDF PowerPoint presenation.
Good read! This paper (with the discusion of the goodness/fastness of file appends) made me more interested in Prevalence - so much so that I am using it for my new project.
-Mark
Yes, I know that it is a beta system, but for really crucial business email, I keep a flat file where I copy and paste emails for local backup (but, I almost never bother to do this).
Setting up Gmail was trivial - just forwarded email from my domain name. It is a little strange using a web based email system but because it uses a Mozilla plugin it is really more like a fat client. I find that the convenience of getting my email from any computer I am using outweighs any hassles of a web interface.
Oddly enough, I don't use the search capability very often, but it does work well. I like the way threads are organized in "conversations" and a new email to a "conversation" moves the entire conversation to the top of the Inbox.
-Mark
Paul Harmon and I wrote a book on UML about 5 years ago.
At first, I thought that UML was a godsend because it did away with 12+ different modeling languages.
Still, for most of my work, schedules are very tight and my customers usually want to spend as little money on development as possible, so I find myself only using what I consider to be the highest value diagram types: use cases, very general class diagrams, and sequence diagrams.
-Mark
I am negotiating right now with one of my customers to get a long-term grant to build a GPLed Knowledge Management (as apposed to just content managment) layer on top of the Python/Zope/Plone stack.
I usually use Java (or Common Lisp) for development, but Plone offers so much infrastructure out of the box, that the decision to use it seems right. (Although I have been experimenting a lot with OpenCMS, which also looks very good).
-Mark
For developers, the Google SOAP API is great. I used it a year and a half ago for a demo system that answered "who" and "where" questions posed in natural language. You need to ask for a license key that allows 1000 SOAP based calls a day. In addition to searching, you can also use the Google spelling corrector with this API.
Amazon also provides a SOAP (and REST) API.
-Mark
I live in a really remote area (mountains of Northern Arizona), so I work mostly by telecommuting.
A few years ago, I worked with a bunch of very talented Russian guys and also very talented Brazilian developers. They received a very low pay by our standards, and I consider a telecommuting U.S. programmer has to, in the long run, compete with foreign developers. Because of my experience, and "time zone advantage", I set my rates at about double what a very good overseas developer gets.
Actually, with my current consulting rates and book royalties, I am very satisfied with the living that I make.
-Mark
I have never played any games what so ever to get there. What I do however is try very hard to place interesting and useful content on my site (mostly 'free web books').
I don't think that it matters so much what you do in life so long as you love doing it. I have been programming computers since the early 1960s, and I still love it!
-Mark
Apple has always had pricey, but cool stuff. I paid a premium for my Apple II (serial number 79 !! - I used it to write the free Chess program that was on the demo cassette for the Apple II).
I paid a premium for my first Mac in 1984.
Sometimes, more expensive products are just worth it.
-Mark
Don't get me wrong: nothing wrong with planning for the future, or in a quiet moment remembering cool stuff that we did with our grandparents when they were still alive, but almost all of our thoughts are best focused on what we are doing now.
BTW, I too often rant to my friends and family about what I consider to be an indication of the fall of western civilization: too many people are caught up in a lust for material possessions - I think that is just another aspect of not living in the moment.
-Mark
1. An old friend of my Dad's, Chandrasekhar (who passed away a few years ago), was a very well respected scientist (and I remember from my childhood that both he and his wife were very nice people). He had an X-ray telescope named after him, BTW.
2. I visited India a few years ago, and I got a very positive buzz from the place. Sure, there was some poverty, but I got the feeling that 30 years of promoting education is really paying off for India. When I got home, I told my friends that if India were a company, I would buy their stock :-)
-Mark
-Mark
I moved from San Diego to the mountains of Northern Arizona - the cost of living is way, way less here (despite the fact that we live in a tourist spot - Sedona).
-Mark
I don't know if I agree that the lack of a GUI app builder is such a bad thing in Eclipse. While I admit that I sometime fire up NetBeans to build a shell for a new GUI application, in general, I like to just code to the Swing APIs directly in Java (but,most of my Java work is server side - so, I am not an expert in Java GUI apps).
But, I must disagree with your last paragraph - Eclipse is just a better development environment for Java.
Eclipse is also a very good platform for building IDEs for other languages. I am working a little with the people who write Amzi Prolog (helping with the Mac OS X port) - one of them (Mary) wrote a very slick Eclipse plugin for developing Amzi Prolog.
I find NetBeans to be useful and always keep it installed, but my use patterns for Java IDEs are:
Emacs is still my favorite "IDE" for Lisp, Scheme, and Python though.
-Mark
The OpenOffice XML file formats are great (actually human-understandable XML, and uses gzip to keep file size down).
I have a strong interest in both data mining and the semantic web, and Microsoft file formats are more than a small nuisance to me.
-Mark
I have been a Linux user for about 10 years (when I first got Slackware over a 1200 baud modem) and until recently I was using a super-cheap Linux box to run Java server side stuff for my little NLP software business.
I switched over to using an old G4 Mac for running web services about 4 months ago. It is a little too early to tell, but I seem to be spending less time taking care of the G4 server (approxametely 1 hour a month - and I think that I used to spend 2 or 3 hours a month messing with my Linux server).
Anyway, a life for old Macs :-)
-Mark
It amazes me how many people here in the U.S. do not understand this!
I have friends and relatives who are still accumulating more debt for unnecessary things.
Unfortunate uniform behavior of both the general public and Federal government. The situation is a little different for the state governments: they know that they can not print money.
-Mark
I am (mostly) a Java consultant and an author, and I found Linux to be a more productive environment than Windows (good command shell, Unix utilities, etc.). I spent way less time maintaining a Linux development system than Windows NT or 2000.
However, I spend even less time maintaining my OS X development machines (I use 3), and OS X has all the Unix niceness that I need for software development.
As far as writing goes, I wrote 2 published book entirely using Star Office (then Open Office) on Linux, and just imported the material into Word on Windows before shipping stuff off to my publisher. Mac OS X has both Word and Open Office.
-Mark
P.S. the X server for OS X is great, so running Linux apps like konqueror, yast2, etc. on my OS X desktop for my Linux server is nice. Great fonts - KDE apps look great!
Personally, I now use Mac OS X (after about 10 years of enthusiastic Linux use :-) but there are several reasons for non-U.S. companies to standardize on Linux and cooperate on region specific versions:
-Mark