<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>grzenow</title><link>http://www.grzenow.com/</link><description>Recent content on grzenow</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 15 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="http://www.grzenow.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Deep Neural Networks projects</title><link>http://www.grzenow.com/projects/deep-neural-networks/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/deep-neural-networks/</guid><description>&lt;p&gt;This is a collection of projects completed for the Deep Neural Networks course, including:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Multilayer Perceptrons&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Implementation of &lt;em&gt;ProxyProp&lt;/em&gt; (Proximal Backpropagation) algorithm described in this &lt;a href="https://arxiv.org/pdf/1706.04638v3" class="external-link" target="_blank" rel="noopener"&gt;paper&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Computer Vision&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Implementation of several transformations, &lt;a href="https://arxiv.org/pdf/1911.09665" class="external-link" target="_blank" rel="noopener"&gt;&lt;em&gt;AdvProp&lt;/em&gt;&lt;/a&gt;, and &lt;a href="https://openreview.net/pdf?id=QzcZb3fWmW" class="external-link" target="_blank" rel="noopener"&gt;&lt;em&gt;SparseTopK&lt;/em&gt;&lt;/a&gt; methods.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Natural Language Processing&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Implementation of &lt;a href="https://arxiv.org/pdf/2002.05202v1" class="external-link" target="_blank" rel="noopener"&gt;&lt;em&gt;SwiGLU&lt;/em&gt;&lt;/a&gt; and &lt;a href="https://arxiv.org/pdf/2410.05258" class="external-link" target="_blank" rel="noopener"&gt;&lt;em&gt;Differential Attention&lt;/em&gt;&lt;/a&gt; for a decoder-only Transformer architecture.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reinforcement Learning&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Implementation of &lt;em&gt;Proximal Policy Optimization&lt;/em&gt; (PPO) and &lt;em&gt;Random Network Distillation&lt;/em&gt; (RND) for &lt;a href="https://github.com/facebookresearch/minihack" class="external-link" target="_blank" rel="noopener"&gt;MiniHack&lt;/a&gt; environments.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/grzenow4/DNN" class="external-link" target="_blank" rel="noopener"&gt;Source code&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Allezon</title><link>http://www.grzenow.com/projects/allezon/</link><pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/allezon/</guid><description>&lt;p&gt;&lt;strong&gt;Allezon&lt;/strong&gt; is a data-collection and analytics platform, developed in a team of two. The platform handles 1000 requests per second for millions of users and products.&lt;/p&gt;&#10;&lt;p&gt;My role was focused on deploying the application, implementing distributed architecture with load balancing and ensuring scalability to handle high traffic efficiently.&lt;/p&gt;&#10;&lt;p&gt;A detailed description may be found &lt;a href="https://github.com/grzenow4/PARSR/blob/main/TaskDescription.md" class="external-link" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/grzenow4/PARSR" class="external-link" target="_blank" rel="noopener"&gt;Source code&lt;/a&gt;&lt;/p&gt;</description></item><item><title>High Performance Computing projects</title><link>http://www.grzenow.com/projects/hpc-projects/</link><pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/hpc-projects/</guid><description>&lt;p&gt;During the first year of master&amp;rsquo;s studies, I attended an HPC course and completed two major assignments: one utilizing CUDA and the other using MPI.&lt;/p&gt;&#10;&lt;h3 id="matching-in-genome-variant-databases"&gt;&#10; Matching in genome variant databases&#10; &lt;a class="heading-link" href="#matching-in-genome-variant-databases"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;The goal was to implement a system for matching genomic variants from a file agains a database (dbNSFP). The solution consists of two phases: database indexing and matching, with the matching phase optimized using CUDA.&lt;/p&gt;</description></item><item><title>Logic in Computer Science</title><link>http://www.grzenow.com/projects/logic-in-computer-science/</link><pubDate>Fri, 24 May 2024 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/logic-in-computer-science/</guid><description>&lt;p&gt;This is a collection of projects completed for the Logic in Computer Science course, including:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Propositional logic in Haskell (Part 1):&#10;&lt;ul&gt;&#10;&lt;li&gt;Satisfiable formulas, tautologies, disjunctive normal form (DNF), DNF-based SAT solver.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Propositional logic in Haskell (Part 2):&#10;&lt;ul&gt;&#10;&lt;li&gt;Conjunctive normal form (CNF), equisatisfiable CNF (ENCF), Davis-Putnam SAT solver.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;SAT solving with Z3 in Python (Part 1):&#10;&lt;ul&gt;&#10;&lt;li&gt;Generating all satisfying assignments, pebbling formulas, n-queens problem.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;SAT solving with Z3 in Python (Part 2):&#10;&lt;ul&gt;&#10;&lt;li&gt;Shortest common superstring (SCS) problem, phase transitions for the k-SAT problem.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;SMT solving with Z3 in Python:&#10;&lt;ul&gt;&#10;&lt;li&gt;Łoś principle, function 91, Sudoku solver.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Intuitionistic propositional logic in Agda:&#10;&lt;ul&gt;&#10;&lt;li&gt;Conjunction and disjunction proofs, de Morgan&amp;rsquo;s laws, weak Pierce&amp;rsquo;s law.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Intuitionistic first order logic in Agda:&#10;&lt;ul&gt;&#10;&lt;li&gt;Universal and existential quantifier proofs, relations.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/grzenow4/LDI-lab" class="external-link" target="_blank" rel="noopener"&gt;Source code&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Latte Compiler</title><link>http://www.grzenow.com/projects/latte-compiler/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/latte-compiler/</guid><description>&lt;p&gt;One of the major projects during my graduate studies was building a compiler for the &lt;a href="https://www.mimuw.edu.pl/~ben/Zajecia/Mrj2022/Latte/description.html" class="external-link" target="_blank" rel="noopener"&gt;Latte&lt;/a&gt; language, extended with features such as arrays, structs, and objects with single inheritance. The compiler parses Latte code using the &lt;a href="https://hackage.haskell.org/package/BNFC" class="external-link" target="_blank" rel="noopener"&gt;BNFC&lt;/a&gt; tool and compiles it into x86 assembly.&lt;/p&gt;&#10;&lt;p&gt;The compiler&amp;rsquo;s core is implemented using a &lt;code&gt;Reader-Writer-State&lt;/code&gt; monad:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-haskell" data-lang="haskell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;data&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Reader&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Rd&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { func &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;.&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;TType&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; , clss &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;.&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;ClassEnv&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;type&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Writer&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; [&lt;span style="color:#ff7b72"&gt;AsmInstr&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;data&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;State&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;St&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { nextlab &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Int&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; , newloc &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Int&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; , env &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;.&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt; (&lt;span style="color:#ff7b72"&gt;TType&lt;/span&gt;, &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; , rodata &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;.&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;Map&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;String&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; , rspOff &lt;span style="color:#ff7b72;font-weight:bold"&gt;::&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;Int&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;where&lt;/p&gt;</description></item><item><title>Instant Compiler</title><link>http://www.grzenow.com/projects/instant-compiler/</link><pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/instant-compiler/</guid><description>&lt;p&gt;&lt;strong&gt;Instant&lt;/strong&gt; is a programming language that supports two types of statements:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;expression&lt;/code&gt; - prints the value of the &lt;code&gt;expression&lt;/code&gt; on stdout,&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;variable = expression&lt;/code&gt; - assigns the value of the &lt;code&gt;expression&lt;/code&gt; to the &lt;code&gt;variable&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Expressions can consist of integers, variables, and arithmetic operations between them.&lt;/p&gt;&#10;&lt;p&gt;The goal of this project was to create a compiler from &lt;strong&gt;Instant&lt;/strong&gt; to JVM and LLVM architectures.&lt;/p&gt;&#10;&lt;p&gt;A detailed description can be found &lt;a href="https://github.com/grzenow4/MRJP-Instant-Compiler/blob/main/Instant-en.md" class="external-link" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/grzenow4/MRJP-Instant-Compiler" class="external-link" target="_blank" rel="noopener"&gt;Source code&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Latte Interpreter</title><link>http://www.grzenow.com/projects/latte-interpreter/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/latte-interpreter/</guid><description>&lt;p&gt;One of the larger projects I did during my undergraduate studies is undoubtedly an interpreter for the simple programming language &lt;a href="https://www.mimuw.edu.pl/~ben/Zajecia/Mrj2022/Latte/description.html" class="external-link" target="_blank" rel="noopener"&gt;Latte&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;The interpreter is written in Haskell, and the grammar is parsed into this language using the &lt;a href="https://hackage.haskell.org/package/BNFC" class="external-link" target="_blank" rel="noopener"&gt;BNFC&lt;/a&gt; tool. The implemented functionalities are described in detail on GitHub (link below), along with numerous examples, so below is a brief overview of the implementation details.&lt;/p&gt;&#10;&lt;p&gt;The code of the Latte language is automatically parsed by BNFC and then passed to static type checking. The monad representing the state of the TypeChecker looks as follows:&lt;/p&gt;</description></item><item><title>Executor</title><link>http://www.grzenow.com/projects/executor/</link><pubDate>Sat, 11 Feb 2023 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/executor/</guid><description>&lt;p&gt;&lt;strong&gt;Executor&lt;/strong&gt; is a concurrent programming project. It is a program that executes tasks, monitors their latest outputs (during execution) and terminates them if desired.&lt;/p&gt;&#10;&lt;p&gt;The handling of processes has been synchronized in such a way that the Executor immediately informs about task completion and continuously cleans up finished processes or threads it creates. All of this is done without using busy waiting, ensuring CPU resources are not wasted.&lt;/p&gt;&#10;&lt;p&gt;A detailed task description (in Polish, though) can be found at the GitHub link below.&lt;/p&gt;</description></item><item><title>Sokoban</title><link>http://www.grzenow.com/projects/sokoban/</link><pubDate>Thu, 08 Dec 2022 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/sokoban/</guid><description>&lt;p&gt;&lt;strong&gt;Sokoban&lt;/strong&gt; is a puzzle game created as part of a functional programming course in Haskell.&lt;/p&gt;&#10;&lt;p&gt;The game was implemented in Haskell on the &lt;a href="https://code.world/" class="external-link" target="_blank" rel="noopener"&gt;CodeWorld&lt;/a&gt; platform, where you can play it by clicking on this &lt;a href="https://code.world/haskell#Plg7ON0XRfShvcgT0D7DElw" class="external-link" target="_blank" rel="noopener"&gt;link&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Controls:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Space&lt;/strong&gt; - start game&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;WSAD / Arrow keys&lt;/strong&gt; - move forward&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;U&lt;/strong&gt; - undo move&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;B&lt;/strong&gt; - previous level&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;N&lt;/strong&gt; - next level&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;R&lt;/strong&gt; - reset level&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Esc&lt;/strong&gt; - reset game&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/grzenow4/Sokoban" class="external-link" target="_blank" rel="noopener"&gt;Source code&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Polynomial degree</title><link>http://www.grzenow.com/projects/polynomial-degree/</link><pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/polynomial-degree/</guid><description>&lt;p&gt;&lt;strong&gt;Polynomial degree&lt;/strong&gt; is a pure assembly project. The goal is to implement the following function&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;int&lt;/span&gt; &lt;span style="color:#d2a8ff;font-weight:bold"&gt;polynomial_degree&lt;/span&gt;(&lt;span style="color:#ff7b72"&gt;int&lt;/span&gt; &lt;span style="color:#ff7b72"&gt;const&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;*&lt;/span&gt;y, &lt;span style="color:#ff7b72"&gt;size_t&lt;/span&gt; n);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The function takes two arguments: a pointer &lt;code&gt;y&lt;/code&gt; to an array of integers $y_0,y_1,\ldots,y_{n-1}$ and an integer &lt;code&gt;n&lt;/code&gt; representing the length of this array. The function calculates the lowest degree of a single-variable polynomial $w(x)$ with real coefficients, such that:&#10;$w(x+k\cdot r)=y_k$&#10;for some real number $x$, a nonzero real number $r$, and $k=0,1,\ldots,n-1$.&lt;/p&gt;</description></item><item><title>Pacman Rivals</title><link>http://www.grzenow.com/projects/pacman-rivals/</link><pubDate>Fri, 14 Jan 2022 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/pacman-rivals/</guid><description>&lt;p&gt;&lt;strong&gt;Pacman Rivals&lt;/strong&gt; is a multiplayer game developed by a team of four. It enhances the classic Pac-Man game with a mulitplayer mode and PvP mechanics.&lt;/p&gt;&#10;&lt;p&gt;The goal of the game is to collect as many coins as possible while avoiding contact with ghosts roaming the map. Occasionally, various power-ups appear on the map, granting the player bonuses like extra points for coins, the ability to pass through walls, invincibility, and more.&lt;/p&gt;</description></item><item><title>Sparse Multivariate Polynomials</title><link>http://www.grzenow.com/projects/ipp-polynomials/</link><pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/ipp-polynomials/</guid><description>&lt;p&gt;This is a comprehensive project written in C, aimed at implementing fundamental operations on sparse multivariate polynomials, such as addition, subtraction, multiplication, and exponentiation.&lt;/p&gt;&#10;&lt;p&gt;The second part of the project is a polynomial calculator that utilizes reverse Polish notation. It allows performing arithmetic operations and displaying the current polynomial on the stack.&lt;/p&gt;&#10;&lt;p&gt;The implementation is optimized for efficient dynamic memory allocation, minimizing unnecessary copying and memory allocations. Additionally, the project ensures proper deallocation of all allocated memory, preventing memory leaks. The entire project is documented in Doxygen format.&lt;/p&gt;</description></item><item><title>Pętlik</title><link>http://www.grzenow.com/projects/petlik/</link><pubDate>Tue, 19 Jan 2021 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/projects/petlik/</guid><description>&lt;p&gt;&lt;strong&gt;Pętlik&lt;/strong&gt; is a small programming language, which syntax is defined by the following grammar with the start symbol &lt;code&gt;Program&lt;/code&gt;:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Program → InstructionSequence&#10;InstructionSequence → ε | InstructionSequence Instruction&#10;Instruction → Increment | Repeat&#10;Increment → Variable&#10;Repeat → &amp;#39;(&amp;#39; Variable InstructionSequence &amp;#39;)&amp;#39;&#10;Variable → &amp;#39;a&amp;#39; | ... | &amp;#39;z&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Instructions:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Increment&lt;/code&gt;: equivalent to &lt;code&gt;++variable&lt;/code&gt; in C, incrementing the variable by 1.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Repeat&lt;/code&gt;: equivalent to a C-style &lt;code&gt;while&lt;/code&gt; loop:&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;while&lt;/span&gt; (variable &lt;span style="color:#ff7b72;font-weight:bold"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;0&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;--&lt;/span&gt;variable;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The project consist of two components:&lt;/p&gt;</description></item><item><title/><link>http://www.grzenow.com/resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/resume/</guid><description>&lt;h1 id="grzegorz-nowakowski"&gt;&#10; Grzegorz Nowakowski&#10; &lt;a class="heading-link" href="#grzegorz-nowakowski"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="work-experience"&gt;&#10; Work Experience&#10; &lt;a class="heading-link" href="#work-experience"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;dl&gt;&#10;&lt;dt&gt;07.2025-present&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;Software Engineer II&lt;/strong&gt;; Google&#10;&lt;ul&gt;&#10;&lt;li&gt;Developing and extending NodeOS (Google internal Linux-based OS) capabilities&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/dd&gt;&#10;&lt;dt&gt;08.2024-06.2025&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;Linux Intern&lt;/strong&gt;; Samsung Electronics&#10;&lt;ul&gt;&#10;&lt;li&gt;Contributing to the development of the Tizen operating system&#10;&lt;ul&gt;&#10;&lt;li&gt;Writing Rust bindings for Tizen components&lt;/li&gt;&#10;&lt;li&gt;Developing Tizen C libraries&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Working on operating system upgrade&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/dd&gt;&#10;&lt;dt&gt;07.2023-02.2024&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;Technology Development Intern&lt;/strong&gt;; Point72&#10;&lt;ul&gt;&#10;&lt;li&gt;Developing a distributed analytical platform as part of the Risk Tech team&#10;&lt;ul&gt;&#10;&lt;li&gt;Creating a standalone documentation server&lt;/li&gt;&#10;&lt;li&gt;Improving the performance of the project&amp;rsquo;s core&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Delivering a presentation on Rust features to the team&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/dd&gt;&#10;&lt;dt&gt;10.2022-06.2023&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;Bachelor&amp;rsquo;s Thesis Intern&lt;/strong&gt;; ScyllaDB&#10;&lt;ul&gt;&#10;&lt;li&gt;Integrating Rust to the Seastar framework&#10;&lt;ul&gt;&#10;&lt;li&gt;Implementing a macro similar to &lt;em&gt;tokio::test&lt;/em&gt;&lt;/li&gt;&#10;&lt;li&gt;Implementing the &lt;em&gt;seatstar::submit_to&lt;/em&gt; function&lt;/li&gt;&#10;&lt;li&gt;Exposing basic file I/O functionality&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Creating a simple Seastar TCP server using C++ coroutines&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/dd&gt;&#10;&lt;/dl&gt;&#10;&lt;h2 id="education"&gt;&#10; Education&#10; &lt;a class="heading-link" href="#education"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;dl&gt;&#10;&lt;dt&gt;10.2023-09.2025&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;MSc, Computer Science&lt;/strong&gt;; University of Warsaw&#10;&lt;p&gt;&lt;em&gt;Thesis title: NP-hard Metrics for Evaluating Participatory Budgeting Rules&lt;/em&gt;&lt;/p&gt;&#10;&lt;/dd&gt;&#10;&lt;dt&gt;10.2020-07.2023&lt;/dt&gt;&#10;&lt;dd&gt;&lt;strong&gt;BSc, Computer Science&lt;/strong&gt;; University of Warsaw&#10;&lt;p&gt;&lt;em&gt;Thesis title: Seastar as a Rust Asynchronous Runtime&lt;/em&gt;&lt;/p&gt;&#10;&lt;/dd&gt;&#10;&lt;/dl&gt;</description></item><item><title>About</title><link>http://www.grzenow.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/about/</guid><description>&lt;p&gt;Hi, my name is Grzegorz (Gregory in English), and welcome to my blog.&lt;/p&gt;&#10;&lt;p&gt;I graduated with a Bachelor&amp;rsquo;s and a Master&amp;rsquo;s degree in Computer Science. I work as a Software Engineer, and am in love with strongly-typed languages like Haskell, but don&amp;rsquo;t do it professionally.&lt;/p&gt;&#10;&lt;p&gt;During my education, I attended an algorithmic economics course that covered topics like coalitional game theory and social choice theory. I became fascinated by the latter, so much so that I decided to write my master&amp;rsquo;s thesis on it.&lt;/p&gt;</description></item><item><title>Contact</title><link>http://www.grzenow.com/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/contact/</guid><description>&lt;p&gt;In case of any questions, feel free to concact me at:&#10;&lt;a href="mailto:g.nowakowski.dev@gmail.com" &gt;g.nowakowski.dev@gmail.com&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>