Нашему уютненькому коллективу требуются еще программисты для проектов в сфере приложений для мобильных платформ (iPhone и Android) и сложных корпоративных систем в телекоммуникационной индустрии.

Требования очень простые:

  • Понимать, как работает компьютер, операционные системы и современные программы (процессор, память, кеширование, процесс, поток, буфер, интерфейс, бизнес-логика, сервер, клиент, протокол, файловая система)
  • Разбираться и понимать как работают Web-технологии (HTTP, HTML/XHTML, XML/XSLT, CSS, JavaScript, SOAP, Cookie)
  • Базы данных (таблица, поле, constraint, декартово произведение, объединение,  SQL, сложные запросы)
  • Технологии и процесс разработки софта (SVN, Bug Tracker, Issue Tracker, Continuous Integration, TDD, Agile, SCRUM)
  • Алгоритмы и шаблоны проектирования (сортировка, поиск, архитектура приложения, одиночка, MVC)
  • Опыт работы с Java или Flex - плюс
  • Опыт работы с языками С/С++/Obj-C - плюс

Чем будете заниматься конкретно? Сначала это будет Java или Flex или iPhone разработка, в зависимости от того в чем вы будете больший специалист и от того какие вакансии у нас еще будут открыты. Потом это могут быть приложения для Android или Palm Pre.

Сейчас в нашем коллективе 14 человек, после закрытия текущих вакансий нас станет 16+.

Работа в офисе в Киеве, целый день, чай, кофе, печеньки, молодой и целеустремленный коллектив.

Мы любим, чтобы работа приносила фан и нравился сам процесс. Для этого по пятницам мы устраиваем “лабораторные дни”, на которых улучшаем процесс разработки и коммуникации, осваиваем новые технологии, разрабатываем пилотные проекты, пишем в блог и твиттер, рассказываем друг другу про новые технологии, участвуем в жизни сообществ и т.д. и т.п

Горящие глаза, стремление все время двигаться вперед и улучшать себя, умение работать в коллективе, интерес к новым технологиям и направлениям развития ИТ - все это мы хотим видеть в людях с которыми работаем.

ЗП обсуждается на собеседовании.

Присылайте вашу историю или резюме с кодом JFI32 в теме письма на vacancy@stanfy.com и с копией на pavel.bashmakov на gmail.ком. Обычно, мы стараемся отвечать на все письма, но, по объективным причинам, не всегда можем это сделать. Поэтому, если в течение недели вы не получаете от нас никакого ответа, значит вы, скорее всего, не соответствуете нашим требованиям к кандидату на эту должность.

Удачи.

Пишу по гарячим слідам. Нещодавно мав великі проблеми з кодуванням тексту в Java. І зараз спробую вказати, що може стати підводним каменем у цій справі.

Порада N1

Не використовуйте методів стандартних класів, що використовують кодування, але не вимагають його визначення в параметрах, наприклад String.getBytes(). Такі методи використовують кодування за замовчуванням вашої ОС. Для Windows це WINDOWS-1251, а для Linux - UTF-8.

Те саме стосується і використання FileWriter / FileReader. Ці класи створюють «письменників / читачів», що також використовують кодування за замовчуванням. Краще користуватися OutputStreamWriter / InputStreamReader, де можна вказати конкретне кодування.

Пам’ятайте, що у випадку з кодуванням за замовчуванням можуть виникнути проблеми при розгортці вашого продукту на системі, відмінній від тої, на якій проходила розробка.

Порада N2

При визначенні потрібного кодування через параметри методів чи конструкторів, не робіть цього за допомогою рядків з їхніми назвами. Краще використовувати клас java.nio.charset.Charset. Причин тут 2.

  1. Коли ви викликаєте метод “my string value”.getBytes(”UTF-UNKNOWN”), кодування з такою назвою не буде знайдено, але виклик методу завершиться успішно. Що ви отримаєте? Не знаю. Але головне, що помилка ця буде важко відловлюватися. Але якщо це виглядатиме так:  “my string value”.getBytes(Charset.forName(”UTF-UNKNOWN “)), то отримаєте RuntimeException, помилка швидко дасть про себе знати.
  2. Робота з кодуванням буде проходити швидше, якщо ви десь створити екземпляр Charset, а  потім будете його використовувати.
    
    Charset ch = Charset.forName("UTF-8");
    "my string value".getBytes(ch);
    
Таги: ,

В практике бывают задачи, когда надо сграбить контент с других сайтов и что-то с ним сделать. То в свою базу положить, то просто отобразить в нужном тебе виде и месте. В одном из последних проектов мы использовали библиотеку WebHarvest.

Для чего и как можно использовать эту библиотеку я описал в статье на хабре про граб сайтов.

Таги: , , , ,
Що краще: Ant чи Maven?

Що краще: Ant чи Maven?

Почну статтю з констатації факту:  “Збірка проекту відіграє дуже важливу роль.” Чому? Погляньте на різноманіття систем, що призначені для того, щоб налаштувати, відкомпілювати, зархівувати - зібрати дистрибутив вашого проекту.

Розробники програмного забезпечення для  Unix платформи використовують GNU build system, що дозволяє перевірити конфігурацію операційної системи, на якій проходить збірка проекту, та обійти чисельні викрутаси, що зустрічаються в різних версіях Unix систем.

У світі Java дуже популярними є Ant та Maven.

 

Таги: , , , ,

Как все начиналось

Как как. А как обычно. В один прекрасный момент у нас завелся замечательный зверь, под названием iPod-Touch.

Игрушка для программиста

Наш iPod. Игрушка для программиста

Так как в нашей “семье” программистов ни одно такое приобретение просто так не проходит, то меня “пересадили” с  Flash’а, на   iPod.  А вообще я на  Java-е программирую. Впрочем это не важно. Думаю, что это не последний язык, с которым мне пришлось столкнуться.

Усі ми, рано чи пізно, зустрічаємося з проблемою оптимізації, і класикою у цій галузі для веб-розробок є задача збільшення швидкості доступу до сторінок. Однак як виконати оптимізацію, не порушуючи виплеканої вами архітектури? Як перетворити її на «перлину» вашого проекту та отримати в результаті гнучкий механізм, який радуватиме серце та не стане джерелом майбутніх помилок? Спробую поділитися своїм досвідом у цій справі.