-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathruru.html
More file actions
277 lines (201 loc) · 13.7 KB
/
ruru.html
File metadata and controls
277 lines (201 loc) · 13.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<!DOCTYPE html>
<HTML>
<HEAD>
<title>Резюме - Александр Полтавский, инженер-программист</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/common.css" />
<link rel="stylesheet" href="highlight/styles/hybrid.css">
</HEAD>
<BODY>
<div id="wrap">
<!-- header part -->
<div id="header">
<div class="avatar">
<img class="avatar" width="200" src="images/alexandr-poltavsky-photo.jpg" title="Alexandr Poltavsky" align="left"/>
</div>
<div class="text">
<span class="bio">
Александр Полтавский<br/>
Инженер-программист<br/>
Россия, Москва<br/>
</span>
<div class="break"></div>
<span class="links">
<a href="/">Персональный блог</a>
<a href="https://github.com/alexpolt/">Github</a>
<a href="https://www.shadertoy.com/user/alexpolt">Shadertoy</a>
<a href="https://twitter.com/poltavsky_alex">Twitter</a>
</span>
</div>
</div>
<div id="content" style="clear: left">
<!-- here goes the main content -->
<p><div id="resume"></p>
<p><img src="images/cpp.png" class="resume-logo" />
<img src="images/java.png" class="resume-logo" />
<img src="images/mysql.png" class="resume-logo" />
<img src="images/git.png" class="resume-logo" />
<img src="images/svn.png" class="resume-logo" />
<img src="images/linux.png" class="resume-logo" />
<img src="images/vim.png" class="resume-logo" />
<img src="images/php.png" class="resume-logo" />
<img src="images/javascript.png" class="resume-logo" />
<img src="images/android.png" class="resume-logo" />
<img src="images/perl.png" class="resume-logo" />
<img src="images/directx.png" class="resume-logo" />
<img src="images/opengl.png" class="resume-logo" /></p>
<h2>Резюме</h2>
<h3>Контакты</h3>
<ul>
<li><p>Почта: poltavsky.alexandr@gmail.com</p></li>
<li><p>Телефон: +7 (964) 791-19-61</p></li>
</ul>
<h3>Общая информация</h3>
<p>Я ищу работу, связанную в основном с программированием на C++. Меня с детства интересуют
компьютеры, и со временем я получил достаточно хорошее представление об архитектуре вычислительных
машин, структурах данных и алгоритмах. За все время работы также приходилось много заниматься
технологиями Веб (как серверной, так и клиентской частью). Вы можете посмотреть на <strong>примеры
моего кода</strong> пройдя по ссылкам в разделе "Проекты". Также у меня есть ряд публикаций по теме
программирования на языке C++ (раздел "Публикации").</p>
<h3>Технические навыки</h3>
<ul>
<li>Глубокое знание C++ ( C++11/C++14 )</li>
<li>Практический опыт с Standard Template Library (STL)</li>
<li>Создание приложений для десктопа на C++ с использованием Win32 API</li>
<li>Программирование на стороне сервера на C++ и PHP, а также немного Perl</li>
<li>Хорошее знание языка запросов SQL</li>
<li>Основной базой данных в работе была MySQL, знаком с Postgres</li>
<li>Работал с JavaScript, HTML, XML</li>
<li>Хорошее понимание классического многопоточного и неблокирующего (lock-free)
программирования</li>
<li>Понимаю ассемблерный код, и умею оптимизировать программы</li>
<li>Владею линейной алгеброй, дифференциальным исчислением и тригонометрией</li>
<li>Работал с GIT и SVN</li>
<li>Увернно чувствую себя с Bash и Linux</li>
</ul>
<h3>Опыт работы</h3>
<ul>
<li><p><strong>Корпорация МАИР (Россия, Москва), август 2004 - декабрь 2005</strong></p>
<p>Должность: инженер-программист</p>
<p>Занимался поддержкой внутренней программы-клиента для доступа к базе данных, написанной на C++.
Исправлял ошибки и улучшал пользовательский интерфейс.</p></li>
<li><p><strong>РКБ Медия (Россия, Москва), декабрь 2005 - июнь 2008</strong></p>
<p>Должность: инженер-программист, далее старший инженер-программист</p>
<p>Занимался разработкой веб-приложений на основе сервера Apache, PHP (немного Perl) и MySQL.
Делал немного верстки HTML страниц c использованием JavaScript и CSS.</p>
<p>Одной из задач была разработки на языке C++ модуля статистики для веб-сервера Apache.</p>
<p>Последний год работы был страшим программистом в группе разработчиков из 3-х человек.</p></li>
<li><p><strong>Институт Стволовых Клеток Человека (Россия, Москва), август 2008 - май 2011</strong></p>
<p>Должность: инженер-программист</p>
<p>Занимался разработкой внутреннего продукта - 3D компьтерная программа на Visual C++ с
использованием OpenGL API для демонстрации клиентам эффектов косметических инъекций.</p></li>
<li><p><strong>Независимый разработчик, с 2011 по текующее время</strong></p>
<p>Решил на время отойти от активной карьеры для реализации собственных идей. Попробовал написать
CMS (система управления контентом) и запустить новостной сайт. Позже написал игру на Java и
выложил в магазине Google Play (Color Throne). Последним проектом было написание приложения
для визуализации в 3D данных для Института Проблем Управления РАН ( НИР-1, НИР-2 ).</p>
<p>Также много работал над улучшением своих C++ навыков. Достаточно глубоко разобрался с C++11.
Начал создание собственного 3D демо-движка ( Flower3D ), для которого я написал собственную
математическую библиотеку и свой мини-STL ( свой std::vector, std::unordered_map, type_traits
и другое ).</p>
<p>Во время своих исследований открыл технику рефлексии ( reflection ) в C++ во время компиляции
без использования макросов, которую описал в блог-посте "The C++ Type Loophole".</p>
<p>Разобрался с неблокирующим ( lock-free ) программированием, результатом чего стало создание
неблокирующей структуры данных atomic_data и подробная статья ( ссылки в разделе "Проекты" ).</p></li>
</ul>
<h3>Образование</h3>
<p>Математика и информатика, Московский инженерно-физический институт (МИФИ), незаконченное.</p>
<h3>Сертификаты</h3>
<ul>
<li><p><a href="https://certification.mail.ru/certificates/d7f3561b-7cda-44b7-9110-1b0fc35f0285/">Mail.ru C++ Gold Certificate</a></p></li>
<li><p><a href="http://www.zend.com/en/yellow-pages/ZEND004080">Zend Certified Engineer</a> (LAMP software stack)</p></li>
</ul>
<h3>Публикации ( C++, английский язык )</h3>
<ul>
<li><p><a href="http://alexpolt.github.io/type-loophole.html">The C++ Type Loophole</a></p>
<p>Описание техники рефлекции ( reflection ) в C++ во время компиляции без макросов.</p></li>
<li><p><a href="http://alexpolt.github.io/named-tuple.html">nuple: a Named Tuple</a></p>
<p>Тегированный tuple уменьшает количество ошибок в коде.</p></li>
<li><p><a href="http://alexpolt.github.io/intern.html">Useful Properties of String Interning in C++</a></p>
<p>Интернированные ( interning ) строки в C++ имеют много полезных свойств.</p></li>
<li><p><a href="http://alexpolt.github.io/undefined.html">Undefined Behaviour and Optimizations: GCC vs Clang vs MSC</a></p>
<p>Исследую ассемблерный выход разных компиляторов в случае наличия неопределенного поведения и
его влияния на оптимизатор.</p></li>
<li><p>Другие статьи можно прочитать в <a href="http://alexpolt.github.io/">моем блоге</a>.</p></li>
</ul>
<h3>Проекты ( GitHub )</h3>
<ul>
<li><p><a href="https://github.com/alexpolt/luple">luple, nuple, Struct Reader and C++ Type Loophole</a></p>
<p>luple - это мой полноценный аналог std::tuple, в nuple есть все от luple плюс еще тегирование
членов именами, что может быть очень удобно. Struct Reader позволяет узнать типы агрегированных
структур данных, но с большими ограничениями. C++ Type Loophole таких ограничений не имеет.
Полностью исходный код и также онлайн примеры.</p></li>
<li><p><a href="https://github.com/alexpolt/atomic_data">atomic_data: A Multibyte General Purpose Lock-Free Data Structure</a></p>
<p>Неблокирующая структура данных atomic_data, которая позволяет атомарно читать и обновлять
данные любых размеров. Несложный API и очень хорошие показатели производительности.</p></li>
<li><p><a href="https://github.com/alexpolt/flower3d">Flower3D</a></p>
<p>3D демо-движок со своей математикой и мини-STL. Проект находится в разработке.</p></li>
<li><p><a href="https://github.com/alexpolt/WebObject">WebObject</a></p>
<p>Незаконченный проект системы управленями контентом на PHP.</p></li>
<li><p><a href="https://github.com/alexpolt/colorthrone">ColorThrone - Brain Gymnastics (an Android game)</a></p>
<p>Простая match 3 игра с элементами Тетриса. Исходники на Java.</p></li>
</ul>
<h3>Языки</h3>
<ul>
<li><p>Русский - родной </p></li>
<li><p>Английский - продвинутый </p></li>
</ul>
<div style="clear: both;"></div>
<p></div></p>
<div style="height: 387px"></div>
<script>
document.addEventListener( "DOMContentLoaded", function() {
if( /iPhone|iPad|iPod|Android|Windows Phone/i.test(navigator.userAgent) ) {
document.getElementById("wrap").classList.add("mobile");
}
if( document.getElementById("resume") ) {
document.getElementById("wrap").classList.add("resume");
}
} );
</script>
</div> <!-- end content -->
</div> <!-- end wrap -->
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-75341409-1', 'auto');
ga('send', 'pageview');
</script>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter43425229 = new Ya.Metrika({
id:43425229,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
} catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = "https://mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/43425229" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
</BODY>