Juha-Matti Santala
Community Builder. Dreamer. Adventurer.

Blog posts in category “Development”

All things software development

  • Oct 30th, 2024
    I built a custom RSS hydrator for better GitHub and Youtube feeds

    Youtube and GitHub RSS/Atom feeds didn’t quite offer the experience I wanted so I built a web service that takes in a feed, hydrates its contents with more useful stuff and outputs a new feed.

  • Oct 23rd, 2024
    My on the go solution with iPad and Raspberry Pi

    Since my laptop isn’t much of a laptop anymore and I’m on a tight budget, I created a great mobile development and Linux system with an iPad + Raspberry Pi combo. In this post, I share what I have set up and how it has affected my productivity on the road.

  • Sep 26th, 2024
    Automate filling a form with a bookmarklet

    As a web developer, I’m constantly developing websites and apps that have forms. Often these need to be filled over and over and over every day while developing the app. With a nifty bookmarklet, you can skip all that manual work.

  • Sep 18th, 2024
    Do one thing well and communicate with others

    I want software that does one thing, does it well and interoperates with other software so I can use the ones that provide user experience I enjoy rather than being tied to a single option by a big tech corporate.

  • Sep 11th, 2024
    What to do first with a legacy project?

    Whether to write documentation or tests first in a legacy project split the audience in a Mastodon poll. I would start with docs and continue in parallel with tests, letting them feed learnings into each other.

  • Jul 20th, 2024
    Home-cooked, situated software

    I consider myself as a “Saturday evening hobbyist” when it comes to software development but recently I’ve learned better terms like home-cooked software and situated software. For this month’s IndieWeb Carnival, I explore these terms and my relation to them through the tools I build.

  • Jul 10th, 2024
    Different ways I start writing new code

    I approach new code in a few different ways depending on the mood, the feature or bug at hand and my confidence level. Here are the five different approach I use.

  • Jun 29th, 2024
    JSON Schema: require properties based on values of other properties

    How to require one property in the schema based on a value of another property?

  • Jun 10th, 2024
    Webmention bookmarklet

    I streamlined the manual process of sending Webmentions with a quick bookmarklet

  • Feb 28th, 2024
    Search, Webmentions and microformats

    I’ve made some updates on my website - let’s talk about them. I added a search functionality with Pagefind, Webmention support both directions and microformats to my blog posts.

  • Feb 24th, 2024
    Pull request is my proposal for changes

    When I make a pull request to a project, it’s a starting point for everyone involved to make it better.

  • Feb 3rd, 2024
    I like to glue things together

    I’m the type of developer who enjoys using libraries and frameworks and pre-made stuff so I can focus on the outcome.

  • Nov 4th, 2023
    Use SQL to query your CSV files

    You don’t need to store your data in database just to be able to query it with SQL. You can use csvsql instead!

  • Oct 11th, 2023
    Handling JSON on command line

    JSON is a good format for programmatic use but it’s rather verbose to read and traverse unless you use JSON specific tooling. In this post I take a look at a few options: jq, jless and fx.

  • Oct 4th, 2023
    Document your secrets

    We’ve become quite good as industry in avoiding leaking our secrets through version control. But we might have stepped one step too far and have ended up with .env.sample files that have nothing but environment variable names.

  • Sep 13th, 2023
    Pull requests are great

    I’ve seen a lot of critique lately towards the pull requests in teams and wanted to share my thoughts on why I like pull requests

  • Sep 6th, 2023
    My iterative approach to software development

    When I build features, I’m very iterative. I start by going fast and deep to confirm I know where the goal is and that it’s achievable and then I circle back to write better code each iteration.

  • Mar 29th, 2023
    Organizing a mess with cherry-picking

    I created a messy pull request that was too large to be nice to review and that hindered my productivity a ton. So I learned how to cherry pick in git and gained mental clarity.

  • Jul 6th, 2022
    Developer's Guide to Communities

    Dive in to learn why software developers benefit from joining developer communities locally and globally. Many of the best things in my life are a result of being active in communities and I'll share all my secrets to help you get started.

  • Jun 29th, 2022
    Javascript's console is so much more than just console.log

    I previously wrote how print statements are the best debugging tool. This time, I'll dive deeper into debugging via printing in Javascript/Typescript land. console.log is well known but there's more than meets the eye.

  • Nov 24th, 2021
    Hello code, my old friend

    It's been a while since had time and energy to code but when I got into the flow, I ended up doing a major rewrite of an application I had built earlier in the fall.

  • Oct 6th, 2021
    Python 3.10 is out and I'm excited

    A long-awaited release of Python 3.10 is finally here. Its two major new things are the introduction of pattern matching and the improved error messages.

  • Jul 21st, 2021
    Javascript Basics: Scope

    One abstract concept Javascript developers need to learn quite early on is the concept of scope. In this blog post, I'll walk you through what scope is and how it works in Javascript.

  • Jul 14th, 2021
    codebase ep. 4: Web Components with Matias

    Web Components provide an API that allows you to write custom HTML tags with custom functionality. Matias Huhta joined me in codebase to talk about them and live code examples for how to get started with Web Components.

  • Jun 9th, 2021
    codebase ep. 3: PHP with Larry

    In the third episode of codebase, I sat down with Larry Garfield who has over 20 years of experience with PHP. We discussed the history and the future of the language and learned so much about how PHP has evolved.

  • May 12th, 2021
    codebase ep. 2: Clojure with Ykä

    In the second episode of codebase, I sat down with Ykä to talk about and live code a bit of web backend with Clojure. Here's a recap of what we discussed.

  • Mar 17th, 2021
    How to parse command line arguments in Python

    Python is a great language for writing command line applications. Its built-in tool for parsing arguments is powerful and I gathered together some of the most used cases.

  • Feb 17th, 2021
    Pattern matching is coming to Python

    Pattern matching is coming to Python this year and I'm so excited for it! I'll walk you through what is pattern matching and how it's gonna work in Python.

  • Nov 11th, 2020
    Functions 101

    There is a brief moment in new software developer's life when the concept of functions (or subroutines or methods as they are called in some languages) is bit fuzzy. This post aims to be a good starting point on your journey to understand functions, how they are built and how they are used.

  • Nov 4th, 2020
    Validating dynamic data conditionally with Joi

    How to validate dynamic data using conditional validations using Joi library? In this post, I explore a use case from last week to see how we can check that all numeric values are positive values.

  • Jun 3rd, 2020
    Different approaches to learning programming

    You can teach and learn programming many different ways. In this post I compare the hands-on approach to the ground-up approach.

  • May 27th, 2020
    How to scrape a website with Python & BeautifulSoup

    Learn how to scrape data from websites using Python and BeautifulSoup so that you can use it in your scripts and applications.

  • Apr 30th, 2020
    True, True, True == (True, True, True) in Python

    A friend shared this interesting piece of Python code in our Telegram chat today and I wanted to walk you through it.

  • Apr 1st, 2020
    Testing lifehack: testlab repositories

    Sometimes it's hard to set up tests in a legacy project so I built testlab repositories so I can do TDD when I develop new functionality.

  • Dec 24th, 2019
    Lightning talks

    Speaking in conferences is tough. It's both intimidating to talk to a large professional audience but it's also a numbers game with bad odds.

  • Aug 28th, 2019
    My journey in diversity and inclusion in tech

    I'm very passionate about diversity and inclusion in tech because I used to be a bad actor and the best thing that happened in my life was when I was called out on that.

  • Jul 27th, 2019
    Why I love using command line interface?

    Command Line Interface (CLI) can seem ancient way of interacting with computers but it has many great benefits.

  • Jun 23rd, 2019
    I love writing scripts to solve small problems

    Building software is nice but I'm a big fan of solving my small problems with quick Python scripts

  • May 23rd, 2019
    Make your function calls more readable

    Default arguments in Javascript cannot be named when calling the function. This post takes a look at different approaches to make the code more readable.

  • Feb 14th, 2019
    How to enable SSL in Netlify with custom domain

    I went through the hoops of using custom domain with Netlify and learned about DNS

  • Feb 7th, 2019
    PHP needs its own ES6

    Javascript has been evolving amazingly but I feel PHP is lagging behind itself

  • Jan 28th, 2019
    Better bash history search with McFly

    McFly is a library that will make your life so much easier when navigating through your bash history

  • Jan 27th, 2019
    Post a message from Slack to Twitter with Zapier

    If you want to auto-post something from Slack to Twitter, Zapier is your friend.

  • Jan 17th, 2019
    Learning programming has never been more accessible in Helsinki

    If you're interested in learning programming, the scene in Helsinki is blooming right now. There are long-term options as well as weekend workshops, evening workshops and support groups so everyone should be able to find their place in the community.

  • Jul 27th, 2018
    Developers do design — but we’re not taught it

    In many companies, most of the days we developers end up doing design choices. Whether it’s graphic or service design, by the virtue of building things we make design decisions. But most developers are not taught design, not even the very basics.

  • Jun 13th, 2018
    My love-hate relationship with PHP Arrays

    I’ve been programming PHP for most of my life, almost 20 years now. While PHP has many downsides, horrible history, and terrible reputation, it has improved a lot with PHP 7 and modern frameworks like Laravel that make it really enjoyable to develop.

  • May 23rd, 2018
    Do you want to learn new stuff?

    Continuous improvement, life-long learning, staying on top of your game are all things very close to my heart. It's not always easy though. Sometimes your life (personal and professional) takes a detour and you end up in a situation where your skills get rusty.

  • Feb 7th, 2018
    How I convinced 15+ companies to contribute to OSS

    Story time! On January 2nd I launched Turku Gives Back, a non-profit project to encourage local software companies to give back to open source. Last Friday, February 2nd 16 companies and bunch of individuals joined together, we made 20+ contributions to various open source projects.

  • Jan 10th, 2018
    5 Reasons to Contribute to Open Source

    Open source software has had an immeasurable impact on the modern software business. If you’re building anything for the web, you are most likely heavily relying on infrastructure, software and frameworks built on the open source model — allowing you to get productive with small overhead and benefiting from the efforts of the community.

  • Jan 8th, 2018
    How to build a kickass developer community

    I was asked by a friend to share some tips and best practices from our two years of running the meetup so that others could replicate and prosper. While we can’t really give a silver bullet nor pinpoint exactly where we got it right, I wanted to share a few things I’ve learned while running Turku ❤ Frontend and growing it from 0 to 350+ members with fantastic partners and constant stream of amazing speakers.

  • Sep 20th, 2017
    5 Reasons to Attend a Meetup

    Meetups are fun and we are happy to see the culture is spreading all around the world making them more accessible to people. We started Turku ❤ Frontend a couple of years ago with the aim to help people learn new skills, meet fellow developers and make it easier for professional developers and students to find jobs and thus, making it easier for companies to find local talent.

  • Sep 18th, 2017
    Improve the world — help someone learn

    We all have skills that other people lack. Whether it’s programming, knitting, writing, fixing bikes or cooking delicious food, you are better doing it than someone else. And while everyone of us is good at something, we also crave to learn new skills to improve our lives.

  • May 24th, 2017
    Code in the Dark Turku

    What happens when you put 20 developers behind computers, give them nothing but an editor and a reference screenshot? Together with Valohai and Hub Turku and supported by Reaktor we organized the first Code in the Dark event in Turku last night and it was a blast.

  • May 4th, 2017
    If you are not doing code reviews, start now!

    I was introduced to code reviews few years back in my first startup job and as a junior developer I immediately felt their impact. Having my code reviewed by seniors and reviewing code myself taught me a ton. After that job, I switched to another startup and we had a great code review process in place as well. I thought world was a good place.

  • Mar 4th, 2017
    Building mobile app prototypes with Keynote

    You can quickly build clickable prototypes for your app idea with Keynote with zero programming skills.

  • Dec 13th, 2016
    Building a developer community calls for strong support

    Almost everyone who’s been in touch with crowdfunding in a form or another or has seen a talk about it, knows the classic 4 F’s. Friends, Family, Fools and Fans. I’ve learned that in some sense, it applies to so much more than just crowdfunding.

  • Aug 20th, 2016
    8 hours later + Turku <3 Frontend Hackathon

    Turku ❤ Frontend is a community of (mostly frontend) developers in Turku region that was started in December 2015. Between September and May, we organize meetups at local companies’ offices with talks and beers and during the summer break we just finished our first hackathon.

  • Dec 8th, 2015
    Why I love hackathons

    I’m a huge fan of hackathons. Last weekend, I had the privilege to organize one for the first time after attending a few. Even though being super tired on Sunday evening after a long weekend of very little sleep on a couch, I was so happy being able to organize a successful event.

  • Apr 28th, 2015
    What's with all these sorts, PHP?

    A few days back I was ranting to my friends about PHP arrays. I’m not as much of a PHP hater as many but there’s still some things that really bug me. Everything to do with arrays is one of them. Let’s have a look. I use the phrase normal array to mean a non-associative array (like Python’s list or Java’s array).

  • Sep 9th, 2014
    Beauty of the Pipe

    The Unix Pipeline is a powerful and beautiful piece of software that is sometimes difficult to grasp for a command line beginner. We are used to use graphical interface apps that mostly only interact with each other by writing and reading files if at all. The concept of standard out (stdout) and standard in (stdin) are something that takes some time to learn and understand when one is learning programming and/or data tools in command line.

  • Aug 9th, 2014
    Case study - DataMonkey as educational platform

    A coworker of mine shared a link to DataMonkey, a platform/website to learn basics of data manipulation, Excel spreadsheets and SQL, the language used for database queries in relational databases like MySQL, PostgreSQL and SQLite. During my studies and personal exploration for the best practices in educational systems, I have encountered many that have been quite horrible (like TRAKLA2 which is used for teaching algorithms and data structures) and many that have a bit better approach (like Codecademy and and ViLLE system for teaching programming).

  • Jul 19th, 2014
    Adventures of a Junior Developer

    I had never had any real problems in starting a new summer job regardless of the field. I have been building elements for buildings, assembling phones, guiding kids in sport camps, selling home electronics and video recording sport events to name a few. But when it started to be a time to turn my education into a developer job in a real company, I had these weird feelings of fear and anxiety. It seemed that there were many processes and practices that everybody else just knew about and I had no idea.

  • Jun 1st, 2014
    Becoming a better programming teacher

    About a week ago I got an email through San Francisco Ruby Meetup Group about a workshop on becoming a better programming teacher and given my background and passion for education, it was a no-brainer to jump in. A four hour workshop was organized by General Assembly, a company that provides bootcamp like programs, part time courses, classes and workshops for everyone who wants to become a better developer or change their career into development.

  • Jan 20th, 2014
    Rails Girls San Francisco

    After coaching at Rails Girls Helsinki last November and getting a job in San Francisco, one of the first things I did was checking out if there would be a Rails Girls event here too. And how lucky was I. Last weekend, almost 100 enthusiastic girls and women took their laptops and came to Engine Yard for two-day workshop to learn about web development with Ruby on Rails. Since I already wrote about Rails Girls after the last event, I won’t dig too deep into what it is.

  • Jan 16th, 2014
    Command line magic with git and bash history

    So, in the beginning of January I started as an engineering intern in Chartio and since that my workflow has really improved a lot and I’ve learned and discovered some tricks.

  • Nov 25th, 2013
    Difficulties with teaching and learning programming

    It’s no secret that learning programming is – at least for some of us – an obstacle course. Personally, it took me years to grasp the skills to be a some-what good programmer. For the last 3 or 4 years I’ve been involved in teaching programming basics for freshmen in my university. I started with helping fellow students, then started as a mentor for department and nowadays in addition to previous, I work as a part-time teacher on our courses.

  • Oct 17th, 2013
    Computer illiterate generations – what should we do?

    There has been a lot of discussions during the last years about the IT education of young people. Today, the topic once again popped out in Finnish news when Finnish Broadcasting Company wrote a news piece about the level of IT education in Finnish elementary schools.

  • Sep 9th, 2013
    Rails Girls – building the future

    Today was my first ever Rails Girls event in Helsinki. I ain’t much of a Rails or even a Ruby, I tend to choose Python as my weapon of choice. However, I’ve been long interested in Rails, done some hobby projects with it and even more than that, I’ve been into teaching new people to programming for couple of years now at the university. So coaching a Rails Girls event was super exciting new experience.

  • Jun 30th, 2013
    69 Lines of SQL

    Sometimes I wonder what programming really is and why we hackers find it so compelling. Most of the time we – or atleast I – bang our heads to wall for hours while trying to conquer the challenge. After all those hearth-breaking moments we finally succeed to get the code running and it solves the problem. All the dark clouds disappear, flowers start to bloom and happy squirrels are jumping everywhere. I had one of these moments today while trying to do some SQL magic.

  • Apr 8th, 2013
    TDD Pair Programming at University

    Today was surprising day at the university. I’m taking a class called Designing Object-Oriented Software which has before been somewhat boring 7 x 90 min lectures and an exam but this year our professor hired a guy called Aki Salmi to organise 4 workshops á 4 hours. Beforehand I knew Aki is a guru and an excellent guy but I was still surprised to see how much fun studying at best could be.