All streams
Search
Write a publication
Pull to refresh
14
0
Dmitrii T. @talbot

Financial services on Java beans

Send message

Automat'ы, как ни странно, просуществовали аж до 1991 года

Типичный автомат FEBO
Типичный автомат FEBO

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

Добавлю примеров в копилку из своего опыта, где работал сам:

- Яндекс (Яндекс.Касса). Decimal base units: Java BigDecimal на бэкенде, DECIMAL в базе данных (Postgres), строковое представление в API.
- Ingenico e-Payments / Worldline (четвёртый в мире Payment Gateway, самый большой в Европе). Integer with minor units: Java BigInteger на бэкенде, BigInt в базе данных (Oracle), где minor units = 1/1000000. В API то же самое, только minor units = 1/100 (для большинства валют) или 1/1000 (для определённого списка, но в документации об этом ни слова, просто костыли в коде).
- Банк ING (электронный кошелёк Yolt). Сам затащил подход «как в Яндексе», так как мог влиять на принятие решений. Стек тоже «как в Яндексе».
- Maersk (морские грузоперевозки). String Base Units: сериализация / десериализация из / в Java BigDecimal на бэкенде, хранение в виде строк в базе данных (MongoDB). API использует строки.

Забавный факт про Integer with minor units:

Большие суммы: Int64 может переполниться при работе с крупными транзакциями

Если уж Int64 может переполниться, то что тут говорить про int32 (Java int), который был до перехода на BigDecimal (а, возможно, где-то в коде каких-то сервисов ещё и есть) в Ingenico e-Payments. Так и случилось в один прекрасный момент несколько лет назад, когда путешествия на Бали (смотри курс индонезийской рупии IDR) стали внезапно стоить сущие центы из-за переполнения. Распродажу Лавочку прикрыли только к утру, когда заметили невероятную популярность клиента Agoda и отелей на Бали, и до исправления просто прекратили (на полгода) принимать платежи в валюте IDR. Убытки, как водится, просто списали, никого не наказали.

Прошу прощения, вы правы: четверть миллиарда.

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

Не забываем, что в COVID раздавали деньги, не бесплатно. И теперь пришло время их отдавать.

За всё «там» не скажу, но конкретно в Нидерландах стало плохо именно полтора года назад, осенью 2023 года. Догнала высокая ставка и деньги, которые стали очень дорогими. Жить компаниям как раньше, занимая по низкой ставке, больше не получается. Долги, которые дёшево рефинансировались, теперь поставили перед компаниями вопрос выживания, а не развития: сужу по знакомой финтех-сфере, где работал сам и знаю внутренности компаний.

Падение капитализации у Worldline (4-й PSP в мире, крупнейший в ЕС) составило больше 90%, у Adyen похоже, но они смогли немного отыграться. При том, что revenue у компаний растёт из года в год.

Я не знаю ни одной компании в нидерландском финтехе, которая бы сейчас не занималась сокращением персонала, в первую очередь в «дорогих» странах ЕС (Нидерланды, Германия, даже Польша). По возможности разработка выносится туда, где дешевле (у меня есть пример с попыткой переноса разработки в Румынию и Португалию). Об инвестициях в развитие (расширение) сейчас не думают, скорее об «инвестициях в сокращение». Как пример, Worldline запланировал потратить четверть миллиона евро в течение трёх лет на сокращение персонала (и компенсации за это). Открытые вакансии теперь воспринимаются как исключение.

Ещё хуже обстоят дела у «консультантов» (фрилансеров на местном аналоге ИП, называемом ZZP): их ещё добили регуляцией с января этого года. Все консультанты (порядка двадцати человек), с кем я успел пообщаться на мероприятиях в местной специализирующейся на финтехе консалтинговой компании, спрашивали нет ли у нас открытых вакансий «на постоянку»: если раньше интересовали только рейты, то теперь просто нужно место. Не забываем, что у многих виза привязана к работе и зарплате (виза для высококвалифицированных мигрантов), что вынуждает выходить на рынок и соглашаться на более низкую зарплату.

Как итог, по субъективной оценке разница по предлагаемой зарплате на одинаковую позицию между июнем 2023 и июнем 2025 составила порядка –20%. При этом открытых вакансий (и новых продуктов) за последние полтора года почти нет.

А как вы видите на приведённых диаграммах Dependency Tracking (отслеживаение уязвимостей в уже использующися сборках и образах, которые были выявлены после прохождения Security Gate)?
Например, в ситуации, когда была найдена уязвимость в сторонней зависимости, которая используется в образе, задеплоенном несколько недель или месяцев назад, и о которой не было известно сканерам (той же Trivy) на момент прохождения Security Gate.

У Dell корпоративные Latitude были очень хороши: модульные (можно заменить / добавить что угодно на стандартных разъёмах), легко ремонтируются, крепкие металлические корпуса.

Latitude 7490 до сих пор пользуюсь, с Дебиан из коробки работает всё железо, даже встроенный LTE-модем.

А Precision всё-таки «гробики» были, очень уж тяжёлые и большие.

Testplane выглядит как Ашот (от yandex-qatools) as a Service.

На HTTP сервер, как уже отметили выше, не тянет, только на TCP.

Хорошо было бы рассмотреть, как использовать уже имеющийся в JDK com.sun.net.httpserver.HttpServer в неблокируещем режиме, и, например, с использованием Virtual threads. Хотя, похоже, всё это сведётся к банальной строчке server.setExecutor(Executors.newVirtualThreadPerTaskExecutor()).

Проект девять лет не обновлялся. Подозреваю, issues уже не разбираются, да и, скорее всего, никто его не проверял с включённым -Werror=all.

Есть telegram-curses (на базе ncurses TUI) от того же автора, что и telegram-cli. Этот клиент активно обновляется. Ну и вышеупомянутый tgt, если TUI не подходит, и хочется хоткеев. Оба (что нисколько не удивительно) являются обёрткой над официальной td-lib от команды Телеграм, разве что tgt, так как написан на Rust, использует Rust-обёртку над библиотекой от того же автора, что и сам клиент.

А Я.Браузер (который как раз на основе Chromium) в Аркадии же лежит? Не пробовали большой проект из Аркадии в SourceCraft перенести и производительность измерить?

Кажется, нужна статья от вас про актуальные компетенции админов ЦОДа и состояние рынка найма. Статей, как запрыгнуть в IT, как и курсов с рекламой, пруд пруди. Но я не видел ни одной про инженеров ЦОДа (кажется, на трёхмесячных курсах этом не учат).

У Яндекса уже лет восемь как нейронки в основе поиска. Или вы про отображение результатов на СЕРПе через текстогенератор?

Я сразу, как увидел JSON, захотел поинтересоваться: а чего не CSV? Парсер и генератор сильно проще, типы вам не нужны (если все значения—строки).

Тут в чём проблема: id платежной связки можно инвалидировать только если он выдан самой Визой (так называемые scheme tokens, которые выглядят как номер карты, только другой).

С токенами, выданные платёжным шлюзом, так не получится: схема о них ничего не знает, знает (должна знать) только про идентификатор опорного платежа.

У вас тут Сбер присутствует как три совершенно разные, и, формально, не связанные между собой сущности: Сбер-платёжный-шлюз, Сбер-эквайер и Сбер-банк-выпустивший-карту. Между двумя последними должна ещё быть схема (НСПК + Мир), но привет, Сбер!

Токен (id платежной связки) возвращает шлюз (могла бы вернуть схема, но я не знаю, есть ли у Мира scheme tokens). Соответственно, токеном владеет только шлюз: он умеет сопоставить токен с карточными данными и «опорной» транзакцией—той, на которую был выдан токен, и идентификатор (RRN) которой отправляется в эквайера. Эквайер мог бы поделиться этими данными с банком-выпустившим-карту (и таки Visa, например, требует этот идентификатор, а, значит, его можно сделать доступным банку-выпустившему-карту), но тут уже внутренняя кухня Сбера.

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

Это вы ещё про card-on-file и unscheduled card-on-file не слышали, хотя, наверное, пользуетесь. Тут вообще никаких проверок: ваши карточные данные просто хранятся у магазина, а в PSP приходит файлик с номером карты и сколько списать.

1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 130,000 €
Java
Oracle
PostgreSQL
Java Spring Framework
High-loaded systems
API interfaces