56,966 blogs · [ { "id": "01a08750-2021-7169-b561-7b915e6f8a7d", "title": "Agentic Coding #1 - Vocabulary", "url": "https://blog.michal.pawlik.dev/posts/agentic-ai/vocabulary/", "published_at": "2026-08-17T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ebfcc7874", "title": "How to run sbt tasks with custom settings", "url": "https://blog.michal.pawlik.dev/posts/til/sbt-task-with-custom-settings/", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec031b881", "title": "Scala Tooling Spree #1 recap", "url": "https://blog.michal.pawlik.dev/posts/scala/tooling-spree-recap/", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec067fdcb", "title": "Understand your build structure and performance", "url": "https://blog.michal.pawlik.dev/posts/til/bloop-performance-tracing/", "published_at": "2025-01-29T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec0f80022", "title": "Your own Bluesky feed", "url": "https://blog.michal.pawlik.dev/posts/bluesky-feed/", "published_at": "2024-11-27T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec16c9453", "title": "Useful commands for inspecting sbt build", "url": "https://blog.michal.pawlik.dev/posts/til/inspecting-sbt/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec181ff20", "title": "Hide irrelevant data in your PRs", "url": "https://blog.michal.pawlik.dev/posts/til/cleaner-pr-diffs/", "published_at": "2024-01-05T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec1ff6f81", "title": "Integration testing with Weaver and Localstack", "url": "https://blog.michal.pawlik.dev/posts/scala/weaver-localstack/", "published_at": "2023-12-29T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec29254af", "title": "Type safety with Iron", "url": "https://blog.michal.pawlik.dev/posts/scala/iron/", "published_at": "2023-08-25T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec365bda2", "title": "Introduction to optics in Scala", "url": "https://blog.michal.pawlik.dev/posts/scala/optics/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec410b86b", "title": "Intermediate's guide to derivations in Scala: Magnolia", "url": "https://blog.michal.pawlik.dev/posts/scala/scala-derivations-show/", "published_at": "2023-05-07T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec46b55e8", "title": "Beginner's guide to derivations in Scala", "url": "https://blog.michal.pawlik.dev/posts/scala/scala-derivations/", "published_at": "2023-04-23T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec4aadbeb", "title": "Tech bytes #5 in Kraków recap", "url": "https://blog.michal.pawlik.dev/posts/tech-bytes-5-krakow-recap/", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec525589f", "title": "Beginner's guide to toolkits in Scala", "url": "https://blog.michal.pawlik.dev/posts/scala/scala-toolkits/", "published_at": "2023-03-11T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec57f4d0f", "title": "Proxy large messages via S3 with pass4s", "url": "https://blog.michal.pawlik.dev/posts/scala/pass4s-s3-proxy/", "published_at": "2023-03-05T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec5b68b92", "title": "JSON and XML messaging with pass4s", "url": "https://blog.michal.pawlik.dev/posts/scala/pass4s-codecs/", "published_at": "2023-02-27T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec5ecfd22", "title": "Functional messaging in Scala with pass4s", "url": "https://blog.michal.pawlik.dev/posts/scala/pass4s-basics/", "published_at": "2023-02-25T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec6916ce7", "title": "TIL: Launching flashlight with Typescript is insane", "url": "https://blog.michal.pawlik.dev/posts/til/flashlight-using-typescript/", "published_at": "2023-02-08T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec7547d4e", "title": "Your own Home Assistant add-on", "url": "https://blog.michal.pawlik.dev/posts/smarthome/home-assistant-addons/", "published_at": "2023-02-04T22:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec7f83969", "title": "Wrocław Scala User Group #2", "url": "https://blog.michal.pawlik.dev/posts/wsug-002/", "published_at": "2023-01-29T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec8cb74de", "title": "Externalize Home Assistant", "url": "https://blog.michal.pawlik.dev/posts/smarthome/expose-home-assistant/", "published_at": "2023-01-20T09:30:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec99fbdb6", "title": "Wrocław Java User Group", "url": "https://blog.michal.pawlik.dev/posts/wjug-0198/", "published_at": "2023-01-14T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec9b2733c", "title": "Zigbee with Home Assistant - Smart Home", "url": "https://blog.michal.pawlik.dev/posts/smarthome/zigbee-setup/", "published_at": "2023-01-05T15:30:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ec9d290a3", "title": "TIL: Debugging Hugo - fixing publish date", "url": "https://blog.michal.pawlik.dev/posts/til/publish-date-in-hugo/", "published_at": "2023-01-04T16:15:00+00:00" }, { "id": "01a08750-2022-720e-8647-152eca8938c5", "title": "Let's build a smart home", "url": "https://blog.michal.pawlik.dev/posts/smarthome/smart-home-getting-started/", "published_at": "2023-01-03T23:01:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecb54def8", "title": "On automating stuff", "url": "https://blog.michal.pawlik.dev/posts/on-automating-stuff/", "published_at": "2022-12-29T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecb863d6c", "title": "Story of a burned down server", "url": "https://blog.michal.pawlik.dev/posts/vps-from-ashes/", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecc604271", "title": "Personal blog: choosing a platform", "url": "https://blog.michal.pawlik.dev/posts/blog-platform/", "published_at": "2022-12-23T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecd2978ed", "title": "Using Caddy server as a reverse proxy", "url": "https://blog.michal.pawlik.dev/posts/caddy-reverse-proxy/", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecd75f3d4", "title": "TIL: Markdown presentations with Marp", "url": "https://blog.michal.pawlik.dev/posts/til/presentations-with-marp/", "published_at": "2022-12-18T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ece2fca1c", "title": "Scala type bounds -", "url": "https://blog.michal.pawlik.dev/posts/scala/type-bounds-symbols/", "published_at": "2022-12-16T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ececa1e4c", "title": "100 days to offload tracker", "url": "https://blog.michal.pawlik.dev/posts/100-days-to-offload-list/", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecf19f8dc", "title": "Recruitment homework considered harmful", "url": "https://blog.michal.pawlik.dev/posts/recruitment-homeworks-considered-harmful/", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecf62891e", "title": "TIL: Mimic value class in Typescript", "url": "https://blog.michal.pawlik.dev/posts/til/value-class-typescript/", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecf72791b", "title": "Wrocław Scala User Group - first meetup", "url": "https://blog.michal.pawlik.dev/posts/wsug-001/", "published_at": "2022-12-13T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ecfc687b3", "title": "100 days to offload [1/100]", "url": "https://blog.michal.pawlik.dev/posts/100-days-to-offload/", "published_at": "2022-12-12T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed0b13427", "title": "Global Day of Code Retreat 2022", "url": "https://blog.michal.pawlik.dev/posts/scala/gdcr-2022/", "published_at": "2022-11-05T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed0c470af", "title": "Type safety with refined", "url": "https://blog.michal.pawlik.dev/posts/scala/refined/", "published_at": "2022-07-14T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed115048f", "title": "OAuth2 Scala application with sttp-oauth2", "url": "https://blog.michal.pawlik.dev/posts/scala/oauth2-app-p2/", "published_at": "2021-07-14T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed2066834", "title": "OAuth2 Scala application with sttp-oauth2, part 1", "url": "https://blog.michal.pawlik.dev/posts/scala/oauth2-app-p1/", "published_at": "2021-07-07T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed29be92e", "title": "Reboot", "url": "https://blog.michal.pawlik.dev/posts/reboot/", "published_at": "2021-07-06T00:00:00+00:00" }, { "id": "01a08750-2022-720e-8647-152ed2fbb124", "title": "How to become a hacker? Oficjalne tłumaczenie", "url": "https://blog.michal.pawlik.dev/posts/hacker-howto/", "published_at": "2016-01-07T09:23:08+00:00" }, { "id": "01a08750-2022-720e-8647-152ed3473f03", "title": "Wykrywanie ruchu z OpenCV", "url": "https://blog.michal.pawlik.dev/posts/wykrywanie-ruchu-z-opencv/", "published_at": "2015-07-01T09:48:37+00:00" }, { "id": "01a08750-2022-720e-8647-152ed430c23f", "title": "Reverse engineering webaplikacji WRM", "url": "https://blog.michal.pawlik.dev/posts/reverse-engineering-webaplikacji-wrm/", "published_at": "2015-05-18T11:50:34+00:00" }, { "id": "01a08750-2022-720e-8647-152ed4680dbd", "title": "OverTheWire - Solucje Natas 18 i 19", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-18-19/", "published_at": "2015-03-31T06:38:16+00:00" }, { "id": "01a08750-2022-720e-8647-152ed4ac56fe", "title": "OverTheWire - Solucja Natas 17", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-17/", "published_at": "2015-03-28T09:53:15+00:00" }, { "id": "01a08750-2022-720e-8647-152ed5956c8b", "title": "OverTheWire - Solucja Natas 16", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-16/", "published_at": "2015-03-02T16:27:25+00:00" }, { "id": "01a08750-2022-720e-8647-152ed5bbb2d0", "title": "OverTheWire - Solucja Natas 15", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-15/", "published_at": "2015-02-25T10:23:35+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23b672a4f", "title": "OverTheWire - Solucja Natas 14", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-14/", "published_at": "2015-02-25T09:58:34+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23b8d59f2", "title": "OverTheWire - Solucja Natas 13", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-13/", "published_at": "2015-02-24T12:28:33+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23c1185f4", "title": "OverTheWire - Solucja Natas 12", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucja-natas-12/", "published_at": "2015-02-23T14:54:03+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23c43c808", "title": "OverTheWire - Solucja Natas 11", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucje-natas-11/", "published_at": "2015-02-23T10:23:27+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23cedd5f7", "title": "Własny plugin do Spotlight", "url": "https://blog.michal.pawlik.dev/posts/wlasny-plugin-do-spotlight/", "published_at": "2015-02-19T19:35:23+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23d571c2c", "title": "OverTheWire - Solucje Natas 6-10", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucje-natas-6-10/", "published_at": "2015-02-18T11:10:25+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23e3ab25b", "title": "OverTheWire - Solucje Natas 0-5", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucje-natas-0-5/", "published_at": "2015-02-17T21:04:45+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23ee10ebc", "title": "OverTheWire - solucje \"Bandit\"", "url": "https://blog.michal.pawlik.dev/posts/overthewire-solucje-bandit/", "published_at": "2015-02-09T17:36:41+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23ef8965e", "title": "Obrazek śledzący - skrypt w Pythonie", "url": "https://blog.michal.pawlik.dev/posts/obrazek-sledzacy-skrypt-w-pythonie/", "published_at": "2015-01-24T23:33:32+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e23fcffe13", "title": "CrunchBang Linux", "url": "https://blog.michal.pawlik.dev/posts/crunchbang-linux/", "published_at": "2014-12-21T09:44:47+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e24028e8e5", "title": "Podstawy jQuery #5", "url": "https://blog.michal.pawlik.dev/posts/podstawy-jquery-5/", "published_at": "2014-12-17T11:14:32+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e240b9c79f", "title": "Podstawy jQuery #4", "url": "https://blog.michal.pawlik.dev/posts/podstawy-jquery-4/", "published_at": "2014-09-20T20:37:30+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2419f6a9d", "title": "Podstawy jQuery #3", "url": "https://blog.michal.pawlik.dev/posts/podstawy-jquery-3/", "published_at": "2014-09-16T17:12:10+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2422119b8", "title": "Nowy design portfolio oraz bloga", "url": "https://blog.michal.pawlik.dev/posts/nowy-design-portfolio-oraz-bloga/", "published_at": "2014-09-15T20:36:15+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2425e23b0", "title": "Podstawy jQuery #2", "url": "https://blog.michal.pawlik.dev/posts/podstawy-jquery-2/", "published_at": "2014-08-22T21:26:04+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2431e7c6b", "title": "Podstawy jQuery #1", "url": "https://blog.michal.pawlik.dev/posts/podstawy-jquery/", "published_at": "2014-08-21T17:34:48+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e243a3b959", "title": "System statystyk Piwik", "url": "https://blog.michal.pawlik.dev/posts/system-statystyk-piwik/", "published_at": "2014-08-20T17:19:21+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2449c982f", "title": "Podstawowe mnemotechniki", "url": "https://blog.michal.pawlik.dev/posts/podstawowe-mnemotechniki/", "published_at": "2014-08-20T12:14:48+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e244a626e5", "title": "Jailbreak Kindle keyboard", "url": "https://blog.michal.pawlik.dev/posts/jailbreak-kindle-keyboard/", "published_at": "2014-08-19T22:55:30+00:00" }, { "id": "01a08750-2023-70c1-ba50-35e2454882ba", "title": "Blog ruszył", "url": "https://blog.michal.pawlik.dev/posts/pocztek-bloga/", "published_at": "2014-08-19T17:52:45+00:00" } ] posts Claim your blog
Back to Posts
Blog · corpus.blog/blogs/blog.michal.pawlik.dev/posts

Posts

blog.michal.pawlik.dev

2026

2025

2024

2023

2022

2021

2016

2015

2014