Записки Kotlin Developer
79 subscribers
47 photos
5 videos
5 files
30 links
Hi, я Кирилл, Kotlin разработчик👋

Тут пишу заметки и tutorial: Kotlin, алгоритмы, Functional style, инфрастуктуру, микросервисы.

Начинаем с базы и дойдем до вершин📈

Subscribe, Let's upgrade skills together🤝

Автор: @kyrillP
Download Telegram
Второй год подряд со Сбером участвую в Anta марафоне❤️

В прошлом году бежал 5км, в этом 10 и с неплохим темпом🔥

То что я ещё окончательно не соскуфился - это заслуга Сбера и Сочи😁

Меня очень вдохновляет заниматься спортом несколько вещей:

1) работа в офисе
2) большое количество спортивных людей в Сочи, пока дойдешь до работы увидишь десяток спортсменов, бегущих тебе на встречу
3)тут красивая природа и горы, но увы очень сложно этим любоваться, если плохая физуха

Если ты разработчик и хочешь подтянуть физуху, возможно тебе к нам😁
🔥8😁2
Завтра меня можно увидеть в онлайне, немного расскажу о Java и о том как получить первую работу Junior java developer - лайфхаки из личного опыта)

Пишите в комменты или в лс если интересно, поделюсь ссылкой)
🔥3
Forwarded from SKILLS HUB
Приглашаем студентов и школьников на 2 встречу проекта SKILLS HUB ⚡️

20 ноября в IT-офисе Сбера пройдут 2 лекции на тему:

🟢 Backend-разработка.Java
Кирилл Пахтусов, Java разработчик Сбер

🟢 Frontend-разработка
Сергей Старцев, TeamLeand команды разработки Сбер

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

Напоминаем, что участникам проекта, которые посетят все лекции - будет выдан сертификат о прохождении сезона (им можно дополнить портфолио 😉)

Когда? 20 ноября в 18:30
Регистрация участников в 18:15

Где? Войкова, 2 (Здание Сбербанка, вход со стороны парка, серая дверь)

Для кого? школьники и студенты от 14 до 21 года или начинающие специалисты в IT

Для участия в мероприятии необходимо зарегистрироваться по ссылке 👈

Участие бесплатное, количество мест ограничено 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Java backend

Давайте обсудим.
Постик для вопросов и ответов.

Готов посоветоваь ресурсы для обучения, накидать идей для классных проектов, похаливарить на тему ЯП итд итп)
❤‍🔥10🔥642
Вчера выступал с докладом бэку и осознал, и как-то пропустил рассказ интересной истории про себя, исправляюсь)
👍4
Мой карьерный путь – начало

Всё началось летом. Я окончил третий курс университета (ЮФУ) и отправился на студенческую смену Академии психологии и педагогики ЮФУ в Абрау-Дюрсо. Смена называлась «Успешный старт на рынке труда». Две недели мы провели на море, занимались визуализацией идеального работодателя, практиковали медитацию. Возможно сама Елена Блиновская строила свои семинары по методичкам АПиП, кто знает 😂😂

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

Осенью мы снова встретились. Оказалось, что все девушки уже нашли работу. Тогда я задумался: а где же мой успешный старт? Пора бы начать поиски работы, причём желательно в какой-нибудь крутой крупной компании, чтобы сразу впечатлить всех!

Как-то раз я заметил объявление о программе «Case LAB» от АО «Гринатом», IT-интегратора госкорпорации «Росатом». Программа была посвящена работе с SAP – немецкому аналогу 1С. Мне показалось, что это отличная возможность поработать с объектно-ориентированным программированием и задачами, связанными с корпоративным бизнесом: системами складского учёта, НСИ, бухгалтерской отчётностью…

Я записался на программу. Было настолько увлекательно, что я временно позабыл о подругах, полностью погрузившись в новое дело. Я думал, что они подождут, пока я устроюсь на работу. Однако процесс трудоустройства затянулся почти на четыре месяца (с момента первого контакта до получения оффера). Впрочем, скучать мне не пришлось: я участвовал в WorldSkills Russia и занял третье место в финале по направлению «Разработка на 1C». Также прошёл онлайн-курс повышения квалификации по теме «Бизнес-процессы в SAP S/4HANA» от СПбПУ.

Меня особенно поразило отношение со стороны «Гринатом»: несмотря на то, что я ещё не был их сотрудником, компания направила меня на обучение и пообещала посодействовать в прохохождении отбора на «Бизнес-процессы в SAP S/4HANA» . Обучение было на высшем уровне!

Приятно видеть, когда компании поддерживают развитие не только своих сотрудников, но и всего сообщества вокруг себя. Именно поэтому мне хотелось работать в таком месте. Теперь я понимаю, почему работаю в Сбере – здесь похожий дух. Здорово осознавать, что мы превращаем Сочи в IT-столицу России, хотя пока это неофициальное звание принадлежит Таганрогу или РнД 😊

Кстати, на рабочем столе у меня до сих пор стоит кружка с логотипом «Гринатома».

P.S. А вот тут можно найти анонсы стажировок и программы Case Lab: https://edu.rosatom.ru/caselab/.
🔥9
А вы слушаете IT подкасты или вообще какие-нибудь аудио подкасты?
Если да, то буду благодарен если поделитесь ими🙏

Когда я раньше активно занимался фронтендом, мне безумно нравились подкасты «Веб-стандарты», это был год так 20-й. Там Вадим Макеев из Opera Browser часто выступал… Представляете, они всё ещё продолжают выпускать новые выпуски! Это просто невероятно!

Очень надеюсь, что проект «Море кода» также сохранит свою актуальность на долгие годы. Давайте поддержим их – подпишемся на одну из любимых платформ! 😎
4🔥3
Forwarded from СБЕР IT Сочи
Теперь нас можно не только читать, но и слушать — мы запустили свой подкаст 😉

MORE КОДА
— подкаст, в котором резиденты нашего хаба обсуждают важные темы из мира айти 🎙️

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

А также шутим на тему токсиков и создаём свою классификацию: сплетник, манипулятор, нарцисс… и внезапно “позитивный коллега”.

Если вы тоже сталкивались с токсичными коллегами или сами являетесь таким и хотите решить проблему, скорее включайте наш первый выпуск!


🎶 слушать в Звуке
🟨 слушать в Яндекс музыке
🚀 слушать прямо в Телеграме

Приятного прослушивания!
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Коллеги рассказали, что обо мне кто-то написал в своем личном канале. Мне очень приятно😊

А ещё классно, что он таки попал на стажировку в Сбер.. Уверен, в этом ему помогла активная жизненная позиция, он не сидел сложа руки, рассылая резюме на hh.ru, а стучался в разные двери и параллельно прокачивал харды..
Кстати, это и была основная идея моего прошлого доклада на тему "Как стать java-разработчиком"..

Успехов ему и вам, если сейчас активно ищите работу, просто делайте маленькие шаги и у вас все получится!

Будьте джавистами и не соглашайтесь на меньшее😁
🔥3
Сегодняшний вебинар Сбера с действующим Java-разработчиком Кириллом Пахтусовым был просто атаз!💣 Он раскрыл актуальные инструменты своего отдела которые помогают в разработке крутых продуктов и рассказал, как русские хакатоны реально помогают новичкам получить релевантный опыт. Хотя Mortal Kombat'а и не было, это не помешало мне выиграть книгу по чистому кода за самый интересный вопрос!

вопрос был по ci/cd и почему все чаще опыт работы в его настройке требуется на позициях junior.

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

Наконец то я настроил себе звук для музыкального онлайн-стриминга..
Я стал певцом, музыкантом на одной из стриминговых платформ, но это хобби 😅😅

Немного холхозно, что звук идет через два микшера, но иначе никак: один микшер хорошо обрабатывает вокал, другой по OTG/USB дружит с телефоном.

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

Было бы это кому-нибудь интересно? 😂
🔥15
Всем доброго утра!

Написал статью на vc.ru по оборудованию для звука. Если не интересно оборудование, можно зайти и просто послушать как я спел, эксклюзивочка😁

https://vc.ru/life/1767114-domashnyaya-karaoke-sistema-dlya-onlain-striminga-chast-1

Часть 2 - выйдет очень скоро, до конца этой недели😊
🔥113👏2
Media is too big
VIEW IN TELEGRAM
В субботу выходил на работу, а после работы отправился на кватирник Школы вокала.

Work life balance нужно соблюдать😂
🔥155🤯2👏1
Приглашение на мастер-класс  Jmix: аутентификация через Telegram

📅 Дата и время: сегодня, 20:00 
📍 Место: онлайн-встреча по ссылке: https://salutejazz.ru/calls/qgtjje?psw=OBsOXQcABBUZCwlLWBQTBhYBFA 

На мастер-классе я расскажу, как интегрировать систему аутентификации через Telegram в платформу Jmix. Это будет полезно как для тех, кто уже знаком с Jmix, так и для тех, кто только начинает работать с этой платформой.

🔍 Что вы узнаете:
- Как настроить интеграцию с Telegram;
- Как реализовать аутентификацию по JWT токену используя Spring Security;
- Как интегрировать Jmix с внешними сервисами.

📢 Бонус: по итогу встречи я поделюсь проектом с готовой реализацией авторизации через Telegram.

🚀 Мастер-класс предназначен для студентов-практикантов из колледжа, но открыт для всех желающих!

Если вы хотите узнать больше о Jmix и его возможностях, загляните на официальный сайт: https://www.jmix.ru/

Присоединяйтесь, будет интересно!
🔥5👍2
Привет, друзья! 🌟

Недавно сделал интересное открытие — теперь интеграция GigaChat в проекты на Java и Kotlin стала проще благодаря новым инструментам: langchain4j-gigachat и spring-ai-gigachat. Я подробно изучил оба варианта и выбрал первый вариант, потому что он оказался удобнее всего.

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

Вот небольшой код-пример, демонстрирующий всю простоту реализации:

Шаг 1: Добавляем зависимость
Подключаем нужную библиотеку в Gradle-файл:
dependencies {
implementation("chat.giga:langchain4j-gigachat:0.1.6")
}

Шаг 2: Создаём помощника
Описываем интерфейс помощника и добавляем аннотацию, чтобы сделать работу удобной и понятной:

data class ValidateRs(val isValid: Boolean?, val description: String?)

interface ValidateAssistant {
@UserMessage("""
Проверяй, подходит ли указанный ниже текст для детской сказки:

Текст: {{text}}
""")
fun validate(@V("text") text: String): ValidateRs
}

Теперь данные приходят сразу в нужном формате, никаких проблем с JSON-парсингом.

Шаг 3: Настраиваем конфигурацию

Создаём конфиг для соединения с моделью GigaChat и настраиваем бины:
@Configuration
open class AIConfig(private val clientSecret: String) {
@Bean
open fun gigaChatChatModel(): GigaChatChatModel {
return GigaChatChatModel.builder()
// Здесь прописаны настройки модели и авторизации
...
.build()
}

@Bean
open fun assistant(chat: GigaChatChatModel): ValidateAssistant {
val chatMemory = MessageWindowChatMemory.withMaxMessages(20)
return AiServices.builder(ValidateAssistant::class.java)
.chatLanguageModel(chat)
.chatMemory(chatMemory)
.build()
}
}


Шаг 4: Используем помощник

Создаём простой сервис для удобного обращения к помощнику:

@Service
open class AIService(private val validateAssistant: ValidateAssistant) {
fun validateText(text: String): ValidateRs {
return validateAssistant.validate(text)
}
}

Всё готово! Теперь можно легко интегрировать проверку текста в любые сервисы вашего приложения.

Я уже проверил этот подход на практике — всё отлично работает!

Надеюсь, мой опыт окажется полезным и вам захочется попробовать эту замечательную библиотеку самостоятельно. Репозиторий доступен здесь:
https://github.com/ai-forever/langchain4j-gigachat

Делитесь своими успехами и вопросами в комментариях, буду рад обсудить! 😊
❤‍🔥5🔥53
🚀 Как перенести Docker-образ между серверами без Docker Artifact Registry?

Недавно столкнулся с такой ситуацией: мой виртуальный выделенный сервер внезапно потерял связь с моим приватным Docker Artifact Registry. При попытке обновить образы возникала следующая ошибка:
Error response from daemon: Get "https://kronx.cr.cloud.ru/v2/": dial tcp: lookup kronx.cr.cloud.ru on 127.0.0.53:53: server misbehaving


Эти выходные выдались непростыми: не хотелось отвлекаться на написание в техподдержку, поэтому решил попробовать разобраться сам. Пробовал добавить дополнительные DNS-серверы вручную, однако ничего не изменилось. Тогда пришло понимание, что единственный выход — временно обойти систему хранения образов и перенести нужный образ вручную. К счастью, Docker позволяет сделать это достаточно легко...


Решение проблемы:

Шаг 1: Экспортируем образ локально на исходном сервере:
docker save -o my_image.tar my_image_name:tag

Шаг 2: Передаем архив (my_image.tar) на целевой сервер удобным методом передачи файлов (SSH, FTP)

Шаг 3: Импортируем образ на новом сервере:

docker load -i my_image.tar


Позже выяснилось, что проблема была временной, и Artifact Registry заработал нормально спустя некоторое время. Этот случай наглядно продемонстрировал гибкость Docker и подчеркнул важность наличия альтернативных решений для непредвиденных ситуаций.
👍65
▌ Социальный IT-проект: создай сказку и помоги ребенку!

Мы запустили проект совместно с @BugrovExperience и благотворительным фондом Время Детства — социальную платформу, позволяющую каждому почувствовать себя писателем, добавив пару строк в коллективную детскую сказку и внести вклад в будущее детей! 🎈📚

▌ Концепция проекта

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

▌ Что было сделано?

- UI/UX: продуманная структура, удобная навигация и привлекательный интерфейс, созданный в Figma @BugrovExperience
- Реализация:
  - Фронтенд: Vue
  - Бэкенд: Kotlin, Spring Boot 3,  Jmix, PostgreSQL, AI Агент для валидации текста и создания краткого пересказа, админка.
  - Интеграция с платежным сервисом: возможность безопасного подтверждения транзакций.
@kyrillP

🌐 Посмотреть проект онлайн:

story.vremyadetstva.ru

Сейчас проект на стадии  тестирования на фокус группе...

P.S Да простит меня дизайнер, он сделал потрясающий макет, но я не до конца доделал вёрстку, мне нужно поправить все padding и margin в соответствии с макетом, но для MVP, думаю, это не критично 😅
8❤‍🔥2