Как стать автором
Обновить
0
0
Роман Московский @romankonstant

Разработка enterprise решений

Отправить сообщение

Виза таланта в UK для простых смертных

Время на прочтение9 мин
Количество просмотров24K


Поговорим о том, как простому Васе-формошлепу получить визу таланта в Великобритании. Я расскажу о типовых иммиграционных визах для программистов и собственном опыте кочевничества между ними. Для визы таланта детально распишу порядок подачи и список документов. Затронем вопрос цены и времени.

Читать дальше →
Всего голосов 10: ↑7 и ↓3+5
Комментарии4

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Время на прочтение11 мин
Количество просмотров18K


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

А если стратега не уговорим, то уйдем во все тяжкие согласования венчурной сделки с корпоратом в правовом поле РФ, что одно из самых экстремальных развлечений, доступных бизнесмену. Я наивно полагал, что основные проблемы будут в этой части.

Но нет. Переходим к мякотке.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+79
Комментарии11

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

Время на прочтение29 мин
Количество просмотров67K

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

Мы не только пытаемся максимизировать выручку Авито, но и думаем про счастье пользователей. Если установить слишком большие цены, то пользователи возмутятся и начнут уходить с площадки, а если сделать цены слишком маленькими, то мы недополучим часть оптимальной выручки. Низкие цены также увеличивают количество «спамовых» объявлений, которые портят поисковую выдачу пользователям. Поэтому нам очень важно уметь принимать математически обоснованные решения — любая наша ошибка напрямую отразится на выручке и имидже компании. 

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии15

Карманная книга по TypeScript. Часть 2. Типы на каждый день

Время на прочтение11 мин
Количество просмотров38K

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.


Примитивы: string, number и boolean


В JS часто используется 3 примитива: string, number и boolean. Каждый из них имеет соответствующий тип в TS:


  • string представляет строковые значения, например, 'Hello World'
  • number предназначен для чисел, например, 42. JS не различает целые числа и числа с плавающей точкой (или запятой), поэтому не существует таких типов, как int или float — только number
  • boolean — предназначен для двух значений: true и false

Обратите внимание: типы String, Number и Boolean (начинающиеся с большой буквы) являются легальными и ссылаются на специальные встроенные типы, которые, однако, редко используются в коде. Для типов всегда следует использовать string, number или boolean.

Читать дальше →
Всего голосов 28: ↑23 и ↓5+25
Комментарии1

Паттерны отложенной инициализации свойств объектов в JavaScript

Время на прочтение6 мин
Количество просмотров13K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о нескольких JavaScript-паттернах, направленных на отложенную инициализацию свойств объектов, для выполнения которой требуется произвести вычисления, создающие серьёзную нагрузку на систему. В основе всех этих паттернов лежит использование дескрипторов доступа — свойств объектов, описываемых парой функций — геттером и сеттером.


Читать дальше →
Всего голосов 26: ↑23 и ↓3+32
Комментарии10

Шпаргалка по JS-методам для работы с DOM

Время на прочтение18 мин
Количество просмотров75K

image


Основные источники



Введение


JavaScript предоставляет множество методов для работы с Document Object Model или сокращенно DOM (объектной моделью документа): одни из них являются более полезными, чем другие; одни используются часто, другие почти никогда; одни являются относительно новыми, другие признаны устаревшими.


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


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


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


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

Читать дальше →
Всего голосов 25: ↑24 и ↓1+33
Комментарии1

Рассказ о том, почему в 2021 году лучше выбирать TypeScript, а не JavaScript

Время на прочтение5 мин
Количество просмотров21K
Недавно я, используя React Native, занимался разработкой мобильного приложения для медитации Atomic Meditation. Эта программа помогает тем, кто ей пользуется, выработать привычку медитировать, ежедневно уделяя этому занятию какое-то время. В ходе работы у меня появились серьёзные причины приступить к изучению TypeScript и начать пользоваться им вместо JavaScript в проектах среднего и крупного размера.

Прежде чем я начну свой рассказ, мне хотелось бы отметить, что вы сможете разобраться в этой статье, даже если никогда не пользовались React Native. Я буду всё подробно объяснять. А если вы делали какие-нибудь проекты на React, то, читая эту статью, можете считать, что React и React Native — это одно и то же.



А теперь расскажу о том, как обычный JavaScript втянул меня в неприятности.
Читать дальше →
Всего голосов 37: ↑21 и ↓16+11
Комментарии50

Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы

Время на прочтение8 мин
Количество просмотров29K

Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular. 

В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML. 

Объектно-ориентированное программирование (ООП) на тот момент только начинало формироваться, поэтому разработчики зачастую интуитивно решали, где и какой код надо писать. Таким образом, в мире разработки зародилось такое понятие, как «Божественные объекты», которые первоначально отвечали практически за всю работу отдельных частей системы. Например, если в системе была сущность «Пользователь», то разработчику следовало создать класс User и в нем писать всю логику, так или иначе связанную с пользователями. Без разбиения на какие-то ещё файлы. И если приложение было большим, то такой класс мог содержать тысячи строк кода.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии25

React Server-Side Rendering (SSR) — руководство новичка

Время на прочтение24 мин
Количество просмотров103K

В этом уроке мы поговорим о серверном рендеринге (SSR), его преимуществах и подводных камнях. Затем мы создадим мини React проект и express сервер (Node.js), чтобы продемонстрировать, как можно достичь SSR.

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии3

Собеседование на junior позицию. Антипатерны собеседующих

Время на прочтение12 мин
Количество просмотров300K
Добрый день хабраюзеры! Не так давно я начал искать работу на позицию junior разработчика. Даже благодаря моему скромному резюме мне удалось побывать на не малом количестве собеседований за сравнительно малый промежуток времени. Из каждого собеседовании я выносил для себя что-то новое, где-то были мои проколы, но гораздо интереснее было замечать фэйлы меня собеседующих. Собственно о таких проколах я и хотел бы рассказать.
Читать дальше →
Всего голосов 211: ↑163 и ↓48+115
Комментарии293

Программисты, ходите на собеседования

Время на прочтение9 мин
Количество просмотров73K

Картинка взята из видеоролика с канала «Воинствующие Аметисты»

Около 10 лет я работал системным программистом под Linux. Это модули ядра (kernel space), различные демоны и работа с железом из пространства пользователя (user space), различные загрузчики (u-boot и др.), прошивки контроллеров и многое другое. Даже иной раз случалось пилить web-интерфейс. Но чаще бывало, что приходилось и с паяльником посидеть, да с проектировщиками печатных плат взаимодействовать. Одна из проблем такой работы это то, что достаточно сложно оценить уровень своей компетенции, поскольку одну задачу ты можешь знать очень глубоко, а рядом можешь не знать совсем. Единственный адекватный способ понять куда идти, и какие течения сейчас есть – это ходить на собеседования.

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

В статье будет небольшой конкурс с призами.
Всего голосов 61: ↑55 и ↓6+67
Комментарии366

Интервью без сучка и задоринки: как программисту успешно пройти собеседование

Время на прочтение14 мин
Количество просмотров58K
Пост подготовлен специально для корпоративного блога Wirex — компании, предлагающей удобное мобильное финансовое приложение для управления личными счетами. Изначально статья задумывалась как подготовительный материал, который автор отправляет своим кандидатам, но в итоге последний решил опубликовать его в открытом источнике, а мы, посчитав тему интересной, сделали перевод для вас, уважаемые читатели.

Тот факт, что вы являетесь хорошим программистом, играет поразительно малую роль при прохождении собеседования. Для того чтобы ваша работа была продуктивной, вам нужно уметь решать огромные, склонные разрастаться проблемы неделями и месяцами. Каждый вопрос на собеседовании, напротив, длится менее одного часа. Для того чтобы хорошо показать себя на интервью, вы должны знать, как быстро решать небольшие проблемы под давлением, при этом ясно излагая свои мысли. Это совершенно другое умение (в то же время я не говорю, что способность с легкостью решать задачи на собеседовании не имеет никакой связи с навыками программирования. Просто эта связь выражена куда слабее, чем считают многие компании, и именно другими факторами, отличными от специализированных умений, объясняется столь внушительное расхождение).
Читать дальше →
Всего голосов 31: ↑21 и ↓10+11
Комментарии20

Выращиваем ИИ — Генетические алгоритмы: введение

Время на прочтение19 мин
Количество просмотров24K


(сгенерированое изображение)


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


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

Всего голосов 13: ↑10 и ↓3+11
Комментарии5

Теория программирования: пакетные принципы и метрики

Время на прочтение9 мин
Количество просмотров16K


Чтобы применять любые принципы правильно, сначала нужно их понять — то есть осознать, откуда они взялись и для чего нужны. Если применять вслепую всё, что угодно — результат будет хуже, чем если бы мы вообще не использовали эти принципы. Я начну издалека и сначала расскажу про абстракцию.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+40
Комментарии12

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Время на прочтение8 мин
Количество просмотров288K
image

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

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

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

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

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+16
Комментарии10

Масштабируем продакт-менеджмент, часть 2: продукт

Время на прочтение3 мин
Количество просмотров3.3K

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Топ вопросов, которые нужно обсудить с партнером по бизнесу (чек-лист)

Время на прочтение4 мин
Количество просмотров24K


Один из способов сделать партнерские отношения нестабильными, потерять время и деньги — это не составить партнерское соглашение или по-простому договор между партнерами-основателями.

В теории все всё знают, но когда дело доходит до практики, оказывается, что важные вопросы, которые в будущем могут стоить жизнедеятельности компании, остаются в стороне. Мы создали чек-лист основных вопросов, которые должны обговорить партнеры, чтобы избежать закрытия компании через год.
Читать дальше →
Всего голосов 9: ↑5 и ↓4+3
Комментарии0

Дайджест свежих материалов из мира фронтенда за последнюю неделю №456 (22 — 28 февраля 2021)

Время на прочтение3 мин
Количество просмотров8.8K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии0

Вопросы для собеседования по хукам React

Время на прочтение8 мин
Количество просмотров30K

В данной статье приведены примеры вопросов и задач по React Hooks для собеседования

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии29

Что тимлиду спросить о компании на собеседовании

Время на прочтение5 мин
Количество просмотров22K

По мотивам своих собеседований, а также собеседований коллег и mentee, составил список вопросов от тимлида к компании, что стоит прояснить на собеседовании — что спросить собеседующего.

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

Каковы финансовые показатели компании?

Является ли компания прибыльной или тратит деньги инвесторов? Или даже до инвесторов ещё не дошло, и основатели пока платят из своего кармана? Как выглядит бизнесовый план развития?

Если компания имеет представительство в РФ, официальное ли (по ТК РФ) трудоустройство и полностью ли "белая" зарплата?

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

Расскажите про ваше понимание «хорошего тимлида»

У собеседника должно быть четкое и непротиворечивое понимание, что он вкладывает в понятие «тимлид» и какие критерии используются для оценки работы тимлида.

Возможно, это понимание даже прописано в должностных инструкциях.

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

Читать далее
Всего голосов 32: ↑28 и ↓4+36
Комментарии87
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность