Skip to content
View Hamatti's full-sized avatar

Organizations

@asteriskiry

Block or report Hamatti

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Hamatti/README.md

Hi, I'm Juhis

hamatti.org

I'm a community builder, a public speaker and a web developer currently living in Turku, Finland.

I love learning, teaching and sharing what I've learned. I publish a weekly blog, speak in tech events and teach/coach in programming workshops and mentor junior developers.

I run Turku ❤️ Frontend and archipylago and I'm an admin in Koodiklinikka community.

I'm also the host of codebase, a developer community Youtube show.

In social media, you can find me at Mastodon.

Sign up for Syntax Error, a monthly newsletter about debugging that I author.

Things I've written

Developer's Guide to Communities is a guide for developers to figure out the why and how of getting involved with your local and global tech communities.

Guide to landing your first dev job is aimed for anyone seeking to land their first job as a developer.

Humane Guide to Python Errors helps you navigate the error messages of Python programs.

Humane Guide to Debugging Web Apps gets you to the next level on your debugging skills – a crucial part of being a software developer.

How to scrape a website with Python & BeautifulSoup is a popular resource for anyone who wants to get started with getting data from websites to their own scripts.

You should start a blog today shares my motivation for blogging and how blogging is a valuable tool for software developers who want to advance their careers.

Minimal Travel Table Top Game Collection IV: Potluck is the newest iteration of a fun side project I did to make my own board gaming hobby more compatible with travelling.

kittens-everywhere – how to build a browser extension is my first tutorial on how to build a browser extension for Firefox. It's based on a class I taught in September 2022, converted into a blog format.

More can be found at my blog

Some of my best talks

Debugging Python

Debugging can be a stressful experience to a developer. In this talk, I provide practical and hands-on tips both for dealing both with the processes and approaches as well as the technical tools and approaches that can help Python developers turn stressful debugging situations into joyful experiences.

Contemporary Documentation

Teams change often. People leave and people join. In addition to those changes, we tend to forget what we were thinking. That's why it's a good practice to document those thoughts, discussions and decisions into a format that doesn't lose them.

Learning in public

By documenting his own learning journey and experimentations and sharing what he has learned about software development, Juhis has ended up in a lot of great discussions with fellow developers. These discussions have further helped him become better at writing software.

I teach, therefore I learn

There are many ways to improve your skills as a developer. Teaching programming is an awesome but bit under-appreciated one. Becoming a senior developer is about so much more than just technical competency. It’s about helping others succeed, it’s about becoming a leader and it’s about being a good communicator with users, clients and teammates.

Lightning talk: Self-documenting code

Some people argue that good code is self-documenting. But code can only tell you what or how but not why. In this funny 5-minute lightning talk I'll demonstrate why.

Lightning talk: Comparing version numbers

Comparing version numbers sounds relatively straight-forward until you go down the rabbit hole and explore the world of different systems. This 5-minute lightning talk is half educational, half makes-people-laugh entertaining look into the wild world of versioning systems.

Find more at my website or book me

What do I build?

On my freetime, I love to build small projects for myself and for the communities I'm involved in. Here are some of the highlights:

235

235 is a command-line tool that brings NHL results directly to your terminal while being a tribute and homage to YLE's tekstitv page 235.

You can read more about it at Introducing: 235.

config-renderer

config-renderer is a Python command-line tool that renders HTML documentation pages from dotfiles. It uses its own mini-markup language to customize the output while keeping the original configuration files functional and readable.

Pokemon related stuff

Pokemon TCG card viewer a Firefox extension for Pokemon TCG players. When activated, makes Pokemon TCG Online card codes (in format of BRS 120) hoverable and will show the card image on hover. This makes it easy to check cards and what they do when reading through decklists in Youtube descriptions, blogs or forum posts.

Pokemon TCG Online Redeem Code Helper a Firefox extension to help Pokemon TCG players when redeeming large amounts of bulk codes in Pokemon TCG Online client.

gym-leader-challenge-deck-validator is a web application for validating deck lists used in Pokémon TCG Gym Leader Challenge format. The app can be used at https://glc-checker.netlify.app/.

card-print-css is a CSS styling that turns any number of <img> (of playing cards) on a page into the correct size for cutting and sleeving when printed on A4 page. I use it for prototyping, playtesting and proxying.

ptcgo-parser is a NMP package for parsing PTCGO deck lists into PokemonTCG.io API compatible format.

pkmn-attack-damage is a web app that allows users to search for cards in expanded and standard format for specific damage value.

prism-extension-ptcgo is an extension to syntax highlight library Prism.js that provides syntax highlighting for Pokemon deck lists.

proxymon is a bit outdated tool for printing proxies based on PTCGO deck lists.

Board Game related projects

Potluck is a semi-universal deck that I've designed. It fits into a pocket and plays a ton of great games.

blackhole-game is an experiment to convert Blackhole board game into a digital version.

flamme-rouge-bot-companion is a web app that makes playing Flamme Rouge with bots more manageable.

flamme-rouge-bot-companion-script is a CLI tool that makes playing Flamme Rouge with bots more manageable.

taajuus is an online adaptation of Wavelength board game for video call gaming.

Pinned Loading

  1. nhl-235 nhl-235 Public

    A command line tool that brings NHL results directly to your terminal

    Rust 16 2

  2. config-renderer config-renderer Public

    A Python CLI utility to generate HTML documentation from dotfiles

    Python 4

  3. adventofcode-2023 adventofcode-2023 Public

    Python solutions for Advent of Code 2023 puzzles using Jupyter Notebooks and writing blog-style explanations

    Jupyter Notebook 2 1

  4. gym-leader-challenge-deck-validator gym-leader-challenge-deck-validator Public

    Pokémon TCG Gym Leader Challenge Deck Validator

    JavaScript

  5. taajuus taajuus Public

    A web adaptation of Wavelength board game

    JavaScript

  6. ptcgo-card-viewer-extension ptcgo-card-viewer-extension Public

    A browser extension for viewing Pokemon TCG cards by hovering over their PTCGO codes

    JavaScript