RSSAmplifier

Blog

The Scientific Coder

A scientific software developer with over a decade of experience in academia, startups and industry. My mission is to turn you into an elite numerical computing

scientificcoder.comRSS feed ↗20 posts

Latest posts

When should you turn your ugly research script into a reproducible package?

Blog status: I haven’t been spending much time on the blog. I admit I don’t have much to say at the moment, we’ll see how it goes in the future. This current article is mostly a journal-like question for myself, to reflect a bit, but maybe it helps o...

Straightforward Functional Programming Examples in Julia

Functional programming has gained quite some popularity in recent years. Yet if you code with the Julia language you probably already used a lot of functional programming concepts without really thinking about it. In it's essence functional programmi...

Julia Type Annotations

The Julia language allows type annotation in multiple ways, with different behaviors, in order to improve performance and readability of the code. Types annotations always use the :: syntax, for example in function declarations such as f(variable::In...

To Dict Or Not To Dict: Comparing Data Structure Sizes

Searching for the best data structure for your problem can be a tricky business. The chosen data structure should be easy to understand for other developers, run fast in the algorithms where it's used and be memory efficient. You can't always optimiz...

Comparing Package Management in Python, R, Julia, and Rust

When switching between programming languages, people often start with comparing syntax differences, and many overview exist on this topic. However, a large part of programming revolves around package management, especially if you want to develop your...

User-defined Show Method in Julia

I often find myself looking for a way to write custom display methods for Julia types on the REPL. Time to write it down in a short pragmatic blog post, for you and my future self. What's the issue? When exploring on the Julia REPL or in notebooks, y...

JuliaCon Local Eindhoven 2023

I am very happy to announce that I am an organizer of the first city-level JuliaCon conference. This will be a one-day event in Eindhoven on December 1st, organized together with the PyData Eindhoven conference on November 30th (the day before). The ...

How to deploy algorithms anywhere?

Let's say you are an incredible scientific programmer. You've got some pretty math, machine learning model or scientific computing code. And you want to give it to other users. Maybe even turn it into a real product and make a profit from your work. ...

Fruity Composable Design Patterns in Julia

A design pattern is a repeatable solution to a common coding problem. Design patterns are not something beginner programmers typically think about a lot (that includes most scientists), they are probably focused on making their code work. At least th...

Software Testing for Scientists

I am currently reading the book "Software Engineering for Science." It is one giant complaint about how scientists are terrible at writing maintainable code for themselves. I won't go into all the pain, but I do recognize that pain deeply and have wr...

The Nebulous Mysteries of Scientific Coding

There is a concept in meta-rationality called “nebulosity”. I will look up the definition later, but in my own words nebulosity means the following: Nebulosity: a concept or problem is ill-defined. You cannot describe it perfectly. The boundaries of...

Scientific Software Institutes

Have you ever gone through life completely oblivious to something? I recently experienced that sensation when I stumbled upon an entire ecosystem of institutions, only learning about them after starting this blog. These organizations are dedicated to...

Clean Code Tips for Scientists #1 - Reproducible Environments

Author commentary: I am starting a "clean code" blog series with simple tips that you can integrate into your workflow. I often write long, complicated articles that try to teach a lot at once. This is an attempt to chop things up in bite-sized chunk...

Building a Scalable Inner-Source Ecosystem For Collaborative Development

Three years ago, we decided to embrace the Julia programming language to solve the two language problem at our organization. We want our scientists to join forces with software engineers so that they can work on the same problems together. In our jou...

Extreme Multi-Threading: C++ and Julia 1.9 Integration

In this tutorial we demonstrate how to call Julia libraries with multiple threads from C++. With the introduction of Julia 1.9 in May 2023, the runtime can dynamically "adopt" external threads, enabling the integration of Julia libraries into multi-t...

Mastering Scientific Programming: Practical Tips and Tricks

Scientific programming involves writing code to solve scientific problems. This can range from simulating complex physical phenomena to analyzing large datasets. While such software is incredibly important, it can be challenging for scientists to lea...

How to solve the two language problem?

My professional obsession is solving the Two Culture Problem. How can scientists optimally join forces with software engineers and their principles, so that we can work on the same problems together? How to accelerate the cycle from idea to product? ...

Production-ready code for scientists: 3 lessons learned

How do you become a great scientific coder? To understand this, I want to ask others about their journey and share their lessons with you. This post is a collaboration with Keith Myerscough, a mathematical consultant and senior engineer, who helped m...

Automate Your Code Quality In Julia

Code quality is a topic in Julia that I believe deserves more attention from both users and developers. The Julia language originated in academia and focused heavily on helping scientists write better code, which is going great and deserves much prai...

The Art of Multiple Dispatch

I love thinking visually by drawing doodles and schematics for my work. It's one of my favorite things to do, next to coding. When working with the Julia language, one visualization I enjoy is seeing the type space of a method that you are dispatchin...