Как стать автором
Обновить
193.15
KTS
Создаем цифровые продукты для бизнеса
Сначала показывать

Добрый ментор: как я стал мамой пятерых ангелочков (часть 1)

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

Всем привет, меня зовут Виталий, я тимлид в KTS. Последние несколько лет я идентифицирую себя не только фронтенд-разработчиком и лидом, но ещё и наставником нескольких сотрудников: от стажёров до синьоров.

В этой статье в 2-х частях я поделюсь своим опытом наставничества, и, что самое важное, тем, как мы в KTS превращаем личный опыт наставников в систему.

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

Читать далее

Изобретая бота: система обработки сообщений на примере конструктора чат-бота

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


Привет, Хабр! Я Игорь Латкин, архитектор в KTS. Мы занимаемся различными цифровыми продуктами для бизнеса, специализируемся на HRTech, EdTech и DevOps. Также у нас есть несколько собственных продуктов, и один из них тесно связан с очередями сообщений. Об этом интересном решении я хочу сегодня рассказать. Эта статья — конспект моего диалога с архитектором Tarantool Монсом Андерсоном. Посмотреть видео можно в записи. Бонусом в конце — ответы на вопросы зрителей.
Читать дальше →

Начало работы с Dynamic Island и Live Activities в iOS 16.1

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

Документация Apple рассказывает, как начать работу с Dynamic Island, динамическим островом. Система была представлена Apple в сентябре 2022 года, на данный момент она есть только в моделях iPhone 14 Pro и iPhone 14 Pro Max. С Dynamic Island можно анимированно показывать информацию вокруг области выреза фронтальной камеры iPhone, которую мы привыкли называть «чёлкой».

В этой статье мы рассмотрим пример базовой работы с размещением контента в Dynamic Island для его разных состояний.

Для сборки проекта нужно запустить Xcode версии не ниже 14.1 Beta. 

Этот пример основан на документации Apple. Ещё вы увидите работу с данными, которые отправляются в Activity в Dynamic Island.

Читать далее

Пишем типизированный DI-контейнер для iOS приложения. Часть 1

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

Привет, читатель! Меня зовут Александр, я техлид iOS в KTS.

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

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

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

Если вы готовы, погнали! ?

Читать далее

Чат-бот для банка ДОМ.РФ: как автоматически обрабатывать 40% обращений

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

Привет! Меня зовут Максим, я управляющий партнёр в KTS

Недавно мы автоматизировали общение пользователей с поддержкой в банке ДОМ.РФ. Мы внедрили чат-бота на основе своего конструктора Smartbot Pro, и за время работы вместе с командой банка выстроили логику по обработке 550 разных сценариев. В итоге сейчас наш сервис успешно обрабатывает 40% входящих обращений клиентов. 

Ниже расскажу подробнее про наш конструктор, задачу клиента и как мы её решали.

Читать далее

Готовим Window Inset под соусом Jetpack Compose и щепоткой View

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

Привет! Меня зовут Тимур, я занимаюсь Android-разработкой в KTS.

Почему ещё не все используют режим edge2edge? Разве для того я покупал огромный безрамочный телефон, чтобы смотреть на траурные черные полоски с кнопками?!

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

Сегодня я надену специальный мобильный фартук и расскажу, что такое режим edge-to-edge в мобильных приложениях и как работать с insets в Android. А ещё мы разберём примеры обработки insets не только во view, но и в compose. Если статьи о работе с insets в view еще можно найти на просторах интернета, то информацию про работу с ними в compose можно найти только в официальной документации.

Читать далее

«Мы KTS, а не BTS»: как разработчики делали ребрендинг

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

Привет! Меня зовут Сергей, я управляющий партнер в KTS: мы занимаемся разработкой цифровых сервисов для бизнеса. Недавно мы провели ребрендинг: рассказываю, сколько с ним мучились и что в итоге получилось. 

Читать далее

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

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

Всем привет! Меня зовут Максим, я управляющий партнёр в KTS и сегодня делаю каминг-аут: я сутулый. Компрессионный перелом позвоночника в детстве пошатнул здоровье моей спины, а работа за компьютером его добила. Рассказываю и показываю, как я справился с этой проблемой.

Читать далее

Почему разработчики создают так много сайд-проектов

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

Сайд-проект — это, как правило, проект, который разрабатывают в качестве хобби и развивают наряду с основной работой (моя основная работа — соучредитель и техдир финтех-стартапа) Это, например, робот на базе Raspberry Pi, приложение со списком задач или игра для iOS, которая приносит несколько долларов. Тем не менее, я заметил, что вместо того, чтобы развивать большой проект, разработчики всё чаще запускают много небольших, как и я.

Почему так? Да, платформы no-code, Codecademy и инструменты типа Stripe как никогда упростили написание и развертывание проекта. Но даже так — почему разработчики ведут так много сайд-проектов? В этой статье я рассмотрю самые интересные причины.

Читать далее

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

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

Это заключительная статья из цикла статей о работе браузеров. Ссылка на первые два перевода:
Часть 1: навигация и получение данных
Часть 2: парсинг и выполнение JS

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

Помимо деревьев, о которых мы уже говорили — DOM, CSSOM и AST — браузеры также строят дерево специальных возможностей. Деревья, построенные на этапе парсинга (DOM, CSSOM), объединяются в дерево рендеринга. Его цель – убедиться, что содержимое страницы отобразит элементы в правильном порядке.

Читать далее

Зачем мы сделали собственный контроллер для копирования секретов в Kubernetes

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

Меня зовут Игорь Латкин, я системный архитектор в компании KTS.

Делимся нашей внутренней разработкой — Kubernetes-контроллером mirrors. Мы создали его внутри нашего DevOps-отдела для копирования Kubernetes-секретов между неймспейсами кластера. В итоге mirrors превратился в универсальный инструмент синхронизации данных из разных источников.

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

Читать далее

Подключение OAuth в iOS за полчаса

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

Привет! Меня зовут Лена, я занимаюсь iOS-разработкой в KTS.

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

В мобильных приложениях используется Authorization Code Flow with Proof Key for Code Exchange (PKCE). Подробнее о выборе flow читайте в нашей предыдущей статье. Эта статья является продолжением.

Сегодня мы рассмотрим вариант реализации OAuth-авторизации с помощью библиотеки AppAuth-iOS. Она одна из самых популярных и довольна проста в использовании. Весь код из статьи доступен в Github.

Читать далее

Как стажёр оптимизировал запросы и нашел баг в Django

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

Привет! Меня зовут Иван, я бэкенд-разработчик-стажёр в KTS.

Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.

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

Читать далее

Курс начинающего бэкендера в Metaclass: интервью со студентом 7-го потока

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

8 августа начинается новый, девятый поток нашей школы Metaclass по курсам frontend и backend для начинающих.

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

Читать далее

Как работают браузеры. Часть 2: парсинг и выполнение JS

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

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

В прошлой статье мы обсудили навигацию и получение данных. Сегодня поговорим о HTML- и CSS-парсинге и выполнении JavaScript.

Содержание:

1. HTML-парсинг:
— Парсинг
— Браузерные движки
— Токенизация
— Построение DOM
— Предварительные загрузчики и ускорение страницы

2. CSS-парсинг:
— Токенизация и построение CSSOM

3. Выполнение JavaScript:
— Движки JavaScript
— Компиляция
— Интерпретация
— Комплияция Just-In-Time
— Как обрабатывается код JavaScript

Читать далее

Почему спустя 5 лет код-ревью на Upsource мы перешли на GitLab

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

Привет! Меня зовут Максим, я руковожу мобильной разработкой в KTS.

Наша команда мобильной разработки использовала Upsource с 2017 года: на тот момент он был одним из самых удобных инструментов для просмотра кода, комментирования и изучения правок. Мы использовали selfhosted-вариант сервиса. 

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

Рассказываю о нашем опыте работы с системами код-ревью, и почему через 5 лет работы на Upsource мы переехали на GitLab.

Читать далее

Комплексный системный подход к разработке программного обеспечения

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

Разработка программного обеспечения — решение бизнес-задач через построение сложных программных систем. Это такая же система, как и в Теории систем — состоящая из многих подсистем, взаимодействующая с другими системами и окружающей средой.

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

Читать далее

boop! Необычные эффекты по ховеру или введение в React-Spring

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

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

По результатам неофициального опроса в Twitter poll было решено назвать этот эффект «boop». В этом уроке для intermediate-пользователей React мы разберём, как его реализовать.

Boop!

Как работают браузеры. Часть 1: навигация и получение данных

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

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

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

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

Сегодня — навигация и получение данных.

Статья предназначена для начинающих разработчиков и интересующихся разработкой. Здесь нет глубоких технических деталей.

Читать далее

Теперь Dockerfiles поддерживает Multiple Build Contexts

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

Новые релизы Dockerfile 1.4 и Buildx v0.8+ дают возможность определения нескольких контекстов сборки. Теперь в качестве сборки вы можете использовать файлы из разных локальных директорий. Давайте посмотрим, какая от этого польза и как это внедрить в ваши процессы.

Читать далее

Информация

Сайт
kts.tech
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия