работа

работа

О работе

Кассовый разрыв

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

Аутсорс нация

Среди разработчиков распостранено мнение, что не имеет значения на какую компанию работать: продуктовую, сервисную, аутстафф, стартап, не-ІТ. Лишь бы платили денег и желательно побольше. Согласно опросу ДОУ, 65% разработчиков заняты в аутсорсе, остальные—в продукте и стартапах. Рискну предположить, что в "настоящем" продукте работает гораздо меньше 35%—под "настоящим" я понимаю компанию которая была создана у нас и содержит основную часть рабочей силы у нас. Потому...

Сложности текстовой коммуникации

Пяток лет назад я попал на серию статей Егора Бугаенко об организации работы в распределённой команде. Одной из ключевых особенностей этой системы был запрет на любые коммуникации вне гитхаб тикетов. Проблема потерянных пакетов, отсутствия документации и незафиксированных договорённостей мне очень знакома. Позже эту же идею, поощрение структурированного текстового общения я увидел в блогах малоизвестной конторы Arkency и более известной конторы Basecamp. С тех пор меня не...

Веб-скрапинг. Инструменты

Для скрапинга можно использовать всё что угодно. Вам нужно лишь сделать запрос, получить содержимое и дальше его разобрать. Теоретически, скрапинг можно делать на bash + какой-то программой для работы с xml. Библиотеки для работы с сетью и парсинга html есть во всех языках. Можете брать любой. Однако скрапинг помимо собственно запроса и обработки включает еще кучу всяких вещей. Вам нужно ходить по ссылкам и желательно делать это...

Веб-скрапинг

Интернет—бездонный океан информации. Часто она не структурирована и требует подготовки, чтобы быть полезной. Множество продуктов строят свою бизнес-модель на сборе и обработке данных. Веб-скрапинг—это автоматизированный сбор информации с сайтов и других источников: публичных API, файлов с данными и так далее. Скрапинг нужен везде и всегда. Первый раз я столкнулся с этим в 2010, когда мы были совладельцами маленькой сети зоомагазинов и нужно было искать...

Обновление библиотек на проектах

"Rotting software"—это серьезная проблема сегодня. Взрывной рост индустрии порождает такой же рост количества инструментов разработки и ускоряет устаревание существующих решений. В 2015 для разработки стартапа мы взяли микросервисы и Spring Cloud Netflix стек. К 2017 половину из этого стека Netflix перевел в maintenance режим, а некоторые решения просто задепрекейтил и оставил коммьюнити. Не очень прикольно, мы еще не успели выйти в прод, а одна из...

Архитектура современных веб-приложений на примере adopt.com.ua. CMS. Мониторинг. Аналитика

Так как у меня нет тестов кроме линтеров, то нужно быть готовым быстро фиксить ошибки на проде. Для этого используются логгеры и трекеры ошибок. Логгер я не использую, так как у меня пока что нечего логировать особо. А вот для трекинга ошибок я пользуюсь отличным сервисом Sentry. Как он работает? Вы подключаете SDK в своё приложение, и при возникновении любой ошибки она будет отправлена на сервера...

Архитектура современных веб-приложений на примере adopt.com.ua. Внешние сервисы

В предыдущей части я рассказал о ядре. Теперь пройдемся о внешних вещах. На Heroku эфемерная файловая система. Это значит, что после перезагрузки инстанса, например при редеплое, все записанные файлы пропадут. Основной контент сайта—это фото, поэтому их нужно где-то хранить. Для этого мы используем AWS S3. Файлы прозрачно загружаются на S3 с помощью RoR, для этого не нужно писать дополнительного кода. То же кстати есть и...

Архитектура современных веб-приложений на примере adopt.com.ua

Я разработчик сервиса по пристройству животных — https://www.adopt.com.ua/ Там вы можете найти себе друга—котика или собачку. Хотя сайт простой, я применяю те же подходы для разработки своих коммерческих проектов. Если бы у меня стояла задача делать стартап, то я всё делал бы так же. Расскажу о том, как всё устроено внутри. Сайт сделан на Ruby on Rails. Это веб-фреймворк который предоставляет всё,...

Когда полезно уметь в leetcode

На той неделе я писал о том, что знания алгоритмов и умение быстро решать задачи из литкода мне никогда не пригождались. Ну что ж, instant karma! На выходных я писал компилятор телеграмовских сообщений в html—это нужно для двухсторонней синхронизации с Ghost. Взял собщение из телеги, конвертнул в html, засунул в Ghost, получил пост на сайте, Profit! Изи таска. Телеграм присылает сообщения в хитром формате. Вы...

Computer Science знания, которые мне пригодились

В прошлом материале я перечислил вещи, которые я не использую на практике. Сегодня поговорим о том, что важно и нужно. Поехали. Как устроены и работают разные базы данных и хранилища, как работают индексы, зайчатки CAP, как работают транзакции, что такое план запроса, что такое N+1—на мой взгляд это одни из важнейших знаний которыми должен обладать любой разработчик имеющий дело с хранением данных. В современной...

Computer Science знания, которые мне не пригодились

В культуре собеседований западных продуктовых компаний и тех кто под них косит принято гонять кандидатов по базам CS: решать алгоритмические задачи, спрашивать заковыриствую теорию. Бытует мнение, что на практике эти знания применяются крайне редко—поэтому мы, кандидаты, подгораем от необходимости этих знаний на собесах. Зачем спрашивать, если у вас формочки? Оставив в стороне целесообразность проведения таких интервью я сфокусируюсь на своём опыте—какие знания из "базы"...

Простые решения—ресайз картинок для вебсервиса

Я занимаюсь проектом adopt.com.ua—каталог котиков и собачек на пристройство. Основной его частью является контент—фото животных. Куратор может загружать изображения любого размера. Чтобы они быстро отрисовывались у пользователей, нужно их ресайзить под размеры плашек. Это стандартная задача для проектов где есть картинки или аватарки. Часто для оптимизации фото желательно отресайзить в несколько разных размеров, под мобилы и десктопы. Как она решается обычно? Несколько...

Нельзя спросить

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

Чик чик и в продакшен

Есть у меня такая отрицательная черта—не особо думать перед выбором чего-то. Главное ввязаться, а там разберемся. Терпеть не могу планировать и двигать колбаски на диаграммах ганта. Писать спецификации и участвовать в длительных обсуждениях роадмапа на следующие 10 лет. Обсуждать то, что не нужно прямо сейчас и уже, что не горит. Выбирать товары, технику и перечитывать миллион обзоров. Пытаться поймать самое лучшее. Закладывать архитектуру на столетия...

Седые муди

На первой работе я провел 7 с хвостиком лет. На второй—был первым сотрудником-инженером. Раньше мне это казалось крутым. Будучи в компании незнакомых коллег я всегда пользовался возможностью похвастаться "я тут уже Х лет!", "вот этот проект стартовал много лет назад, еще когда тут из вас никого не было!", "я тут первый инженер, а вы не знали? да, вот эти все деплоймент скрипты сделал я". Сейчас...