-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathruen.html
More file actions
276 lines (199 loc) · 9.95 KB
/
ruen.html
File metadata and controls
276 lines (199 loc) · 9.95 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
<!DOCTYPE html>
<HTML>
<HEAD>
<title>Resume - Alexandr Poltavsky, software developer</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">
Alexandr Poltavsky <br/>
Software Developer <br/>
Location: Russia, Moscow <br/>
</span>
<div class="break"></div>
<span class="links">
<a href="/">Blog</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>Resume</h2>
<h3>Contact Details</h3>
<ul>
<li><p>Email: poltavsky.alexandr@gmail.com</p></li>
<li><p>Phone: +7 (964) 791-19-61</p></li>
</ul>
<h3>Summary</h3>
<p>I'm looking for a job that is mostly about C++. I have been interested in computers since I was
young and over time acquired a good understanding of computer architecture, data structures and
algorithms. In my career I also had to deal a lot with Web technologies (both server and client
sides). You can find links to some of <strong>my source code</strong> in the Projects section. Also I have
a number of articles about C++ in the Publications section.</p>
<h3>Technical Skills</h3>
<ul>
<li>Great C++ (C++11/C++14) skills</li>
<li>Working knowledge of the Standard Template Library (STL)</li>
<li>Desktop application development in C++ using Win32 APIs</li>
<li>Server side programming in C++ and PHP, a bit of Perl</li>
<li>Good SQL skills</li>
<li>Primary database was MySQL, familiar with Postgres</li>
<li>Worked with JavaScript, HTML, XML</li>
<li>Good understanding of classic multithreaded and lock-free programming</li>
<li>Able to look into assembly output and optimize for speed</li>
<li>Good math skills (linear algebra, calculus, trigonometry)</li>
<li>Worked with SVN and GIT</li>
<li>Used to Bash and Linux</li>
</ul>
<h3>Work Experience</h3>
<ul>
<li><p><strong>MAIR Industrial Group, Russia, Moscow, August 2004 - December 2005</strong></p>
<p>Position: Software Engineer</p>
<p>Support of an internal database client application written in C++. Fixed bugs and improved GUI.</p></li>
<li><p><strong>RBC Media, Russia, Moscow, December 2005 - June 2008</strong></p>
<p>Position: Software Engineer, later Senior Software Engineer</p>
<p>Development of web applications based on Apache, PHP (and a bit of Perl), MySQL stack. Building
interfaces in HTML, CSS and JavaScript.</p>
<p>Development of an extension module in C++ for Apache server to gather stats.</p>
<p>During my last year at the company was leading a small group of developers (3 people).</p></li>
<li><p><strong>Human Stem Cells Institute, Russia, Moscow, August 2008 - May 2011</strong></p>
<p>Position: Software Engineer</p>
<p>Worked on an internal project to develop an OpenGL 3D computer program to demonstrate to clients
the effects of cosmetic injections. The primary tool was Visual C++ using Win32 API.</p></li>
<li><p><strong>Independent software Developer since 2011 up to now</strong></p>
<p>Took a break from active career to try to develop personal projects. Tried to develop a
CMS (Content Management System) and launch a news web site, took part-time gigs, later
developed a Java app for Google Play Store (Color Throne). Recently was involved in a project
with the Institute of Control Sciences of the Russian Academy of Sciences to develop a C++
application for visualizing data in 3D.</p>
<p>Was also working on improving my C++. Got a pretty good grasp of the new C++11 standard. Has
started a 3D demo engine ( Flower3D ) for which I've created a math lib and my mini-STL
( things like std::vector, std::unordered_map, type_traits etc. ).</p>
<p>As I was researching ideas I came up with a C++ reflection technique described in my "The C++
Type Loophole" blog post (compile time solution, no macros).</p>
<p>Got interested in lock-free programming and came up with a lock-free data structure
<em>atomic_data</em> ( links are in the <strong>Projects</strong> section ).</p></li>
</ul>
<h3>Education</h3>
<p>Mathematics and Informatics, Moscow Engineering Physics Institute (MEPhi), not complete.</p>
<h3>Certificates</h3>
<ul>
<li><p><a href="https://certification.mail.ru/certificates/d7f3561b-7cda-44b7-9110-1b0fc35f0285/en/">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>Publications</h3>
<ul>
<li><p><a href="http://alexpolt.github.io/type-loophole.html">The C++ Type Loophole</a></p>
<p>This C++ hack allows to do reflection of aggregate types in compile time without macros.</p></li>
<li><p><a href="http://alexpolt.github.io/named-tuple.html">nuple: a Named Tuple</a></p>
<p>Having a tuple with name tags reduces programming errors.</p></li>
<li><p><a href="http://alexpolt.github.io/intern.html">Useful Properties of String Interning in C++</a></p>
<p>String interning in C++ has a lot of useful cases.</p></li>
<li><p><a href="http://alexpolt.github.io/undefined.html">Undefined Behaviour and Optimizations: GCC vs Clang vs MSC</a></p>
<p>I explore assembly output of different compilers to show how undefined behaviour and
compiler optimization affect generated assembly.</p></li>
<li><p>Check my <a href="http://alexpolt.github.io/">personal blog</a> for more.</p></li>
</ul>
<div style="height: 80px"></div>
<h3>Projects ( GitHub )</h3>
<ul>
<li><p><a href="https://github.com/alexpolt/luple">luple, nuple, Struct Reader and C++ Type Loophole</a></p>
<p>luple is an almost complete std::tuple implementation. nuple builds on it and adds name
tagging to data. Struct Reader allows reflection of aggregates for simple cases. And
C++ Type Loophole allows reflection for aggregates containing any types. Code plus online
samples.</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 is a general-purpose lock-free data structure which allows to read and update
data structures of any size atomically and in a lock-free manner. Nice API and good performance.</p></li>
<li><p><a href="https://github.com/alexpolt/flower3d">Flower3D</a></p>
<p>My shot at 3D (demo) engines. Work in progress.</p></li>
<li><p><a href="https://github.com/alexpolt/WebObject">WebObject</a></p>
<p>There was a time when I tried to create my own PHP content management system.</p></li>
<li><p><a href="https://github.com/alexpolt/colorthrone">ColorThrone - Brain Gymnastics (an Android game)</a></p>
<p>A simple match 3 game with some Tetris elements written in Java.</p></li>
</ul>
<h3>Language Skills</h3>
<ul>
<li><p>Native Russian</p></li>
<li><p>Advanced English</p></li>
</ul>
<div style="clear: both;"></div>
<p></div></p>
<div style="height: 535px"></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>