Combining working and studying as a consultant.

The demand for software developers is record-breaking, and more and more people with different backgrounds end up working in programming. Some come in through bootcamps, some through universities, some through programming as a hobby. Most newcomers are good at staying relevant. They learned the right technologies at the right time and can manage a modern full stack application (probably with React and a Node backend). If we look at how fast programming has evolved through the last twenty years, one can pretty much say that everything changes every 5 years. This puts a lot of pressure on all developers to…


An introduction to web components and custom elements

Photo by John Barkiple on Unsplash

Web components allow for creating reusable custom elements. You might have used front end libraries such as React, which allow for easily creating components. Using reusable components reduces duplication. It makes the code more DRY (don’t repeat yourself), which is a common best practice in programming. The component also encapsulates its styles and functionality, which makes the DOM cleaner and adds to separation of concern. Although components are available through libraries like React, you don’t need a framework or library to create them. Most modern browsers (with the exception of Internet Explorer and Edge) support so-called custom web components.

In…


Photo by Brooke Cagle on Unsplash

Data Driven Documents (D3.js) is a JavaScript library used to create visualizations of data using HTML, CSS, and SVG. It does this by binding data to the DOM (Document Object Model) and its elements and allowing them to transform when the data changes.

For example, let’s say we want to create a pie chart of amounts of books in every genre in a library. We have some data which we update every time a librarian enters a new book. We store it in the application state, in a variable called “books”.

const [books, setBooks] = useState(initialBooks)const initialBooks = […


Hobby project DevOps for everyone.

Photo by Omar Albeik on Unsplash

Many teams have a separate role for tasks related to infrastructure and Dev Ops. Once the developers get their tools up and running, they rarely have to care about how the underlying structures like CI/CD are implemented and why. However, there is a basic fluency which developers need to have when it comes to Dev Ops tasks. Knowing these basics enables developers to be more autonomous when it comes to speeding up the development lifecycle and shipping better quality code. Dev Ops skills enable the whole team to achieve a more agile way of working and use growth hacking and…


A Dip into Cryptography

Photo by Diomari Madulara on Unsplash

All around us data is transferred faster than ever. Sensitive data is also part of our everyday life. To protect that data, we use encryption. When we encrypt data, it changes in some way that renders it useless to the possible viewer, but that can be changed back to its original state when it arrives safely to the meant receiver. These transformations rely heavily on math, and particularly on a field of math called number theory. This text takes us through the basics of cryptography both from a mathematical perspective and as a programming matter.

Ciphers Yesterday and Today

For as long as writing…


The ABC’s of Category Theory and Functional Programming

Functional programming is no longer only an academic pastime. The JavaScript community has also stepped up it’s game in this field, and knowing one’s functional ABC’s has become an important part of web development. One of the key takeaways from learning functional programming is adjusting ones mind to possibilities and ideas outside of OOP (object-oriented programming). In this text I’ll try to uncover some of the mathematics and ideas behind those handy functional concepts and take down parts of the brick wall of academic lingo surrounding the theoretical parts of functional programming.

Category Theory — Objects and Arrows

Category theory provides a framework for thinking about…


K-Means Under the Hood

”You don’t need to understand the algorithm as long as you know how to use it” seems to be a common ethos amongst developers dabbling around with data science. I don’t object: digging right in is proven to be the best way to get started with any new tools. However, sometimes things go wrong, and when they do, debugging something one has no idea about is a much longer road than researching the basics before getting started.

Speaking of a long road

How far is 1 from -6 on the number line? How long is the way from Helsinki to Tampere? These questions seem natural…


Working with Projectile Motion in Unity

One of the most exciting aspects about working as a consultant is that one can end up in all kinds of interesting projects. Starting out as a web developer, I never thought I’d get an opportunity to use the Unity game engine at work, but time proved me wrong. When I started dabbling around in the world of 3D I discovered some completely new aspects of coding. For the first time I actually saw how the world of geometry and physics played out in code.

This experience inspired me to try to give an example of a coding problem that…

Magda Stenius

I do coding and math. ✨💾

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store