My personal blog hauleth.dev
blog
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update CV to be easier to ingest by ATS

+193 -206
+121 -2
content/cv/_index.md
··· 1 1 +++ 2 - title = "CV" 2 + title = "Łukasz Niemier" 3 3 4 4 [extra] 5 5 no_comments = true 6 6 sitemap = false 7 7 +++ 8 8 9 - {{ cv() }} 9 + **Email:** <lukasz@niemier.pl> 10 + **Website:** <https://hauleth.dev> 11 + 12 + **GitHub**: <https://github.com/hauleth> 13 + **Tangled**: <https://tangled.com/@hauleth.dev> 14 + **StackOverflow**: <https://stackoverflow.com/u/1017941> 15 + 16 + ## Technical Skills 17 + 18 + **Languages & Frameworks**: Elixir, Erlang (OTP), Rust, PostgreSQL, Ruby on Rails, Bash, Nix/NixOS 19 + **Tools & Technologies**: Git, Terraform, Consul, Nomad, Docker, GNU/Linux 20 + 21 + ## Notable contributions 22 + 23 + - Elixir - logger reimplementation on top of Erlang's `logger` module, `mix test 24 + --cover` CLI output, Support for `NO_COLOR` environment variable, add 25 + `is_struct/1` guard, fix module inspection on case-insensitive file systems, 26 + support for parsing extra arguments via `mix eval` and `eval` command in 27 + release 28 + - Erlang OTP - add support broader set of protocols in `socket` module, support 29 + for custom devices in `logger_std_h`, support for global metadata in `logger`, 30 + support for reconfiguration of `logger` (needed for better Mix and Rebar3 31 + integration) 32 + - Ecto - support aggregations over `*`, better error on duplicated `schema` block 33 + 34 + ## Professional Experience 35 + 36 + {% section() %} 37 + ### DockYard - Consultant 38 + 39 + <small>2025</small> 40 + 41 + Architectural analysis of client product codebase with preparation of security 42 + analysis with detailed report with proposed solutions 43 + {% end %} 44 + 45 + {% section() %} 46 + ### Supabase Supavisor - Lead Elixir Developer 47 + 48 + <small>2023&ndash;2025</small> 49 + 50 + - Optimised metrics gathering system that resulted in an order of 51 + magnitude performance boost 52 + - Updated used OTP and Elixir versions from OTP 24 to OTP 27 and Elixir 53 + from 1.14 to 1.18 54 + - Reduced usage of mocking in tests to improve tests performance and 55 + volatility, resulting in reduced CI usage and improved developer 56 + experience 57 + - Implemented e2e tests against existing Node.js PostgreSQL clients to 58 + improve production issues 59 + - Implemented multi-region deployment system to provide blue/green 60 + deployments 61 + - Replaced usage of `ct_slave` with newer `peer` module in OTP 62 + {% end %} 63 + 64 + {% section() %} 65 + ### Supabase Logflare - Senior Elixir Developer 66 + 67 + <small>2023</small> 68 + 69 + - Implemented on-the-fly decompression of incoming data that improved 70 + ingestion possibilities and reduced transfer usage 71 + - Implemented DataDog-compatible ingestion endpoint for seamless 72 + transition from DataDog provider to Logflare 73 + - Improved BigQuery pipeline workflow to reduce congestion on database 74 + connections 75 + - Added support for AWS Cloud Events metadata extraction 76 + - Improved CI usage by splitting different actions to separate steps ran 77 + in parallel 78 + - Replaced dynamic generation of connection modules for PostgreSQL 79 + storage system with Ecto's dynamic repositories to avoid atom exhaustion 80 + {% end %} 81 + 82 + {% section() %} 83 + ### Eiger - Consultant 84 + 85 + <small>2022&ndash;2023</small> 86 + 87 + - **Forte.io** - implemented Interledger protocol for cross-chain transactions 88 + - **Aleo Blockchain** - implemented GraphQL API for the on-chain data; created 89 + syntax colouring library for Aleo assembly-like language for smart contracts 90 + {% end %} 91 + 92 + {% section() %} 93 + ### Erlang Solutions/Kloeckner GmbH - Consultant 94 + 95 + <small>2021</small> 96 + 97 + Optimised DB query performance by providing PostgreSQL structure analysis and 98 + improving indices usage 99 + {% end %} 100 + 101 + {% section() %} 102 + ### Remote Inc. - Consultant 103 + 104 + <small>2020&ndash;2021</small> 105 + {% end %} 106 + 107 + {% section() %} 108 + ### Kobil GmbH - Erlang/Elixir Consultant 109 + 110 + <small>2019&ndash;2020</small> 111 + 112 + Implementation of transactions in MongoDB driver for Elixir 113 + {% end %} 114 + 115 + {% section() %} 116 + ### AppUnite - Full-stack Developer/DevOps 117 + 118 + <small>2016&ndash;2019</small> 119 + 120 + - **JaFolders/AlleFolders** - 2&times; performance improvement by optimising 121 + PostgreSQL usage by reducing geo-queries using PostGIS thanks to better 122 + indices and materialised views; implemented UI and brochure viewer in Vue and 123 + SVG 124 + - **OneMedical/Helium Health** - architectural redesign and reimplementation of 125 + application from Rails/MongoDB to Phoenix/PostgreSQL; prepared hybrid 126 + deployment with on-premise/in-cloud system; migrated of the existing 127 + deployments from MongoDB to PostgreSQL 128 + {% end %}
+2 -2
flake.lock
··· 21 21 "nixpkgs": { 22 22 "locked": { 23 23 "lastModified": 0, 24 - "narHash": "sha256-hpXH0z3K9xv0fHaje136KY872VT2T5uwxtezlAskQgY=", 25 - "path": "/nix/store/qks97vilhp92dxjn79670hl6hk5vrgwb-source", 24 + "narHash": "sha256-2FWWY1rr/+pGUJK1npcVcsWNEblzmKs6VxD3VEvwJSs=", 25 + "path": "/nix/store/9ass1d6jic7yjb9nvhvvlm5k7bgqpkd0-source", 26 26 "type": "path" 27 27 }, 28 28 "original": {
+1 -3
sass/_footer.scss
··· 1 1 @import "variables"; 2 2 3 3 .footer { 4 - @media print { 5 - display: none; 6 - } 4 + @media print { display: none; } 7 5 8 6 padding: 40px 0; 9 7 flex-grow: 0;
+1 -3
sass/_header.scss
··· 1 1 @import "variables"; 2 2 3 3 .header { 4 - @media print { 5 - display: none; 6 - } 4 + @media print { display: none; } 7 5 8 6 display: flex; 9 7 flex-direction: column;
+18 -9
sass/_main.scss
··· 4 4 font-size: calc(1rem + 0.05vw); 5 5 line-height: 1.54; 6 6 color: var(--color); 7 - 8 - @media print { 9 - color: #000; 10 - line-height: 1.2; 11 - font-size: 10pt; 12 - } 13 7 } 14 8 15 9 html { ··· 72 66 } 73 67 74 68 h3 { 75 - font-size: 1.2rem; 69 + font-size: 1.1rem; 76 70 } 77 71 78 72 h4, h5, h6 { 79 - font-size: 1.15rem; 73 + font-size: 1.05rem; 80 74 } 81 75 76 + :is(h1, h2, h3, h4, h5, h6) { 77 + color: var(--accent); 78 + 79 + &:has(+ p > small) { 80 + margin-bottom: .5rem; 81 + } 82 + 83 + & + p:has(> small) { 84 + margin-top: 0; 85 + } 86 + 87 + & + p > small { 88 + color: var(--accent-alpha-70); 89 + } 90 + } 82 91 83 92 a { 84 93 color: inherit; ··· 179 188 } 180 189 181 190 table { 182 - table-layout: fixed; 183 191 border-collapse: collapse; 184 192 width: 100%; 185 193 margin: 40px 0; ··· 191 199 } 192 200 193 201 th { 202 + font-size: .9rem; 194 203 color: var(--accent); 195 204 } 196 205
+2
sass/_pagination.scss
··· 1 1 @import 'variables'; 2 2 3 3 .pagination { 4 + @media print { display: none; } 5 + 4 6 margin-top: 50px; 5 7 6 8 &__title {
+1 -1
sass/_post.scss
··· 82 82 } 83 83 84 84 ul { 85 - list-style: "\29bf"; 85 + list-style: "\25a3"; 86 86 87 87 ul { 88 88 list-style: "\25a0";
+40
sass/_print.scss
··· 1 + :root { 2 + color: #000; 3 + line-height: 1.2; 4 + font-size: 10pt !important; 5 + } 6 + 7 + body { 8 + background-color: white; 9 + } 10 + 11 + .container { 12 + padding-top: 0; 13 + padding-bottom: 0; 14 + } 15 + 16 + code { 17 + background: none; 18 + padding: 0; 19 + margin: 0; 20 + } 21 + 22 + h1, h2, h3, h4, h5, h6 { 23 + page-break-after: avoid; 24 + 25 + &:not(:first-child) { 26 + margin-top: 1.2em; 27 + } 28 + } 29 + 30 + ul { 31 + list-style: square !important; 32 + } 33 + 34 + section { 35 + page-break-inside: avoid; 36 + } 37 + 38 + .post { 39 + margin-bottom: 0; 40 + }
+4
sass/style.scss
··· 8 8 @import 'footer'; 9 9 @import 'rings'; 10 10 11 + @media print { 12 + @import 'print'; 13 + } 14 + 11 15 :root { 12 16 --phoneWidth: (max-width: #{$phone-max-width + 1px}); 13 17 --tabletWidth: (max-width: #{$tablet-max-width + 1px});
-186
templates/shortcodes/cv.md
··· 1 - # Łukasz Jan Niemier 2 - 3 - ## Personal information 4 - 5 - Email: 6 - <~@hauleth.dev> 7 - 8 - Website: 9 - <https://hauleth.dev> 10 - 11 - Twitter: 12 - [@hauleth](https://twitter.com/hauleth) 13 - 14 - ## Education 15 - 16 - - Poznań University of Technology: Computer Science - no degree - 2012-2015 17 - + Secretary of AKAI - Students' Association of Web Developers 18 - 19 - ## Experience 20 - 21 - - Hauleth.dev - Consultant - 2021+ 22 - + DockYard/Karambit.ai - 2025 23 - * Architectural analysis of Karambit product 24 - * Prepared security analysis with detailed report with fixes 25 - + Eiger - 2022-2023 26 - * Forte.io 27 - - Implemented Interledger protocol for cross-chain transactions 28 - * Aleo Blockchain 29 - - Implemented GraphQL API for the on-chain data 30 - - Created syntax colouring library for Aleo assembly-like language 31 - for smart contracts 32 - + Erlang Solutions/Kloeckner GmbH - 2021 - Consultant for Elixir, Ruby, 33 - and SQL (PostgreSQL) 34 - * Optimised DB query performance by providing PostgreSQL structure 35 - analysis and improving indices usage 36 - + Remote Inc. - Senior Backend Engineer - 2020-2021 37 - * Architectural analysis of existing codebase 38 - + Kobil GmbH - Erlang/Elixir Developer - 2019-2020 39 - * Maintained MongoDB driver for Elixir 40 - * Implemented transactions for MongoDB driver in Elixir 41 - - Supabase - 2023-2025 42 - + Logflare - logs aggregation service: 43 - * Implemented on-the-fly decompression of incoming data that improved 44 - ingestion possibilities and reduced transfer usage (created library 45 - [`plug_caisson`][] for that purpose) 46 - * Implemented DataDog-compatible ingestion endpoint for seamless 47 - transition from DataDog provider to Logflare 48 - * Improved BigQuery pipeline workflow to reduce congestion on database 49 - connections 50 - * Added support for AWS Cloud Events metadata extraction 51 - * Improved CI usage by splitting different actions to separate steps ran 52 - in parallel 53 - * Replaced dynamic generation of connection modules for PostgreSQL 54 - storage system with Ecto's dynamic repositories to avoid atom exhaustion 55 - + Supavisor - a cloud-native, multi-tenant Postgres connection pooler 56 - * Deployment management 57 - * Optimised metrics gathering system that resulted in an order of 58 - magnitude performance boost 59 - * Updated used OTP and Elixir versions from OTP 24 to OTP 27 and Elixir 60 - from 1.14 to 1.18 61 - * Reduced usage of mocking in tests to improve tests performance and 62 - volatility, resulting in reduced CI usage and improved developer 63 - experience 64 - * Implemented e2e tests against existing Node.js PostgreSQL clients to 65 - improve production issues 66 - * Implemented multi-region deployment system to provide blue/green 67 - deployments 68 - * Improved system observability features by making it more resilient and 69 - performant 70 - * Replaced usage of `ct_slave` with newer `peer` module in OTP 71 - - AppUnite - Full-stack Developer/DevOps - 2016-2019: 72 - + JaFolders/AlleFolders 73 - * 2x performance improvement by optimising PostgreSQL usage 74 - * Reduced geo-queries using PostGIS thanks to better indices and 75 - materialised views usage 76 - * Implemented UI and brochure viewer in Vue and SVG 77 - + OneMedical/Helium Health 78 - * Architectural redesign of application from Rails/MongoDB to 79 - Phoenix/PostgreSQL 80 - * Prepared hybrid deployment with on-premise/in-cloud system 81 - * Migrated of the existing deployments from MongoDB to PostgreSQL 82 - - Nukomeet - Full-stack Developer - 2015-2016 83 - - Prograils - Junior Developer - 2013 84 - 85 - ### Organisations 86 - 87 - - Erlang Ecosystem Foundation - member of the Observability WG 88 - - OpenTelemetry Project - member of the Erlang WG 89 - 90 - ### Other fields 91 - 92 - - Volunteer: 93 - + Pyrkon Fan Convention 94 - * Helper - 2011, 2012, 2013, 2014, 2016 95 - * Organizer - 2015 96 - + UEFA Championship 2012 - Poland-Ukraine 97 - * ICT Accreditation support 98 - - Times Person of the Year - 2006 99 - 100 - ### Languages 101 - 102 - - Polish - mother tongue 103 - - English - fluent 104 - 105 - ### Showcase 106 - 107 - - GitHub: <https://github.com/hauleth> 108 - - GitLab: <https://gitlab.com/hauleth> 109 - - SourceHut: <https://sr.ht/~hauleth> 110 - - StackOverflow: <https://stackoverflow.com/u/1017941> 111 - 112 - ### Notable contributions 113 - 114 - - Elixir language: 115 - + Logger reimplementation on top of Erlang's `logger` module 116 - + `mix test --cover` CLI output 117 - + Support for `NO_COLOR` environment variable 118 - + `is_struct/1` 119 - + Fixing module inspection on case-insensitive file systems 120 - + Support for parsing extra arguments via `mix eval` and `eval` command in 121 - release 122 - - Erlang OTP: 123 - + Support for custom devices in `logger_std_h` 124 - + Fixing `socket` module to support broader set of protocols (for example 125 - ICMP) 126 - + Support for global metadata in `logger` 127 - + Support for reconfiguration of `logger` (needed for better Mix and Rebar3 128 - integration) 129 - + Several fixes to `logger` and `socket` modules 130 - + Add support for τ constant in `math` 131 - - Git: 132 - + Add support for Elixir in diff 133 - - Ecto: 134 - + Support aggregations over `*` 135 - + Better error on duplicated `schema` block 136 - - Elixir MongoDB driver 137 - + Support for transactions 138 - 139 - ### Notable projects 140 - 141 - - <https://github.com/hauleth/erlang-systemd> - systemd integration for Erlang 142 - projects 143 - - <https://github.com/hauleth/mix_unused> - Mix compiler for detecting unused 144 - code 145 - - <https://github.com/open-telemetry/opentelemetry-erlang> - maintainer of 146 - the Erlang's OpenTelemetry implementation 147 - - Vim plugins: 148 - + <https://github.com/hauleth/asyncdo.vim> - simple asynchronous task runner 149 - + <https://github.com/hauleth/sad.vim> - search and replace text - faster 150 - + <https://gitlab.com/hauleth/qfx.vim> - display signs next to QF matches 151 - 152 - ### Languages and Frameworks 153 - 154 - - Elixir 155 - + Phoenix 156 - + Ecto 157 - - Erlang 158 - + OpenTelemetry collaborator 159 - + EEF Member 160 - + OTP contributor 161 - - Nix/NixOS 162 - - Rust 163 - - PostgreSQL 164 - - sh/Bash 165 - - Ruby 166 - + Ruby on Rails 167 - 168 - ### Technologies 169 - 170 - - Git 171 - - Vim 172 - - HashiStack 173 - + Terraform 174 - + Consul 175 - + Nomad 176 - - GNU/Linux and other UNIX-like systems 177 - - TDD/BDD methodologies 178 - - Property testing 179 - 180 - ## Other 181 - 182 - - Viking reenactor 183 - - Keyboard fan 184 - - Sci-fi/Fantasy fan and Poznań's Sci-fi/Fantasy club member 185 - 186 - [`plug_caisson`]: https://github.com/supabase/plug_caisson
+3
templates/shortcodes/section.html
··· 1 + <section> 2 + {{ body | markdown(inline=true) | safe }} 3 + </section>