Pull to refresh
39
0

Разработчик

Send message

Как я стал программистом. Путь от питерского бездомного до Senior Developer-а за 6 лет

Reading time6 min
Views229K
Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

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



Сегодня я хочу рассказать свою историю.

Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».
Читать дальше →
Total votes 168: ↑152 and ↓16+136
Comments87

Прощайте, базы данных, да здравствуют векторные базы данных

Level of difficultyEasy
Reading time11 min
Views66K

Революция в области искусственного интеллекта переформатирует все отрасли нашей жизни, с одной стороны обещая невероятные инновации, а с другой ー сталкивая нас с новыми вызовами. В безумном потоке изменений эффективная обработка данных становится приоритетом для приложений, на основе больших языковых моделей, генеративного ИИ и семантического поиска. В основе этих технологий лежат векторные представления (embeddings, дальше будем называть их Эмбеддинги), сложные представления данных, пронизанные критической семантической информацией.

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

Читать далее
Total votes 53: ↑51 and ↓2+49
Comments55

JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6

Level of difficultyMedium
Reading time15 min
Views30K

Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель данной статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами.

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments11

Секреты JDK

Reading time4 min
Views25K

Про Unsafe в Java не слышал только ленивый, однако это не единственный магический класс в Sun/Oracle JDK, стирающий границы Java платформы и открывающий тропинки, не нанесенные на карту публичного API. Я расскажу про некоторые из них, принесшие пользу в реальных проектах. Но помните: недокументированные возможности лишают ваше приложение переносимости на другие Java платформы и, кроме того, являются потенциальным источником нетривиальных ошибок. Я даже зря написал слово «приложение». Лучше сказать, что описанные ниже классы вовсе не годятся для приложений! Скорее, они представляют интерес лишь для системного ПО и для любознательных программистов, т.е. для вас :)
Читать дальше →
Total votes 129: ↑127 and ↓2+125
Comments30

Реактивное программирование со Spring, часть 1 Введение

Reading time7 min
Views37K

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

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments0

Хабраюзер, помогай, тут еще истории карьерных тупиков

Level of difficultyEasy
Reading time10 min
Views17K

Мне часто не нравятся продолжения сериалов, я говорю «они уже всё сказали в первом сезоне» или просто «фу, скатились». Но написать вторую часть статьи, в которой мы вместе разбираем карьерные провалы, попробую.

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

Три истории опубликованы здесь. Забегайте, читайте и делитесь мнением в комментариях (или просто читайте комментарии — там интересно). Пять новых историй — в этой статье.

Читать далее
Total votes 27: ↑25 and ↓2+23
Comments16

Эффективное и комплексное устранение утечек памяти в Android

Level of difficultyMedium
Reading time7 min
Views5.6K

Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor.

Читать дальше
Total votes 7: ↑5 and ↓2+3
Comments5

Каким образом спецслужбы отслеживают пользователей мессенджеров (без доступа к устройству и ключам)

Level of difficultyEasy
Reading time3 min
Views55K

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

Читать далее
Total votes 69: ↑67 and ↓2+65
Comments177

Работа с асинхронными операциями с помощью Kotlin Coroutines

Level of difficultyMedium
Reading time20 min
Views19K

Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines. 

Сегодня я хочу углубиться в Kotlin Coroutines и разобрать их основные компоненты. Мы рассмотрим Kotlin Coroutines, предполагая, что у вас уже есть базовое понимание языка Kotlin и некоторый опыт разработки Android-приложений. Мы изучим основные концепции Kotlin Coroutines, способы работы с асинхронными операциями, управление потоком выполнения, обработку ошибок и исключений, а также многое другое.

Моя цель — помочь вам овладеть Kotlin Coroutines и научиться использовать их для упрощения и оптимизации вашего кода, обеспечения более гладкого пользовательского опыта и более эффективного управления асинхронными операциями. Приятного прочтения, мы начинаем!

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments10

Возвращаем 2007 год, или делаем Интернет без блокировок

Level of difficultyMedium
Reading time5 min
Views65K

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее
Total votes 84: ↑80 and ↓4+76
Comments98

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time37 min
Views83K

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

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 88: ↑87 and ↓1+86
Comments27

8-битный денди-ноутбук за 400 рублей из начала нулевых. Какой «компьютер» смогли сделать китайцы на базе железа «Денди»?

Level of difficultyEasy
Reading time10 min
Views13K
image

Друзья! А вы заметили, что NES, которая более известна у нас как Dendy, наряду с сегой стала консолью на много поколений вперёд? Даже спустя практически 40 лет после выхода, она не теряет актуальности и до сих пор взращивает все новые и новые поколения геймеров. 80-ые (Famicom/NES), 90-ые (тайваньские клоны NES, известные у нас как Dendy и Сюбор), 2000-ые («денди на капле» или новоделы), десятые и даже двадцатые (сейчас железные клоны уже не делают, но делают довольно мощные стики с эмуляторами и встроенными ромами). Для многих из нас NES/SMD стали первыми игровыми платформами, за которыми мы проводили часами на пузатых и изрядно уставших ЭЛТ-телевизорах. Недавно, листая онлайн-барахолки, я нашёл очень интересную вариацию денди: в виде эдакого «ноутбука», с настоящей рабочей клавиатурой, мышкой и двумя геймпадами. Сегодня мы с вами: осмотрим интересную покупку, узнаем, что у такого «ноутбука» под капотом, посмотрим на местный закос под Windows с настоящим бэйсиком и DOS. Интересно? Тогда жду вас под катом!
Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments52

Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры

Reading time7 min
Views44K

Кто‑то говорит, что ипотека — это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто‑то, наоборот — что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образом лучше подходить к гашению ипотеки, и что там может пойти не так.

Читать далее
Total votes 103: ↑90 and ↓13+77
Comments222

Импортозамещение, которое мы потеряли (ч.2): АСУ ТП по телеграфному кабелю, нейронные сети и РСУБД в 60-х

Reading time8 min
Views9.3K

Пилотная статья понравилась комьюнити, а значит продолжаем рассказывать о ранних советских разработках, предвосхитивших современные достижения отрасли, а порой, опередивших своё время. Наш рассказ будет не полным без упоминания проектов АН УССР, наиболее важная часть которых была реализована в процессе разработки и использования ЭВМ “Киев”. Под катом речь пойдет о проектах управления технологическими процессами на расстоянии 500 км, разработке и применении прообраза современных реляционных систем управления базами данных, а также первых советских опытах по машинному обучению и созданию искусственного интеллекта в 1950-х - 1960-х.

Читать далее
Total votes 48: ↑45 and ↓3+42
Comments64

Impress me или как решить задачу на интервью

Reading time2 min
Views7K

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

Поясню. Джуниор разработчик проходит собеседование. Ему дали следующее задание:

Одна из задач, которую мы даём соискателям: написать код, который выводит числа от 0 до 1000, которые делятся на 3, но не делятся на 5, и сумма цифр в которых меньше десяти.

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments31

РЕД ОС: первые впечатления от импортозамещенной операционки

Reading time6 min
Views128K

Разработчики РЕД ОС избавились от одной болезни Linux, но ничего не смогли сделать с другой...

Читать далее
Total votes 112: ↑69 and ↓43+26
Comments187

Про оптимизацию кода

Reading time2 min
Views1K
Кодер Один мой знакомый получил работу в очень престижной конторе по разработке устройств связи уоки-токи, мобильные и так далее. Контора надо сказать очень большая и входит в ТОП-50 по этой сфере индустрии.

И из-за такого размера в конторе было очень много бюрократических моментов — согласований, совещаний и уходило на общение очень много времени. Программисты там были в большей части индусы и делали они свою работу очень неторопливо, медитируя так сказать в рабочее время.
Что было дальше
Total votes 86: ↑49 and ↓37+12
Comments18

Достаточно ли вы умны для того, чтобы работать на Илона Маска?

Reading time3 min
Views57K
image

Задачка на логическое мышление, которую Илон Маск любил задавать на интервью в ранние дни руководства компанией SpaceX, а также несколько производных от неё задач.

Вы стоите на поверхности Земли. Затем вы начинаете идти: проходите один километр на юг, один на запад и один на север. В итоге вы оказываетесь в начальной точке. Где вы стоите?

Чаще всего кандидаты отвечают «на Северном полюсе», и это правильный ответ. Эта задачка очень старая – самое раннее её упоминание датируется аж 1821 годом. Однако, как утверждает Эшли Вэнс, биограф Маска, тот, получив такой ответ, задавал следующий вопрос: «Хорошо, а есть ли ещё такие точки?»
Читать дальше →
Total votes 60: ↑46 and ↓14+32
Comments173

Муравьи

Reading time10 min
Views46K

Муравьи

Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи М

Муравьи
Total votes 122: ↑73 and ↓49+24
Comments319

Есть ли в вашей IT команде саботажник?

Reading time8 min
Views64K

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

Если вам всё это знакомо, то почти наверняка в вашей команде есть скрытый саботажник.

Читать далее
Total votes 94: ↑80 and ↓14+66
Comments91
1

Information

Rating
Does not participate
Registered
Activity