Вопрос “Как спроектировать курс и программу обучения?” совсем не тривиальный. Даже учитывая многочисленность подобных курсов, всегда есть особенности, из-за которых нельзя просто так взять и скопировать. Мы хотим поделиться опытом, как мы разрабатывали учебную программы для frontend-школы, какие цели преследовали и что у нас в итоге получилось.
Мои контакты
четверг, 24 января 2019 г.
пятница, 26 октября 2018 г.
Настройка Amazon IoT Button
У нас в компании есть проект, связанный с облачными кнопками от Amazon, — Amazon IoT Button. Процесс настройки этих кнопок не самый простой, поэтому мы решили написать инструкцию, чтобы сэкономить время всем, кто начинает работу с этим устройством.
Задача: настроить кнопку таким образом, чтобы при нажатии в облаке запускалась произвольная lambda-функция.
Кнопка работает следующим образом. По нажатию она включается, подключается к Wi-Fi и отправляет запрос в облако Amazon, где находится обработчик нажатия в виде Amazon Lambda. Батарейки хватает примерно на 2000 нажатий.

Задача: настроить кнопку таким образом, чтобы при нажатии в облаке запускалась произвольная lambda-функция.
Кнопка работает следующим образом. По нажатию она включается, подключается к Wi-Fi и отправляет запрос в облако Amazon, где находится обработчик нажатия в виде Amazon Lambda. Батарейки хватает примерно на 2000 нажатий.
вторник, 4 сентября 2018 г.
Трансформация из Junior в Middle для Python-разработчиков
Статья из внутренней базы знаний нашей компании.
Мы подразумеваем, что разработчик грейда Junior владеет навыками программирования на Python (в идеале — Python 3), базово знает Django/Flask или что-то подобное и умеет работать с базой данных и системной контроля версий (мы используем Git). Таким образом, он может разработать простое веб-приложение на этом стеке.
Для перехода в грейд Middle разработчик должен освоить следующий список инструментов/технологий/навыков.
вторник, 24 октября 2017 г.
четверг, 6 июля 2017 г.
Разработка SaaS на Django и Python. Часть 2. Шардинг базы данных (multi-tenant)
В предыдущей статье мы затронули тему размещения аккаунтов на отдельных поддоменах, а так же способ реализации публичного API в обычном приложении Django (с учетом того, что серверная сторона уже реализована в виде WebAPI для SPA-приложения).
Сегодня мы поговорим о шардинге баз данных и о том, как его можно применять при разработке SaaS продуктов. Частично о шардинге мы уже рассказывали ранее в серии статей о проектировании высоконагруженных веб-приложений: База данных. Рекомендую обратиться к этому материалу, т.к. тема оптимизации работы с БД достаточно сложная.
Сегодня речь пойдет по большей части о практике. Мы наглядно покажем (с примерами кода), как можно реализовать шардинг базы данных в SaaS проекте на Django, Python и PostgreSQL/MySQL.
среда, 5 июля 2017 г.
Разработка SaaS на Django и Python. Часть 1. Поддомены и публичный API
Вдохновившись интересными решениями на последних наших проектах, я решил описать то, как можно реализовать три типичные составляющие SaaS проекта на Django и Python.
Материал будет разбит на две части, в которых мы рассмотрим следующие темы.
- Размещение каждого аккаунта на отдельном поддомене;
- Простой и быстрый способ выделить публичный API вашего сервиса;
- Размещение данных каждого аккаунта в отдельных базах данных.
На сервере мы часто используем Django и Python, Celery и Redis для реализации распределенной очереди задач, а в качестве СУБД PostgreSQL или MySQL. Клиентская сторона обычно реализуется на AngularJS, ReactJS или другом MVVM/MVC фреймворке.
Исходя из этого, далее по тексту я буду предполагать, что на вашем проекте используется подобный технологический стек, хотя это не принципиально.
понедельник, 5 сентября 2016 г.
Про опыт работы над проектами из США
Наша компания сейчас работает над вторым проектом для заказчика из Соединенных Штатов. Оба проекта — облачные SaaS-системы (B2B и B2C, соответственно). Основное их отличие для нашей компании заключается в том, что первый мы самостоятельно разрабатывали с нуля, а ко второму мы подключились как удаленная команда, чтобы улучшить и ускорить разработку. Об особенностях, различиях и некоторых выводах пойдет речь в этой статье.
Подписаться на:
Сообщения (Atom)





