About Me
I like figuring things out.
That has taken me through more than a decade in social services and development work, a Master’s Degree in Social Services, and eventually into programming. I started teaching myself Python in 2019, completed Data Science and Full Stack studies, and am now a third-year Information Technology Engineering student at Savonia University of Applied Sciences.
Programming appeals to me because it rewards curiosity and clear thinking. I enjoy taking messy problems apart, understanding what actually matters, and building things that are useful without being more complicated than they need to be.
My earlier career also means I tend to think about the person on the other side of the software. Systems have users, organisations and awkward real-world constraints. Knowing the technical answer is useful; knowing whether it solves the actual problem is better.
You can find what I’m currently building on Github
Projects
I like building small, practical tools that solve real problems in my own work, learning, or everyday life. My current focus is Python, full-stack web development, CLI tools, local-first workflows, and simple systems that remain useful after the initial novelty has worn off.
Featured
tgpt — Terminal-first AI assistant and local mini-wiki
Status: Current personal tool and portfolio project
tgpt is a Python CLI tool for using OpenAI from the
terminal. It supports interactive chat, configurable prompt modes,
one-shot analysis of piped input, local JSONL session history, and
curated Markdown notes.
The goal was to build a practical tool for my own workflow: ask quick questions, review logs or diffs from the terminal, and save useful answers into a local, searchable mini-wiki.
Key features
- Interactive terminal chat
- Prompt modes for debugging, review, rewriting, and concise answers
- Piped input support for logs, diffs, and text files
- Safe truncation for large input
- Optional
--no-savemode for sensitive requests - Local JSONL transcripts and Markdown notes
- Note search and explicit note reuse as context
Technical highlights
- Python CLI architecture split into focused modules
- TOML configuration with validation
- Local-first storage model
- Pytest coverage for parsing, configuration, storage, message building, and truncation
Python, CLI, OpenAI API, pytest, TOML, JSONL, Markdown
Must (To) Do Today! — Full-stack task management app
Status: Earlier full-stack portfolio project
A full-stack task app focused on daily task selection and simple prioritization. Users can register, log in, create tasks, mark them complete, and star important tasks so they remain visible.
Key features
- User registration and login
- Password hashing with bcrypt
- Add, delete, complete, and prioritize tasks
- Responsive React frontend
- PostgreSQL-backed persistence
What I learned
- Structuring an application across frontend, backend, and database
- Building REST API endpoints for users and tasks
- Implementing authentication and password hashing
- Deploying frontend and backend services separately
Frontend repository
Backend repository
React, Node.js, Express, PostgreSQL, bcrypt
Client Work
Website for a wellness entrepreneur
Status: Delivered client project
A responsive website for a wellness entrepreneur, built with HTML, CSS, and JavaScript. The work included layout, visual design, responsive navigation, content structure, and a contact form aligned with the client's brand.
Live siteHTML, CSS, JavaScript, responsive design, forms, client work
Earlier Projects
Netflix Sleep Timer Browser Extension
A Firefox extension built to solve a practical family problem: limiting Netflix playback without needing to monitor episode endings manually.
Features
- Close the window at the end of an episode
- Pause playback after a user-defined time
- Close the window after a user-defined time
GitHub repository
HTML, CSS, JavaScript, Firefox Extension APIs
Monte Carlo Retirement Calculator
A Python simulation tool for estimating retirement portfolio outcomes using historical stock and bond returns.
The user can set the portfolio type, starting capital, annual withdrawals, retirement-length assumptions, and number of simulations. The program estimates the probability of running out of money and visualizes selected results.
GitHub repository
Python, file handling, simulation logic, matplotlib
Pomodoro Work Timer GUI
A Python GUI timer for Pomodoro-style work sessions. The application alternates between work and break intervals, tracks completed sessions, and logs work history to a local file.
GitHub repository
Python, GUI programming, local file handling
Quick and Dead Single-page Application
A small JavaScript application for generating randomized kettlebell workouts based on the Quick and Dead training protocol.
Live siteGitHub repository
HTML, CSS, JavaScript, responsive design
Technical Skills
- Languages: Python, JavaScript, TypeScript, SQL, C#, Java
- Frontend: HTML, CSS, React, Redux
- Backend: Node.js, Express, REST APIs
- Databases: PostgreSQL, basic familiarity with SQLite
- Testing and tooling: pytest, Git, GitHub, Linux, dotenv, TOML
- Other: CLI development, WordPress, Firefox extensions, basic deployment, and server maintenance
Other Skills
- Youth and social work: Planning, facilitation, communication, and group leadership
- User understanding: Identifying needs in practical, real-world contexts
- Systems thinking: Building simple tools and maintainable systems
- Communication: Explaining technical and non-technical topics to different audiences
Languages
- Finnish: Native
- English: Professional working proficiency
- Swedish: Limited working proficiency
Contact Me
I am interested in junior software development roles, especially where practical problem-solving, backend development, full-stack work, tooling, or user-focused systems matter.
- Email: code@arttu.info
- GitHub: arttuheinila
- LinkedIn: Arttu Heinilä