Типичный вопрос по system design в FAANG.
Ну а чего там дизайнить то?
Создаём БД, там храним время жизни ссылки, ссылку полную, сокращённый param для урла, дату создания, инфу о создающем.
Поднимаем актикс и пишем веб морду с кнопкой, по кнопке дергаем post до обработчика, пишем в лог вызов / ответ, записываем в БД новую запись о ссылке.
Дулаем GET метод в том же актиксе, ищем в БД по параметру и возвращаем редирект, пишем статистику если надо и в лог.
Ну и все методы асинхронные