-
Notifications
You must be signed in to change notification settings - Fork 0
/
2019.html
318 lines (268 loc) · 12.4 KB
/
2019.html
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
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
<html>
<head>
<link rel="stylesheet" href="./bootstrap/css/bootstrap.css">
<link rel="stylesheet" href="./bootstrap/css/bootstrap-theme.css">
<style>
.navbar {
margin-top: 10px;
}
h3 + h4 {
margin-top:10px;
}
h4 {
margin-top:30px;
}
.nav.name {
font-size: 25px;
padding-top: 6px;
padding-bottom: 6px;
}
.navbar-brand {
padding: 20px 15px 15px 20px;
}
.navbar-brand img {
margin-top: -11px;
margin-left: -10px;
width: 36px;
}
@media print {
body {
font-size: 11px;
}
.navbar {
min-height: inherit;
display: block;
}
.navbar-nav>li>a {
padding-top: 9px;
padding-bottom: 5px;
}
.navbar-brand {
padding: 5px 5px;
height: inherit;
}
.nav.name {
font-size: 18px;
padding-top: 6px;
padding-bottom: 6px;
}
.navbar-collapse {
padding-right: 5px;
padding-left: 5px
}
.navbar-brand img {
margin-top: 2px;
margin-left: 2px;
margin-right: 2px;
width: 25px;
}
}
</style>
<!-- Latest compiled and minified JavaScript -->
</head>
<body>
<div class="container">
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<img src="./images/avatar.png" />
</a>
</div>
<ul class="nav navbar-nav name">
<li>
<span>Misha Bergal</span>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#">1317 Dolen Place, Iowa City, IA 52246</a>
</li>
<li>
<a href="mailto:misha.bergal@gmail.com">misha.bergal@gmail.com</a>
</li>
</ul>
</div>
</nav>
<h3>Objective</h3>
<p>I want to contribute to building high value software in a smart, passionate, caring team.</p>
<p>As a software engineer I value UX design, simplicity (as in https://www.infoq.com/presentations/Simple-Made-Easy),
maintainability, absence of fear (static typing, automatic tests) and working as a team.
</p>
<p>
As a team member/team lead I value shared vision, aligned goals, care and empathy towards mission, results and people.
</p>
<h3>Skills</h3>
<h4>Programming Languages</h4>
<ul>
<li>JavaScript (know good and bad parts, prefer Ramda to underscore)
<ul>
<li>TypeScript (+DefinitelyTyped, I generally prefer static to dynamic typing))</li>
<li>Flow (+flowtyped)</li>
</ul>
</li>
<li>C# (co- and contra- variance, oldie-but-goodie
<a href="#">https://vimeo.com/44287613</a>)</li>
<li>Python 2.7</li>
<li>Java</li>
<li>SQL (T- and PL/ dialects)</li>
<li>ReasonML/OCaml (know what polymorphic variants and type constraints are)</li>
<li>F#</li>
<li>Elm (version that had signals)</li>
<li>Haskell (can read basic code samples)</li>
<li>C/C++11 (I used to know them a long time ago)</li>
</ul>
<h4>Concepts</h4>
<ul>
<li>Client side architectures (Flux, Redux, unidirectional data flow, MVVM etc)</li>
<li>Tactical DDD (no strategic DDD and CQRS)</li>
<li>OOD/OOP, SOLID</li>
<li>FP
<code>( Ma -> (a->Mb) -> Mb )</code>
</li>
<li>ORM</li>
<li>Fast (Unit) and slow (integration,acceptance) testing</li>
<li>Web APIs (RESTful and not)</li>
</ul>
<h4>Platforms, Frameworks and Technologies</h4>
<ul>
<li>
<strong>JavaScript:</strong> Of probable interest: Angular, React, Knockout.js, Jest, Jasmine, jQuery, underscore.js,
</li>
<li>
<strong>.NET:</strong> Castle Windsor, NHibernate, Entity Framework, ADO.NET, ASP.NET MVC, ASP.NET WebApi,
WCF, LINQ, TPL, NUnit, Moq</li>
<li>
<strong>Nodejs:</strong> Express
</li>
<li>
<strong>Databases:</strong> Firebase, MongoDB, BigQuery, SQL Server 2005/2008/2012, Oracle 11g, T-SQL, PL/SQL,
SQL Server Reporting Services.
</li>
<li>
<strong>VCS:</strong> Git, Mercurial
</li>
<li>
<strong>Operations:</strong> Kubernetes+Helm, GCP - GKE, AppEngine, Prometheus
</li>
<li>
<strong>Cloud:</strong> Google BigQuery, Google ..., AWS SQS, AWS S3
</li>
<li>
<strong>SDLC tools:</strong> Travis, CircleCI, Jira, TeamCity, Jenkins
</li>
<li>
<strong>Virtualization:</strong> Docker
</li>
</ul>
<div style="page-break-inside: avoid;">
<h3 class="employment">Employment</h3>
<h4>October 2018 - Present, Principal Software Engineer, IDx Technologies, Coralville, IA</h4>
<p>Participates in development of non-device software cloud software and yet unreleased device projects.</p>
</div>
<div style="page-break-inside: avoid;">
<h4>2016 - August 2018, Senior Engineer, Pear Deck, Iowa City, IA</h4>
<p>
We developed a web tool to help teachers engage students, especially in the challenging environments with large class sizes
so everybody could be heard and be safe. We consistently pushed out new features while keeping system up
and running and bringing in new developers. Our team did the full cycle of product development - from UX
design to implementation to ongoing support.
</p>
</div>
<p>
We were able to do that by working in small vertical teams, constantly aligning, and having a shared vision on what product,
code and process should be. We never left anybody alone with problem, situation or task. As one of two most-experienced
devs, I put steady efforts into gradually improving product architecture, code quality, system maintainabilty,
and most importantly creating a shared vision on where we are going technically as a development team.
</p>
<p>
Implemented collection of microservices running on GKE/AppEngine using JavaScript, Node, Java, Python. Implemented front-ends
in Javascript, Angular, Elm, Reason ML+React.
</p>
<p>
Provided product/UX design ideas, suggestions and feedback.
</p>
<p>
Tested automatically (Jest, Selenium, unit, integration and acceptance tests) and manually.
</p>
<p>
Made new developers productive and helped them with doing right things for company, team and themselves. Reviewed PRs, provided
help and suggestions.
</p>
<!-- TODO: Technologies -->
<p>
Wrote deployment procedures, k8s configurations (including automatic load balancing), configured GCP. Monitored application
up-time and performance, detected and fixed application and infrastructure problems.
</p>
<div style="page-break-inside: avoid;">
<h4>2012 - 2016, Senior Application Developer, University of Iowa, Iowa City, IA</h4>
<!-- More?? -->
<p>Worked on university wide procurement and travel expense management system used by Univesity Of Iowa and University
of Northern Iowa.</p>
<p>Focused on most painful problems and problems that no one else was well equipped to work on.</p>
<p>Worked on building a professional software development team, set up organization processes, established shared
vision, created and maintained standard operating procedures (SOP), and supervised other developers.</p>
<p>
Talked to customers, understood their problems, proposed and discussed solutions. Wrote specs, created UI wireframes, and
project estimates. Generally, made things go forward.
</p>
<p>
Wrote front-ends in Angular, Knockout, jQuery, Telerik web controls using Bootstrap, AngularStrap (the mess of technologies
is the result of having to support many systems, including very old ones).
</p>
<p>
Wrote DDD-ish back-ends (domain model, repos, services, aggregate roots, domain events) in C#, LINQ for SQL, SQL, EF going
against SQL Server and Oracle. All components wired together using IoC container (Windsor). From no coverage
to full coverage by fast (unit) and slow (integration) tests.
</p>
<p>
Wrote installation (Desired State Configuration) and deployment (we had our own Octopus-like deployment service) scripts,
created a configuration management DSL that was used to describe queryable infrastructure model. Automated
existing processes, created utilities for Active Directory, Confluence, TeamCity, Sql Server and Oracle.
</p>
<p>
Implemented shared library of components to codify best practices (for front-end as well as for back-end). Made efforts to
introduce policies regarding code sharing and continuous integration/deployment.
</p>
<p>
Persisted in establishing team protocols (e.g. "Ask for help", "Check in", "Double-check", "Shared vision").
</p>
<p>
Wrote SSRS reports, wrote a rdl report formatter that allowed to define SSRS object styles using selectors and definitions
(stylesheets for RDL), and made data analysis tools using F#.
</p>
<p>
Wrote acceptance tests using home-grown WebDriver based framework that allowed separation of logical and physical concepts.
Wrote test plans for manual testing and did that testing myself.
</p>
<p>
Made presentations and organized seminars to teach colleagues about modern tools and methods. Set up student and staff code
reviews and actively provided feedback and challenges for students working for the department.
</p>
<p>
Installed and maintained TeamCity, Jenkins and Rhodecode installations, administered Windows production and test servers.
</p>
</div>
<div style="page-break-inside: avoid;">
<h4>1995 - 2012, Head of Engineering, MetaCommunications Inc., Iowa City, IA</h4>
<p>Whatever was necessary. Did a lot of stuff including product design and implementation (C++, C#, SQL, a lot
of JavaScript), product implementation on customer sites, marketing, testing (automated and manual), office
and personnel management.</p>
</div>
<div style="page-break-inside: avoid;">
<h3>References</h3>
<ul>
<li>Valerij Petrulevich, University of Iowa Financial And Business Information Systems,
<a href="mailto:vpetrulevich@uiowa.edu">vpetrulevich@uiowa.edu</a>
</li>
<li>Joel Jeddeloh, Senior Software Engineer,
<a href="mailto:dan@peardeck.com">joel@peardeck.com</a>
</li>
<li>Dan Sweeney, VP of Product,
<a href="mailto:dan@peardeck.com">dans@peardeck.com</a>
</li>
</ul>
</div>
</div>
</div>
</body>