Piotr Jeleniewicz
Gdynia, PL · --:--

Piotr Jeleniewicz

Software development & system integration

I build applications and automation tools that connect APIs, data and AI services. I'm in my final semester of Electronics and Telecommunications at Gdańsk University of Technology, and I've been into automation since primary school.

In short

What I build

I build automation tools, desktop applications and interfaces for technical systems. I take each one myself from the idea to a working version.

I use a few of them every day, such as Yapper and my own email tools, so I quickly see what breaks.

See the projects
jobmanagerPython, LLM
JobManager offer table
labincJava, Swing
LabInc: Chemical Tycoon game screen
blackboxC++
BlackBox terminal game
inventory-generatorJavaScript
Inventory Generator
seeskyFlask, Astropy
SeeSky tracking screen
password-managerteam project
Password Manager vault
stock-toolC++
Stock analysis tool in the console
dockerdev setup
Docker Desktop with project containers

Core strengths

Tools and skills

  1. hardware

    Electronics and simulation

    I have done lab measurements, circuit simulation and PCB design, so writing software for devices, embedded systems or IoT would be a short step for me.

    LTspice / Micro-Cap / KiCad / EAGLE / Vivado / Basys 3

    Basys 3 FPGA board on a breadboard
  2. systems

    IT tools and environments

    In projects I work with Windows and Windows Server, virtual machines, Linux and Docker. Small repetitive tasks go to AutoHotkey scripts.

    Git / Linux / Docker / Windows Server / VMware / AutoHotkey

    Docker Desktop with project containers
  3. software

    Programming and integration

    I write tools, API integrations and data processing in Python and JavaScript. I know C/C++ and Java from classes, projects and learning on my own.

    Python / JavaScript / REST APIs / C/C++ / Java

    JobManager offer table

Education and experience

Where I studied

2023 - now

Gdańsk University of Technology

Electronics and Telecommunications, Computer Electronic Systems

Lead software developer of the SeeSky radio telescope in the SimLE research club: backend, tracking interface and an interactive sky map. I am also responsible for programming and testing the SDR receiver. Until the radio telescope is built, I test it on placeholder data.

Final semester ends 2 February 2027

09 - 10.2024

Asseco

Internship, Telecommunications and Media Division

Set up a Windows Server 2019 environment for certificate handling, built a REST endpoint that passes requests to Microsoft AD CS over DCOM, and wrote the setup guide and documentation.

REST, Windows Server, AD CS

2019 - 2023

III High School in Sopot

Polytechnic profile, mathematics and IT

I took extended maths and computer science here.

My projects

Things I have built

Integration and automation

JobManager In use and evolving

Collects listings from eight job portals into one application, filters them with shared rules, researches promising offers with a language model and sends notifications. A separate module fills in application forms - I tick the consent boxes myself.

  • Personalised offers from eight portals, such as justjoin.it, pracuj.pl and LinkedIn
  • Offer research: company, salary against the market, real stack, red flags
  • Modular data sources and integrations
  • Notifications for offers that match my profile
  • Web scraping
  • LLM
  • Node.js
  • Data aggregation

Lead software developer, SimLE

SeeSky radio telescope

Software for the student research club's 3 m radio telescope. I lead the backend, the tracking web interface and the interactive sky map.

  • Backend in Python and Flask, Astropy for sky positions
  • Web interface to pick a target and track it
  • Interactive sky map and star catalogue in the browser
  • REST API and an Express dashboard to control the telescope
  • Python
  • Flask
  • Astropy
  • JavaScript

Java and object-oriented design

LabInc: Chemical Tycoon Personal project

A Java incremental game about building up chemical-element production, from a coal mine to a reactor making synthetic elements.

  • All 118 elements to produce, sell or put into research
  • Economy and production progression logic
  • Game-state saves and achievements
  • Custom Swing interface with mining, factory and market panels
  • Java 8+
  • Swing
  • Maven
  • JNA
  • Batik

About me

Piotr Jeleniewicz

I am in the final semester of Electronics and Telecommunications at Gdańsk University of Technology. I build applications and automation tools.

I break a problem down like a tree: one root, then categories, subcategories and the links between them, until every leaf is something I can build and test. I treat my own work the same way, so anything I keep doing over and over becomes a tool.

Outside code I like geography and blending music, I go to the gym, and I play with AI audio-separation tools and architectural visualisation in ComfyUI.

Code
Python, JavaScript, C/C++, Java, REST APIs
Systems
Git, Linux, Docker, Windows Server
Electronics
LTspice, KiCad, Vivado

How I build with AI

I use Claude Code and Codex every day, and they write a good part of the code. Work from one model gets reviewed by another of similar strength from a different company: a fresh context helps, but a model trained differently also reasons differently and catches other mistakes. When something has to be right, I have a stronger model walk me through the whole file until I understand what it does and why. Everything runs through Codeg: it keeps my Claude Code, Codex and OpenCode subscriptions in one place, and a lead agent hands out tasks based on how capable and how fast each model is.

At a company the data matters most. Sensitive data stays inside a sandbox and, depending on how sensitive it is, does not go to OpenAI or any other model provider at all. Agents work on placeholder data with the same structure, and the real data goes into the real system in bulk only after the change has passed its tests.

Below is the workflow I would use on a team, where a mistake costs more.

user feedback unauthorized data guardrails utask ++ G1research & plan Aapprove G2split +− sandbox G3aG3bG3cagents G4review Aapprove G5merge ychange ereview notes
A marks a human approval gate. Blocks G1 to G5 are described below.
  1. G1Research and plan

    Read-only agents study the problem: the existing codebase, its documentation and external solutions such as APIs and libraries. The problem is then decomposed into components, and the plan defines the modules, their interfaces and the files each component may modify. A human approves the plan before implementation begins.

    read-only agents + human
  2. G2Split into blocks

    The lead agent splits the plan into independent blocks with defined inputs and outputs. No two blocks edit the same file, so they run in parallel and merge without conflicts. A failed block is redone without touching the rest.

    lead agent
  3. G3Dispatch agents

    Each block gets its own coding agent, on its own branch, in a sandbox. The agent can run only the commands its task needs and sees only the files the plan lists for it. An agent that is confused or misled cannot reach beyond its block.

    coding agents
  4. G4Independent review

    A different model of similar strength reviews each diff in a fresh context, checks it against the plan and runs the tests. A failed block goes back to its agent with the review notes, and the loop repeats until the block passes.

    reviewer agent
  5. G5Merge and approval

    The change runs on placeholder data first, then on real data. It is merged only after a person approves it and can explain how it works. Larger changes get a backup first, so they can be rolled back. Problems users report afterwards go back to G1 as new requirements.

    human

Where it can go wrong

The agents are boxed in mainly because of prompt injection: a leak becomes possible when the same agent reads untrusted content, can reach private data and can send data out (the lethal trifecta). A model rates its own code too highly, so a different model reviews it, and one green test run is not enough (passk, not pass@1). Every new dependency is checked at its source, because models invent package names and attackers register them.

I haven't run agents in a company's production environment yet. Based on my own knowledge, drawing on Building effective agents, Claude Code best practices and the OWASP GenAI Security Project, I would propose a similar setup there.

Paid internship or first role, part-time, remote or hybrid

Let’s talk

Emailjeleniewicz@op.pl
LocationGdynia, Poland
CVSent on request