Перейти до вмісту

Технології

Технології, з якими працює Engineer ApS: мови програмування, платформи даних, хмара та інфраструктура — і як ми обираємо інструменти.

Інструмент — лише засіб. Клієнт купує вміння обрати правильний і дисципліну, щоб добре його експлуатувати. Але ви запитали, з чим ми працюємо, — тож ось перелік, і кожен його рядок підтверджено роботою в портфоліо.

Мови та середовища виконання

Python — для роботи з даними, автоматизації та сервісів. Go — там, де важливі один статичний бінарник і низькі накладні витрати. TypeScript і сучасний JavaScript — на вебрівні. SQL — як повноцінна мова, а не те, що генерує ORM: саме там здебільшого й лежить робота з продуктивністю, заради якої нас запрошують. Bash — для «клею» між компонентами, і написаний так, щоб його можна було прочитати.

Дані

PostgreSQL — наш вибір за замовчуванням, і ми використовуємо його можливості по максимуму, перш ніж братися за щось інше: партиціонування, реплікацію, розширення та планувальник запитів. Ми також працюємо з MS SQL Server, BigQuery, SQLite і Redis, а поверх них — із геопросторовим стеком: PostGIS, QGIS, GDAL та ArcGIS. Пайплайни будуємо так, щоб їх можна було перезапускати і щоб вони були ідемпотентними, бо після інциденту завжди постає одне питання: чи можна прогнати це ще раз.

Кожен інструмент нижче обрала людина, яка експлуатувала його в продакшні о третій ночі.

Перелік довгий тому, що завдання були різні, а не тому, що інструменти збирали.

Хмара та інфраструктура

Google Cloud і AWS, а Azure — там, де клієнт уже в ньому працює. Linux в основі всього — Debian і Ubuntu. Docker і Kubernetes — для навантажень, які цього справді варті, і звичайні юніти systemd для решти. Ansible і Terraform описують машини, тож середовище — це документ, а не археологічні розкопки. Caddy і nginx — на вході.

Експлуатація в продакшні

Prometheus і Grafana — для метрик, структуроване журналювання — для решти, а сповіщення спрацьовують на симптоми, які помітить користувач, а не на кожне смикання графіка. CI-завдання збирають, тестують, сканують і розгортають без участі людини. Резервні копії робимо, а відновлення з них перевіряємо.

Вебрівень

Статика насамперед, де це доречно, бо сторінка-файл — це сторінка, яка не може впасти: Hugo збирає цей сайт. Django і PHP — там, де є застосунок, який треба обслуговувати. Семантичний HTML, написаний вручну CSS і доступність як вимога, а не як зауваження аудиту.

Як ми обираємо

Нудна технологія, обрана свідомо, краща за новітню, обрану за інерцією. Ми обираємо під завдання, під те, що ваша команда зможе експлуатувати, коли ми підемо, і з огляду на те, як система поводиться під час збою, а не як вона виглядає на демонстрації. Коли правильна відповідь — стек, який у вас уже є, ми так і кажемо, а коли ні — кажемо й це та письмово обґрунтовуємо чому.

Цей сайт і сам є наочним прикладом: сторінка подяк називає кожну технологію, що за ним стоїть, аж до гарнітури й інструмента резервного копіювання.

Якщо вам потрібен підрядник із власними переконаннями, а не зі списком уподобань, розкажіть, що ви будуєте.

Маскот Engineer: доброзичливий синьо-білий робот у плащі з друкованими доріжками, працює за ноутбуком і показує великий палець угору через плече

Перелік інструментів ще не кваліфікація — кваліфікація полягає в тому, щоб знати, який потрібен саме для вашого завдання.

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

Побачити це в роботі Що ми пропонуємо