Pull to refresh
20
0
Алексей Бичук @Aliksbright

Пользователь

Send message

Из кладовщика в разработчики

Level of difficulty Easy
Reading time 8 min
Views 7.1K

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

Читать далее
Total votes 15: ↑10 and ↓5 +5
Comments 35

Генерация данных — творчество или рутина?

Reading time 15 min
Views 4.7K

Долгие годы люди стремились к всё более реалистичному изображению окружающих их вещей. Много лет прошло от симпатичных наскальных мамонтов до шедевров эпохи Ренессанса и Просвещения. Однако где-то в 19-м веке (примерно, когда стала появляться первая фототехника, ага), что-то пошло не так, и живопись сменила своё направление от реализма к абстракции. Дальше больше; и все "скатилось" до клякс, пятен и потёков, размазанных по холсту или любой другой поверхности стоимостью в миллионы долларов... И при этом зачастую совершенно было непонятно, кто автор "шедевра": 3-х летний ребенок, маститый художник, нейросеть или кот, опрокинувший банку варенья.

Похожие процессы происходят и в мире данных, синтетические, сгенерированные, абстрактные данные обретают всё большую ценность на рынке. Такие данные являются более безопасными, а также позволяют тестировать системы качественнее и воспроизводить проблемы до их появления в продакшене... А еще делать прогнозы, анализ, безопасно обмениваться и многое другое.

В этом посте мы рассмотрим основные моменты генерации данных с нуля (на основе схемы БД), а так же на основе уже существующих данных. Рассмотрим способы, методы, особенности и инструменты. А каждый шаг будем иллюстрировать примерами живых и настоящих SQL-запросов (в основном PostgreSQL-flavour, но постараемся и не только). И в итоге убедимся, что SQL позволяет нам не только эффективно работать с уже существующими данными (на минуточку, уже почти на протяжении 50 лет), но с помощью него их можно еще и довольно эффектно придумывать.

А начнем мы конечно же с ChatGPT
Total votes 9: ↑8 and ↓1 +7
Comments 0

Обфускация данных для тестов производительности

Reading time 20 min
Views 10K
Пользователи ClickHouse знают, что его главное преимущество — высокая скорость обработки аналитических запросов. Но как мы можем выдвигать такие утверждения? Это должно подтверждаться тестами производительности, которым можно доверять. О них мы сегодня и поговорим.



Такие тесты мы начали проводить в 2013 году, задолго до того, как продукт стал доступным в опенсорсе. Как и сейчас, тогда нас больше всего интересовала скорость работы данных сервиса Яндекс.Метрика. Мы уже хранили данные в ClickHouse с января 2009 года. Часть данных записывалась в базу с 2012 года, а часть — была переконвертирована из OLAPServer и Metrage — структур данных, которые использовались в Яндекс.Метрике раньше. Поэтому для тестов мы взяли первое попавшееся подмножество из 1 миллиарда данных о просмотрах страниц. Запросов в Метрике ещё не было, и мы придумали запросы, больше всего интересные нам самим (всевозможные виды фильтрации, агрегации и сортировки).

ClickHouse тестировался в сравнении с похожими системами, например, Vertica и MonetDB. Для честности тестирования его проводил сотрудник, который до этого не был разработчиком ClickHouse, а частные случаи в коде не оптимизировались до получения результатов. Похожим образом мы получили набор данных и для функциональных тестов.

После того, как ClickHouse вышел в опенсорс в 2016 году, к тестам стало больше вопросов.

Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 11

Не придумывайте данные для интеграционных тестов — генерируйте их

Level of difficulty Medium
Reading time 8 min
Views 7.5K


Если вы разработчик и когда-либо писали интеграционные тесты — скорее всего, вы использовали TestContainers. Появившись в 2015 году, эта библиотека изменила то, как мы производим автоматизацию тестирования, позволив разработчикам запускать интеграционные тесты с участием баз данных на локальных машинах, что существенно сократило сложность интеграционных тестов и время, необходимое для их запуска и прогона.


Testcontainers "по щелчку пальцев" запускают базы данных, но для того, чтобы тесты начали проходить, нужно кое-что ещё: начальные данные внутри базы. Их необходимо подготовить перед запуском тестов, а по мере того, как схема растёт и усложняется, делать это становится всё труднее.


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

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 5

План алгоритмического собеседования: как впечатлить интервьюера и получить работу мечты

Reading time 13 min
Views 14K

При поиске работы программистам часто приходится сталкиваться с алгоритмическим интервью. По моему опыту общения с людьми из индустрии ИТ я заметил, что многие считают, что алгоритмическая секция бинарна: либо алгоритм написан корректно за отведенное время, либо нет. На самом деле всё немного сложнее и во время интервью собеседующий обращает внимание на многие другие аспекты.

Я за свою карьеру имел возможность быть по обе стороны баррикад. С одной стороны я провёл сотни алгоритмических интервью в компаниях, где работал. С другой стороны сам успешно проходил такие интервью и получал оффер в Google, Facebook, Amazon, Uber, Yandex и Mail.Ru.

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

Читать далее
Total votes 30: ↑28 and ↓2 +26
Comments 17

Amazon IVS: как быстро добавить видеотрансляции в приложение или на сайт

Reading time 12 min
Views 2.3K

Video live streaming - это технология потоковой трансляции видео тысячам и миллионам зрителей в режиме близком к реальному времени. Видеостриминг находит своё применение в разных областях: образование, фитнес, онлайн события, электронная коммерция, игры и киберспорт.

В этой статье мы рассмотрим как можно легко интегрировать видеотрансляции в приложение или на сайт, используя AWS interactive video service.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 0

Популярные языки программирования 2019 от пользователей hh.ru

Reading time 3 min
Views 34K
Заголовок в стиле подкрадывающихся новогодних праздников, но речь пойдет только про сентябрь текущего года в сравнении с аналогичным периодом 2018. Под катом снова паблик репорт про количество поисковых сессий по языкам программирования, вакансий, резюме и немного про зарплаты. Получилось — что получилось.


Читать дальше →
Total votes 38: ↑35 and ↓3 +32
Comments 12

IT-Хогвартс: Школа программистов hh.ru

Reading time 4 min
Views 17K
В этом году Школа программистов hh.ru отмечает свой юбилей: вот уже десять лет как мы превращаем людей в full stack разработчиков. Обучение в Школе бесплатное, и это принципиально. Учебный процесс состоит из двух больших блоков: теория и проектная работа в команде. Два основных направления: backend и frontend.



Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Comments 20

«Люди думают, что бесплатное — значит бесполезное. Мне казалось, я смогу их переубедить» — Юрий Ярцев о школе Russol

Reading time 8 min
Views 8.6K
image

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

О своем опыте создания онлайн-школы мне рассказал Юрий Ярцев. Он создал школу стартапов Russol. Она особенная, потому что бесплатная. И конечно, это приводит к недоверию всех видов: и «бесплатное равно бесполезное», и «бесплатный сыр только в мышеловке».
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 3

Новый сервис подсказок для поиска в hh.ru

Reading time 7 min
Views 4.5K
Поисковые подсказки — это здорово. Как часто мы набираем полный адрес сайта в адресной строке? А название товара в интернет-магазине? Для таких коротких запросов обычно хватает ввести несколько символов, если подсказки поиска хороши. И если вы не обладаете двадцатью пальцами или неимоверной скоростью набора текста, то наверняка будете ими пользоваться.
В этой статье мы расскажем о нашем новом сервисе подсказок для поиска по вакансиям hh.ru, который мы сделали в предыдущем выпуске Школы программистов.

У старого сервиса был ряд проблем:

  • он работал на отобранных вручную популярных запросах пользователя;
  • не мог адаптироваться под изменение пользовательских предпочтений;
  • не умел ранжировать запросы, которые не включены в топ;
  • не исправлял опечатки.


В новом сервисе мы исправили эти недостатки (параллельно добавив новые).
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 3

Школа программистов hh.ru в 10-й раз открывает набор ИТ-специалистов

Reading time 4 min
Views 18K

Всем привет! Лето — не только пора каникул, отпусков и прочих ништяков, но и самое время задуматься об обучении. О том самом обучении, которое научит самым востребованным языкам программирования, “прокачает” навыки, погрузит в решение реальных бизнес-проектов, ну и, само собой, даст старт успешной карьере. Да, вы все верно поняли — речь пойдет о нашей Школе программистов. Под катом расскажу об итогах 9-го выпуска и начале набора в 10-ый.


Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 6

Какие ставки сделал Безос в 1997 году, чтобы Amazon сейчас занимал 50% рынка e-commerce в США и 14% в мире?

Reading time 8 min
Views 8.3K

Джеф Безос, гендиректор Amazon ежегодно пишет письмо акционерам, а волонтеры школы стартапов RUSSOL и инициативы Y Combinator по-русски переводят их, чтобы попытаться ответить на этот вопрос и вдохновить читателей на создание своего Amazon. Читаем перевод первого письма акционерам, опубликованного в 1997 году


image
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 9

Автоматическое назначение задач в Jira с помощью ML

Reading time 12 min
Views 11K
Привет, Хабр! Меня зовут Саша и я backend разработчик. В свободное от работы время я изучаю ML и развлекаюсь с данными hh.ru.

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

В hh.ru есть внутренняя служба, на которую в Jira создаются задачи (внутри компании их называют HHS), если у кого-то что-то не работает или работает неправильно. Дальше эти задачи вручную обрабатывает руководитель группы QA Алексей и назначает на команду, в чью зону ответственности входит неисправность. Лёша знает, что скучные задачи должны выполнять роботы. Поэтому он обратился ко мне за помощью по части ML.


Читать дальше →
Total votes 55: ↑51 and ↓4 +47
Comments 10

Kodein. Основы

Reading time 20 min
Views 25K
Не нашел понятных гайдов для тех, кто Kodein видит в первый раз, а документация не во всех местах прозрачная и последовательная, поэтому хочу поделиться основными возможностями библиотеки с вами. Некоторые возможности библиотеки будут выпущены, но это в основном advanced часть. Здесь же вы найдете всё, чтобы по ходу чтения статьи нормально стартовать и начать внедрять зависимости с Kodein. Статья базируется на Kodein 5.3.0, так как Kodein 6.0.0 требует Support Library 28 или AndroidX и далеко не скоро все перейдут на них, так как многие сторонние библиотеки ещё не предлагают совместимых версий.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 2

Разбор конкурса-квиза по React со стенда HeadHunter на HolyJs 2018

Reading time 9 min
Views 5.6K

Привет. 24–25 сентября в Москве прошла конференция фронтенд-разработчиков HolyJs https://holyjs-moscow.ru/. Мы на конференцию пришли со своим стендом, на котором проводили quiz. Был основной квиз — 4 отборочных тура и 1 финальный, на котором были разыграны Apple Watch и конструкторы лего. И отдельно мы провели квиз на знание react.


Под катом — разбор задач квиза по react. Правильные варианты будут спрятаны под спойлером, поэтому вы можете не только почитать разбор, но и проверить себя :)


image


Поехали!

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 5

Считаем статистику по экспериментам на hh.ru

Reading time 8 min
Views 7.1K
Всем привет!

Сегодня я расскажу вам, как мы в hh.ru считаем ручную статистику по экспериментам. Мы посмотрим откуда появляются данные, как мы их обрабатываем и на какие подводные камни натыкаемся. В статье я поделюсь общими архитектурой и подходом, реальных скриптов и кода будет по минимуму. Основная аудитория — начинающие аналитики, которым интересно, как устроена инфраструктура анализа данных в hh.ru. Если данная тема будет интересна — пишите в комментариях, можем углубиться в код в следующих статьях.

О том, как считаются автоматические метрики по А/Б-экспериментам, можно почитать в нашей другой статье.

image
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 14

Равномерно распределяем точки по сфере в pytorch и tensorflow

Reading time 8 min
Views 9.4K

Этот текст написан для тех, кто интересуется глубоким обучением, кто хочет использовать разные методы библиотек pytorch и tensorflow для минимизации функции многих переменных, кому интересно научиться превращать последовательно выполняющуюся программу в выполняемые с помощью numpy векторизованные матричные вычисления. А ещё можно научиться делать мультфильм из данных, визуализированных с помощью PovRay и vapory.


Читать дальше →
Total votes 32: ↑32 and ↓0 +32
Comments 8

Kotlin DSL: Теория и Практика

Reading time 17 min
Views 56K

Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.


Читать дальше →
Total votes 40: ↑35 and ↓5 +30
Comments 12

Наиболее востребованные языки программирования – 2018

Reading time 3 min
Views 199K
Очередная статистика от hh.ru под катом. Вкратце — очень хотелось посчитать, на каких языках чаще всего пишут отечественные разработчики и какие языки чаще других ищут работодатели. Итого — посчитал, что указывали в вакансиях и в резюме в первом полугодии 2018 и 2017 годов. Получилось что получилось.


Читать дальше →
Total votes 74: ↑68 and ↓6 +62
Comments 93

Массовый стекинг моделей ML в production: реально или нет?

Reading time 5 min
Views 5.3K
Довольно часто нас спрашивают, почему мы не устраиваем соревнований дата-сайентистов. Дело в том, что по опыту мы знаем: решения в них совсем не применимы к prod. Да и нанимать тех, кто окажется на ведущих местах, не всегда имеет смысл.



Такие соревнования часто выигрывают с помощью так называемого китайского стекинга, когда комбинаторным способом берут все возможные алгоритмы и значения гиперпараметров, и полученные модели в несколько уровней используют сигнал друг от друга. Обычные спутники этих решений — сложность, нестабильность, трудность при отладке и поддержке, очень большая ресурсоёмкость при обучении и прогнозировании, необходимость внимательного надзора человека в каждом цикле повторного обучения моделей. Смысл делать это есть только на соревнованиях — ради десятитысячных в локальных метриках и позиций в турнирной таблице.
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 2
1

Information

Rating
Does not participate
Registered
Activity