kika: (Default)
[personal profile] kika
Офигеть, 10 месяцев не писал. Тут возник вопрос в ФБ и поскольку там даже свои посты-то с трудом найдешь, что уж говорить о комментариях, то решил написать сюда, ибо вопрос возникает редко, но регулярно.

Как с моей точки зрения правильно нанимать программистов/девопсов на работу:

0. Правильно составить объявление о найме. Сжато и быстро написать bid и ask. Что надо делать (на самом деле, а не всё на свете + еще немножечко) и что за это предлагается. Что делает компания и где лежат грабли (это важнее чем расписывать какая она leading и какие технологии bleeding). Грабли могут быть технологические (адовое легаси например), организационные (адский режим работы например), финансовые (от последнего раунда осталось полгода runway, и следующий раунд зависит как раз от результатов работы) и так далее. Это все равно всплывет, но тогда, когда вы уже потратите кучу времени. Не надо надеяться что вы "продадите" хорошему программисту (то есть человеку, предположительно хорошо умеющему в рациональное мышление) свою компанию. Если он может проигнорировать какие-то грабли - он придет на интервью как минимум. Если не может - то и не сможет, значит и на интервью не придет. С граблями лучше сгущать краски чем приукрашивать, верьте мне, люди.

1. Читаем резюме. Если идет поток треша, мы что-то не то написали в №0, идем обратно туда. Если говна не больше 80% с этим можно работать, но лучше оптимизировать. Я иногда получал практически 100% выход годных (когда натурально хочется позвать всех) но не знаю как это синтезировать искусственно. Быстро валидируем резюме на непротиворечивость (даты, продолжительности, технологии), потом выделяем интересные моменты (технологии, компании, обучение), причем не обязательно интересные для данной позиции, а просто знакомые лично вам, то есть что можно обсудить на интервью. Резюме русские писать не умеют, причем как не умели 20 лет назад, так и сейчас не умеют. Немного лучше научились оформлять разве что. Впрочем лучше пусть дальше так не умеют как скажем индусы умеют, когда резюме читать вообще смысла не имеет. Обратите внимание на оформление, кстати, если вы просили в ворде, а прислали - пдф, это звоночек. Если вы просили на английском, а прислали на русском или наоборот - это тоже звоночек. Это на самом деле важно, как показывает практика.

2. Если имеет смысл поговорить - договариваемся о телефонном интервью на полчаса-час, не больше. Сначала рассказываем о себе, о компании, плюсы-минусы и задаем уточняющие вопросы по плюсам-минусам, типа подходит ли вам расположение офиса или подходит ли вам удаленная работа или такой график, не важно. Предупреждаем про тестовое задание и выясняем есть ли у человека время на него и если да, то сколько. На этом этапе важно просто разговорить человека, это разминка. Ну и люди ценят что вы начинаете с себя а не тупого "расскажите о себе". Потом собственно переходим к "расскажите о себе" и просим человека изложить свой профессиональный опыт (если резюме очень длинное, то спрашиваем с какой-то точки, а про более раннее можно просто спросить "как же ты дошел до жизни такой, что стал программистом"). По мере изложения опыта читаем резюме и задаем вопросы по отмеченным местам. Поскольку эти области вам хорошо известны, то задаем вопросы, которые невозможно вычитать в интернете, если точно не знать что спросить. Про компании, технологии, языки программирования, совершенно безотносительно требуемого на данной позиции набора, ваша задача - в легком разговорном жанре выяснить степень владения "предметом" вообще, а также провалидировать резюме.

3. Задаем несколько вопросов как в №2, но по теме данной позиции и копаем вглубь пока лопата не зазвенит. Причем годятся любые вопросы, ответы на которые практически невозможно запомнить всухую. "А вы помните в каком релизе там фундепы внедрили?" Правильный ответ "что-то типа NNN или около того, но потом пришлось обратно всем откатываться, потому что оказывается что фундепы сломали тайпчекер, как оно тесты-то прошло, бгггг". Очень хорошо идут вопросы из резюме кандидата (из №2) но в приложении к технологиям из №3: "а вот вы рассказывали что вы делали ХХХ, а как бы вы сделали тоже самое, но уже с использованием YYY, которое нам нужно?". Тут люди очень часто заводятся и начинают увлеченно "проектировать" ибо чувствуют себя в своей тарелке. Вообще говоря, на этом месте иногда можно и закончить и послать человеку оффер (ну или наоборот), если повезет.
В завершение, если человек декларирует знание английского, то переходим на него и пару технических вопросов обсуждаем на английском.

4. Даем тестовое задание. Лучше иметь несколько на выбор, если ваше "основное" слишком длинное. Но в любом случае тестовое задание не должно быть больше 8 часов при требуемом вами уровне квалификации, а лучше меньше. Идеально - 4-5. Если есть возможность - не говорить кандидату на этапе №2 сколько именно вы рассчитываете займет задание. Просто отделайтесь "небольшое" и попросите его на этапе №5 оценить время самому.
Я стараюсь иметь бюджет на оплату тестовых заданий и плачу по разумной рыночной ставке, чтобы человеку было не обидно и замечено что люди даже за небольшие деньги гораздо внимательнее относятся к выполнению, включается психологический паттерн "работа". Задание даю так, чтобы его можно было сделать за отведенное время аккуратно, без висящих соплей. Стараюсь давать из существующего проекта, либо что-то новое (поскольку заплачено, то не стыдно и использовать будет) либо уже существующее (зато есть reference implementation и можно отдать на глубокое ревью тому, кто писал оригинал). Задание должно быть вырезано из существующего проекта аккуратно и не требовать экзотического тулинга и строго заданных ОС. Человек будет делать задание из дома, а там у него может не быть рабочего окружения, а просто игровой компутер с виндой. Можно дать доступ на EC2 инстанс, где уже все готовое установлено, а потом его просто убить.
Я читал много завываний что вырезать из существующего проекта небольшое изолированное задание очень тяжело, но что-то мне подсказывает что это у людей проблемы с проектированием и управлением проектом. У меня таких проблем никогда не было.
Задача должна быть реальная, делать что-то полезное, а не сортировать массив пузырьком, прости господи.

5. Ревью задания с кандидатом. Почему вы сделали так, а не иначе, что бы вы сделали если бы было больше времени, покрытие тестами, точки интеграции в "большой" проект, то есть обычная рабочая рутина. Посмотреть как человек вертится, как и что предлагает, насколько хорошо оценивает риски, и т.д. Желательно конечно убедиться что задание компилируется, работает и делает что обещано :-)

6. Мой любимый вопрос: "представьте себе что я вам дал миллион долларов и вы можете его потратить на что угодно в области вычислительной техники, что вы сделаете?". Это не решающий вопрос, но много интересного может рассказать о кандидате. А может и нет, но обычно впендюриваю. Бывало что по результатам я усердно гуглил потом и мне раскрывались разные бездны.

7. Никаких, упаси господь, задач из области компутер саейнса, вы программистов нанимаете, а не компутерных сайентистов. Если человек хорошо знает алгебру, логику, теорию категорий, графов, игр - это будет написано у него в резюме.
Никакого программирования в реальном времени на собеседовании, вообще кандидат должен при таком предложении вежливо распрощаться, это бред сивой кобылы (ну, кроме случаев когда надо в боевом режиме так программировать и это соответственно оплачивается). Никакого тестирования "стрессоустойчивости" при этом не происходит, ну что за бред.
Можно порисовать диаграммки на доске если интервью личное.
Если у вас так уж пригорает на тему "формального тестирования", то разработайте квиз с парой десятков вопросов системы "выбор из 4-5 вариантов". Но это пустая трата времени.
Никаких вопросов про пол, ориентацию, семейное положение, возраст, детей, etc. Это правонарушение и даже если вы нанимаете в какую-нибудь условную Руанду, где это не так, все равно ведите себя цивилизованно. Допустимо задать вопрос про командировки, если это требуется.

Нигде не написано в какой момент надо пригласить в офис посмотреть в глаза и поговорить. Это зависит от массы факторов, удаленности, бюджета, etc. Чем ближе к концу тем ниже риск, очевидно. Само очное интервью - это что-то из №2 и №3, но с бОльшим числом людей. Я нанимаю как с очным интервью, так и чисто удаленно и никакой разницы по качеству набора не вижу.

Набираю я хорошо, это по-моему, лучшее что я научился делать за 25 лет в этом вашем IT. К сожалению, я надеялся что научусь большему.

Пост наверное через некоторое время уберу во френдз-онли ибо я тут под своим настоящим именем и незачем давать готовую инструкцию "по прохождению интервью".

Date: 2016-11-13 07:59 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Где мы проверяем на CCD (can't code disease)? Домашнее задание индийской женщине будут делать домашние - хотя я и предпочитаю индийских женщин, они зверски умные и серьезные.

Date: 2016-11-13 08:32 pm (UTC)
From: [identity profile] kika.livejournal.com
Написано же - №5.

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-13 09:03 pm (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-13 10:26 pm (UTC) - Expand

(no subject)

From: [identity profile] stan podolski - Date: 2016-11-14 01:04 am (UTC) - Expand

Date: 2016-11-13 08:42 pm (UTC)
From: [identity profile] alexott.livejournal.com
Наверное они все-таки разные - у меня с индийками абсолютно другой опыт...

Date: 2016-11-13 08:12 pm (UTC)
From: [identity profile] keinkeinkein.livejournal.com
Оффтопик. Будни российского программиста:

http://keinkeinkein.livejournal.com/131352.html

Date: 2016-11-13 08:18 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Все фирмы, пытавшиеся дать тестовое задание "не больше восьми чесов" оказывались страшным гнильём. Правда, немцы не предлагали время оплачивать.

Я читал много завываний что вырезать из существующего проекта небольшое изолированное задание очень тяжело, но что-то мне подсказывает что это у людей проблемы с проектированием и управлением проектом.

В нормальных проектах только на изучения документов по требованиям к коду, ограничениям на используемые особенности языка и рекомендациям по стилю оформления часа три уйдёт.

Date: 2016-11-13 08:24 pm (UTC)
From: [identity profile] miller777.livejournal.com
Спасибо, интересно.

Сохранил к себе в заметки на случай сноса записи.

А стоит ли врать на собеседованиях (я имею ввиду - кандидату)?

Читаешь описания вакансий и ужасаешься: как, все это надо знать? И это? И вот это? Даже джуниору? Это ж, натурально, бездны.

Жена говорит: ври, все так делают. Ври и устраивайся на работу. Зачем ты говоришь, что чего-то не знаешь? Кто тебя такого возьмет?

Я отвечаю, что любое вранье всплывет на собеседовании и сыграет в "минус". И хорошо, если на собеседовании, а не на испытательном сроке. Это ж инженерная специальность, а не гуманитарка какая.

Так стоит ли врать про:

1. знания?
2. опыт?

Date: 2016-11-13 08:35 pm (UTC)
From: [identity profile] kika.livejournal.com
Не знаю.

Я не задаю вопросов, на которые надо врать или можно надежно соврать так, чтобы я гарантированно не спалил. Если спалю - я не возьму. Но это я, я много читал и слышал людей, которые вполне считают такое вранье частью "правил игры". Моя "методика" найма рассчитана как раз чтобы в эту игру не играть.

Date: 2016-11-13 10:45 pm (UTC)
From: [identity profile] keinkeinkein.livejournal.com
А как про опыт даже теоретически можно соврать? Потребуют референсы, testimonials.

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-13 10:48 pm (UTC) - Expand

(no subject)

From: [identity profile] miller777.livejournal.com - Date: 2016-11-13 11:10 pm (UTC) - Expand

(no subject)

From: [identity profile] miller777.livejournal.com - Date: 2016-11-13 11:12 pm (UTC) - Expand

(no subject)

From: [identity profile] keinkeinkein.livejournal.com - Date: 2016-11-13 11:13 pm (UTC) - Expand

(no subject)

From: [identity profile] miller777.livejournal.com - Date: 2016-11-13 11:17 pm (UTC) - Expand

Date: 2016-11-13 09:03 pm (UTC)
From: [identity profile] con-vertor.livejournal.com
6. с миллионом немного можно сделать в области хардваре.

разве что организовать несколько олимпиад по программированию \ математике и раздать лаптопы в качестве призов.

Date: 2016-11-13 10:49 pm (UTC)
From: [identity profile] kika.livejournal.com
Разве что в области чипостроения, но и там миллиона на много хватит. А для готового устройства миллиона достаточно чтобы показать что-то вменяемое.

(no subject)

From: [identity profile] http://users.livejournal.com/_slw/ - Date: 2016-11-14 08:47 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 09:55 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_slw/ - Date: 2016-11-14 10:06 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 11:25 am (UTC) - Expand

Date: 2016-11-13 10:54 pm (UTC)
From: [identity profile] keinkeinkein.livejournal.com
...или сделать гигантский дата-центр для реализации пакета Яровой (да чтоб ее понос пронес).

Date: 2016-11-13 09:12 pm (UTC)
From: [identity profile] izard.livejournal.com
Вроде все дельно, но тестовое задание на 8 часов уж больно сложно придумать, реальное не выдерешь (выше написали, на что много времени уйдет), а нереальное ничем не отличается от кодирования черно-красного дерева на доске.

Date: 2016-11-13 10:27 pm (UTC)
From: [identity profile] kika.livejournal.com
Мне до сих пор удавалось.

(no subject)

From: [identity profile] izard.livejournal.com - Date: 2016-11-14 09:32 am (UTC) - Expand

Date: 2016-11-14 12:17 am (UTC)
From: [identity profile] 109.livejournal.com

Всё правильно. При этом ВСЕ фирмы, платящие прилично, заставляют именно что писать код в реальном времени. Причём фломастером на доске.

Date: 2016-11-14 12:41 am (UTC)
From: [identity profile] kika.livejournal.com
Понятно что алгоритм найма отличается от алгоритма "как наняться".
При этом я знаю несколько фирм, платящих очень прилично, которые этого не требуют, так что с квантором всеобщности немного не э.

Date: 2016-11-14 12:20 am (UTC)
From: [identity profile] 1master.livejournal.com
Во многих компаниях живьем сожрут за описание технологических граблей. Ибо это довольно ценная информация для конкурентов.

Date: 2016-11-14 12:43 am (UTC)
From: [identity profile] kika.livejournal.com
Меня мало кто может сожрать, а с теми кто может у меня в этом смысле отличное взаимопонимание. Исторически, в подавляющем большинстве случаев меня вообще некому было сжирать.

Не все работают в госконторах, я уже это, по-моему, говорил :-)

(no subject)

From: [identity profile] 1master.livejournal.com - Date: 2016-11-14 01:15 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 01:25 am (UTC) - Expand

(no subject)

From: [identity profile] 1master.livejournal.com - Date: 2016-11-14 01:38 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 01:41 am (UTC) - Expand

Date: 2016-11-14 01:16 am (UTC)
From: [identity profile] yatur.livejournal.com
По какой статье вы проводите оплату тестовых заданий? У вас есть какой-то фонд на это дело?
Превышает ли оплата тестовых заданий $600? 8 часов по $60 в час - это уже $640.
Если превышает, посылаете ли вы кандидату форму 1099-MISC?

Date: 2016-11-14 01:20 am (UTC)
From: [identity profile] kika.livejournal.com
От ситуации зависит, бывало что я и из кармана платил, а потом получал "премию".
В штатах об этом заботится HR, поэтому я просто не интересовался как он это делает. В зарубежных офисах есть прям бюджет на это, но опять же я не знаю как они по местным законам это проводят. Как-то проводят. Суммы обычно получаются типа этого, да, единицы сотен.

(no subject)

From: [identity profile] yatur.livejournal.com - Date: 2016-11-14 01:24 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 01:28 am (UTC) - Expand

(no subject)

From: [identity profile] yatur.livejournal.com - Date: 2016-11-14 01:42 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-14 02:46 am (UTC) - Expand

Date: 2016-11-14 05:36 am (UTC)
From: [identity profile] avnik.livejournal.com
Хорошо написано, дельно.

Date: 2016-11-14 09:38 am (UTC)
From: [identity profile] enternet.livejournal.com
0. Имеем перед собой HR. Это сокращает поток резюме в несколько раз, совсем мусор отпадает и звонков будет в разы меньше. Экономим своё время. Пробиваем ФИО, ники и емейл в поисковиках. Бывают интересные результаты.
2а. Краткий звонок на пару минут, договариваемся о личной встрече в офисе. Согласовываем время и продолжительность. Уже на этом этапе идет отсев неадекватных товарищей. Не все умеют вежливо беседовать, не все имеют два часа свободного времени в ближайшие пару недель.
2б. Также просим принести с собой образец _своего_ кода на профильном языке. Тут львиная доля, начитавшись интернетного бреда из силиконовой долины, начинают гнать про NDA. Ага, в Беларуси-то. Тут максимум законны только требования про сохранность коммерческой тайны предприятия, да и то её грамотно оформить не могут. Ну может епам какой и умеет, а мелкие фирмы банально юриста не имеют для этой бумажной волокиты. Тут важно нащупать границы и продавить. "У нас NDA" - "Нам чужого не надо, не несите код под НДА, несите код им не покрытый". "Проект большой" - "А нам не надо его компилировать, возьмите любимый модуль на 20кб". "НДА у нас нет, но коммерческий код я вам копировать не буду" - "Согласен с вами, покажите пожалуйста любимый кусок кода на экране _своего_ ноута или планшета". "Я пиздец какой крутой, у меня всё или секрет или ещё какой гемор" - "с радостью посмотрим ваш код на гитхабе" - "я не пользуюсь гитхабом и не коммичу никуда ничего" - "у крутых так не бывает, придумайте что-нибудь, беседы без кода не будет" - "ну хорошо, принесу". "Нуу, я могу захватить только свой пет-проджект, но он простой совсем" - "Прекрасно, его и берите." (на деле это может оказаться как сайт на три страницы, так и монструозная библиотека для отладки неведомой херни в загадочном окружении).
3. Встречаемся. Знакомимся. Знакомим в том числе с возможными коллегами. Рассказываем план на ближайшие пару часов. Рассказываем кто принимает решение о найме и сколько времени это обычно занимает. Рассказываем о предприятии, о работе которой занимаемся. "Вопросы?". Многие меняют носки редко, так что дальнейшая беседа бывает и очень сжатой )
4а. Быстрая беседа по резюме. Быстрый опрос по матрице компетентности для нащупывания границ.
4б. Беседа по принесенному коду. Доска, фломастеры. Перекрестная беседа с коллегами.
5. Тяжелые вопросы, которые просто так не расскажешь, не имея заметного опыта. Я, например, часто прошу рассказать про свой алгоритм анализа плана запроса если заявлен продвинутый sql. "Перед вами неоптимальный запрос, открываете план, на что смотрите, что делаете дальше?".
6. Конец и если норм то беседуем "за жизнь". Напоминаем, что дальше, кто в компании принимает решения о найме и сколько времени это займет.

Date: 2016-11-14 09:51 am (UTC)
From: [identity profile] kika.livejournal.com
FYI, в силиконовой долине NDA фактически не действуют (вообще, в Калифорнии). Заэнфорсить NDA будет стоить просто натурально космического масштаба денег.

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

HR в данный момент у меня присутствует, но выполняет функции отбора где-то в районе пункта №0.5, типа есть ли у кандидата документы на работу. В принципе при хорошо составленном объявлении и правильно заброшенном неводе HR не нужен. Он, впрочем, может вмешаться в составление/публикацию объявления и сделать себя нужным.

Date: 2016-11-14 02:50 pm (UTC)
From: [identity profile] gineer.livejournal.com
\\Никакого программирования в реальном времени на собеседовании, вообще кандидат должен при таком предложении вежливо распрощаться, это бред сивой кобылы

Почему?
Если собесед на уровень джуниора -- то весьма неплохо начинать именно с этого -- чтобы увидеть как чел знаком со средой, на что обращает внимание, понимает ли детали...
потому что обо всем остальном новичка все равно спрашивать не чем. ;)

Date: 2016-11-18 03:00 am (UTC)
From: [identity profile] kika.livejournal.com
Потому что это неестественная среда обитания. С тем же успехом можно попросить его программировать с закрытыми глазами или без рук, по памяти (я знал человека, который мог запомнить 4 килобайта машинного кода).

Тестовое задание при этом - это настолько близкая имитация естественной среды, насколько возможно.

(no subject)

From: [identity profile] gineer.livejournal.com - Date: 2016-11-18 08:16 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-18 09:24 am (UTC) - Expand

Date: 2016-11-14 04:25 pm (UTC)
From: [identity profile] vvs2002.livejournal.com
Неплохо. А можно интересный пример из п.6? Миллион странная сумма - для херни много, а для чего серьезного вроде мало.

Date: 2016-11-18 03:01 am (UTC)
From: [identity profile] kika.livejournal.com
Да чего там только не было. От нового линукса до игрушек. Мне неважно совершенно укладывается ли идея в миллион или нет, в этом вопросе миллион - просто эквивалент "довольно приличная сумма денег".

Date: 2016-11-21 05:59 pm (UTC)
From: [identity profile] blacklion.livejournal.com
«если вы просили в ворде, а прислали - пдф, это звоночек.»

Что делать с тем, что ворд — платный продукт, да ещё и существующий не под все OS?

Нет, LiberOffice — не ответ на этот вопрос. Потому что я сотни раз видел, как «вёрстка» (очень минималистичная и аккуратная) в Open/LiberOffice (а так же в Google Docs, но это вообще отдельная категория трэша) после сохранения в DOCX/RTF и открытая в MS Office разъезжается так, что волосы дыбом встают.

Понятно, что от переводчика или техписа можно требовать наличия определённого текстового редактора (хотя тоже вопрос — можно ли, этак можно и компьютер не давать а требоватьс ноутбуком на работу приходить), но программисту-то зачем Word покупать?

Или это гипотетический пример?

Date: 2016-11-21 06:41 pm (UTC)
From: [identity profile] kika.livejournal.com
> Что делать с тем, что ворд — платный продукт, да ещё и существующий не под все OS?

Не просить в ворде? Я не понимаю причем тут этот вопрос. Я лично в ворде не прошу, я вообще прошу плейнтекстом при возможности.

> Потому что я сотни раз видел, как «вёрстка»

Людям, которые верстают резюме, должно быть законодательно запрещено работать программистами и сисадминами. В нашей индустрии достаточно дебилов уже, спасибо.

> Или это гипотетический пример?

Это пример к тому, что мой опыт многократно подтверждает наблюдение что если человек игнорирует даже такую простую просьбу и делает по-своему как ему удобнее, то на реальном проекте от него будет больше вреда чем пользы. Это статистика конечно, поэтому исключения попадаются в обе стороны, поэтому я и пишу "звоночек".

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2016-11-22 10:25 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2016-11-22 11:13 am (UTC) - Expand

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2016-11-22 11:26 am (UTC) - Expand

Date: 2016-12-21 08:33 am (UTC)
From: [identity profile] nike26345.livejournal.com
Я читал много завываний что вырезать из существующего проекта небольшое изолированное задание очень

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 05:18 pm
Powered by Dreamwidth Studios