Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 721новая вакансия за сутки·82 368вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании6 963
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 400 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python15 330
  • Облачные технологии11 893
  • QA вакансии3 403
  • Backend вакансии1 851
  • Инженер данных1 418
  • Продакт-менеджер845

Разработка

  • Android1 758
  • iOS1 639
  • AI вакансии884
  • Fullstack вакансии737
  • Frontend вакансии642
  • Mobile вакансии31

По стеку

  • Go8 426
  • Java5 382
  • Node.js1 732
  • Kotlin1 428
  • Rust1 388
  • .NET1 307
  • PHP554
  • C++394
  • C#374

DevOps и инфраструктура

  • Kubernetes6 666
  • Linux-инфраструктура4 922
  • DevOps вакансии4 864
  • Terraform / IaC3 701
  • Мониторинг и Observability1 698
  • CI/CD1 557
  • SRE510
  • Кибербезопасность246

Аналитика и данные

  • Data Scientist779
  • Аналитик данных756
  • Бизнес-аналитик730
  • Системный аналитик96

Другие направления

  • Проджект-менеджер341
  • UI/UX дизайн108
  • Ручное тестирование14

По регионам

  • Вакансии в США40 885
  • Вакансии в Европе17 100
  • Вакансии в Канаде3 927
  • Работа в России3 874

По формату

  • Удалённые вакансии65 309
  • Релокация в США40 896
  • Гибридная работа9 847
  • Офисная работа6 766

По уровню

  • Senior вакансии36 886
  • Middle вакансии17 637
  • Junior вакансии6 023

Сейчас нанимают

Все компании
  • Wise193 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis45 вакансий
  • Spotify37 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo19 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме HTML/CSSВсе вопросы
HTML/CSSSeniorОпыт

Проект на HTML/CSS вырос из небольшого интерфейса в большой продукт. Какие архитектурные проблемы вы ожидаете увидеть?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

При росте проекта CSS деградирует в сторону специфичности-гонок, неконтролируемого глобального пространства имён, дублирования стилей и отсутствия дизайн-токенов. Решение — BEM/CSS Modules/Tailwind + design tokens + @layer + регулярный аудит.

1. Война специфичности (Specificity Wars)

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

/* Типичная деградация */
.sidebar .widget .title { color: blue; }          /* specificity: 0,3,0 */
.sidebar .widget .title.active { color: red; }   /* 0,4,0 */
#main .sidebar .widget .title { color: green !important; } /* 1,3,0 + !important */

Решение — CSS Cascade Layers (@layer):

@layer reset, tokens, base, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; margin: 0; }
}

@layer tokens {
  :root {
    --color-primary: #c28b00;
    --spacing-md: 1rem;
  }
}

@layer components {
  .card { padding: var(--spacing-md); border-radius: 12px; }
}

@layer utilities {
  .mt-auto { margin-top: auto; }
}

Слои имеют явный приоритет независимо от специфичности — utilities всегда выигрывает у components, даже с меньшей специфичностью.

Архитектурные проблемы растущего CSS-проекта

Небольшой интерфейс с плоской структурой CSS неизбежно приходит к деградации при масштабировании команды и функциональности. Вот конкретные симптомы и решения.

2. Глобальное пространство имён

В большом проекте классы из разных компонентов конфликтуют. Решения:

  • CSS Modules — классы локализуются автоматически: .card → .Card_card__x7j2k.
  • BEM — явное именование: .job-card__title--featured.
  • Tailwind CSS — утилитарные классы без глобальных конфликтов по определению.
// CSS Modules в Next.js
import styles from './JobCard.module.css';

export function JobCard({ title }) {
  return <div className={styles.card}><h2 className={styles.title}>{title}</h2></div>;
}

3. Дублирование стилей и отсутствие дизайн-токенов

Цвет #c28b00 встречается в 47 местах — потом его меняют в 23, а в остальных 24 забывают.

/* Правильно: CSS Custom Properties как дизайн-токены */
:root {
  --color-gold: #c28b00;
  --color-gold-dark: #a07200;
  --radius-card: 12px;
  --font-size-body: 1rem;
}

.button-primary {
  background: var(--color-gold);
  border-radius: var(--radius-card);
}

4. Неиспользуемый CSS (Dead CSS)

Компоненты удаляют из кода, но стили остаются. Через год — 40% CSS не используется.

  • PurgeCSS в CI-пайплайне автоматически удаляет неиспользуемые правила.
  • Chrome Coverage DevTools → вкладка Coverage показывает % неиспользованного CSS.

5. Отсутствие архитектурного гайда

Каждый разработчик пишет CSS по-своему. Нужны явные договорённости:

  • Выбор методологии (BEM / Tailwind / CSS Modules) и запрет смешивания.
  • Линтинг: stylelint + stylelint-config-standard + кастомные правила.
  • Запрет !important через stylelint-declaration-no-important.
// .stylelintrc.json
{
  "extends": ["stylelint-config-standard"],
  "rules": {
    "declaration-no-important": true,
    "selector-max-id": 0,
    "color-no-invalid-hex": true
  }
}

6. Responsive Design без системы

Breakpoints разбросаны по файлам с «магическими» значениями (768, 992, 1024, 1280). При смене дизайна нужно менять в десятках мест.

/* Правильно: tokens + custom media */
@custom-media --mobile (max-width: 639px);
@custom-media --tablet (min-width: 640px) and (max-width: 1023px);
@custom-media --desktop (min-width: 1024px);

@media (--mobile) {
  .grid { grid-template-columns: 1fr; }
}

Подводные камни

  • Миграция методологий на ходу: переход с global CSS на CSS Modules в работающем проекте требует полного рефакторинга — лучше определить методологию в самом начале.
  • Tailwind + CSS Modules одновременно: смешивание двух подходов в одном проекте приводит к разногласиям в команде и непредсказуемому поведению.
  • CSS Custom Properties в IE11: если нужна поддержка IE, custom properties требуют полифила — postcss-custom-properties.
  • @layer и старые браузеры: Cascade Layers поддерживаются с Chrome 99, Safari 15.4 — для legacy-окружений нужен fallback.
  • Дизайн-токены без single source of truth: если токены хранятся и в Figma-переменных, и в CSS, и в JS — они рассинхронизируются. Нужен генератор (Style Dictionary).
  • Отсутствие CSS-ревью в PR: CSS-изменения часто проходят без ревью как «просто стили» — технический долг накапливается незаметно.
  • specificity 0,0,0 в @layer utilities Tailwind: кастомные компонентные стили могут случайно переопределяться утилитами — важно понимать приоритет слоёв.

Частые вопросы на собеседовании

  • Что такое семантический HTML и почему он важен? Приведите примеры семантических элементов.
  • В чём разница между <script> с атрибутами defer и async?
  • В каких типах frontend-проектов HTML/CSS даёт реальный выигрыш, а где будет избыточен или неудачен?
  • Что такое Flexbox и чем он отличается от Grid? Когда использовать каждый?

Что портит ответ

  • Говорить только о запуске HTML/CSS, но не об эксплуатации
  • Не упоминать observability, обновления, безопасность и rollback
  • Описывать риски абстрактно, без способов их снижать

Что слушает интервьюер

  • Видит production-риски HTML/CSS
  • Говорит про monitoring, rollout, rollback и безопасность
  • Умеет ранжировать риски по вероятности и влиянию

Как вы знаете этот вопрос?

Проверить себя по теме HTML/CSS →
←Предыдущий вопросЧто такое critical CSS и почему это важно для производительности?Следующий вопрос→Какие production-риски есть у HTML/CSS: hydration, bundle size, caching, accessibility, browser compatibility или observability?

Связанные темы

HTML/CSSproduction-readinesstechnical-communicationtechnology-selectiontrade-off-analysis