Note
I'm solving Advent of Code puzzles again this year. I'm using Python and writing explanations in my Advent of Code Digital Garden.
In addition to code explanations, I'm sharing my entire notes that I write during this month as I solve the problems to showcase how I take notes as a developer.
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.
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
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.
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.
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.
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
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 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 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 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.
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.