Прості та безпечні прямі завантаження у файлове сховище S3 з сучасних браузерів.

Привіт, я Тейлор Х'юз. Я є інженером-програмістом. Я працював над додатками і вибудовував команди в компаніях Facebook, Google, Clubhouse та багатьох стартапах між ними.

Проблема з надання користувачам можливості завантажувати файли в корзину S3 виникає в кожному проєкті. Однак, визначити правильні JavaScript компоненти і налаштування, щоб зробити все це працюючим разом, видається справжнім відкриттям.

Документація AWS порадила б вам налаштувати додатковий сервіс аутентифікації та імпортувати весь SDK AWS JS у ваш клієнтський код — але цього насправді не потрібно!

Замість цього, ми можемо використовувати попередньо підписані URL та сучасні веб-API, щоб легко завантажувати файли безпосередньо в S3 з … Читати далі

Чи Nginx мертвий? Чи Traefik v3 на 20% швидший, ніж Traefik v2?

pic

Фото на doc.traefik.io

Подивление на те, як веб-додатки стають більш складними і інтенсивними з точки зору трафіку, вибір високопродуктивного сервера оберненої проксі-напрямної дії є критичним для надання швидкого та надійного контенту користувачам. Traefik v3 та Nginx - це два широко використовувані сервери оберненої проксі, що пропонують потужні можливості роботи з HTTP. Однак їх підходи до обробки HTTP-запитів та відповідей можуть значно відрізнятися, що призводить до різниці в пропускній здатності, часі відповіді та використанні ресурсів.

У цій статті я порівняю HTTP-продуктивність Traefik v3 та Nginx, зосереджуючись на метриках, таких як швидкість запиту, час відповіді та використання ресурсів. Я також розгляну фактори, … Читати далі

Як Amazon та Google розглядають CI/CD у зовсім різний спосіб Як Amazon і Google дивляться на CI/CD зі зовсім різних ракурсів

pic

Якщо Medium робить цей контент доступним лише за плату, ви також можете переглянути його тут (LinkedIn).

Я був технічним керівником інфраструктури для інтеграційного тестування в усій компанії як в Amazon, так і в Google протягом багатьох років, і спосіб, як ці дві компанії мислять про CI/CD, суттєво відрізняється.

Я працював у Amazon понад 11 років (2009–2020). Я був головним інженером в організації засобів розробника, яка володіла всією інфраструктурою та засобами CI/CD для компанії. Ми були відповідальні за весь програмний засіб, який використовували десятки тисяч співробітників Amazon кожен день для написання коду, рецензування коду, збирання коду, тестування коду та впровадження … Читати далі

Чи можна з Postgres замінити Redis для кешування?

Twitter | LinkedIn | YouTube | Instagram
Ця стаття також доступна на YouTube!

image

Сьогодні я вирішив запитати у людей на Twitter, яка система черг повідомлень (Message Queue) першою приходить їм на думку. І, на моє здивування, однією з відповідей була: Postgres.

Я відкрив посилання і був здивований не лише можливістю використовувати Postgres як брокер повідомлень (Message Broker):

"Використовуйте Postgres як чергу повідомлень із параметром SKIP LOCKED замість Kafka (якщо вам потрібна лише черга повідомлень)". — Стефан Шмідт

Але також… можливістю використовувати Postgres як кеш на заміну Redis:

"Використовуйте Postgres для кешування замість Redis за допомогою UNLOGGED таблиць і текстового типу

Читати далі

__proto__, prototype, [[Prototype]], Prototype Chain __proto__, prototype, [[Prototype]], Prototype Chain

Прототип

Я вирішив поговорити про це, оскільки вважаю, що це одна з найбільш заплутаних тем в JS. У середньому, під час кожного інтерв'ю, принаймні одне запитання обов'язково стосується цієї теми.

Прототип

Примітка: "Прототип" - це спеціальне властивість, доступна лише для об'єктів-функцій.

Ця властивість автоматично надається функціям при їх запуску.

Майже кожен об'єкт пов'язаний з іншим об'єктом. Ця зв'язок встановлюється за допомогою прототипу. Об'єкти успадковують методи та властивості батьківського об'єкта через прототип.

Властивість prototype є в самій функції (Animal), а не в її екземплярах (Dog).

Щоб краще зрозуміти, давайте спробуємо розібрати наступний приклад крок за кроком:… Читати далі

Я закрив свій стартап. Поділюсь гіркою правдою.

Сьогодні я оголошую про закриття Zencape Health. Після чотирьох років роботи, двох серйозних змін напрямку, безлічі експериментів, десятків тисяч річного доходу, одного запущеного додатка, тисячі взаємодій з пацієнтами та багатомільйонного партнерства з провідною лікарнею ми підходимо до кінця нашого шляху.

Будувати компанію - це не для слабкодухих, а створювати її в галузі жіночого здоров'я, зокрема з фокусом на проблеми, що стосуються маргіналізованих спільнот, мабуть, вимагає трохи безумства. І я точно був(ла) досить безумним(-ою), щоб спробувати.

Коли я починав(ла) Zencape Health, у мене за плечима був десятирічний шлях боротьби за потрібний мені догляд. Все починалося з безлічі годин у медпункті в … Читати далі

Контроверсійна правда про технічній борг

З усіх модних термінів, які вигадав софтверний бізнес, технічний борг є найбільш дратівливим. Я знаю, що це буде спірно, і вже можу уявити, як ревнителі чистої архітектури лютують. Тож дозвольте мені пояснити свою думку.

pic

Що таке технічний борг?

Я запитую під час співбесіди "Яке визначення технічного боргу?" і дивно, що кожен кандидат дає різну відповідь. Схоже, що галузь ще не зійшлася на єдиному визначенні. Я класифікував відповіді наступним чином:

pic

Ось кілька проблем з цими відповідями:

  • Відповіді є вагомими, наприклад, що таке "старий код"? 6 місяців, рік...
  • Відповіді фокусуються на симптомах, а не на кореневі причині. Наприклад, "код, який ніхто не
Читати далі

Розвиток ноутбуків мертвий: чому віддалена розробка – це майбутнє

Розвиток інструментів для розробки

pic

Я провів десять років у керівництві командами розвитку інструментів. Протягом цього часу я спостерігав за стрімким зростанням та спадом популярності Vagrant та запровадженням Docker та безліччю інших інструментів для збірки. Я пам'ятаю, коли більшість розробників мали під своїми столами два настільних комп'ютери, і я допомагав у переході на ноутбуки Mac. Також я допомагав у розробці внутрішніх платформ для самообслуговування обчислень на AWS. Усі ці інструменти мали на меті наблизити виробниче середовище до розробки та забезпечити просту конфігурацію та масштабованість локального середовища. Проте жоден з них не зміг досягти цієї мети.

Після Palantir я спілкувався з багатьма … Читати далі

5 речей які я хотіла б знати перед тим як йти у відпустку (Sabbatical)

pic

Спочатку я планувала взяти відпустку на 3 місяці. Я була втомлена й роздратована, і єдине, чого я хотіла, – це втекти від роботи в ІТ та дізнатися, що ще є у цьому світі. Я думала, що до вересня 2021 року зможу зробити перерву, зрозуміти, що мені важливо, і перейти на нову, більш значущу роботу.

І ось ми в січні 2022 року. Це зайняло на 4 місяці більше, ніж я очікувала, але я нарешті на тому етапі, коли можу завершити свій самопризначений сабатікал. Це була несподівано складна подорож — далеко не той сценарій із подорожами світом та коктейлями на пляжі, який … Читати далі

Перестаньте тестувати свій код!

pic

Полювання на баги по-новому!

Я опублікував цю статтю всередині компанії Xendit трохи менше року тому. Це призвело до формалізації того, що ми тепер називаємо "тестуванням на рівні сервісів" (service-level testing). Тепер, коли пил трохи вщух, я вважаю цікавим поділитися цією ідеєю з ширшою аудиторією.

Вступ

Часом ми чуємо, що наш вихідний код — це цінний актив. Однак я більше схиляюся до думки, що наш код — це зобов’язання. Те, що робить код для нас, дійсно є активом, але якщо б ми могли досягти тих самих результатів з меншим обсягом коду, це було б набагато краще!

Варто сказати правду: дуже … Читати далі