{"id":142189,"date":"2021-03-16T08:41:03","date_gmt":"2021-03-16T08:41:03","guid":{"rendered":"https:\/\/devdays.lt\/?page_id=142189"},"modified":"2021-03-19T13:18:48","modified_gmt":"2021-03-19T13:18:48","slug":"adam-warski","status":"publish","type":"page","link":"https:\/\/devdays.lt\/adam-warski\/","title":{"rendered":"Adam Warski"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||0px||true|&#8221; global_module=&#8221;142342&#8243;][et_pb_row module_id=&#8221;sticky&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#fc5a1b&#8221; width=&#8221;100%&#8221; max_width=&#8221;2560px&#8221; custom_padding=&#8221;16px||16px||true|&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; link_font=&#8221;|600|||||||&#8221; link_text_color=&#8221;#FFFFFF&#8221; link_font_size=&#8221;20px&#8221; link_font_size__hover_enabled=&#8221;on|hover&#8221; link_font_size__hover=&#8221;21px&#8221;]<\/p>\n<p style=\"text-align: center;\"><a href=\"\/tickets\/\">Easter Offer: Get 3 For 2 tickets here!<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; disabled_on=&#8221;on|on|off&#8221; admin_label=&#8221;Home&#8221; module_id=&#8221;Home&#8221; _builder_version=&#8221;4.0.6&#8243; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;rgba(10,30,96,0.5)&#8221; background_color_gradient_end=&#8221;rgba(10,30,96,0.5)&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_image=&#8221;https:\/\/devdays.lt\/wp-content\/uploads\/2020\/01\/devd-201-1368&#215;855-1.jpg&#8221; custom_margin=&#8221;0px|0px|0px|0px&#8221; bottom_divider_style=&#8221;arrow2&#8243; bottom_divider_color=&#8221;#ffffff&#8221; bottom_divider_height=&#8221;50px&#8221; bottom_divider_flip=&#8221;vertical&#8221; global_module=&#8221;137943&#8243;][et_pb_fullwidth_header text_orientation=&#8221;center&#8221; background_overlay_color=&#8221;rgba(0,43,94,0.63)&#8221; _builder_version=&#8221;4.4.2&#8243; title_font=&#8221;|700|||||||&#8221; title_text_color=&#8221;#ffffff&#8221; title_font_size=&#8221;55px&#8221; background_color=&#8221;rgba(255, 255, 255, 0)&#8221; custom_button_one=&#8221;on&#8221; button_one_text_color=&#8221;#509af5&#8243; button_one_bg_color=&#8221;#ffffff&#8221; button_one_border_color=&#8221;#ffffff&#8221; button_one_font=&#8221;|600|||||||&#8221; button_one_use_icon=&#8221;off&#8221; custom_button_two=&#8221;on&#8221; button_two_text_color=&#8221;#509af5&#8243; button_two_border_color=&#8221;#509af5&#8243; button_two_font=&#8221;|600|||||||&#8221; button_two_icon_color=&#8221;#509af5&#8243; background_layout=&#8221;light&#8221; custom_margin=&#8221;|||&#8221; custom_padding=&#8221;50px||60px||false|false&#8221; button_one_border_color_hover=&#8221;#509af5&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;on&#8221; button_one_border_color__hover=&#8221;#509af5&#8243; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;]<\/p>\n<h1>DevDays Europe <span style=\"color: #509bf5;\">2021<\/span><\/h1>\n<div class=\"header-icons-container\">\n<div>\n<p><img class=\"wp-image-124282 aligncenter size-full\" data-src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/calendar-icon.png\" alt=\"date\" src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/calendar-icon.png\" \/><\/p>\n<p class=\"header-icons-calendar\">June 8-10<\/p>\n<\/div>\n<div>\n<p><img class=\"wp-image-124282 aligncenter size-full\" data-src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/venue.png\" alt=\"venue\" src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/venue.png\" \/><\/p>\n<p class=\"header-icons-venue\">Vilnius and Online<\/p>\n<\/div>\n<\/div>\n<p>[\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|tablet&#8221; _builder_version=&#8221;4.0.6&#8243; background_enable_color=&#8221;off&#8221; custom_padding=&#8221;30px|||||&#8221; custom_padding_tablet=&#8221;30px||||false|false&#8221; custom_padding_phone=&#8221;0px||||false|false&#8221;][et_pb_row column_structure=&#8221;2_5,3_5&#8243; _builder_version=&#8221;4.4.2&#8243; background_color=&#8221;#ffffff&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#c6c6c6&#8243; background_color_gradient_end=&#8221;#ffffff&#8221; background_color_gradient_start_position=&#8221;19%&#8221; width_tablet=&#8221;100%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|phone&#8221; max_width=&#8221;850px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;10px|0px|10px|0px|true|true&#8221; border_radii=&#8221;off|3px|3px||&#8221; border_radii_tablet=&#8221;off|0px|0px||&#8221; border_radii_phone=&#8221;&#8221; border_radii_last_edited=&#8221;on|desktop&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221;][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_image src=&#8221;https:\/\/devdays.lt\/wp-content\/uploads\/2021\/03\/DD_Adam_Warski_500x500_round-1.png&#8221; title_text=&#8221;DD_Adam_Warski_500x500_round (1)&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.9.0&#8243; max_width=&#8221;80%&#8221; custom_padding=&#8221;0px|||||&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509af5&#8243; text_font_size=&#8221;30px&#8221; custom_margin=&#8221;30px||||false|false&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;0px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p>Adam Warski<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_text_color=&#8221;#424242&#8243; text_font_size=&#8221;16px&#8221; custom_padding=&#8221;||10px||false|false&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;50ms&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p><strong>Position:<\/strong> CTO<\/p>\n<p><strong>Company:<\/strong> SoftwareMill<\/p>\n<p><strong>Country:<\/strong> Poland<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row custom_padding_last_edited=&#8221;on|tablet&#8221; _builder_version=&#8221;4.0.6&#8243; background_color=&#8221;#ffffff&#8221; width_tablet=&#8221;100%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; max_width=&#8221;850px&#8221; max_width_tablet=&#8221;850px&#8221; max_width_phone=&#8221;&#8221; max_width_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;30px|46px|30px|46px|false|true&#8221; custom_padding_tablet=&#8221;|30px||30px|true|true&#8221; custom_padding_phone=&#8221;|20px||20px|false|true&#8221; border_radii=&#8221;off|||3px|3px&#8221; box_shadow_style=&#8221;preset1&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_text _builder_version=&#8221;4.0.6&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;22px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;100ms&#8221;]<\/p>\n<p>Biography<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_font_size=&#8221;15px&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;150ms&#8221;]<\/p>\n<p style=\"text-align: justify;\">Adam is one of the co-founders of SoftwareMill, where he codes mainly using Scala and other interesting technologies. He is involved in open-source projects, such as sttp, tapir,\u00a0Quicklens, ElasticMQ and others. Adam has been a speaker at major conferences, such as JavaOne, LambdaConf, Devoxx and ScalaDays.<\/p>\n<p style=\"text-align: justify;\">Apart from writing closed- and open-source software, his ideas or insights usually end up with a blog post: https:\/\/softwaremill.com\/blog.<\/p>\n<p>[\/et_pb_text][et_pb_social_media_follow use_icon_font_size=&#8221;on&#8221; icon_font_size=&#8221;15px&#8221; _builder_version=&#8221;4.9.0&#8243; text_orientation=&#8221;left&#8221; custom_margin=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;50ms&#8221;][et_pb_social_media_follow_network social_network=&#8221;linkedin&#8221; url=&#8221;https:\/\/www.linkedin.com\/in\/adamwarski\/&#8221; _builder_version=&#8221;4.9.0&#8243; background_color=&#8221;#007bb6&#8243; follow_button=&#8221;off&#8221; url_new_window=&#8221;on&#8221;]linkedin[\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][et_pb_text _builder_version=&#8221;4.0.6&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#021244&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;100ms&#8221;]<\/p>\n<p>Talk<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#ffffff&#8221; header_font=&#8221;|600|||||||&#8221; header_text_color=&#8221;#509bf5&#8243; max_width=&#8221;100%&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;100ms&#8221; saved_tabs=&#8221;all&#8221;]<\/p>\n<h1>Scala 3 metaprogramming by example<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_padding=&#8221;0px||||false|false&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221;]<\/p>\n<p style=\"text-align: justify;\">Metaprogramming is one of the features that sets Scala 3 apart from other languages. We don\u2019t only get &#8220;macros done right&#8221;, but a a couple of constructs that can be used depending on the scope and complexity of the task: inlines, typeclass derivation and &#8220;proper&#8221; macros (quoting &amp; splicing).<\/p>\n<p style=\"text-align: justify;\">Let\u2019s take a look at how these metaprogramming approaches can be used in practice. What kind of problems can we solve? How readable is the code? Does it feel like magic, or regular programming?<\/p>\n<p style=\"text-align: justify;\">If something is know at compile-time and can be computed then, there\u2019s no reason to repeat it every time our program is run. Come and see what Scala 3 has to offer in this area!&#8221;<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.0.6&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;22px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221;]<\/p>\n<p>Session Keywords<\/p>\n<p>[\/et_pb_text][et_pb_code _builder_version=&#8221;4.9.0&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;50ms&#8221;]<\/p>\n<div class=\"flex-grid-session-keys\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"flex-grid-item-keyword\"><!-- [et_pb_line_break_holder] -->  <span class=\"tagas\">&#x1f511;<\/span> <!-- [et_pb_line_break_holder] --> Scala<!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"flex-grid-item-keyword\"><!-- [et_pb_line_break_holder] -->  <span class=\"tagas\">&#x1f511;<\/span> <!-- [et_pb_line_break_holder] -->Metaprogramming<!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"flex-grid-item-keyword\"><!-- [et_pb_line_break_holder] -->  <span class=\"tagas\">&#x1f511;<\/span> <!-- [et_pb_line_break_holder] -->Annotations<!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.0.6&#8243; custom_padding=&#8221;50px||||false|false&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.0.6&#8243;][et_pb_text _builder_version=&#8221;4.4.2&#8243; text_font=&#8221;|700|||||||&#8221; text_text_color=&#8221;#666666&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1400ms&#8221; animation_delay=&#8221;50ms&#8221; global_module=&#8221;128838&#8243;]<\/p>\n<p style=\"cursor: pointer; text-align: center;\" onclick=\"goBack()\">\u00ab Back<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DevDays Europe 2021 Adam Warski Position: CTO Company: SoftwareMill Country: Poland Biography Adam is one of the co-founders of SoftwareMill, where he codes mainly using Scala and other interesting technologies. He is involved in open-source projects, such as sttp, tapir,\u00a0Quicklens, ElasticMQ and others. Adam has been a speaker at major conferences, such as JavaOne, LambdaConf, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":""},"_links":{"self":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142189"}],"collection":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/comments?post=142189"}],"version-history":[{"count":4,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142189\/revisions"}],"predecessor-version":[{"id":142439,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142189\/revisions\/142439"}],"wp:attachment":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/media?parent=142189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}