Умения и навыки

Этот раздел я добавил для того, чтобы продемонстрировать уровень своих умений и при необходимости иметь возможность сослаться на эту страницу.

Отлично разбираюсь, многолетний опыт использования:

Языки и технологии:

  • ASP.NET (преимущественно WebForms, т.к. считаю его оптимальным для больших и средних интернет-проектов), использую с 2006
  • C#, с 2007, практически всё — под веб, win-приложения не писал, консольные — несколько раз
  • PHP, с 2004, но последние 5-6 лет редко использую

Веб-серверы:

  • IIS
  • Apache
  • nginx

Из этого списка IIS могу сам установить и настроить, но во всех случаях точно могу сформулировать задачу по настройке системному инженеру, что необходимо получить и какие моменты следует учесть.

SQL:

  • MSSQL, он же Microsoft SQL Server (начиная с версии 2000 — и по 2012)
  • MySQL, а также Percona XtraDB Cluster

NoSQL:

  • memcached
  • Couchbase (и в режиме memcached, и в режиме собственно Couchbase Server — и как хранилище данных, и как NoSQL DB с быстрыми выборками и сортировками), на данный момент любимое NoSQL-решение
  • Redis

Клиентские технологии:

  • HTML, CSS и JavaScript — с 2003, больше 10 лет практически ежедневной практики
  • jQuery, Zepto.js, jQuery UI, десятки изученных и применённых jQuery-плагинов, а также несколько собственных плагинов
  • Работа с форматами XML и JSON
  • Microsoft AJAX

Хорошо разбираюсь:

Big Data — ёмкие и тяжёлые вычисления, расчёты больших объёмов данных

Облачная система хранения документов OpenStack Swift от Rackspace — использовал в проекте с локальным облаком на миллионы фотографий. Написал свою библиотеку на C# для быстрой работы со Swift, поднятом не на Rackspace (для этого у них есть родная библиотека), а в локальном облаке (в своё время не нашёл ничего подобного, пришлось написать самому). В планах — выложить её на github

Интеграция разнообразных платежных систем — от WebMoney до DengiOnline и LiqPay

Работа с большими объёмами email-рассылок (сотни тысяч писем при каждой отправке, и это не спам, а регулярные рассылки пользователями сайта) — от продумывания архитектуры проекта до конечной реализации всего алгоритма

Работа с nginx — использование модулей push (http push module), кэширования (http proxy module) и rewrite для ЧПУ (человекопонятных url-ов)

Немного работал с такими технологиями:

RabbitMQ — отличная штука для организации очередей в больших проектах

ASP.NET MVC — использую ощутимо реже, чем ASP.NET WebForms

SignarR от Microsoft — любопытная смесь клиентской и серверной логики, которая позволяет получать впечатляющие результаты

Zabbix — мониторинг состояния серверов. Сам не настраивал, но активно эксплуатировал

Amazon S3 — хранил фото в облаке

Xamarin — создание мобильных приложений на C# и дальнейшая конвертация под iOS, Android, Mac OS и Windows.

MongoDB — популярная NoSQL-БД, экспериментировал на небольших задачах.

VB.NET — первый язык, который я использовал для работы с ASP.NET. Почему не C#? Когда-то нашёл дома несколько книг по ASP.NET 1.1, и все были с примерами на VB.NET. Через 3 месяца перешёл на C#

Опыт работы с API-сервисами разнообразных сайтов:

VK API (ВКонтакте)

Удобное и отлично документированное API, с использованием которого я успел сделать немало задач:

  • несколько iframe-приложений (с использованием JS API)
  • несколько flash-приложений (писать на ActionScript я не умею, потому в случае флеш-приложений я занимался backend-логикой и управлением технической частью приложения в целом)
  • использования ВК для авторизации на внешних сайтах (REST/XML, REST/JSON)
  • и даже Desktop/Standalone-приложения (оптимизировал некоторые собственные задачи, требущие расширенного доступа к ВК)
  • однажды обсчитал публично доступные данные 230+ млн пользователей ВК для анализа одной внутренней задачи — вот где по-настоящему Big Data! Несколько недель только на сбор информации

Odnoklassniki API

Не самое удобное и весьма странно документированное API, однако у сайта отличная аудитория, за которую стоит побороться, потому я разобрался и с базовым API, и даже использую несколько собственных C#-утилит для решения нестандартных задач в Одноклассниках:

  • несколько iframe-приложений
  • несколько flash-приложений (то же самое, что и с ВК — бэкэнд + общее руководство)
  • использование ОК для авторизации на внешних сайтах
  • автоматический постинг в профилях и группах в обход стандартного ограниченного способа

Facebook API

Огромная соц.сеть, но среди русскоязычной аудитории ощутимо уступает ВК и ОК, потому и работал с ней меньше:

  • Standalone-приложение для кросспостинга
  • Использование ФБ для авторизации на внешних сайтах

Twitter API

Экспериментировал с анализом трендов в режиме реального времени, статистикой и мониторингом по ключевым словам для своих проектов.

Instagram API

Однажды в конце весны 2013 сделал для собственных нужд автоматический импорт из Instagram во ВКонтакте, причём не обычный автокросспост, а выборочный (использовал Tumblr в качестве прослойки). На тот момент столь же удобных аналогов не было, и я даже думал немного его монетизировать, но не успел — через месяц-два Инстаграм сам внедрил шаринг во ВКонтакте.

Last.fm API

Для одного экспериментального музыкального приложения в социальной сети надо было подтягивать недостающие данные (обложки, имя альбома, тексты), я выбрал Last.fm — очень удобно. В больших проектах под серьёзной нагрузкой использовать не довелось.

Серверная платформа

Есть опыт работы с серверной платформой, состоящей из 15 серверов и сопутствующего оборудования. Под моим руководством всё это создавалось и эксплуатировалось.

Получилась очень мощная и продуктивная смесь WISC и LAMP, взявшая от каждого стека технологий лучшее. WISC — это «Windows, IIS, SQL Server, C#», а LAMP — «Linux, Apache, MySQL, PHP».

Подробнее об опыте применении этих технологий можно посмотреть на страницах моих проектов.