Веб-разработчик, PHP-программист.

Опыт веб-разработки более 5ти лет.

PHP - версии 5.2, 5.3. Начинал с четверки, но когда вышла 5.0-beta сразу перешел на нее. Разницу в версиях знаю достаточно хорошо. Разницу объектной модели в 4 и 5 знаю, но на четверке писать не приходилось. ООП, Паттерны, TDD - со всем этим знаком и использовал.

Опыт разработки с использованием ООП, написания собственных библиотек классов и применения готовых решений имеется. Проектировал собственный фреймворк, хоть и не очень удачно. С января 2009 начал использовать Limb Framework. За это время сделал в репозиторий фреймворка около 25 коммитов. Пару раз пробовал Zend - не пошло, видимо я не умею его говтовить. C декабря 2009 работаю с Symfony/Doctrine, но продолжаю думать, что Limb — лучший!

Опыт использования шаблонных движков и различных CMS/Framework: Symfony, Limb Framework, шаблонизатор {{macro}}. Опыт написания своих тегов для Macro, один из которых теперь в trunk.

SQLite - Работал с ним на одном из проектов. Знаю где лежат грабли! Работал с SQLite из PHP. Работал с SQLite из JavaScript (WebKit).

MySQL - сборка, настройка использование. Хранимые процедуры использовал только пару раз. Транзакциями только поигрался. Триггеры - не использовал, но почитав немного в памяти освежу. С оптимизацией запросов знаком, но не глубоко. Репликацию не настраивал, не видел, не щупал. О преимуществах InnoDB знаю, о недостатках - почти нет.

PostgreSQL - книгу (по 7.3) перечитал несколько раз, но использовать в проектах так и не довелось. Про новый полнотекстовый поиск в Postgre в курсе, но очень поверхностно.

(X)HTML,CSS - верстал, и сложные проекты тоже, достаточно успешно. Надо сказать, что верстать не люблю.

 JavaScript - знаком, близко. Windows Script Host + WMI (Писал инсталляторы, админил Windows — Хотел бы увидеть того, кто всю это ЖОПУ проектировал ), скриптинг на веб-страницах, AJAX, ExtJS, Prototype, jQuery (отдаю предпочтение), написание плагинов под jQuery, расширения для Firefox ( https://addons.mozilla.org/ru/firefox/addon/9160 ), игрался небольшими приложениями на XULRunner, делал проект специально для WebKit.

Python - имею некоторое представление, но плотно с языком не работал. Баловался с PyQT4, понравилось.

bash,awk,sed,grep,find и т.д. - ну без этого помоему жить нельзя, и каким счастьем это кажется после WSH-скриптинга.

Linux  - с 2005 года является моей основной операционной системой. Использую в основном Debian / Ubuntu. Устанавливал Gentoo - не понравилась временем, проходящим от принятия решения о необходимости программы, до начала ее использования. Настраивал XEN-виртуализацию на CentOS/SuSe/Debian. За 3 года успел настроить 12 серверов - один личный , 5 корпоративных веб-серверов (без нагрузок), файло-помойка для дизайнеров и бэкап этой файло-помойки (инкрементальный rsync), сервер с контролем версий (Mercurial+nginx) и тестовыми версиями разработки, 2 продакшн на очень нестандартный проект. Восстанавливал потерянные данные на ReiserFS, NTFS и  vfat.

FreeBSD - три года назад поднял шлюз в оффисе, используя старенькую машинку. Естественно пересобирал ядро и мир из CVS. Пакетный фильтр pf, squid и генерация отчетов по трафику free-sa. Просмотр отчетов через веб (apache). Однако после всего этого сказать что я знаю систему не могу.

На веб-серверах использую обычно nginx и php-fpm, собирая и то и другое из исходников (пакеты отстают от современности). Как разделить нагрузку при помощи nginx - приблизительно представляю. Для почты использую exim4 и dovecot. На внутреннем сервере поднимал ejabberd.

Subversion - пользовался около 2.5 лет, пока не попробовал Mercurial. Настраивал SVN-сервера в связке с Apache.

Mercurial - уверенно. Настраивал сервера в связке с nginx.

TCP/IP представляю как оно работает.

О 7ми уровнях OSI помню, но не наизусть

Хронология работы по специальности программист:

1 год, будучи менеджером по закупкам занимался параллельно разработкой сайта в оптовой компании по торговле посудой.

1 год занимался разработкой модулей и настройкой сайтов под Битрикс в компании ITV. Битрикс ( 5я версия в то время ) ужасно не понравился.

3 года в дизайн студии занимался разработкой сайтов.

Работаю над очень нестандартным проектом в Связной.

Однако опыт программирования этим не ограничивается - в детстве писал очень простые игрушки для zx-spectrum на BASIC+ASM, а так же оцифровщик музыки на ASM, и всякое другое баловство. В классе с УКНЦ сделал графический редактор на бейсике, который запоминал действия и генерил код на бейсике воспроизводящий эти действия (это был 1990й) ... в 92м там еще пользовались этим редактором.

Когда вернулся ближе к компьютерам, будучи менеджером отдела маркетинга здорово облегчал себе жизнь программируя на VBA под Excel. В том числе где-то в бэкапах могу отыскать VBA-скрипт, обновляющий данные прайс-листа на сервере, посылая актуальные данные, находящиеся в excel.

C высокими нагрузками дела не имел. Самое большое что я видел - это 7500 хостов в день.

О CARP слышал, читал.

Имел опыт борьбы с DDoS консольными скриптами, но это стрельба из пушки по воробьям. В той войне атакующие забили канал дата-центра и Д.Ц.  просто зафильтровал IP наглухо. Позднее хостер, у которого арендовался сервер перенес его в другой Д.Ц. и сам настроил перед ним файрвол.

Профессиональные интересы:

  • Познакомиться с высокой нагрузкой.
  • Поиграть с системами кэширования.
  • Пощупать вертикальное и горизонтальное масштабирование серверов.
  • Поискать решения для удобства интерфейса пользователя.
  • Получить опыт в рефакторинге говнокода, привести его в тестируемый, читабельный и лекго расширяемый вид.
  • Совершенстоваться, учиться, перенимать/делиться опытом, наступать на грабли, изобретать велосипеды.

Комменты

Добавить коммент