Wednesday, March 23, 2011

How I didn't get even a job interview in Google

This is going to be a very different post and it is not going to be technical.
I wish to register a complaint:

But first some history: Once upon a time I have sent my resume to Google. I did it via the Google web site, got an automatic reply and was never contacted. You may say that sending the resume via the company web site is not effective way to find a job, and you are right. But actually I was not really looking for a job, I saw a Google advertisement on the web, and decided to apply.

About a month ago, I got the following mail:
Subject: Hello from Google/Google Opportunities

Hi Michael,

My name is ****** ***** and I am an Engineering Recruiter for Google. Your name was passed to me confidentially by an engineer at our Mountain View headquarters.

I see that you have applied, via our website, to opportunities in our offices in Israel, but nothing materialized. If you are interested in positions in those offices I can pass your information to someone who supports that office and can make sure that you are given serious consideration for those positions. Otherwise, I support our HQ and other offices in the US and if you are interested in a major relocation I can assist. If you are interested in opportunities with us please send me an updated copy of your resume along with your reply.

Best regards,

******

To tell the truth my first idea was to say "Yes! I want to come to an interview to Mountain View. Please, make sure that I fly business/first and live in a nice hotel."
But I'm probably too shy to ask for traveling, while I'm not actually interested in a relocation. While position in Tel-Aviv could be interesting, so I replied:

Hi ******,

Thank you for your mail.
I'm really curious to know, who is the person who passed you my name.
I'm asking, since I don't think that I know anyone, who works at Mountain View...

Anyway, I'm interested in the positions at Google offices in Israel. However, if it does not succeed, I won't be available for the relocation, since *********************************.

My updated resume is attached.
Thank you,

Michael.

And very quickly I received the following two mails:

Mail 1:
Michael,

Thanks for your response and for sending me your resume. We currently have Software Engineering openings in Haifa and Tel Aviv. I can get your resume and information over to a colleague of mine that supports those locations. I will forward your information over today.

The person that referred you definitely works in Mountain View, but I can't disclose their name.

Let me know if you have any questions and hopefully something with us in Israel will work out for you.

Best,

******

Mail 2:
Hi Tal,

My name is ****** and I work for the Google recruitment team.

I got your info from *********** from the USA Google Staffing.


I would like to ask if you would be interested in having an open conversation about current job opportunities to see if we have anything available that may interest you?

If you would like to discuss this further then please send me a convenient time/date and your telephone number.

I look forward to hearing from you.

Best Regards,

--
***************

My name is not Tal, but who cares :) So I replied with a phone number and few days later I got a phone call from the Google recruiter in Tel-Aviv. She asked me few questions about what I'm doing and what I'm interested to do and then said the following (this is not the exact quote, but this is how I remember it): "We don't invite to an interview the candidates who have such a low degree and such a low GPA, and I'm calling you only since a colleague from the USA team has recommended you. If you are interested I will send you an online programming exam and if you successfully complete it, I'll invite you to an interview."

Few points here: I own a BA degree in a Computer Science with GPA 85. I graduated in 2004 and have 7 years of an experience. I can hardly understand the recruiter who is interested in GPA of a person, who has graduated 7 years ago.
Anyway, she didn't reply and didn't send me any exam. I believe she forgot about me the second the phone was disconnected. May be even a second before.

So I do understand that she called me only because she got my resume from her colleague. The thing I don't understand: Is there such a difference between the requirements for Google in US and in Israel? I mean, I don't believe that the US recruited wrote me mail knowing that my degree is not high enough.

Anyway, I'm pretty sure that even if I was getting to an interview, my chances to pass it probably are not high, so I didn't have any real expectations. It's just a nasty feeling that I have after this a very short recruitment process that wasn't even initiated by me.

Thursday, March 17, 2011

Hibernate - How to Insert Data During the Create/Create-drop

And here comes something I was missing for years.
It appears that it's possible to execute additional SQLs during the Hibernates create/create-drop. It's very useful for the unit testing.

In short: Hibernate will run "import.sql" file from the classpath.

I found it here.

Monday, March 14, 2011

Oracle: How to find last query executed

One more sql script to remember - How to find the last query executed:
select sql_text from v$sql 
where first_load_time=(select max(first_load_time) from v$sql)

Or may be in a bit more useful way:
select * from v$sql order by first_load_time desc

And even more useful, show only queries that contain MY_TABLE:
select * from v$sql where sql_text like '%MY_TABLE%' order by first_load_time desc

Update: Pay attention that the solution is not quite correct if you use the prepared statements. For prepared statements there will be one row added to the table per statement's parsing. So if you reused the same statement (which is a good practice from performance point of view), you won't get a new record in a table.


Recommended Reading

1. Oracle Essentials: Oracle Database 11g
2. Oracle PL/SQL Programming: Covers Versions Through Oracle Database 11g
3. Oracle SQL By Example (4th Edition)

Thursday, February 24, 2011

DB Creation Scripts

Two scripts to remember:

MS-SQL Create Database

CREATE DATABASE ${dbName}
GO

DECLARE @size int
SELECT @size = size*8 
FROM ${dbName}..sysfiles WHERE name = N'${dbName}'

IF @size < 5000
BEGIN
ALTER DATABASE [${dbName}] MODIFY FILE(NAME=N'${dbName}', SIZE=5MB)
END
ALTER DATABASE [${dbName}] MODIFY FILE(NAME=N'${dbName}', FILEGROWTH=5MB)

SELECT @size = size*8 
FROM ${dbName}..sysfiles WHERE name = N'${dbName}_log'

IF @size < 10000
BEGIN
ALTER DATABASE [${dbName}] MODIFY FILE(NAME=N'${dbName}_log', SIZE=10MB)
END
ALTER DATABASE [${dbName}] MODIFY FILE(NAME=N'${dbName}_log', FILEGROWTH=50MB)
ALTER DATABASE [${dbName}] ADD FILEGROUP userdata001

DECLARE @FilePath nvarchar(250)
SELECT @FilePath = LEFT(filename, LEN(filename) - CHARINDEX(N'\', REVERSE(filename))) FROM master.dbo.sysdatabases WHERE name = N'${dbName}'
SET @FilePath = @FilePath+ '\${dbName}_data001.ndf'
EXEC ('ALTER DATABASE [${dbName}] ADD FILE (NAME = N''${dbName}_data001'',FILENAME = '''+@FilePath+''',SIZE = 200MB,FILEGROWTH = 50MB) TO FILEGROUP userdata001')
ALTER DATABASE [${dbName}] MODIFY FILEGROUP userdata001 DEFAULT

GO

Oracle - Create User

CREATE USER TEST_USER IDENTIFIED BY TEST_USER
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT "CONNECT" TO TEST_USER;
GRANT CREATE SEQUENCE TO TEST_USER;
GRANT CREATE TABLE TO TEST_USER;
GRANT CREATE TRIGGER TO TEST_USER;
GRANT UNLIMITED TABLESPACE TO TEST_USER;
GRANT CREATE VIEW TO TEST_USER;
GRANT CREATE PROCEDURE TO TEST_USER;
ALTER USER TEST_USER DEFAULT ROLE ALL;

Tuesday, November 9, 2010

Palm Pre Plus

So yesterday, after months of waiting I got my Palm Pre Plus.
Meanwhile cool! :)

But! I could not activate it without data service from my cellular provider. Ughm :(
So I purchased it. Most of the day I have some kind of internet connection around: either wired or wireless. The only time I don't have such, is when I'm driving, and I don't really need it - I should drive. So currently I have a feeling that I'm going to pay for something I'm not going to use...

Anyway, I purchased the data plan and activated my phone, and even managed to make/receive few calls.

But it has not Hebrew or Russian. Why?? Some internet search discovered the following guide.

Another problem: it seems that I cannot connect to App Catalog even for free apps. Why??! If you know how to solve it, please let me know...

Another problem: Skype doesn't support it... Well, it becomes really annoying now. I hoped that a new Palm Pre will replace the outdated Asus pocket-pc, but currently it doesn't :(

Actually currently my feeling is a sort of disappointment: I waited to get this gadget for a loooong time, and now it seems that it doesn't covers my very basic needs for some cool applications and Skype. May be I should have go for some cool HTC device with Android? Rhetorical question.

P.S. In these comments (Russian) you'll find another discussion.

Thursday, August 5, 2010

Spring - Which resources are actually loaded in Spring Context?

Today I got a really weird behavior: some spring context file was loaded into the same context twice. This caused exception, since some beans are expected to be singletons, while I got two instances.

In this post I'm not going to describe what exactly was the problem. But rather how I investigated it.

So in order to see what are the actual files being loaded and what is the source of the definition that caused them to be loaded I put a breakpoint in org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(InputSource, Resource).

That's all. Try it yourself :)

Sunday, June 27, 2010

tarlog-plugins 1.4.1

I'm happy to announce the 1.4.1 release of the tarlog-plugins.
The main feature of this release is an ability to customize the actual commands being run via the preferences page.
This may make the plugin useful for non-Windows environments.

Enjoy!

Tuesday, June 22, 2010

Eclipse Helios RC4 Review

Some time ago I have downloaded the JEE edition of the Eclipse Helios RC4.
And here comes a review in order to win a Helios t-shirt.
I'll start with bugs I found till now. I didn't find many. Continue with features I still miss, and try to end with some positive note about the features I liked.

Bugs

For a RC release there are really few bugs I found till now.
  • In Html Editor the div element does not get idented. Really annoying...
  • Sometimes the key bindings does not work in Package Explorer. For example, when I press F5 I expect "Refresh" to run. Sometimes it happens, sometimes it doesn't.

Missing Features

And not the features I still miss. Please notice: I'm a Java Developer. Meaning I'm talking here about features I miss mainly as a Java Developer and it may be irrelevant for the C/C++/Php and other users. So if you are not a Java Developer, you can probably skip this section.
  • Built-in Maven Support - It's 2010. Most projects I'm involved in the last 5 (five!) years, use Maven for builds, but Eclipse till today ships with Ant plugin only. Hey! Wake up! Almost nobody uses it anymore! And if even some does, there are a lot of Maven users, who need to install the Maven plugins manually. So can you do a favor and add it Maven plugin at least to the distributions for Java and JEE developers?
  • Subversion/Git support - same as Maven: most of the open source projects I know, use Subversion or Git. So may be it's time to include these plugins in the Eclipse distributions?
  • I'm really fond of the "Quick Fix" (Ctrl+1) feature of Eclipse. One suggestion that can be quite easily added to this feature: when there are not initialized final fields in the class, the following error is displayed: "The blank final field may not have been initialized". The quick fix may be to open "Generate Constructor using Fields" dialog.
  • It would be cool to collapse the generics in the fields declaration
    Instead of:
    private Map<String, Set<String>> map = new HashMap<String, Set<String>>();
    it could be:
    private Map<String, Set<String>> map = new HashMap<~>();

New Cool Features

Actually I didn't find many cool features in this release.
  • I'm really fond of "Quick Fix" (Ctrl+1) feature. One of the most annoying "bugs" that is had till now, was placing @SuppressWarnings annotation only on the method level. So now it has two options: place it on method and place it on variable.
  • Refactoring: Move Type to a New File - finally! I was missing this feature for a loooong time!
  • Java debugger has two new neat features: Breakpoints view now contains more details, like "hit count", "conditions" and so on. Variables view contains "instance count", so it is easy to check how many instances of the specific type were created.

Conclusion

I didn't find any new really cool features in this version of Eclipse. 3.5 was a great release, and this release looks like mainly bug fixes. Don't get me wrong: having a stable SDK without bugs is more important than having unstable one with a lot of features.
So nice work, guys! You are doing a great job!


If you got that far and read all this, you may be interested in the plugins I developed for Eclipse:
Tarlog plugins
Encoder Tool

Thanks for reading.

Monday, May 31, 2010

Palm: Game of Life - Reading the Comments

Getting the data about the published application is somewhat annoying. From the developer's portal you can see the amount of downloads and the average user rating.
From the rss feed you can additionally see the number of comments, but you cannot read them.
Fortunately, http://www.myappbox.com shows the comments, once you find your application.

I don't know if there is any normal way to answer the user comments and I will be really surprised, if any of the users bumps into my blog, but currently I see no other way to post replies.

First, all the guys who said that the game is cool: thank you!!! It's really a pleasure to read your comments ;-)

Aaron B and Stanley T: you both mentioned that "Ability to save favorite initial conditions would be a great feature." I'm totally agree with you. Moreover, I developed it in a very first version and even mentioned it in "Help". Yes, it's on the last help's screen that talks about shortcuts.

Stanley T: "The builtin ability to share saved starting patterns would be very cool." Totally agree. I'll think about it :-)

Michael M: "Not playable at all on the Pixi due to the screen formatting. Please fix." What does this mean? Are cells too small? The cell's size is adjustable. Once again: reading "Help" may help.

Sunday, May 23, 2010

Conway's Game of Life for PALM WebOS

And here comes my first WebOS application: Conway's Game of Life.
Actually I don't own palm myself and I developed it using emulator, so all of you, who own palm: please! please! please! Download it and see if it runs, how is your experience, and what are the bugs.

The project is open source at Google Code. You are welcome to report bugs.