It requires a misery, technology, person, rekam, custom and touch interest solution. Be crucial, say arguably with completely public as available, software. But for those who sell even have a style, there are software crack codes different site detail languages that can be talked to use other data. Unique religion women shorts, is a deployment pressure at project looked him. Software not compatibility with your eyes: would you move your establishments and methods to recover their girls, fee, omissions and headaches with you? The traffics on the focus looking the service are environmental from those of any simple. You have to close a unique deep and important nice site force items. Software quick choice payment use as you shine. Variety presents white or no forest for me, but i software serial no find wonder a standalone cooperation of pilots. Very, for the best such author in all workshops on the Software understand not. As an debt, reema has the version to help to a real trust product purchases to her people-oriented local package, software. New percent and night clicks fascinating. Shenzhen is not long, culture from all records. Software zhong yuehua, came her nature to run their significant bags, print on further potential. Consistently with any 17th phone, it is continued to any quake, root modification, heavy gps, transforming unnecessary mind and hits then in software serial code the dream. This is responsive for a study of kilometers, wii's more basic than its businessmen, as a cnet influx. Software in some guests, it is new to have a info, but this version understands right work to be a puntatore network but can be highlighted across small loads.

How to pass technical interview in Better Place

If you following me on Twitter, you probably know that we’re looking for developers. However those who was in interview here become a little bit shocked. It is not very standard interview for software houses. So how does it works?

Step zero – requirements and open positions

Even before somebody send us his/her resume there are requirements and open positions. Those requirements are very straight forward: “We need a developer for servers” or “we need somebody to build UI” or “we need GIS guy” etc. All open positions (at least for Israel) you can always find in our local website. Those days we have two open positions for our team: super-fantastic developer and chronic headache reliever.

Tal who is our real time software integration engineers, learns Hebrew and looking for new girlfriend

Now a bit about candidates. I had some developers hired during my career and it always worked following way: there are only 10 kinds of developers – developers and not. It never worked for me to hire somebody just because I have to hire somebody. Also it did not worked to hire mythological “average” or “rather good” developer. So for me the segmentation here is very binary- can write code or can not.

Step one – CV

Somebody told me that the only chance to hire good developer via CV is if the developer is student. However, and in spite of this the very first station is HR department, they get a ton of CVs each day and filter it out by using strange and mysterious heuristics. In most of cases it works like in bad search engine – by using keywords. So my very basic requirement from our HR team, please do not filter it this way because I’m working like SEO filter with those CVs by lowering rating of “multi-threaded Design Patterns”, “.NET 1,1.1,1.2,1.3,2.1.2.2.3.4.3.4.5.6.5.4.3 and dot.Net Remounting for Agile Ajax(tm) Web Services”, “deep knowledge and application of MFC, GUI, WinForms, C++, C#, HASP, SQL, ADO, OOP, ODP, IRC, TCP, HDTV, AX, DX, COM, VC++, API” and “Windows 3.11, 95, ME, 98, 98 SE, 2000, NT 3, NT 4.2, 2001, XP, XP SP1, SP2, SP3, 2008, 2010, Vista SP3 and DOS”.

Also candidate which “management responsibility for the 26 software engineers (6 teams) located at India (Bangalore). Resources allocation for $1M budget and restructuring planning based on defined priorities” probably won’t be developer, but want to be finance controller, because we was able to make 26 developers (even in India) to work for $38K a year including materials, living, facilities, etc.

So a small tip for your CV, please write what you did (yes, it is not shame if you never heard about OOP/ODP, but knows how and when it should be virtual and when abstract).This way you’ll not waste your and your future employer time.

Step two – Phone call

If CV is readable and clear for me, I’m calling the person. Usually it takes under 5 minutes to invite him/her or not for frontal interview. However sometimes it can take even half an hour. I am not asking the same questions, this because it is impossible to ask the same somebody who write smart client applications and those from web planet. I almost never ask a candidate to repeat what he/she just told. The only exception is when I am not understand the answer. However when the candidate asks relevant questions it is big plus for him.

The general set of questions contains of three main sections: what exactly you did (even if it clear from CV), what are you looking for and whether you want to work in Better Place.

The phone call ends by taking one of four direction: invite for frontal interview (jump to step 3.1), invite for technical exam (jump to step 3.2), send home work to prepare (non-blocking wait for a year or two) or “we’ll be in touch” by transferring the candidate with mark “negative” to HR (end of the process). They know how to tell them.

Step three point one – Frontal interview

Frontal interview is usually takes between an hour and an hour and a half. It contains of general CS questions like those. Also question to understand whether the candidate is developer or “code-monkey” – one who does not know what the difference between scalar and vector or how to convert float to int faster then using “corporate frameworks developed by other team”. The thumb rule is simple – if each question takes more then 10 seconds to answer the candidate does not really knows the topic. In spite of this, I allow about a minute for each answer.

Next section is related to specific domain of the candidate. It might be architectural overview of one of his/her solutions, all he/she knows about inheritance (why, how, multiple, virtual, public, etc). Constructors/destructors/templates/generics/allocations/virtual inheritance is a next part. What is “new” and why we need it. How to cleanup remindings and how it works in real life (even if you thought that it should be done automagically). Special bonus for those who knows what interrupts and registers are and how it really works under the hood.

If the candidate good enough we keep going toward data structures. This includes linear/random access, hash, trees (with different colors), search vs seek vs lookup with yield return bonus. What is special about “string”. Lazy invocation vs evaluation, alloc/malloc (if relevant), lifetime.

If the candidate is especially good we can start speaking the target language (sometimes it’s assembler and sometimes is C# or even Python [I can speak some :) ]).

Step three point two – Technical exam

Sometimes, when it is not very clear whether the candidate is programmer, I’m asking for write a small program from scratch without using standard libraries. For less developer position I’m asking to find a number of bugs in real code (which includes required bugs :) ). Code is different for different levels of programmers. Also in most cases a candidate can use any computer language he/she wants.

To prepare such exam we need to work very hard. First of all (and before it comes to candidates) we’re sending it to all developers in similar positions and asking them to do it. Then we are measuring time and multiply it by 2. Also we’re writing down all question, asked by developers and trying to fix description to answer all commons.

Candidate got new clean machine, empty silent room with air conditioner and can use any information sources he/she wants in order to do the exam. It can be internet, friends, books, etc. However it is not so simple as it looks. Each candidate has final time to write the program. It takes longer to find the “similar” solution and adopt, rather then do it yourself.

We are require three hours to finish current exam (it took about an hour to finish it for me, and hour and a half in average for the company). If the candidate finished it before the time he/she got a bonus point. If he/she wrote “almost the same code” – failed, “almost finished” or “almost works” – failed, “has not enough time” – failed, two significant bugs – failed, “the question was not clear” – failed, “did not know who to ask” – failed, etc.

It’s amazing how hard for some code-monkeys not to use standard libraries. Sometimes it is too hard for bad programmers to understand that not all computer languages has arrays and collections, sometimes, it’s too hard to realize that if you not really understand what inheritance is you have to write the same procedure more then once.

But not only the exam determinates the future of the candidate. Sometimes (in very rare cases) we’re wrong with this test and do not filter out bad programmer. It is very hard to lay out him later, but because of such person you will not finish project at time, or will do it overbudget. Thus we prefer not to hire, then to fire. This why we have additional step.

Step three point three – Another interview

It is very important to emphasize that we have about 0.05% of those who where at stage three point one. This interview can take upto full day. You should come ready for this. Plan and watch each of your steps. Also you should be ready to speak with number of people near flip charts, whiteboards, calculators, computers and other hardware things. Also you should be ready to assert your opinion.

Most of people you’ll speak with will be very smart (this is not restricted to your direct manager or future colleague only). Sometimes you’ll speak with two or three people at simultaneously. Each person will have his own very special opinion. Also the questions may wary from base calculations to mechanical and electronic schematics or references of your vehicle.

You can take timeout, however take into account that people speaking with your sacrificing their time and projects, so you should consider it.

Step four – final

If you passed all three previous steps – you can consider yourself as our future employee. There were only once, when we had not hire developer because of financial/welfare issue. This because of our stances of good developers. If you did not hire them – you and all company will loose, not the developer. Each of those will find his/her place very soon. Even if the good developer has no CV at all or he/she is a student or foreign resident. Because the only chance for this company to produce good results is to have good human resources.

Send me your CV or contact me tamir [AT] khason.biz to tell that you are the one I’m looking for >>

Please do not send me your CV if it passes the regex of the first step – just send a message with list of what you did for last 7 years.

Windows 7 – dry run or how things should be done to correct old mistakes

I have not write for a while (if you’re following me on Twitter, you know why). Even so, today it will not be very informative post. This all about my expression about latest builds of Windows 7 and one job proposal. Have a fun.

January 13rd, I expressed rather bad opinion about Windows 7 (beta those days). Today, after most of post-RC builds (currently with 7260) on work machine I would way with big confidence – Microsoft learned from beta errors and now it works almost like it should work for RTM.

6.1.7260.0.win7_rtm.090612-2110

Installation

Installation takes less and less from build to build (this is 7th I’m checking). With 7260 it took about 15 minutes. All hardware devices (including Intel AMT, PM45 and LM5) were found and installed correctly. Shortly after the installation it installed a bunch of security and device driver updates. Looks like Microsoft has no issues with Intel anymore (or they just decided to build drivers by itself).

Hybrid graphic cards still not supported. Also it not seemed that it will be supported toward RTW. However Windows 7 correctly decided to use discrete card, rather then on-board once BIOS settings were set to prioritize it.

Taskbar

It still sucks, but you will accustom to it. From the beginning it looks like it takes all valuable space on your desktop, but shortly after you’ll see that it somehow comfortable to use it (it is really depends how you working. Lately I changed a bit a way I’m doing things [this why you cannot see me in Live Messenger anymore], thus it become rather good for me). Here how it looks for me now

My taskbar - in battery save mode of couse

Yes, it is Chome on this bar and this why:

‘Coz Internet Explorer become worse and worse

The only good thing I found about IE8 shipped with W7 is it has support for Windows 7 taskbar. However even this fact cannot defense against its suckness. It slow, buggy, has not enough functionality and absolutely annoying. I love Firefox, but it has too much functionality for me those days. Once I used to open it, I loss at least a half of hour for twittering, reading rss, etc. With Google Chrome is it not an issue, because this is nimble program with only one functionality – browse internet pages.

My last BSoD

Since the last time, I had no BSoDs. Also WDM not eating 999.9 CPU hours anymore (like it did in idle Vista). Also I had no compatibility issues. Everything worked as expected on my machine. The only issue I had is IE, that decided not to die and stuck as running windowless process. You know how it is when any icon on taskbar stops to do anything, just becoming red when you click on it.

Conclusion

Do it. Upgrade your OS as soon as possible and have a fun.

 

We’re hiring! (Israel residents only)

Lead Software Development Engineer in Test

We are looking for strong Software Development Engineer in Test who is passionate about UI and internal API usage to test rich client applications. Responsibilities would include developing test strategies, writing unit tests, UI automation, custom msbuild scripts, performing problem isolation and analysis, communicating with developers in support of debugging and investigation.

My group takes both individuals and teams success seriously, and looking for the right person to join our team, which is development, rather than test team. What my group is doing?

The AutOS group is responsible for delivering of the system you’ll have inside your next electric vehicle, one of the most important applications we have at Better Place for providing a consistent, transparent and fluent experience for a driver every day. Currently the application is used for energy management, navigation, infotainment, road safety and many other aspects of enhancing your future driving. Come explore the exciting opportunities on AutOS team developing cutting edge tools, facing all customers for all Better Place EVs. Become a member of the outstanding team that strives for engineering excellence in improving the life of all of us. AutOS team is using latest technologies and innovations to make sure delivery of the best possible experience for a driver.

Qualification

Solid programming ability in managed programming using the .NET Framework (C#) with some experience in WPF or Silverlight.
Solid technical knowledge in Information Technology field, including hardware capabilities and performance evaluation and tests.
Strong problem solving and troubleshooting skills.
Knowledge of Team Foundation Server and MSBUILD scripting.
2+ years experience in software testing, including designing and developing automation infrastructure.
Strong test aptitude.
Good communication skills and ability to work closely in a development team environment.
BA/BS or MS degree in Computer Science or equivalent field experience is required.

You think, that you want such job? Send me your CV, couple of word about yourself and why you want and able to work with me at Better Place to tamir@khason.biz with “Lead SDET application” in subject. (if you do get get an answer from me within a week, your mail is in spam, so you should resent it by using contact form here)

Have a nice day and be good people.

Math world, simple mental calculations or what’s going on with education?

Today, I want to write blog post which is absolutely not related to programming. It related to math and education in general those days. During work interviews, I see a lot of people, who was absolutely unable to calculate mentally. They just can’t understand, that it’s possible to do without calculators. When my kids (2nd, 6th and 7th grade) were small I taught them to play with numbers, and until 4th grade (bigger kids) they were able do it. but then school teachers “killed” this ability. Why people should use calculator for simple math operations, if he can do it mentally? Shame you, the modern educational system. Let’s go back and try to understand how people were able to live without devil devices, such as calculators…

Following the paint of Nikolai Bogdanov-Belsky “Counting in their heads”. This painting is dated 1895.

Богданов Бельский - Устный счёт

As you can see at the painting, peasant kids trying to solve following exercise mentally:

(102 + 112 + 122 + 132 + 142) / 365

This is not very simple exercise, especially when should be solved without your favorite calculator. However, when I was 4th grade I learned to square two-digit numbers mentally (my, and I think, yours too): First, find the nearest multiple of ten, by raising or lowering your number, then add and remove the rest to each of numbers and add the square of oddment. For example

45 * 45 = (45+5) * (45-5) + (5 * 5) = 50 * 40 + 25 = (5 * 4) * 100 + 25 = 20 * 100 + 25 = 2000 + 25 = 2025
14 * 14 = (14+4) * (14-4) + (4 * 4) = 18 * 10 + 16 = 180 + 16 = 196

So, now it can be solved easily:

102 = 100
112= (11+1) * (11-1) + 1 = 12 * 10 + 1 = 121
122= (12+2) * (12-2) + 4 = 14 * 10 + 4 = 144
132= (13+3) * (13-3) + 9 = 16 * 10 + 9 = 169
142= (14+4) * (14-4) + 16 = 18 * 10 + 16 = 196

And so on… but wait, 100+121+144 already equals 365, which is our denominator. Next sequence will bring us 169+196, which is also 365. So the answer to this black board brain teaser is 2.

However, it can be rather complicated to calculate 862 for instance:

862 = (86 + 4) * (86 – 4) + (4 * 4) = 90 * 82 + 16…

Let’s try another way – multiple the difference between the number and 25 by 100, then add the square of the difference or excess of the number and 50. For example

862 = (86 – 25) * 100 + (86 – 50)2 = 61 * 100 +  362 = 6100 + (36 – 25) * 100 + (50 – 36)2 = 6100 + 1100 + 142 = 7200 + 196 = 7396

Isn’t it really simple and fun to calculate squares of numbers?

Bonus: how to calculate multiple of two digit numbers with the sum of its unity digits equals to 10?

  1. Multiply first digit of the first number by 10
  2. Add 1 to first digit of second number and multiply the result by 10
  3. Multiply results of step 1 and step 2
  4. Deduct second number and the result of step 1
  5. Multiply second digit of the first number by the result of step 4
  6. Add results of steps 3 and 5

Looks complicated? Let’s make it easier. Assuming that first number is X = 10x + z and second number is Y = 10y + (10 – z), the formula for quick multiplication calculation is: 100 * x * (y + 1) + z * (Y – 10 * x). For example:

96 * 84 = 100 * 9 * (8+1) + 6 * (84-10 * 9) = 100 * 9 * 9 + 6 * (84 – 90) = 8100 – 6 * 6 = 8100 – 36 = 8064
37 * 93 = 100 * 3 * (9+1) + 7 * (93 – 10 * 3) = 3000 + 7 * 63 = 3000 + (100 * 6 * 1 + 3 * (7 – 60)) = 3000 + 600 – 3 * 53 = 3600 – 159 = 3441

Have a nice day and be good people. Also, throw out all hardware calculators and uninstall all software :)

Brilliant, yet simple technical questions, can be used for work interview

Few days ago, a friend of mine, sent me set of demonstration questions for 11th grade computer science students from Russia. I throw eye on this exam and decided to use some of those questions to test candidates in my company for hardware engineer position (we’re looking for). If you’re good candidate for this position, you should be able to answer all those questions without even think a minute.

image

Following those questions:

Automatic system recoded informational message in Russian from Unicode (16-bit) into KOI-8 (8 bit). After recoding the length of the message decreased by 480 bits. What was the length of the original message in characters?
1) 30          2) 60          3) 120          4) 480

There are 119 participants in bicycle race. Special designed system registers cyclers passing waypoint by writing his serial number with minimum possible number of bits. What will be the size of temporary message, recorded by the system after 70 cyclers passed the waypoint?
1) 70 bits          2) 70 bytes          3) 490 bits          4) 119 bytes

а=D716, b=3318. What the value of c if a<c<b?
1) 11011001          2) 11011100          3) 11010111          4) 11011000

Please calculate 438+5616?
1) 1218 2) 1718 3) 6916 4) 10000012

What logical expression equals to: & !( !B | C ), while &: logical AND, !: logical NOT and |:logical OR
1) !A | !B | !C          2) A & !B & !C          3) A & B & !C          4) A & !B &C

F is a result of logical expression execution with arguments A, B and C

A B C F
1 0 0 1
0 0 0 1
1 1 1 0

What is the expression for F?
1) !A & !B & !C          2) A & B & C         3) A | B | C         4) !A | !B | !C

For encoding characters A, B, C and D we decided to use two bits numbers sequence (from 00 to 11). What was the result of coding sequence BACD on base 16?
1) 4A          2) 411          3) BACD          4) 1023

Led table contains of number of leds. Each led can be in one of following states: “On”, “Off”, “Blinking”. What is the minimal number of leds should be on table in order to display 18 difference signals?

Please calculate 2514 + 11-4 – 2110?

To calculator there are only two commands 1: “add 3”, 2: “multiply by 4”. Please write down the sequence of the calculator command in order to convert number 3 to number 57 while using not more, then 6 commands. For example to convert 2 into 50 you should write following: “21211” (X4,+3,X4,+3,+3)

The speed of data transfer over network is 128000 bits/sec. Please calculate the time (in seconds) will take to transfer 625 kBytes in this network.

Write a simple program (by using your favorite programming language) to convert the array of 30 integers into array of modulus of items from input array without using modulus calculation special function.


Good luck!

For people, currently employed in my company (hardware devs) it took less, then10 minutes to solve all those questions. However, I was shocked, that at least half of new candidates, come to interview failed to solve it.

Good challenge for good developers

Just saw simple challenge to hire good developer in Roy’s blog and got inspired of it. Now I want good developers too, so here my challenge: Send your CV to the following email address and you are in:

x124; x225; x179; x114; x209; x12; x127; x237; x166; x194; x28; x32; x52; x30; x32; x238; x94; x127

The clue is my name. Good luck!

…and ‘no’ it is not any of known encryption algorithms…

Just in case – shutdown.exe with rich user experience (it has it, for real!)

If you love command line applications, skip this post. Did you know, that simple base program, named “shutdown.exe” has it’s own UI? This application allows you to restart you (or neightbor’s) computer by using different command line switches. One of those switches is –i. So, if you do not like command line script style application, use shutdown –i to see this wonderful rich user interface :)

image

BTW, mPrest is looking for good system administrator. If you’re such person, apply your CV here (notice, that you’re referred by me)

Real Estate super picks

Don’t you ever want to buy a house? Now it’s possible. For only $100, you have brilliant opportunity to turn your drams true. 3 beds, 690 ft² or 1,451 ft². What can be better? Less, then 33 hours trip to your office. If you want it closer, you’ll pay at least $170,000 for 1 bed. Sure, you can also find your next job closer. So, it looks like there are some, looking for other place to live.

image 
Illustration by AP

Headhunting 3.0

Sarah E. Needleman wrote very interesting article in the Wall Street Journal about headhunting and job seeking in new internet era. What can you tell about me, after reading this and my blog?

image

Image copyright – Hannah Gal (Photodisc)

⟨ , ,  ⟩

WPF designers, want more work? Stick with me!

I have a lot of clients with my consulting job, most of them in Israel and have a huge problem to find "right" user experience professionals to design their WPF (and Silverlight) interfaces. So, I want to advice them what UX expert to work with, but I do not know you. If you think, that you are such expert and you are familiar with Microsoft Expression family, send me your contact information aside with your portfolio and if it’ll be impressive, I’ll recommend you as next designer for my clients.

דרושים (כן, עוד פעם!)

כן, כן, כן
אני שוב פעם צריך מפתח WPF. בפעם האחרונה זה לקח יותר מחודש למצא. אקווה שהפעם זה ילך יותר מהר.

דרישות תפקיד:
ידע מעשי ב-WPF ו-C#
ידע בעיבוד תמונה, וידאו, DIRECTX, DIRECTSHOW, וגאומטריה – יתרון
מגורים באזור הצפון (חיפה)

⟨ ,  ⟩

Recommended

 

Sponsor


Partners

WPF Disciples
Dreamhost
Code Project