Ваша библиотека действительно не потокобезопасна. Из того что я заметил, проблемные места — это функция init(), так как там используется локальная static переменная и функция Logger::addAppender(), так как там добавляние в вектор m_appenders тоже не защищено. Это то что бросается в глаза.
Для хорошего программиста всегда найдется хорошая вакансия. Чем плохи, например, вот эти company.yandex.com/jobs/index.xml Или можно попробовать себя в геймдеве.
Список документов можно найти тут www.kiew.diplo.de/...reisezwecke.pdf
Справка из налоговой делается 2 недели, ускорить нельзя.
нужны все загранпаспорта или справка о том что они сданы.
Лучше попросить немцев выслать пригласительное письмо курьерской службой, иначе может не дойти.
Виза делается за 5 рабочих дней.
У нас свой движок и свой редактор. Движок сделан на С++, а редактор на managed C++ как надстройка над движком, а контролсы для редактора и независимые утилитки на C#.
Журналисты иногда путают и называют его программистом, чем вносят путаницу, но он никогда не был программистом. Он человек-оркестр — сам может сделать все что ему нужно, смоделить, сделать текстуру, записать черновую озвучку (в игре осталось много фраз озвученых его голосом), но главная его работа — это гейм-дизайн. Он глава гейм-дизайнеров и душа компании.
Киев, и компания находится в Киеве
Я не могу назвать конкретную зарплату, так как это очень индивидуальный вопрос. Но в общих чертах, в гемдеве работают высококвалифицированные программисты, но получают зарплату середнячков из оутсорсинга. Так сложилось исторически. На западе таже самая картина.
Прохоров — креативный директор, он программистов не набирает. У нас не было мелких проектов. Было Metro Last Refuge и Metro Last Light. На первом проекте была очень маленькая команда и маленький бюджет. На втором команда разрослась и бюджет тоже. После выхода второго проекта много сотрудников уехало на запад. А компания получила мировое признание и много предложений на новые проекты. Теперь людей не хватает.
Практически везде ценятся T-shaped специалисты
hariesta.blogspot.com/...ped-people.html
Инициализация может выполняться где угодно до использования, если не оговорены ограничения. Так как в описании библиотеки стоит thread-safe и в примерах есть множественные вызовы plog::init, значит их можно вызывать и из разных потоков в том числе.
Я не пытаюсь к Вам придраться, но к написанию библиотек применяются очень высокие требования и стандарты. Нельзя назвать библиотеку thread-safe когда в ней есть широко известные проблемы.