DEV Community

loading...
Niko Heikkilä profile picture

Niko Heikkilä

Software craftsman with a strong passion for open source software and continuous improvement.

Education

Software Engineer / Self-Taught

Work

Software Engineer at Futurice

All 143 comments

My 21st Century Note-Taking Workflow

I had read good reviews about it, and owning a Kindle had alr...

My 21st Century Note-Taking Workflow

Interesting. I haven't found Remarkable too big – rather I'd ...

Fight the Inner Impostor with Just-In-Time Learning

Absolutely! Always prefer learning fundamentals (rarely grow ...

What defines a senior software engineer?

It's easier to say what does not define a senior engineer. He...

How many email addresses do you use?

One for work, one for personal life, and 100+ aliases for dif...

Lights, Camera, Action! My Tech Setup For Recording Courses && Podcasts

Really cool setup! Can you get any taxing benefits from purch...

Quoth the Raven, Virtualize Your Stand-Ups

Thanks for creating it! Although now my team uses Slack, neve...

Calm, Private and Healthy, A HEY Email Review

HEY is really a refreshing rehydration for email. So far I've...

Are you in the GitHub Arctic Code Vault?

I did! And I even contributed to Forem. 💪

God Mode in browsers: document.designMode = "on"

This makes a good office prank when a colleague has forgotten...

Want to help cover #news on DEV?

Sounds cool. I follow tech topics regularly and would like to...

When are you happiest as a coder?

Find a bug Write a failing test for it Fix the bug Ensure th...

What do you call your folder where you keep your code?

Mine follows this pattern: ~/src/<gitserver>/<owner...

I'm Leaving DEV. Here's Why.

Good luck, Emma! I imported your RSS feed into Feedly – not t...

Replacing master in git

If we visualize Git as a flow of branches from a single point...

Do you consider the term "blacklist" a "racist" term? If yes, what is the alternative?

I'm pretty happy that we have open-source projects like Alex ...

Do you consider the term "blacklist" a "racist" term? If yes, what is the alternative?

Allowlist / denylist.

ACID Properties

Thanks! Very helpful post. ACID is often asked in a tech inte...

What makes a great development environment?

Self-serviceable. You install it, you run it, you deploy it. ...

Remote Work Is Not The Best Possible Future

Try Excalidraw, it's a very neat open-source "multi-player" w...

Remote Work Is Not The Best Possible Future

I can't disagree more. Me neither. About your post. Virt...

Beautify your Windows Terminal 🦄

I've opened a couple of large files in Windows Terminal and V...

For Empowering Community

Cool, cool, cool! A couple of days ago I wrote a post about ...

Will Ubuntu 20.04 Steal More Windows Users?

I installed Ubuntu 20.04 inside WSL so they kind of got me in...

Where should I host my static website?

I've liked Now by ZEIT Vercel, but they constantly throttle m...

How To Spell JavaScript

But what about PureScript for all of us geeks who can't toler...

Hugo vs Jekyll: an epic battle of static site generator themes

Great post! I've also been working with Hugo to setup documen...

Layman's Guide to Higher-Order Functions

I once read an article where every primitive value was constr...

Layman's Guide to Higher-Order Functions

Thanks for your input. Regular expressions were simply an exa...

Layman's Guide to Higher-Order Functions

Your point is very valid, and there are two schools here: On...

Tell me about your first email address

My first one was a hotmail.com address. Didn't use it much fo...

A semi technical explainer of all known Zoom issues

I was surprised to find Zoom growing its user base due to the...

Custom keyboard mappings

I've been trying to learn Karabiner but couldn't figure out...

Don't Use Bash for Scripting (All the Time)

Closest guess is that the solution was made in a hurry, and...

Advantages of a JavaScript Map

I can imagine Maps are a great way to store application con...

How does your team handle critical production errors?

We're using Sentry to catch live errors. It has a handy int...

Push to a forked pull request branch on GitHub—Am I doing this right?

You could also push with git push -u andy his-branch-name w...

Pick. Squash. Drop. Rebase! (Comic)

Atlassian has this covered better than I could put in words...

What's Your Fav. Dev Laptop? Why?

The new keyboard is a very good reason to upgrade. My only ...

Pock an awesome utility for the Mac Touchbar

This is a pretty cool project, thanks. However, as I'm usin...

Pick. Squash. Drop. Rebase! (Comic)

I can recommend rebasing when working in a team. Keeps the ...

What is Laravel? Explain it like I'm five.

Both Laravel and Symfony are viable choices when we want to w...

DevTips: Use early returns to avoid nested conditions

Pattern matching can be (sort of) simulated in languages su...

Catching every single exception with Python

This is cool! I think many frameworks use this or similar m...

Checking a Web Page for Dead Links (A Golang Command-Line Tutorial)

Yes. I build my static blog with Gatsby, which has a sitema...

PHP - 'dump' those debug statements!

I agree with not using var_dump(). Every PHP developer shou...

Are there any Mastodon instances for devs?

I've found myself comfortable in mastodon.technology - but ...

The First 10 macOS Apps I Install in 2019

Nice list! I began documenting my selection of apps into a ...

Death of the Production Line and Factory Workers Attitude

Indeed. This is what creates 10x teams.

What's Your Fav. Dev Laptop? Why?

Macbook Pro (even with the butterfly keyboard) has been my ...

Why Not Having a CS Degree is Awesome

Bringing a full stack web application to life and keeping i...

Why Not Having a CS Degree is Awesome

Bootcamp grads are typically given the shit work that nobo...

Launching Hoppscotch v1.0 👽 - free, fast & beautiful API request builder 🎉

Congrats! I was briefly observing Postwoman when it was fir...

The Future of DEV

This is awesome! In addition to developer communities, I wo...

Why I Switched From Visual Studio Code To JetBrains WebStorm

Majority of my professional career has involved working wit...

My blog is proudly powered by Gatsby (with some super powers)

Nice! I'm working on migrating my Gatsby blog to Typescript...

Résumé / CV Sift

What's the general opinion on applicants who don't send a t...

Welcome Thread - v36

Welcome to DEV and enjoy your stay, fellow Finn. 🎉

Who/what should I follow on Instagram for web-dev?

Seeing her latest posts I'm bashing my big DISAGREE button ...

Who/what should I follow on Instagram for web-dev?

I enjoy following coding_unicorn. Her style of picking a li...

Customizing Your Shell Prompt for Productivity

Then you're delighted to know that Starship is basically ze...

Customizing Your Shell Prompt for Productivity

I was not aware of this feature. Quite cool, although it sm...

Customizing Your Shell Prompt for Productivity

Correct. This only affects the shell so you can choose the ...

Reactgate Recap

Typical Twitter. Not regretting the decision to leave the ser...

Don't Use Bash for Scripting (All the Time)

Some of the larger scripts I create with different language...

What Is the Best Place for Object Storage in 2019?

This looks good as well. They even maintain their own Vue l...

What Is the Best Place for Object Storage in 2019?

Thanks! I will look into Firebase. The project will be dep...

Why DEV hosts on Heroku (and how we configure our service)

How is the development pipeline with Heroku working? Do you...

What are the worst security practices you've ever witnessed?

This might not be a "bad security practice" but rather a fe...

What does your team do when your communication channels go down?

Haven't heard of Wire before. Screen sharing is definitely ...

What does your team do when your communication channels go down?

It's good, because they've copied most of the good parts fr...

What does your team do when your communication channels go down?

We're hosting Mattermost (on-premise Slack alternative) pri...

Put dev.to on your resume!

I have put this under Volunteer Experience although it coul...

Quickly switching between branches

As a bonus, using Fish shell you can type git checkout <...

The Definitive List of Things I Don't Know

Well, had I included all the Javascript frameworks I don't ...

The Definitive List of Things I Don't Know

Admitting one's lack of knowledge is a step towards right d...

The Definitive List of Things I Don't Know

Ah yes, not all the regions share the same level of free sp...

The Definitive List of Things I Don't Know

Do share this post to relevant people then. 🔥

The Definitive List of Things I Don't Know

True. While realizing the limits of one's knowledge one mus...

The Definitive List of Things I Don't Know

Thanks! I admit this post was a bit more speechy compared t...

What size company do you work for? What's that like?

12 years old startup that has grown into a 50+ employee str...

How I Started Existing on the Internet

Documenting a learning or growing process is an important s...

What does your Terminal look like?

I'd guess in the past it has been too exotic a choice for d...

Does Coding with Column Width of 80 Make Sense in 2021?

In my team we have ditched the hard line length rule and ac...

Show your own /uses page

Thanks for the tip! Opened a PR.

Show your own /uses page

Oh yeah. I have my own /now page as well here. It's very ni...

Show your own /uses page

From my point of view, reading these pages made by others i...

How to customize the new Windows Terminal with Visual Studio Code

It's a very promising terminal app which I will likely swit...

Show your own /uses page

Nice! I'd imagine these would be great programming challeng...

Show your own /uses page

Thanks! What is the /open page used for?

What does your Terminal look like?

It's not the fastest terminal emulator out there but defini...

What does your Terminal look like?

Because there is no iTerm for Windows. With Hyper I can rep...

What does your Terminal look like?

Almost the same with Ali! Using: Hyper 3 as terminal app...

Using isset() and empty() hurts your code

Good post. 👍 Laravel (Eloquent) ships with a nice findOrFa...

Five Things About VS Code

The only thing I miss in VS Code is an official extension f...

Generating Conventional Changelogs

Yes, there are a lot of cool tools for those who wish to do...

Which editor do you use when opening files like .bash_profile, etc?

code -r /path/to/file This opens the file with VS Code to ...

Why Telegram is the One True King of Messengers

Feel free to continue as you were. I guess WhatsApp has sti...

Why Telegram is the One True King of Messengers

They have open-sourced their client library, though, along ...

Why Telegram is the One True King of Messengers

Yes, and being an active user of Slack and other popular me...

Why Telegram is the One True King of Messengers

I hope they will never default to end-to-end encryption if ...

What's your commute like?

About 10 minutes of cycling to work. It's all downhill from...

Docker everywhere is not a good thing.

Speaking of Gitlab, having a Docker support on their CI pla...

Serving Gatsby Site With Docker Multi-Stage Build

Directly, no. You would have to access the host node runnin...

Don't Use Bash for Scripting (All the Time)

Yes, for maximum compatibility the old % way of concatenati...

Serving Gatsby Site With Docker Multi-Stage Build

That's a good question which someone might know a better an...

Don't Use Bash for Scripting (All the Time)

You're using Python 3.5 or earlier? f-strings are quite del...

Don't Use Bash for Scripting (All the Time)

Task runners are great tools for running maintenance script...

Don't Use Bash for Scripting (All the Time)

You are just trolling here, friend. No one in this discuss...

Don't Use Bash for Scripting (All the Time)

Your scenario highlights a work culture where junior dev sk...

Don't Use Bash for Scripting (All the Time)

Good points. An analogy could be made with text editors. On...

Don't Use Bash for Scripting (All the Time)

Thanks for your input. Since you're just obviously misreadi...

Don't Use Bash for Scripting (All the Time)

Thanks for reading the article thoroughly. 👍🏽

Don't Use Bash for Scripting (All the Time)

Hi, I've written far too many Bash scripts to understand it...

Static Site Blog Post Generator

Thanks for this post! I made small modifications and added ...

When npm tells you you're hosed

Would the npm ci command be of any help in this kind of sce...

Why I Switched From Visual Studio Code To JetBrains WebStorm

Hot take: If you need a full-blown IDE to refactor your appli...

Greenfield Wordpress Plugin Development in 2019

The only decision between picking Wordpress 4.x or 5.x is a...

PHP needs its own ES6

Problems with arrays mentioned in this post are the exact r...

Re-implementing jQuery methods in the HTMLElement prototype

These are very nice! Have you also tried implementing Ajax ...

Technologies of future past

It's best to guess these at a higher abstraction level than...

Free CI/CD for your personal or entrepreneurial endeavors! 💸

At work we are running our own Gitlab instance with configu...

Who's looking for open source contributors? (October 22nd edition)

My Python library for interfacing with Troy Hunt's Have I B...

Who's looking for open source contributors? (October 15th edition)

My Python library for interfacing with Troy Hunt's Have I B...

Set up My Computer with Me!

Since you are familiar with rbenv I can recommend also pyen...

dev.to Show us your octocat alter ego

𝚗𝚒𝚔𝚘 𝚑𝚎𝚒𝚔𝚔𝚒𝚕𝚊 ✍️ @nikoheikkila If Gandalf is a wizard...

Exposing localhost server to the internet in one minute

I've been using ngrok for some time now, and your post made...

Are there any Mastodon instances for devs?

This instance has gotten some mentions, and looks promising...

Are there any Mastodon instances for devs?

Cool! Signing up now.

Are there any Mastodon instances for devs?

I don't really feel this "everyone must be on Mastodon now!" ...

Managing Your Personal Sprints w/ Trello

Great tip! Do you replicate Jira tickets by hand or is ther...

How do you take notes?

I usually write stuff with my editor of choice (currently VS ...

The (Im)Practical Continuous Delivery

This sounds like a reasonable solution, and we too have tak...

The (Im)Practical Continuous Delivery

Thanks! I'll try to write more posts if and when something ...

The (Im)Practical Continuous Delivery

Well said. With poorly designed monolith software continuou...

The (Im)Practical Continuous Delivery

Yes, Kent Beck is one author along with Jez Humble and Mart...

Check Your Passwords for Pwnage - The Pythonic Way

Thanks Phil! Yes, it was not too hard to implement similar ...

Describe the worst coding culture you've been a part of

We had a team of five plus me - all students. We were given...

Open Source, PHP and Visual Studio Code

I'm able to use XDebug without much problems in VS Code but...

Three Lessons I've Learned as a Professional Web Developer

Yes, at some point I'll have to. I started my PHP path (aft...

loading...