PageSourceSearch

https://ponomarev.uk/talks-portfolio.html

html ponomarev.uk collected 2026-09-25 20:05:09 UTC 27,884 bytes, 769 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>Ivan Ponomarev, PhD | Lecturer & tutor in Software Engineering with solid practical background</title>
7    <meta name="generator" content="Antora 3.0.0">
8    <link rel="stylesheet" href="./_/css/site.css">
9    <link rel="stylesheet" href="./_/css/add.css">
9<script src="https://kit.fontawesome.com/7cc9d3cef1.js" crossorigin="anonymous"></script>
9
10  </head>
11  <body class="article">
12<header class="header">
13    <nav class="navbar">
14        <div class="navbar-brand">
15            <div class="navbar-item"><a href="/">Ivan Ponomarev, Ph.D.</a></div>
16            <div class="navbar-item"></div>
17            <a class="navbar-item" href="https://www.linkedin.com/in/inponomarev/">
18                <i class="fa-brands fa-linkedin fa-fw"></i>
19            </a>
20            <a class="navbar-item" href="https://www.youtube.com/@inponomarev">
21                <i class="fa-brands fa-youtube fa-fw"></i>
22            </a>
23            <a class="navbar-item" href="https://github.com/inponomarev">
24                <i class="fa-brands fa-github fa-fw"></i>
25            </a>
26            <a class="navbar-item" href="https://twitter.com/inponomarev">
27                <i class="fa-brands fa-twitter fa-fw"></i>
28            </a>
29            <div class="navbar-item"></div>
30            <a class="navbar-item" href="/blog">
31                <i class="fa-regular fa-pen-to-square"></i>
32            </a>
33        </div>
34    </nav>
35</header>
36
37<div class="body">
38<main class="article">
39  <div class="content">
40<aside class="toc sidebar" data-title="Contents" data-levels="2">
41  <div class="toc-menu"></div>
42</aside>
43<article class="doc">
44<h1 class="page">Conference talks portfolio</h1>
45<div id="preamble">
46<div class="sectionbody">
47<div class="paragraph">
48<p>This is a list of my conference talks  grouped by years and topics. Most of the talks were given repeatedly at several events, the performances that were most successful in my opinion are highlighted <strong>in bold</strong>.</p>
49</div>
50</div>
51</div>
52<div class="sect1">
53<h2 id="_2026"><a class="anchor" href="#_2026"></a>2026</h2>
54<div class="sectionbody">
55<div class="sect2">
56<h3 id="_automating_documentation_from_dsl_to_dynamic_docs_with_asciidoctor_and_antora"><a class="anchor" href="#_automating_documentation_from_dsl_to_dynamic_docs_with_asciidoctor_and_antora"></a>Automating Documentation: From DSL to Dynamic Docs with Asciidoctor and Antora</h3>
57<table class="tableblock frame-none grid-none stretch">
58<colgroup>
59<col style="width: 68.75%;">
60<col style="width: 31.25%;">
61</colgroup>
62<tbody>
63<tr>
64<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
65<ul>
66<li>
67<p><a href="https://fosdem.org/2026/schedule/event/W99UA3-dsl-to-docs/">fosdem.org/2026/schedule/event/W99UA3-dsl-to-docs</a></p>
68</li>
69</ul>
70</div>
71<div class="ulist">
72<div class="title">Presented at:</div>
73<ul>
74<li>
75<p><strong>31.01.2026 FOSDEM 2026</strong> <a href="https://youtu.be/_8rT5h8DHIM">youtu.be/_8rT5h8DHIM</a></p>
76</li>
77</ul>
78</div></div></td>
79<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
80<div class="content">
81<img src="_images/fosdem26.jpg" alt="fosdem26">
82</div>
83</div></div></td>
84</tr>
85</tbody>
86</table>
87</div>
88<div class="sect2">
89<h3 id="_beyond_a_practical_guide_to_coverage_metrics_and_when_to_ignore_them"><a class="anchor" href="#_beyond_a_practical_guide_to_coverage_metrics_and_when_to_ignore_them"></a>Beyond %: a practical guide to coverage metrics (and when to ignore them)</h3>
90<table class="tableblock frame-none grid-none stretch">
91<colgroup>
92<col style="width: 68.75%;">
93<col style="width: 31.25%;">
94</colgroup>
95<tbody>
96<tr>
97<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
98<ul>
99<li>
100<p>Description: <a href="https://m.devoxx.com/events/voxxedlu2026/talks/4507/details" class="bare">https://m.devoxx.com/events/voxxedlu2026/talks/4507/details</a></p>
101</li>
102<li>
103<p>Slides: <a href="https://inponomarev.github.io/coverage-talk/">inponomarev.github.io/coverage-talk/</a></p>
104</li>
105</ul>
106</div>
107<div class="ulist">
108<div class="title">Presented at:</div>
109<ul>
110<li>
111<p><strong>19.06.2026 Voxxed Days Luxembbourg 2026</strong> <a href="https://youtu.be/mVF6nc5ULV4">youtu.be/mVF6nc5ULV4</a></p>
112</li>
113<li>
114<p>28.05.2023 DevClub local meetup, Tallinn (in Russian) <a href="https://youtu.be/cGpxbPUD3zw">youtu.be/cGpxbPUD3zw</a></p>
115</li>
116</ul>
117</div></div></td>
118<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
119<div class="content">
120<img src="_images/lux2026.jpg" alt="lux2026">
121</div>
122</div></div></td>
123</tr>
124</tbody>
125</table>
126</div>
127</div>
128</div>
129<div class="sect1">
130<h2 id="_2024"><a class="anchor" href="#_2024"></a>2024</h2>
131<div class="sectionbody">
132<div class="sect2">
133<h3 id="_one_source_to_rule_them_all_kotlin_dsls_as_a_single_source_of_truth"><a class="anchor" href="#_one_source_to_rule_them_all_kotlin_dsls_as_a_single_source_of_truth"></a>One Source to Rule Them All: Kotlin DSLs as a Single Source of Truth</h3>
134<table class="tableblock frame-none grid-none stretch">
135<colgroup>
136<col style="width: 68.75%;">
137<col style="width: 31.25%;">
138</colgroup>
139<tbody>
140<tr>
141<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
142<ul>
143<li>
144<p>Description and video of JPoint 2024 version: <a href="https://jugspeakers.info/en/information/talks/talk/5466">jugspeakers.info/en/information/talks/talk/5466</a></p>
145</li>
146<li>
147<p>Slides in English (Brighton Kotlin Meetup): <a href="https://inponomarev.github.io/dsl-talk/slides">https://inponomarev.github.io/dsl-talk/slides</a></p>
148</li>
149<li>
150<p>Slides in Russian (JPoint 2024): <a href="https://inponomarev.github.io/dsl-talk/slides-jpoint">inponomarev.github.io/dsl-talk/slides-jpoint</a></p>
151</li>
152</ul>
153</div>
154<div class="ulist">
155<div class="title">Presented at:</div>
156<ul>
157<li>
158<p>16.01.2024 Brighton Kotlin Meetup Brighton, UK (in English) <a href="https://youtu.be/2SMPrTV6OVw">youtu.be/2SMPrTV6OVw</a></p>
159</li>
160<li>
161<p>24.04.2024 JPoint 2024 <a href="https://youtu.be/3EwPWmXMKzs">youtu.be/3EwPWmXMKzs</a> (in Russian)</p>
162</li>
163<li>
164<p><strong>12.09.2025 NDC Copenhagen Developers Festival <a href="https://youtu.be/0h0i3I8Te6g">youtu.be/0h0i3I8Te6g</a></strong></p>
165</li>
166</ul>
167</div></div></td>
168<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
169<div class="content">
170<img src="_images/brighton2024.jpg" alt="brighton2024">
171</div>
172</div>
173<div class="imageblock">
174<div class="content">
175<img src="_images/ndc2025.jpg" alt="ndc2025">
176</div>
177</div></div></td>
178</tr>
179</tbody>
180</table>
181</div>
182</div>
183</div>
184<div class="sect1">
185<h2 id="_2023"><a class="anchor" href="#_2023"></a>2023</h2>
186<div class="sectionbody">
187<div class="sect2">
188<h3 id="_dont_invent_data_for_integration_tests_synthesize_it"><a class="anchor" href="#_dont_invent_data_for_integration_tests_synthesize_it"></a>Don&#8217;t Invent Data for Integration Tests - Synthesize It</h3>
189<table class="tableblock frame-none grid-none stretch">
190<colgroup>
191<col style="width: 68.75%;">
192<col style="width: 31.25%;">
193</colgroup>
194<tbody>
195<tr>
196<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
197<ul>
198<li>
199<p>Slides in English: <a href="https://inponomarev.github.io/tdktc-talk">inponomarev.github.io/tdktc-talk</a></p>
200</li>
201</ul>
202</div>
203<div class="ulist">
204<div class="title">Presented at:</div>
205<ul>
206<li>
207<p>31.03.2023 Java User Group Cyprus, Nikosia (in English) <a href="https://youtu.be/ONSwnQWeZMw">youtu.be/ONSwnQWeZMw</a></p>
208</li>
209<li>
210<p><strong>31.05.2023 DevClub local meetup, Tallinn (in Russian) <a href="https://youtu.be/iXIgGIBAb_Y">youtu.be/iXIgGIBAb_Y</a></strong></p>
211</li>
212</ul>
213</div></div></td>
214<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
215<div class="content">
216<img src="_images/tallinn2023-1.jpg" alt="tallinn2023 1">
217</div>
218</div></div></td>
219</tr>
220</tbody>
221</table>
222</div>
223<div class="sect2">
224<h3 id="_celesta_writing_business_logic_in_java_ecosystem"><a class="anchor" href="#_celesta_writing_business_logic_in_java_ecosystem"></a>Celesta: writing business logic in Java ecosystem</h3>
225<table class="tableblock frame-none grid-none stretch">
226<colgroup>
227<col style="width: 68.75%;">
228<col style="width: 31.25%;">
229</colgroup>
230<tbody>
231<tr>
232<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
233<ul>
234<li>
235<p>Slides in Russian: <a href="https://inponomarev.github.io/celesta2025">inponomarev.github.io/celesta2025</a></p>
236</li>
237</ul>
238</div>
239<div class="ulist">
240<div class="title">Presented at:</div>
241<ul>
242<li>
243<p><strong>31.05.2023 DevClub local meetup, Tallinn (in Russian) <a href="https://youtu.be/uweOD-OdZVo">youtu.be/uweOD-OdZVo</a></strong></p>
244</li>
245</ul>
246</div></div></td>
247<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
248<div class="content">
249<img src="_images/tallinn2023-2.jpg" alt="tallinn2023 2">
250</div>
251</div></div></td>
252</tr>
253</tbody>
254</table>
255</div>
256</div>
257</div>
258<div class="sect1">
259<h2 id="_2022"><a class="anchor" href="#_2022"></a>2022</h2>
260<div class="sectionbody">
261<div class="sect2">
262<h3 id="_mocks_vs_testcontainers"><a class="anchor" href="#_mocks_vs_testcontainers"></a>Mocks vs Testcontainers</h3>
263<table class="tableblock frame-none grid-none stretch">
264<colgroup>
265<col style="width: 68.75%;">
266<col style="width: 31.25%;">
267</colgroup>
268<tbody>
269<tr>
270<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
271<ul>
272<li>
273<p>Description and video of Heisenbug 2022 version (in Russian): <a href="https://jugspeakers.info/en/information/talks/talk/3711">jugspeakers.info/en/information/talks/talk/3711</a></p>
274</li>
275<li>
276<p>
276Video of Devoxx UK 2024 version (in English): <a href="https://youtu.be/aVDDfN8pwpM">youtu.be/aVDDfN8pwpM</a></p>
277</li>
278<li>
279<p>Slides in Russian: <a href="https://inponomarev.github.io/mocks-talk">inponomarev.github.io/mocks-talk</a></p>
280</li>
281<li>
282<p>Slides in English:
283<a href="https://inponomarev.github.io/mocks-talk/index-en.html">inponomarev.github.io/mocks-talk/index-en.html</a></p>
284</li>
285</ul>
286</div>
287<div class="ulist">
288<div class="title">Presented at:</div>
289<ul>
290<li>
291<p>31.03.2022 DevClub local meetup, Tallinn <a href="https://devclub.eu">devclub.eu</a>, <a href="https://youtu.be/QGQPPOj-fV0">youtu.be/QGQPPOj-fV0</a></p>
292</li>
293<li>
294<p><strong>30.05.2022 Heisenbug Spring 2022, online</strong> <a href="https://2022spring.heisenbug.ru/en/">2022spring.heisenbug.ru/en</a></p>
295</li>
296<li>
297<p>24.06.2022 JPoint 2022, St. Petersburg <a href="https://jpoint.ru/en/">jpoint.ru/en</a></p>
298</li>
299<li>
300<p>10.05.2024 DevoXX UK <a href="https://youtu.be/aVDDfN8pwpM">youtu.be/aVDDfN8pwpM</a></p>
301</li>
302</ul>
303</div></div></td>
304<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
305<div class="content">
306<img src="_images/tallinn2022.jpg" alt="tallinn2022">
307</div>
308</div>
309<div class="imageblock">
310<div class="content">
311<img src="_images/jpoint2022.jpg" alt="jpoint2022">
312</div>
313</div></div></td>
314</tr>
315</tbody>
316</table>
317</div>
318<div class="sect2">
319<h3 id="_type_variance_in_java_and_kotlin"><a class="anchor" href="#_type_variance_in_java_and_kotlin"></a>Type Variance in Java and Kotlin</h3>
320<table class="tableblock frame-none grid-none stretch">
321<colgroup>
322<col style="width: 68.75%;">
323<col style="width: 31.25%;">
324</colgroup>
325<tbody>
326<tr>
327<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
328<ul>
329<li>
330<p>Description of Joker 2022 version: <a href="https://jugspeakers.info/en/information/talks/talk/4235">jugspeakers.info/en/information/talks/talk/4235</a></p>
331</li>
332<li>
333<p>Blog post in English: <a href="https://dzone.com/articles/type-variance-in-java-and-kotlin">dzone.com/articles/type-variance-in-java-and-kotlin</a></p>
334</li>
335<li>
336<p>Slides in English: <a href="https://inponomarev.github.io/variance-lecture/">inponomarev.github.io/variance-lecture</a></p>
337</li>
338</ul>
339</div>
340<div class="ulist">
341<div class="title">Presented at:</div>
342<ul>
343<li>
344<p><strong>08.11.2022 Joker 2022, online (in Russian) <a href="https://youtu.be/YbpHAD0sh1s">youtu.be/YbpHAD0sh1s</a></strong></p>
345</li>
346<li>
347<p>As a lecture at Mainor university (in English): <a href="https://youtu.be/BMbZm_r52Ho">youtu.be/BMbZm_r52Ho</a></p>
348</li>
349</ul>
350</div></div></td>
351<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
352<div class="content">
353<img src="_images/joker2022.jpg" alt="joker2022">
354</div>
355</div></div></td>
356</tr>
357</tbody>
358</table>
359</div>
360</div>
361</div>
362<div class="sect1">
363<h2 id="_2021"><a class="anchor" href="#_2021"></a>2021</h2>
364<div class="sectionbody">
365<div class="sect2">
366<h3 id="_ljv_what_we_can_learn_from_visualizing_data_structures_in_java"><a class="anchor" href="#_ljv_what_we_can_learn_from_visualizing_data_structures_in_java"></a>LJV: What We Can Learn from Visualizing Data Structures in Java</h3>
367<table class="tableblock frame-none grid-none stretch">
368<colgroup>
369<col style="width: 68.75%;">
370<col style="width: 31.25%;">
371</colgroup>
372<tbody>
373<tr>
374<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
375<ul>
376<li>
377<p>Description and video of the SnowOne 2021 version: <a href="https://jugspeakers.info/en/information/talks/talk/2895">jugspeakers.info/en/information/talks/talk/2895</a></p>
378</li>
379<li>
380<p>Blog post in English: dzone.com/articles/what-can-we-learn-from-java-data-structures-visual, <a href="blog/ljv.html" class="xref page">archived version</a></p>
381</li>
382<li>
383<p>Blog post in Russian (extended version) <a href="https://habr.com/post/599045/">habr.com/post/599045</a>.</p>
384</li>
385<li>
386<p>Slides in Russian: <a href="https://inponomarev.github.io/ljvtalk/">inponomarev.github.io/ljvtalk</a></p>
387</li>
388</ul>
389</div>
390<div class="ulist">
391<div class="title">Presented at:</div>
392<ul>
393<li>
394<p><strong>26.02.2021 SnowOne 2021, online.</strong> Java conference from Novisibirsk <a href="https://snowone.ru/en" class="bare">https://snowone.ru/en</a></p>
395</li>
396<li>
397<p>26.08.2021 DevClub local meetup, Tallinn <a href="https://devclub.eu" class="bare">https://devclub.eu</a>, <a href="https://youtu.be/Nu01peDzntg" class="bare">https://youtu.be/Nu01peDzntg</a>.</p>
398</li>
399<li>
400<p>07.11.2024 JFall 2024: <a href="https://youtu.be/_NkFVSqL61g" class="bare">https://youtu.be/_NkFVSqL61g</a></p>
401</li>
402</ul>
403</div></div></td>
404<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
405<div class="content">
406<img src="_images/snowone2021.jpg" alt="snowone2021">
407</div>
408</div>
409<div class="imageblock">
410<div class="content">
411<img src="_images/tallinn2021.jpg" alt="tallinn2021">
412</div>
413</div></div></td>
414</tr>
415</tbody>
416</table>
417</div>
418</div>
419</div>
420<div class="sect1">
421<h2 id="_2020"><a class="anchor" href="#_2020"></a>2020</h2>
422<div class="sectionbody">
423<div class="sect2">
424<h3 id="_apache_kafka_what_is_it_and_how_will_it_change_the_architecture_of_your_application"><a class="anchor" href="#_apache_kafka_what_is_it_and_how_will_it_change_the_architecture_of_your_application"></a>Apache Kafka: What is it and how will it change the architecture of your application</h3>
425<table class="tableblock frame-none grid-none stretch">
426<colgroup>
427<col style="width: 68.75%;">
428<col style="width: 31.25%;">
429</colgroup>
430<tbody>
431<tr>
432<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
433<ul>
434<li>
435<p>Description and video of the HolyJS 2020 talk: <a href="https://jugspeakers.info/en/information/talks/talk/1420">jugspeakers.info/en/information/talks/talk/1420</a></p>
436</li>
437<li>
438<p>Slides in English: <a href="https://inponomarev.github.io/kafka-hjs/index-en.html">inponomarev.github.io/kafka-hjs/index-en.html</a></p>
439</li>
440</ul>
441</div>
442<div class="ulist">
443<div class="title">Presented at:</div>
444<ul>
445<li>
446<p>25.06.2020, HolyJS 2020 SPb, online (conference for JavaScript developers) <a href="https://2020.holyjs-piter.ru/en/">2020.holyjs-piter.ru/en</a></p>
447</li>
448</ul>
449</div></div></td>
450<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
451<div class="content">
452<img src="_images/holyjs2020.jpg" alt="holyjs2020">
453</div>
454</div></div></td>
455</tr>
456</tbody>
457</table>
458</div>
459<div class="sect2">
460<h3 id="_kafka_streams_testing_a_deep_dive"><a class="anchor" href="#_kafka_streams_testing_a_deep_dive"></a>Kafka streams testing: A deep dive</h3>
461<table class="tableblock frame-none grid-none stretch">
462<colgroup>
463<col style="width: 68.75%;">
464<col style="width: 31.25%;">
465</colgroup>
466<tbody>
467<tr>
468<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
469<p>In collaboration with John Roesler (<a href="https://www.linkedin.com/in/john-roesler-6280755/">linkedin.com/in/john-roesler-6280755</a>).</p>
470</div>
471<div class="ulist">
472<ul>
473<li>
474<p>Description and video of the Joker 2020 talk: <a href="https://jugspeakers.info/en/information/talks/talk/2714">jugspeakers.info/en/information/talks/talk/2714</a></p>
475</li>
476<li>
477<p>Slides in English: <a href="https://inponomarev.github.io/kstreams-testing-pitfalls/">inponomarev.github.io/kstreams-testing-pitfalls</a></p>
478</li>
479<li>
480<p>Confluent blogpost in English, updated and co-authored by John Roesler: <a href="https://www.confluent.io/blog/testing-kafka-streams/">confluent.io/blog/testing-kafka-streams</a></p>
481</li>
482<li>
483<p>Original blogpost in Russian, somewhat outdated: <a href="https://habr.com/post/499408/">habr.com/post/499408</a></p>
484</li>
485</ul>
486</div>
487<div class="ulist">
488<div class="title">Presented at:</div>
489<ul>
490<li>
491<p>28.11.2020 Joker 2020, online: <a href="https://2020.jokerconf.com/en/">2020.jokerconf.com/en</a></p>
492</li>
493</ul>
494</div></div></td>
495<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
496<p><span class="image"><img src="_images/joker2020.jpg" alt="joker2020"></span></p>
497</div></div></td>
498</tr>
499</tbody>
500</table>
501</div>
502</div>
503</div>
504<div class="sect1">
505<h2 id="_2019"><a class="anchor" href="#_2019"></a>2019</h2>
506<div class="sectionbody">
507<div class="sect2">
508<h3 id="_kafka_streams_api_moving_beyond_hello_world"><a class="anchor" href="#_kafka_streams_api_moving_beyond_hello_world"></a>Kafka Streams API: Moving beyond Hello World</h3>
509<table class="tableblock frame-none grid-none stretch">
510<colgroup>
511<col style="width: 68.75%;">
512<col style="width: 31.25%;">
513</colgroup>
514<tbody>
515<tr>
516<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
517<ul>
518<li>
519<p>Description and video of JPoint 2019 version: <a href="https://jugspeakers.info/en/information/talks/talk/66">jugspeakers.info/en/information/talks/talk/66</a></p>
520</li>
521<li>
522<p>
522Slides, part 1: <a href="https://inponomarev.github.io/kstreams-examples/lecture01/index-en.html">inponomarev.github.io/kstreams-examples/lecture01/index-en.html</a>,</p>
523</li>
524<li>
525<p>Slides, part 2: <a href="https://inponomarev.github.io/kstreams-examples/lecture02/index-en.html">inponomarev.github.io/kstreams-examples/lecture02/index-en.html</a></p>
526</li>
527</ul>
528</div>
529<div class="ulist">
530<div class="title">Presented at:</div>
531<ul>
532<li>
533<p><strong>06.04.2019 JPoint 2019, Moscow (more than 1000 participants)</strong> <a href="https://2019.jpoint.ru/en/">2019.jpoint.ru/en</a></p>
534</li>
535<li>
536<p>16.02.2019 PermDevDay 2019, Perm <a href="https://permdevday.timepad.ru/event/891016/">permdevday.timepad.ru/event/891016</a></p>
537</li>
538<li>
539<p>25.07.2019 JugMSK #40 local meetup, Moscow <a href="https://jugspeakers.info/en/information/events/event/186">jugspeakers.info/en/information/events/event/186</a></p>
540</li>
541<li>
542<p>12.10.2019 Stachka Innopolis 2019, Kazan <a href="http://web.archive.org/web/20200819012445/https://nastachku.ru/archive/2019_innopolis/index.php">web.archive.org/web/20200819012445/https://nastachku.ru/archive/2019_innopolis/index.php</a></p>
543</li>
544</ul>
545</div></div></td>
546<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
547<div class="content">
548<img src="_images/permdevday.jpg" alt="permdevday">
549</div>
550</div>
551<div class="imageblock">
552<div class="content">
553<img src="_images/jpoint2019.jpg" alt="jpoint2019">
554</div>
555</div></div></td>
556</tr>
557</tbody>
558</table>
559</div>
560<div class="sect2">
561<h3 id="_continuous_static_code_analisys"><a class="anchor" href="#_continuous_static_code_analisys"></a>Continuous Static Code Analisys</h3>
562<table class="tableblock frame-none grid-none stretch">
563<colgroup>
564<col style="width: 68.75%;">
565<col style="width: 31.25%;">
566</colgroup>
567<tbody>
568<tr>
569<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
570<ul>
571<li>
572<p>Description and video of Heisenbug 2019 version: <a href="https://jugspeakers.info/en/information/talks/talk/1235">jugspeakers.info/en/information/talks/talk/1235</a></p>
573</li>
574<li>
575<p>Blog post in English: <a href="https://habr.com/post/440610/">habr.com/post/440610</a></p>
576</li>
577<li>
578<p>Blog post in Russian: <a href="https://habr.com/post/436868/">habr.com/post/436868</a></p>
579</li>
580</ul>
581</div>
582<div class="ulist">
583<div class="title">Presented at:</div>
584<ul>
585<li>
586<p>20.04.2019 Devops Forum 2019, Moscow <a href="https://devopsforum.ru/devops2019">devopsforum.ru/devops2019</a></p>
587</li>
588<li>
589<p><strong>17.05.2019 Heisenbug 2019, St. Petersburg (over 1000 participants)</strong> <a href="https://2019.heisenbug-piter.ru/en/">2019.heisenbug-piter.ru/en</a></p>
590</li>
591<li>
592<p>26.04.2019 Stachka 2019 Spring, Ulyanovsk <a href="http://web.archive.org/web/20200513164152/https://nastachku.ru/archive/2019/index.php">web.archive.org/web/20200513164152/https://nastachku.ru/archive/2019/index.php</a></p>
593</li>
594</ul>
595</div></div></td>
596<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
597<div class="content">
598<img src="_images/heisenbug2019.jpg" alt="heisenbug2019">
599</div>
600</div>
601<div class="imageblock">
602<div class="content">
603<img src="_images/devopsforum2019.jpg" alt="devopsforum2019">
604</div>
605</div></div></td>
606</tr>
607</tbody>
608</table>
609</div>
610</div>
611</div>
612<div class="sect1">
613<h2 id="_2018"><a class="anchor" href="#_2018"></a>2018</h2>
614<div class="sectionbody">
615<div class="sect2">
616<h3 id="_ansible_playbooks_are_code"><a class="anchor" href="#_ansible_playbooks_are_code"></a>Ansible Playbooks Are Code</h3>
617<table class="tableblock frame-none grid-none stretch">
618<colgroup>
619<col style="width: 68.75%;">
620<col style="width: 31.25%;">
621</colgroup>
622<tbody>
623<tr>
624<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
625<ul>
626<li>
627<p>Description and video of the DevOops 2018 version: <a href="https://jugspeakers.info/en/information/talks/talk/997">jugspeakers.info/en/information/talks/talk/997</a></p>
628</li>
629<li>
630<p>Transcript of the DevOops version (in Russian): <a href="https://habr.com/post/488966/">habr.com/post/488966</a></p>
631</li>
632</ul>
633</div>
634<div class="ulist">
635<div class="title">Presented at:</div>
636<ul>
637<li>
638<p>12.10.2018 Devops Moscow local meetup, Moscow <a href="https://youtu.be/xZHrzTz9T1I">youtu.be/xZHrzTz9T1I</a></p>
639</li>
640<li>
641<p><strong>14.10.2018 DevOops 2018, St. Petersburg</strong> conference on Devops, <strong>more than 500 visitors</strong> in 2018: <a href="https://2018.devoops-piter.ru/en/">2018.devoops-piter.ru/en</a></p>
642</li>
643<li>
644<p>22.11.2018 RedCode local meetup, Krasnodar <a href="https://www.meetup.com/ru-RU/redcode/">meetup.com/ru-RU/redcode</a></p>
645</li>
646</ul>
647</div></div></td>
648<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
649<p><span class="image"><img src="_images/devoops2018.jpg" alt="devoops2018"></span>
650<span class="image"><img src="_images/devopsmsk2018.jpg" alt="devopsmsk2018"></span></p>
651</div></div></td>
652</tr>
653</tbody>
654</table>
655</div>
656</div>
657</div>
658<div class="sect1">
659<h2 id="_2017"><a class="anchor" href="#_2017"></a>2017</h2>
660<div class="sectionbody">
661<div class="sect2">
662<h3 id="_hidden_complexity_of_a_routine_task_presenting_table_data_in_user_interface"><a class="anchor" href="#_hidden_complexity_of_a_routine_task_presenting_table_data_in_user_interface"></a>Hidden complexity of a routine task: presenting table data in user interface</h3>
663<table class="tableblock frame-none grid-none stretch">
664<colgroup>
665<col style="width: 68.75%;">
666<col style="width: 31.25%;">
667</colgroup>
668<tbody>
669<tr>
670<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
671<ul>
672<li>
673<p>Description and video of JPoint2017 version: <a href="https://jugspeakers.info/en/information/talks/talk/446">jugspeakers.info/en/information/talks/talk/446</a></p>
674</li>
675<li>
676<p>Blog post in English: dzone.com/articles/hidden-complexity-of-a-routine-task-presenting-tab, <a href="blog/grid.html" class="xref page">archived version</a></p>
677</li>
678<li>
679<p>Blog post in Russian, extended version:</p>
680<div class="ulist">
681<ul>
682<li>
683<p>Part 1: <a href="https://habr.com/post/278773/">habr.com/post/278773</a></p>
684</li>
685<li>
686<p>Part 2: <a href="https://habr.com/post/279083/">habr.com/post/279083</a></p>
687</li>
688</ul>
689</div>
690</li>
691</ul>
692</div>
693<div class="ulist">
694<div class="title">Presented at:</div>
695<ul>
696<li>
697<p><strong>08.04.2017 JPoint 2017, Moscow</strong> (major international Java conference, <strong>over 1000 participants</strong>) <a href="https://2017.jpoint.ru/en/">2017.jpoint.ru/en/</a></p>
698</li>
699<li>
700<p>21.09.2017 JugMSK #25 local meetup, Moscow: <a href="https://jugspeakers.info/en/information/events/event/119">jugspeakers.info/en/information/events/event/119</a></p>
701</li>
702</ul>
703</div></div></td>
704<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
705<div class="content">
706<img src="_images/jpoint2017.jpg" alt="jpoint2017">
707</div>
708</div></div></td>
709</tr>
710</tbody>
711</table>
712</div>
713<div class="sect2">
714<h3 id="_celesta_creation_of_business_logic_in_java_ecosystem"><a class="anchor" href="#_celesta_creation_of_business_logic_in_java_ecosystem"></a>Celesta: creation of business logic in Java ecosystem</h3>
715<table class="tableblock frame-none grid-none stretch">
716<colgroup>
717<col style="width: 68.75%;">
718<col style="width: 31.25%;">
719</colgroup>
720<tbody>
721<tr>
722<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
723<ul>
724<li>
725<p>Description and video: <a href="https://jugspeakers.info/en/information/talks/talk/1950">jugspeakers.info/en/information/talks/talk/1950</a></p>
726</li>
727<li>
728<p>Blog post in English: dzone.com/articles/celesta-sql-databases-api-schema-migration-and-tes, <a href="blog/celesta.html" class="xref page">archived version</a></p>
729</li>
730<li>
731<p>Blog post in Russian (updated version): <a href="https://habr.com/post/455746/">habr.com/post/455746</a></p>
732</li>
733</ul>
734</div>
735<div class="ulist">
736<div class="title">Presented at:</div>
737<ul>
738<li>
739<p>21.09.2017 JugMSK #25 local meetup, Moscow: <a href="https://jugspeakers.info/en/information/events/event/119">jugspeakers.info/en/information/events/event/119</a></p>
740</li>
741<li>
742<p><strong>16.03.2018 SECON 2018, Penza (1400 attendees)</strong>: <a href="https://2018.secon.ru/reports/celesta-sozdanie-biznes-logiki-v-java-ekosisteme">2018.secon.ru/reports/celesta-sozdanie-biznes-logiki-v-java-ekosisteme</a></p>
743</li>
744</ul>
745</div></div></td>
746<td class="tableblock halign-left valign-top"><div class="content"><div class="imageblock">
747<div class="content">
748<img src="_images/jug2017.jpg" alt="jug2017">
749</div>
750</div>
751<div class="imageblock">
752<div class="content">
753<img src="_images/secon2018.jpg" alt="secon2018">
754</div>
755</div></div></td>
756</tr>
757</tbody>
758</table>
759</div>
760</div>
761</div>
762</article>
763  </div>
764</main>
765</div>
766<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
vendor: 1 bytes, line 766
766
767<script async src="./_/js/vendor/highlight.js"></script>
767
768  </body>
769</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.