1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="utf-8" /> 6 <meta content="width=device-width, initial-scale=1" name="viewport" /> 7 <meta content="#ffffff" name="theme-color" /> 8 <meta content="#da532c" name="msapplication-TileColor" /> 9 10 11 12 13 14 <link href='/images/avatar_circle_32x32.png' rel="icon" sizes="32x32" type="image/png" /> 15 16 17 18 <link href="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/themes/folio/galleria.folio.min.css" 19 rel="stylesheet" /> 20 <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/mapbox-gl.min.css" rel="stylesheet" /> 21 <link href="https://laszukdawid.com/deep-thought.css" rel="stylesheet" /> 22 23 24 25 26 <title> 27 28DL | Projects 29 30 </title> 31 32
32<script src="https://kit.fontawesome.com/1f1be77bfb.js" crossorigin="anonymous"></script>
vendor: 70 bytes, lines 32-35
32 33 34 35 <script async src="https://www.googletagmanager.com/gtag/js?id=
35G-RE32YHV5XD
vendor: 14 bytes, lines 35-36
35"></script> 36
36<script type="text/javascript"> 37
vendor: 152 bytes, lines 37-42
37window.dataLayer = window.dataLayer || []; 38 function gtag() { 39 dataLayer.push(arguments); 40 } 41 gtag("js", new Date()); 42 gtag("config", "
42G-RE32YHV5XD
vendor: 6 bytes, lines 42-43
42"); 43
43</script>
43 44 45 46 47 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" 48 integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous"> 49
49<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" 50 integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4" 51 crossorigin="anonymous"></script>
51 52 53
53<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/mathtex-script-type.min.js" 54 integrity="sha384-LJ2FmexL77rmGm6SIpxq7y+XA6bkLzGZEgCywzKOZG/ws4va9fUVu2neMjvc3zdv" 55 crossorigin="anonymous"></script>
55 56 57
57<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" 58 integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa" crossorigin="anonymous" onload="renderMathInElement(document.body, { 59 delimiters: [ 60 {left: '$$', right: '$$', display: true}, 61 {left: '$', right: '$', display: false}, 62 {left: '\\(', right: '\\)', display: false}, 63 {left: '\\[', right: '\\]', display: true} 64 ] 65 });"></script>
65 66 67 68</head> 69 70<body class="has-background-white"> 71 72 <nav aria-label="section navigation" class="navbar is-light" role="navigation"> 73 <div class="container"> 74 <div class="navbar-brand"> 75 <a class="navbar-item has-text-weight-bold" href="https://laszukdawid.com">DL</a> 76 77 <!-- # Dawid Laszuk, PhD 78Senior Machine Learning Engineer | Vancouver, Canada 79[email protected] | https://laszukdawid.com | LinkedIn: /in/laszukdawid/ 80 81## Professional Experience 82 83**Staff Machine Learning Engineer, Sailpoint** (Feb 2022 - Present) 84* Core contributor and lead for Generative AI initiatives 85* Principal designer for ML and GenAI platforms 86* Led development of chatbot with rich GenAI capabilities 87* Established MLOps practices and infrastructure 88 89**Founder, Agents Bar** (Mar 2021 - May 2022) 90* Built deep reinforcement learning platform providing agents-as-a-service 91* Developed full-stack solution using TypeScript, Python, and PyTorch 92* Created and open-sourced AI Traineree, a deep reinforcement learning framework 93 94**Sr. Machine Learning Engineer, Amazon** (Jun 2017 - Sep 2020) 95* Led productionalization of reinforcement learning solutions 96* Established ML software and model readiness guidelines 97* Built simulation systems for business decision inference 98* Developed ETL pipelines processing petabytes of data using AWS EMR 99 100**Python Developer, Titanis** (Jan 2010 - Jan 2012) 101* Designed brain-computer interface frameworks 102* Implemented data processing algorithms using NumPy, SciPy, Scikit-learn 103 104## Education 105 106**PhD in Mathematics and Optimization** - University of Reading, UK 107* Thesis: KurSL - Modeling coupled oscillators using Kuramoto's coupling and Sturm-Liouville theory 108* Focus: Mathematical modeling, differential equations, MCMC optimization 109 110**MSc in Physics** - University of Warsaw, Poland 111* Thesis: Analysis of experimental data for hybrid BCI systems 112 113## Open Source Projects 114 115* **AI Traineree**: Deep reinforcement learning framework 116* **PyEMD**: Standard implementation of Empirical Mode Decomposition (500+ GitHub stars) 117* **Agents Bar**: Contributing to scientific/engineering progress through open-source AI tools 118 119## Technical Skills 120* AI/ML: Generative AI, Large Language Models, PyTorch, Reinforcement Learning, MLOps 121* Cloud & Infrastructure: AWS (Sagemaker, EMR), Kubernetes, Docker, Terraform 122* Languages: Python, TypeScript, Golang 123* Development: Full-stack development, API design, Microservices architecture --> 124 </div> 125 <a aria-expanded="false" aria-label="menu" class="navbar-burger burger" data-target="navMenu" role="button"> 126 <span aria-hidden="true"></span> 127 <span aria-hidden="true"></span> 128 <span aria-hidden="true"></span> 129 </a> 130 </div> 131 <!-- 132 --> 133 134 <div class="navbar-menu" id="navMenu"> 135 <div class="navbar-end has-text-centered"> 136 137 138 139 <a class="navbar-item" href='https://laszukdawid.com'> 140 Home 141 </a> 142 143 <a class="navbar-item" href='https://laszukdawid.com/til'> 144 TIL 145 </a> 146 147 <a class="navbar-item" href='https://laszukdawid.com/blog'> 148 Blog 149 </a> 150 151 <a class="navbar-item" href='https://laszukdawid.com/projects'> 152 Projects 153 </a> 154 155 <a class="navbar-item" href='https://laszukdawid.com/about'> 156 About 157 </a> 158 159 160 161 <a class="navbar-item" id="rss" title="RSS" href="/rss.xml"> 162 <span class="icon"> 163 <i class="fas fa-rss-square"></i> 164 </span> 165 </a> 166 <a class="navbar-item" id="nav-search" title="Search" data-target="#search-modal"> 167 <span class="icon"> 168 <i class="fas fa-search"></i> 169 </span> 170 </a> 171 <a class="navbar-item" id="dark-mode" title="Switch to dark theme"> 172 <span class="icon"> 173 <i class="fas fa-adjust"></i> 174 </span> 175 </a> 176 </div> 177 </div> 178 </div> 179 </nav> 180 181 182 183 184 185 186<section class="section"> 187 <div class="container"> 188 <div class="columns"> 189 <div class="column is-8 is-offset-2"> 190 <article class="box"> 191 <h1 class="title"> 192 Projects 193 </h1> 194 <p class="subtitle"></p> 195 <div class="columns is-multiline is-gapless"> 196 <div class="column is-8"> 197 198 199<span class="icon-text has-text-grey"> 200 <span class="icon"> 201 <i class="fas fa-user"></i> 202 </span> 203 <span>Dawid Laszuk updated on</span> 204 <span class="icon"> 205 <i class="far fa-calendar-alt"></i> 206 </span> 207 <span><time datetime="2026-07-04">July 04, 2026</time></span> 208</span> 209 210 211 </div> 212 <div class="column is-4 has-text-right-desktop"> 213 214<span class="icon-text has-text-grey"> 215 <span class="icon"> 216 <i class="far fa-clock"></i> 217 </span> 218 <span>
2182 min,</span> 219 <span class="icon"> 220 <i class="fas fa-pencil-alt"></i> 221 </span> 222 <span>372 words</span> 223</span> 224 225 </div> 226 <div class="column"> 227 228 </div> 229 <div class="column has-text-right-desktop"> 230 231 </div> 232 </div> 233 <div class="content mt-2"> 234 <p>I'm always open for some interesting projects and collaboration. Feel free to <a href="/about">contact</a>.</p> 235<h2 id="git-repo-tracker"><a href="https://laszukdawid.github.io/git-repo-tracker">Git Repo Tracker</a></h2> 236<p>A small tray app that watches local git repositories and shows which ones are behind their remote branch. More details at <a href="https://github.com/laszukdawid/git-repo-tracker">GitHub</a>.</p> 237<h2 id="multi-pong"><a href="https://multi-pong.lasz.uk">Multi Pong</a></h2> 238<p>A small realtime multiplayer Pong experiment where 2 to 8 players share one arena over WebSockets. It is playable at <a href="https://multi-pong.lasz.uk/">multi-pong.lasz.uk</a>.</p> 239<h2 id="terminal-agent"><a href="https://laszukdawid.github.io/terminal-agent">Terminal Agent</a></h2> 240<p>An LLM agent to help you from and within the terminal. It allows you to ask questions, execute tasks, and interact with LLMs directly from your command line. 241Installation is available via Homebrew, pre-built binaries, or Go. More details at <a href="https://github.com/laszukdawid/terminal-agent">GitHub</a>.</p> 242<h2 id="ai-traineree"><a href="https://ai-traineree.readthedocs.io/">AI Traineree</a></h2> 243<p>A collection of <a href="https://en.wikipedia.org/wiki/Deep_reinforcement_learning">deep reinforcement learning</a> agents written in Python using <a href="https://pytorch.org/">PyTorch</a>. 244More about it is at <a href="ai-traineree.readthedocs.io/">AI Traineree docs</a> and the source code is available at <a href="github.com/laszukdawid/ai-traineree">GitHub</a>.</p> 245<h2 id="pyemd"><a href="https://pypi.org/project/EMD-signal/">PyEMD</a></h2> 246<p>Python implementation of a popular signal decompoisition method - <a href="https://en.wikipedia.org/wiki/Hilbert%E2%80%93Huang_transform">Empirical Mode Decomposition</a> - and some of its modifications including Ensembled EMD (EEMD). 247I don't know when, I don't know how but my <a href="https://pypi.org/project/EMD-signal/">PyEMD</a> package became de facto standard Python implementation for EMD. 248Unfortunately, EMD isn't part of my research anymore and so it felt in priority, I still maintaine it for others to use.</p> 249<h2 id="agents-bar-inactive">Agents Bar (Inactive)</h2> 250<p><a href="https://agents.bar">Agents Bar</a> is a place for <a href="https://en.wikipedia.org/wiki/Deep_reinforcement_learning">deep reinforcement learning</a> AI agents to hang out. 251It's a part machine learning operations, aka <b>MLOps</b>, tool where one can deploy and host their own agents, and in part a platform for users to select already existing agents.</p> 252<p><em>Note: This project is currently inactive.</em></p> 253 254 </div> 255 </article> 256 </div> 257 258 </div> 259 </div> 260</section> 261 262 263 264 <section class="modal" id="search-modal"> 265 <div class="modal-background"></div> 266 <div class="modal-card"> 267 <header class="modal-card-head"> 268 <p class="modal-card-title">Search</p> 269 </header> 270 <section class="modal-card-body"> 271 <div class="field mb-2"> 272 <div class="control"> 273 <input class="input" id="search" placeholder="Search this website." type="search" /> 274 </div> 275 </div> 276 <div class="search-results"> 277 <div class="search-results__items"></div> 278 </div> 279 </section> 280 </div> 281 <button aria-label="close" class="modal-close is-large"></button> 282 </section> 283 284 285 286 287 288<section class="section"> 289 <div class="container"> 290 <div class="columns is-centered"> 291 <div class="column is-8"> 292 <nav class="level"> 293 294 <div class="level-item has-text-centered"> 295 <a class="button is-black is-outlined" href="https://laszukdawid.com/about/"> 296 About<span class="icon ml-2"> 297 <i class="fas fa-arrow-circle-right"></i> 298 </span> 299 </a> 300 </div> 301 302 </nav> 303 </div> 304 </div> 305 </div> 306</section> 307 308 309 310 311 312 313 314 315 <footer class="footer"> 316 <div class="content has-text-centered"> 317 <p> 318 There's nothing below this point. 319 </p> 320 </div> 321 </footer> 322 323 324
324<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>
324 325
325<script src="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/galleria.min.js"></script>
325 326
326<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script>
326 327
327<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.xkcd.min.js"></script>
327 328
328<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/mapbox-gl.min.js"></script>
328 329
329<script src="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/themes/folio/galleria.folio.min.js"></script>
329 330
330<script src="https://cdnjs.cloudflare.com/ajax/libs/elasticlunr/0.9.6/elasticlunr.min.js"></script>
330 331
331<script src="https://laszukdawid.com/search_index.en.js"></script>
331 332
332<script src="https://laszukdawid.com/js/site.js"></script>
332 333 334 335 336 337 338 339</body> 340 341</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.