- PVSM.RU - https://www.pvsm.ru -

Ты фрилансер и тебе надоело делить с индусами кусок хлеба?

Ты фрилансер и тебе надоело делить с индусами кусок хлеба?

Тогда мы идем к вам!


Если ты квалифицированный разработчик и тебе надоело терпеть на oDesk демпинг цен индусами, то новый сервис для тебя!

Сразу оговорюсь, что я не причастен к разработке сервиса и не состою в каких-либо отношениях с их командой. Узнал о нем случайно от друга, который скинул мне ссылку в скайп. Прошу не расценивать это как PR, просто делюсь сервисом и рассказываю как это было у меня.

Итак, сервис называется TopTal [1].

Ты фрилансер и тебе надоело делить с индусами кусок хлеба?

Это еще одна площадка для фрилансеров. Такая же как oDesk, freelancer и elance. Но, есть одно отличие.
Они проводят с вами 4 раунда собеседования перед тем как вы сможете принимать заказы!
По пунктам:

0. Вы регистрируетесь
1. Через час или два вам в скайп стучится девушка и просит 5-10 минут вашего времени чтобы провести вводное интервью. На этом этапе она себе примерно записывает у себя кто вы такой и вы узнаете немножко о том кто они такие.
2. Вам в почту падает ссылка на прохождение теста. Тест состоит из трех задач, которые нужно решить за 90 минут. После его прохождения результаты автоматически отсылаются в toptal и в случае успеха переходим к пункту 3.
3. К вам стучится программист ( в моем случае это был старший инженер toptal) и просит вас решить две задачи при нем. Открываете screenshare в скайпе, свою среду разработки и пишете код :) В случае успешного прохождения переходим к п.4
4. Вам на почту падает небольшое практическое задание, которое вы должны выполнить сами. После выполнения к вам снова стучится человек и просит вас показать что вы там натворили.
5. В случае успешного прохождения предыдущих пунктов вам приходит письмо со ссылкой для доступа на toptal, где вы изменяете свой пароль и заполняете профиль. После полного заполнения профился и его модерации вам открывают полный доступ к сервису.

Таким образом на получение этого доступа у меня ушла неделя. Зарегистрировался я там в прошлую пятницу, а закончил все процедуры буквально вчера.
Что мы имеем в сухом остатке: 3 раунда нелегкого технического интервью на английском, котороые автоматически отсеивает львиную долю школьников, работающих за еду и других любителей демпинга.
С сервисом работают крупные фирмы. Если хорошо зарекомендовать себя, то есть возможность найти себе работу вне сервиса у этих же клиентов (как впрочем и на любом другом фриланс-сайте).
Три вида получения денег: банковский перевод, payoneer и paypal — большинству должно хватить.

Вот собственно и все.
Не все.
Как бонус, выкладываю тут задания, которые мне пришлось решать походу дела.

Задания

Этап 1 (пункт 2). Тест на 90 минут и три задания:

Area of itnersection

A rectangle is called rectilinear if its edges are all parallel to coordinate axes. Such a rectangle can be described by specifying the coordinates of its bottom-left and top-right corners.

Write a function

function solution($blx1, $bly1, $trx1, $try1, $blx2, $bly2, $trx2, $try2);

that, given eight integers representing two rectilinear rectangles (one with lower-left corner (K, L) and upper-right corner (M, N), and another with lower-left corner (P, Q) and upper-right corner (R, S)), returns the area of their intersection. The function should return 0 if the intersection is a point or a line segment, or if the rectangles do not intersect. The function should return −1 if the area of the intersection exceeds 2,147,483,647.

Assume that:

· blx1, bly1, trx1, try1, blx2, bly2, trx2 and try2 are integers within the range [−2147483648..2147483647].

For example, given integers:

K = 0 L = 2 M = 5 N = 10

P = 3 Q = 1 R = 20 S = 15

the function should return 16.

The intersection of the two rectangles is a rectilinear rectangle whose lower-left corner is (3,2) and upper-right corner is (5,10), and its area equals 16.

Complexity:

· expected worst-case time complexity is O(1);

· expected worst-case space complexity is O(1).

Binary period

A non-empty zero-indexed string S consisting of Q characters is given. The period of this string is the smallest positive integer P such that:

· P ≤ Q / 2 and

· S[K] = S[K+P] for 0 ≤ K < Q − P.

For example, 8 is the period of «codilitycodilityco».

A positive integer M is the binary period of a positive integer N if M is the period of the binary representation of N.

For example, 4 is the binary period of 955, because the binary representation of 955 is «1110111011» and its period is 4. On the other hand, 102 does not have a binary period, because its binary representation is «1100110» and it does not have a period.

Write a function:

function solution($N);

that, given a positive integer N, returns the binary period of N. The function should return −1 if N does not have a binary period.

For example, given N = 955 the function should return 4, and given N = 102 the function should return −1, as explained in the example above.

Assume that:

· N is an integer within the range [1..1,000,000,000].

Complexity:

· expected worst-case time complexity is O(log(N)2);

· expected worst-case space complexity is O(log(N)).

Turtle crossing

An array A of positive integers contains N elements.

A LOGO turtle stands at (0,0) heading North. It moves A[0] steps forward and turns by 90 degrees clockwise. Then it moves A[1] steps forward and turns clockwise by 90 degrees. And so on.

For example, given:

A[0] = 1 A[1] = 3 A[2] = 2

A[3] = 5 A[4] = 4 A[5] = 4

A[6] = 6 A[7] = 3 A[8] = 2

The turtle walks as follows:

(0,0) -> (0,1) 1st move, 1 step North

(0,1) -> (3,1) 2nd move, 3 steps East

(3,1) -> (3,-1) 3rd move, 2 steps South

(3,-1) -> (-2,-1) 4th move, 5 steps West

(-2,-1) -> (-2,3) 5th move, 4 steps North

(-2,3) -> (2,3) 6th move, 4 steps East

(2,3) -> (2,-3) 7th move, 6 steps South

(2,-3) -> (-1 3) 8th move, 3 steps West

(-1,-3) -> (-1,-1) 9th move, 2 steps North

In the 7th and 9th moves the turtle touches its previous path, namely:

at point (2,1) in the 7th move,

at point (2,-1) in the 7th move,

at point (-1,-1) in the 9th move

Write a function:

function solution($A);

that, given a description of the turtle's walk in array A, returns the number of the first move in which the turtle touches its previous path, or 0 if no such situation occurs.

For example, given array A as defined above, the function should return 7, because the turtle touches its previous path at point (2,1) in the 7th move.

Assume that:

· N is an integer within the range [1..100,000];

· each element of array A is an integer within the range [1..1,000,000].

Complexity:

· expected worst-case time complexity is O(N);

· expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Этап 2 (пункт 3). 2 задания, на каждое по 20 минут:

Number splitting

Devise a function that takes an input 'n' (integer) and returns a string that is the
decimal representation of that number grouped by commas after every 3 digits. You can't
solve the task using a built-in formatting function that can accomplish the whole
task on its own.

Assume: 0 <= n < 1000000000

1 -> «1»
10 -> «10»
100 -> «100»
1000 -> «1,000»
10000 -> «10,000»
100000 -> «100,000»
1000000 -> «1,000,000»
35235235 -> «35,235,235»

Anagram

Devise a function that gets one parameter 'w' and returns all the anagrams for 'w' from the file
wl.txt.

«Anagram»: An anagram is a type of word play, the result of rearranging the letters of a word or
phrase to produce a new word or phrase, using all the original letters exactly once; for example
orchestra can be rearranged into carthorse.

anagrams(«horse») should return:
['heros', 'horse', 'shore']

Этап 3 (пункт 4). Задание:

To-do list

Could you write me a todo list management application where
I can:
— register and log in
— I can have my todo list displayed
— I can manipulate my list (add/remove/modify entries)
— Assign priorities to the entries.
— I could do the same using a very simple REST api.
— The front-end is using Ajax exclusively.

I don't need any design/UI/logo, etc plain html is fine.

Вот и все. Регистрируйтесь на TopTal [1]!

Автор: xytop

Источник [2]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/human-resources/42232

Ссылки в тексте:

[1] TopTal: http://www.toptal.com/apply/developer

[2] Источник: http://habrahabr.ru/post/192110/