All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m25s
386 lines
14 KiB
TypeScript
386 lines
14 KiB
TypeScript
import { Skill, Job, Project } from "@/lib/types";
|
|
|
|
export const skills: Skill[] = [
|
|
{
|
|
"name": "Azure Pipelines"
|
|
},
|
|
{
|
|
"name": "C#"
|
|
},
|
|
{
|
|
"name": "C++"
|
|
},
|
|
{
|
|
"name": "Django"
|
|
},
|
|
{
|
|
"name": "Docker"
|
|
},
|
|
{
|
|
"name": "FastAPI"
|
|
},
|
|
{
|
|
"name": "Git"
|
|
},
|
|
{
|
|
"name": "Java"
|
|
},
|
|
{
|
|
"name": "Javascript"
|
|
},
|
|
{
|
|
"name": "Linux"
|
|
},
|
|
{
|
|
"name": "PostGIS"
|
|
},
|
|
{
|
|
"name": "PostgreSQL"
|
|
},
|
|
{
|
|
"name": "Python"
|
|
},
|
|
{
|
|
"name": "Qt"
|
|
},
|
|
{
|
|
"name": "React"
|
|
},
|
|
{
|
|
"name": "Rust"
|
|
},
|
|
{
|
|
"name": "TailwindCSS"
|
|
},
|
|
{
|
|
"name": "Typescript"
|
|
},
|
|
{
|
|
"name": "Unity"
|
|
}
|
|
];
|
|
|
|
export const jobs: Job[] = [
|
|
{
|
|
"id": 2,
|
|
"position": "Python Developer",
|
|
"company": "GIAP",
|
|
"still_working": false,
|
|
"start_date": "2021-05-19",
|
|
"end_date": "2023-02-03",
|
|
"technologies": [
|
|
"Python",
|
|
"Qt",
|
|
"PostgreSQL",
|
|
"PostGIS",
|
|
"Git",
|
|
"QGIS"
|
|
]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"position": "Frontend Developer",
|
|
"company": "GIAP",
|
|
"still_working": false,
|
|
"start_date": "2022-02-01",
|
|
"end_date": "2023-02-03",
|
|
"technologies": [
|
|
"React",
|
|
"Typescript",
|
|
"Redux",
|
|
"ArcGIS JS API"
|
|
]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"position": "Frontend Developer",
|
|
"company": "Wavemaker",
|
|
"still_working": false,
|
|
"start_date": "2023-09-13",
|
|
"end_date": "2024-01-01",
|
|
"technologies": [
|
|
"React",
|
|
"Typescript",
|
|
"Angular",
|
|
"TailwindCSS",
|
|
"SCSS",
|
|
"Azure Pipelines",
|
|
" Gitlab CI",
|
|
"Kubernetes"
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"position": "Frontend Developer",
|
|
"company": "Choreograph",
|
|
"still_working": false,
|
|
"start_date": "2024-01-01",
|
|
"end_date": "2025-03-01",
|
|
"technologies": [
|
|
"React",
|
|
"Typescript",
|
|
"Angular",
|
|
"TailwindCSS",
|
|
"SCSS",
|
|
"Azure Pipelines",
|
|
" Gitlab CI",
|
|
"Kubernetes"
|
|
]
|
|
},
|
|
{
|
|
"id": 6,
|
|
"position": "Python Developer",
|
|
"company": "Choreograph",
|
|
"still_working": true,
|
|
"start_date": "2025-03-01",
|
|
"end_date": null,
|
|
"technologies": [
|
|
"Python",
|
|
"FastAPI",
|
|
"Django",
|
|
"PostgreSQL",
|
|
"GCP",
|
|
"Azure",
|
|
"Docker",
|
|
"Kubernetes",
|
|
"Gitlab Pipelines"
|
|
]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"position": "Full Stack Developer",
|
|
"company": "digimonkeys.com",
|
|
"still_working": true,
|
|
"start_date": "2021-05-19",
|
|
"end_date": null,
|
|
"technologies": [
|
|
"Python",
|
|
"FastAPI",
|
|
"Django",
|
|
"PostgreSQL",
|
|
"React",
|
|
"TailwindCSS",
|
|
"Nginx"
|
|
]
|
|
}
|
|
];
|
|
|
|
export const projects: Project[] = [
|
|
{
|
|
"id": 2,
|
|
"name": "Spanish Inquisition",
|
|
"short_description": "Educational game made in 24 hours in Unity.",
|
|
"description": "I made this game because I have Spanish as one of the subjects in school. I wanted to improve my vocabulary by having fun and a game is a perfect solution for this problem. I made this in 24 hours. It is not perfect gameplay-wise but I learned some Spanish from it. So it kind of works.",
|
|
"category": "Game",
|
|
"github_url": "https://github.com/GKaszewski/Spanish-Learning-Game",
|
|
"visit_url": "https://gamejolt.com/games/spanish-inquisition/425125",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"C#",
|
|
" Unity"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "Everyday quotes",
|
|
"short_description": "Simple app for reading various quotations",
|
|
"description": "I made this app as my first Flutter app because I wanted to learn how to write mobile apps and how to use public APIs.",
|
|
"category": "Mobile",
|
|
"github_url": "https://github.com/GKaszewski/Everyday_quotes",
|
|
"visit_url": "https://play.google.com/store/apps/details?id=com.GabrielKaszewski.everydayquotes",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Dart",
|
|
" Flutter"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 4,
|
|
"name": "Raytracer",
|
|
"short_description": "CPU based raytracer",
|
|
"description": "My attempt at making CPU raytracer in Rust.\r\n\r\nFeatures:\r\n- rendering spheres, cubes, triangles and meshes (gltf only)\r\n- multithreading\r\nResources:\r\n[Raytracing in One weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html)",
|
|
"category": "Desktop",
|
|
"github_url": "https://github.com/GKaszewski/raytracer-rs",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 5,
|
|
"name": "Tiny packer",
|
|
"short_description": "Small utility to combine images into one atlas.",
|
|
"description": "**Overview:**\r\nTiny Packer is a command-line utility designed to combine multiple images into a single texture atlas. It provides options for manual and automatic sizing of the atlas, including adjustable padding between images.\r\n\r\n# Features\r\n- CLI \r\n- GUI \r\n- Padding support\r\n- Auto size\r\n\r\n# How to use? \r\n## GUI\r\n**Hotkeys**\r\n- `Ctrl+I` - Import images\r\n- `Ctrl+Shift+I` - Add images\r\n- `Ctrl+Shift+C` - Clear images\r\n- `Ctrl+S` - Save generated atlas\r\n## CLI\r\n**Usage:**\r\n```bash\r\ntiny_packer --input <input_files> --output <output_file> [OPTIONS]\r\n```\r\n\r\n**Required Arguments:**\r\n- `--input`, `-i`: Specify the input image files. Multiple files can be specified by repeating the argument for each file.\r\n- `--output`, `-o`: Specify the path where the output atlas image will be saved.\r\n\r\n**Options:**\r\n- `--width`: Specify the width of the atlas. Defaults to `512` pixels. This option is ignored if auto sizing is enabled.\r\n- `--height`: Specify the height of the atlas. Defaults to `512` pixels. This option is ignored if auto sizing is enabled.\r\n- `--padding`, `-p`: Set the padding between images in the atlas. Defaults to `0` pixels.\r\n- `--auto_size`, `-a`: Enable or disable automatic sizing of the atlas dimensions. Defaults to `false`. When enabled, the atlas dimensions are calculated based on the input images.\r\n- `--unified`: Each cell has the same size (based on largest dimensions of image.) Defaults to `false`. [CLI only for now] \r\n\r\n**Examples:**\r\n\r\n1. **Creating an Atlas with Specified Dimensions:**\r\n Generate an atlas with a specific width and height, ignoring automatic sizing.\r\n ```bash\r\n tiny_packer -i image1.png -i image2.png -o atlas.png --width 1024 --height 1024 -a false\r\n ```\r\n\r\n2. **Creating an Atlas with Automatic Sizing:**\r\n Generate an atlas where dimensions are automatically calculated.\r\n ```bash\r\n tiny_packer -i image1.png -i image2.png -i image3.png -o atlas.png\r\n ```\r\n\r\n3. **Creating an Atlas with Padding:**\r\n Generate an atlas with a specified padding between images.\r\n ```bash\r\n tiny_packer -i image1.png -i image2.png -o atlas.png -p 10\r\n ```\r\n\r\n**Additional Tips:**\r\n- Multiple input files should be specified by repeating the `-i` or `--input` option for each file.\r\n- Ensure that file paths are correctly specified and accessible from the command line.\r\n- For best results, images should be of compatible formats and dimensions when padding and auto sizing are considered.\r\n\r\n**Help:**\r\nTo view more information and help regarding the command options, you can use the `--help` flag:\r\n```bash\r\ntiny_packer --help\r\n```\r\n# License\r\nMIT",
|
|
"category": "Desktop",
|
|
"github_url": "https://github.com/GKaszewski/tiny_packer",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust",
|
|
"Tauri",
|
|
"React",
|
|
"TailwindCSS"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 6,
|
|
"name": "Thoughts",
|
|
"short_description": "A nostalgic social platform prioritizing chronological feeds and user customization.",
|
|
"description": "Thoughts is a deliberate step away from algorithm-driven feeds. The vision is to create a digital \"third place\" that prioritizes genuine connection and user control, all wrapped in a nostalgic Frutiger Aero aesthetic.\n\nHere are the core principles I built this on:\n- **Chronological Above All:** Your feed is your feed, sorted by time. No algorithms, no \"you might also like.\"\n- **Radical Self-Expression:** Profiles are a canvas. I've brought back the ability for users to customize their pages with their own CSS, just like the good old days.\n- **Built for the Fediverse:** ActivityPub integration isn't in this MVP, but it's a top priority for the future to connect Thoughts with the wider decentralized web.\n\n**Technical details:**\n- **Backend:** Rust (Axum)\n- **Frontend:** Next.js\n- **Infrastructure:** Dockerized",
|
|
"category": "Web",
|
|
"github_url": "https://git.gabrielkaszewski.dev/GKaszewski/thoughts",
|
|
"visit_url": "https://thoughts.gabrielkaszewski.dev/",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust",
|
|
"Axum",
|
|
"Next.js",
|
|
"Docker",
|
|
"TailwindCSS"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 7,
|
|
"name": "Fleet Compass",
|
|
"short_description": "SaaS solution for modern fleet management.",
|
|
"description": "Fleet Compass is a comprehensive SaaS platform designed to streamline fleet management operations. It provides real-time tracking, analytics, and management tools to help businesses optimize their logistics.",
|
|
"category": "Web",
|
|
"github_url": null,
|
|
"visit_url": "https://fleetcompass.pl/",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"React",
|
|
"Python",
|
|
"Django",
|
|
"PostgreSQL",
|
|
"PostGIS",
|
|
"TailwindCSS"
|
|
],
|
|
"thumbnails": [],
|
|
"commercial": true,
|
|
},
|
|
{
|
|
"id": 8,
|
|
"name": "Poczuj - Szkoła z Lasu",
|
|
"short_description": "Interactive music composition app for children.",
|
|
"description": "A commissioned project for \"Szkoła z Lasu\". This application is an interactive tool designed for children, allowing them to compose music that reflects their current emotions. It combines educational values with creative expression, helping young users understand and express their feelings through sound.",
|
|
"category": "Web",
|
|
"github_url": null,
|
|
"visit_url": "https://poczuj.szkolazlasu.pl/",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"React",
|
|
],
|
|
"thumbnails": [],
|
|
"commercial": true,
|
|
},
|
|
{
|
|
"id": 9,
|
|
"name": "Codebase to Prompt",
|
|
"short_description": "CLI tool to convert codebase context into LLM prompts.",
|
|
"description": "A Rust-based Command Line Interface (CLI) tool designed to aggregate and format a codebase into a single prompt suitable for Large Language Models (LLMs). This tool streamlines the process of sharing code context with AI assistants.",
|
|
"category": "Desktop",
|
|
"github_url": "https://github.com/GKaszewski/codebase-to-prompt",
|
|
"visit_url": "https://crates.io/crates/codebase-to-prompt",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust",
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 10,
|
|
"name": "Parasitic God",
|
|
"short_description": "Game Jam entry created in Godot.",
|
|
"description": "A game created during a Game Jam. It explores themes of cosmic horror and parasitic control. Developed using the Godot Engine.",
|
|
"category": "Game",
|
|
"github_url": null,
|
|
"visit_url": "https://gabrielkaszewski.itch.io/parasitic-god",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Godot",
|
|
"C#"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": "Broberry",
|
|
"short_description": "Action-packed Game Jam entry.",
|
|
"description": "A fun and fast-paced game developed for a Game Jam. Check it out on Itch.io!",
|
|
"category": "Game",
|
|
"github_url": null,
|
|
"visit_url": "https://gabrielkaszewski.itch.io/broberry",
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Unity",
|
|
"C#"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 12,
|
|
"name": "Chip8 Emulator",
|
|
"short_description": "CHIP-8 interpreter written in Rust.",
|
|
"description": "A fully functional emulator for the CHIP-8 programming language, written in Rust. It demonstrates low-level programming concepts and system emulation.",
|
|
"category": "Desktop",
|
|
"github_url": "https://github.com/GKaszewski/chip8",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust",
|
|
"Raylib"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 13,
|
|
"name": "Godot LDtk Importer",
|
|
"short_description": "Plugin to import LDtk maps into Godot.",
|
|
"description": "A tool designed to bridge the gap between the LDtk level editor and the Godot Game Engine. It streamlines the workflow for developers using LDtk for level design.",
|
|
"category": "Desktop",
|
|
"github_url": "https://github.com/GKaszewski/godot-ldtk-importer",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Godot",
|
|
"C#"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 14,
|
|
"name": "Simple Cloudflare DDNS",
|
|
"short_description": "Dynamic DNS updater for Cloudflare.",
|
|
"description": "A lightweight utility to automatically update Cloudflare DNS records with your dynamic IP address. Useful for home labs and self-hosting setups.",
|
|
"category": "Api",
|
|
"github_url": "https://github.com/GKaszewski/simple_cloudflare_ddns",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust"
|
|
],
|
|
"thumbnails": []
|
|
},
|
|
{
|
|
"id": 15,
|
|
"name": "QR Generator",
|
|
"short_description": "Fast and simple QR code generator.",
|
|
"description": "A utility tool for generating QR codes instantly.",
|
|
"category": "Api",
|
|
"github_url": "https://github.com/GKaszewski/qr-generator",
|
|
"visit_url": null,
|
|
"download_url": null,
|
|
"technologies": [
|
|
"Rust",
|
|
],
|
|
"thumbnails": []
|
|
}
|
|
];
|