This repository has been archived by the owner on Mar 4, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtimo.html
293 lines (265 loc) · 17.9 KB
/
timo.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
<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
<!--[if !IE]><!-->
<html lang="en">
<!--<![endif]-->
<head>
<title>Timo van Zijll Langhout - Profiel</title>
<!-- Meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="mStack-profiel van Timo van Zijll Langhout">
<meta name="author" content="mStack">
<link rel="icon" href="./assets/images/mStack-favicon.png" type="image/png">
<link href='https://fonts.googleapis.com/css?family=Roboto:400,500,400italic,300italic,300,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
<!-- Global CSS -->
<link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.min.css">
<!-- Plugins CSS -->
<link rel="stylesheet" href="assets/plugins/font-awesome/css/font-awesome.css">
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Heebo:400,700,900|Open+Sans" rel="stylesheet">
<!-- Theme CSS -->
<link id="theme-style" rel="stylesheet" href="assets/css/styles.css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<div class="sidebar-wrapper">
<div class="profile-container">
<img class="profile" src="assets/images/timo.png" alt="Timo van Zijll Langhout" />
<h1 class="name">Timo van Zijll Langhout</h1>
<h3 class="tagline">.NET Architect & Engineer</h3>
</div><!--//profile-container-->
<div class="contact-container container-block">
<ul class="list-unstyled contact-list">
<li class="email"><i class="fa fa-envelope"></i><a href="mailto:[email protected]">[email protected]</a></li>
<!--<li class="phone"><i class="fa fa-phone"></i><a href="tel:+31850607666">+31 85 06 07 666</a></li>-->
<li class="website"><i class="fa fa-globe"></i><a href="http://mstack.nl/timo" target="_blank">mstack.nl/timo</a></li>
<!--<li class="blog"><i class="fa fa-bold"></i><a href="http://the-architect.dev/" target="_blank">the-architect.dev</a></li>-->
<li class="linkedin"><i class="fa fa-linkedin"></i><a href="https://www.linkedin.com/in/timo-van-zijll-langhout-38910028/" target="_blank">linkedin.com/in/timo-van-zijll-langhout-38910028/</a></li>
<li class="github"><i class="fa fa-github"></i><a href="https://github.com/timovzl" target="_blank">github.com/timovzl</a></li>
</ul>
</div><!--//contact-container-->
<div class="intouch-container container-block">
<p>Interesse in een langere versie van dit profiel of beschikbaarheid?<p>
<p><a href="mailto:[email protected]?subject=Profiel%20Timo%20van%20Zijll%20Langhout">Neem contact op!</a></p>
</div>
<div class="education-container container-block">
<h2 class="container-block-title">Certificeringen</h2>
<div class="item">
<h4 class="degree">Domain-Driven Design In Practice</h4>
<h5 class="meta">Pluralsight</h5>
<div class="time">2019</div>
</div><!--//item-->
<div class="item">
<h4 class="degree">Domain-Driven Design (in-house)</h4>
<h5 class="meta">Value Object</h5>
<div class="time">2019</div>
</div><!--//item-->
<div class="item">
<h4 class="degree">Algorithms I & II</h4>
<h5 class="meta">Princeton</h5>
<div class="time">2013</div>
</div><!--//item-->
<div class="item">
<h4 class="degree">Cryptography I</h4>
<h5 class="meta">Stanford</h5>
<div class="time">2012</div>
</div><!--//item-->
</div><!--//education-container-->
<div class="languages-container container-block">
<h2 class="container-block-title">Talen</h2>
<ul class="list-unstyled interests-list">
<li>Nederlands <span class="lang-desc">(Moedertaal)</span></li>
<li>Engels <span class="lang-desc">(Vloeiend)</span></li>
</ul>
</div><!--//interests-->
<div class="interests-container container-block">
<h2 class="container-block-title">Interesses</h2>
<ul class="list-unstyled interests-list">
<li>Algorithms</li>
<li>Salsa</li>
<li>Home barista</li>
</ul>
</div><!--//interests-->
<div class="logo-container container-block">
<img src="./assets/images/mstack_200.png" alt="mStack" />
</div>
</div><!--//sidebar-wrapper-->
<div class="main-wrapper">
<section class="section summary-section">
<h2 class="section-title"><i class="fa fa-user"></i>Profiel</h2>
<div class="summary">
<p>
Timo van Zijll Langhout is een software-ontwikkelaar en -architect met een focus op begrijpelijkheid.
Zijn visie draait om software die “reasonable” is: you can reason about it.
Immers, de beperkende factor bij software-ontwikkeling is hoeveel we in ons hoofd kunnen bevatten.
Timo verstaat de kunst van het beheersbaar maken van de complexiteit, zodat logische onderdelen in het hoofd goed te bevatten zijn.
</p>
</div><!--//summary-->
<blockquote>
Onderhoudbare software schrijven en mensen begeleiden om dat te doen is een kunst om te blijven verfijnen.
</blockquote>
</section><!--//section-->
<section class="skills-section section">
<h2 class="section-title"><i class="fa fa-cog"></i>Kennis & kunde</h2>
<div class="skillset">
<div class="item">
<h3 class="level-title">.NET Core [3.1]</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="100%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">SQL</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="100%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">Tooling / Class Libraries</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="100%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">Algorithms</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="95%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">Domain-Driven Design</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="85%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">Cryptography</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="65%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
<div class="item">
<h3 class="level-title">Agile / Scrum</h3>
<div class="level-bar">
<div class="level-bar-inner" data-level="50%">
</div>
</div><!--//level-bar-->
</div><!--//item-->
</div>
</section><!--//skills-section-->
<section class="section experiences-section">
<h2 class="section-title"><i class="fa fa-briefcase"></i>Ervaring</h2>
<div class="item">
<div class="meta">
<div class="upper-row">
<h3 class="job-title">.NET Architect & Engineer</h3>
<div class="time"><i class="fa fa-calendar"></i> 2014 - 2019</div>
</div><!--//upper-row-->
<div class="company">Buckaroo Online Payment Services</div>
</div><!--//meta-->
<div class="details">
<p>
Voor Buckaroo neemt Timo de leiding in het ontwerpen van de architectuur en code-standaarden.
</p>
<p>
Om de complexiteit die het domein biedt beheersbaar te maken, traint Timo het team in domain modeling en Domain-Driven Design (DDD).
Goede practices zijn essentieel voor goede software, en die worden bereikt door te voorzien in class libraries die zulke practices gemakkelijk maken: de "pit of success".
Bovendien introduceert Timo templates en standaarden voor het opzetten van nieuwe projecten, waardoor elk volgend project soepeler en vlotter tot stand komt.
Geleidelijk ontstaat een coherentie tussen de producten van Buckaroo.
</p>
<p>
Betaalsystemen, met hun grote volumes en hoge uptime requirements, vereisen uitstekende performance en naadloze migratie.
Goede performance wordt bereikt door de database zorgvuldig in te richten, door archivering van data mee te nemen in het ontwerp en door het gebruik van technieken als async/await.
</p>
<p>
Nieuwe componenten worden opgezet als microservices, en essentiële onderdelen uit de oude monolith worden naar onderhoudbare microservices geïsoleerd.
Met enige vindingrijkheid kunnen de meeste migraties zonder downtime gebeuren, waardoor de betalingen onverstoord door kunnen lopen.
Door goed na te denken over APIs, blijven services bruikbaar als ooit de kern van het betaalsysteem wordt vervangen.
</p>
<p>
Het ontwikkelproces wordt versneld met behulp van Continuous Integration en Continuous Delivery (CI/CD), en de source control wordt geleidelijk gemigreerd van TFS naar Git.
</p>
<p>
Een greep uit de voltooide projecten:
</p>
<ul>
<li>De back end voor een moderne betaalpagina die als component aan te sturen is vanuit meerdere betaalsystemen.</li>
<li>Een nieuw "acquiring" betaalplatform voor de Belgische iDEAL-tegenhanger Bancontact.</li>
<li>Het inregelen en aansturen van een Hardware Security Module (HSM) ter beveiliging van creditcardgegevens.</li>
<li>Class libraries voor het vereenvoudigen van domain modeling, communicatie tussen microservices, background services, data-archivering en meer.</li>
</ul>
</div><!--//details-->
</div><!--//item-->
<div class="item">
<div class="meta">
<div class="upper-row">
<h3 class="job-title">.NET Library Author</h3>
<div class="time"><i class="fa fa-calendar"></i> September 2019 - December 2019</div>
</div><!--//upper-row-->
<div class="company">Buckaroo Online Payment Services</div>
</div><!--//meta-->
<div class="details">
<p>
Git heeft tegenwoordig vaak de voorkeur boven TFS. Om de werkwijze van Git te hanteren, is het wenselijk om gedeelde code (class libraries die in verschillende projecten worden gebruikt) te consumeren via NuGet, in plaats van hun source code te importeren.
</p>
<p>
Om Buckaroo te helpen de source control van de applicaties met behulp van Git te doen, wordt de uitgebreide toolset van Buckaroo overgebracht naar NuGet en Azure DevOps.
</p>
<p>
Allereerst is er een logische opsplitsing gemaakt in kleine pakketjes, zodat de benodigde tools gemakkelijk te vinden en los te importeren zijn. De tools zelf zijn te beheren in Azure DevOps. Met behulp van pull requests en Continuous Integration (CI) zijn wijzigingen direct te testen, en worden ze na review automatisch beschikbaar in productie.
</p>
<p>
Class libraries die configuratie vereisen, worden aangepast aan de mogelijkheden die .NET Core biedt voor Dependency Injection (DI). Ze zijn te registeren in de Startup van een applicatie, met de syntax Add...() en Use...().
</p>
<p>
Voorbeelden van de class libraries zijn DomainModeling, IdGeneration, Encodings, Collections en AuditTrails.
</p>
</div><!--//details-->
</div><!--//item-->
</section><!--//section-->
<!--
<section class="section projects-section">
<h2 class="section-title"><i class="fa fa-archive"></i>Projects</h2>
<div class="intro">
<p>You can list your side projects or open source libraries in this section. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum et ligula in nunc bibendum fringilla a eu lectus.</p>
</div><!--//intro
<div class="item">
<span class="project-title"><a href="#hook">Velocity</a></span> - <span class="project-tagline">A responsive website template designed to help startups promote, market and sell their products.</span>
</div><!--//item
<div class="item">
<span class="project-title"><a href="http://themes.3rdwavemedia.com/website-templates/responsive-bootstrap-theme-web-development-agencies-devstudio/" target="_blank">DevStudio</a></span> -
<span class="project-tagline">A responsive website template designed to help web developers/designers market their services. </span>
</div><!--//item
<div class="item">
<span class="project-title"><a href="http://themes.3rdwavemedia.com/website-templates/responsive-bootstrap-theme-for-startups-tempo/" target="_blank">Tempo</a></span> - <span class="project-tagline">A responsive website template designed to help startups promote their products or services and to attract users & investors</span>
</div><!--//item
<div class="item">
<span class="project-title"><a href="hhttp://themes.3rdwavemedia.com/website-templates/responsive-bootstrap-theme-mobile-apps-atom/" target="_blank">Atom</a></span> - <span class="project-tagline">A comprehensive website template solution for startups/developers to market their mobile apps. </span>
</div><!--//item
<div class="item">
<span class="project-title"><a href="http://themes.3rdwavemedia.com/website-templates/responsive-bootstrap-theme-for-mobile-apps-delta/" target="_blank">Delta</a></span> - <span class="project-tagline">A responsive Bootstrap one page theme designed to help app developers promote their mobile apps</span>
</div><!--//item
</section><!--//section-->
</div><!--//main-body-->
</div>
<!-- Javascript -->
<script type="text/javascript" src="assets/plugins/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<!-- custom js -->
<script type="text/javascript" src="assets/js/main.js"></script>
</body>
</html>