Skip to main content

Command Palette

Search for a command to run...

About Me

Published
0 min read
About Me

Hi, my name is Joost a software developer/ architect in The Netherlands. Throughout my life, I have been fascinated by technology and computers. In my early life, I started coding, mainly small projects that got me into programming.

During my study of aerospace engineering and space engineering, I was introduced to more adopted programming languages. Coding took over more and more of my time during my studies. Still, space engineering fascinates me today, but the fast pace of creating a product that programming can offer won it for me over the traditional engineering practices.

As a high school kid and during my studies I loved to teach. Heavily influenced by the many teachers in my family I started helping and explaining math, physics and chemistry to many peers during my time in school. Not only did this help the students I taught but my skills and knowledge in the topics greatly increased. In this blog, I try to explain my programming challenges and work that I am struggling with currently or in the past. Putting it down to paper and rethinking about it will help me understand the code and the ideas. Hopefully, this will do the same for you.

One of the things I can get stuck in quite often is thinking too much before actually starting to write some code. Determining in advance what to do is not so bad, but in my option, it is much more important to start writing down code and see what this will do. This practical feeling is so much more valuable than thinking the same amount of time. I applied this tactic long before I would understand it. It is something we do as kids all the time and it allowed me to quickly learn new languages and frameworks over time.

Primary and high school

The first time I did something with "coding" something on the computer was around the age of 10. At home, we had one desktop where my brother and I played games on. Nothing fancy, we thought to make a great deal by buying a "100 games on 1 cd" game. This was for years the main thing we did on that pc.

Not much later we got a printer and scanner at home. This was completely new and as kids, you try to do as much as possible with a new toy. So, my brother and I started to scan all the comic books we had, using paint or Microsoft Powerpoint to crop each image, printing it out as big as possible or creating a slideshow to make a comic animation.

After some more time working in Powerpoint, we discovered that a basic website can be made in Powerpoint as well. Creating our UI and menu, we created our first site that runs locally when you click on the hyperlink on the desktop. Here we collected all our comics to view them image by image. The first time I used "no coding" programming in my life.

A few years pass by without a lot of programming. With all my savings I bought a Lego Mindstorm set and started programming my Lego creations. Playing is a great way to learn new things. Like many kids in high school, I played tons of computer games. In my early years of high school, around the age of 14, I found the program "Game Maker". A game engine to develop games. As a beginner in programming, I only used the drag-and-drop visual coding blocks to create my first game. Googling around and using the Dutch Game Maker forum to find solutions for my many problems of creating a game. Dozen of unfished, one level, platform games are still somewhere on my backup hard drives. For a while, I only used the basic visual blocks to create my games, but eventually, you will run into the limitations of a few pre-defined building blocks. Luckily Game Maker has its own programming language called Game Maker Language (GML). After some reading about programming, mind you, I never programmed using text, I started creating my first small scrips that could be run concurrently with the visual coding blocks. I quickly fell in love with the possibilities GML offered and in a few months I ditched all the pre-defined blocks and coded everything myself. I created everything from simple 2D games to 3D multiplayer FPS shooters with hovercraft tanks. The main problem with my games is that I love to make them, but I am a terrible game designer. So although I love the process of creating them and playing my games while testing them, nobody else likes them, they are boring or just too complicated or hard to play. All the games I entered for competitions on the Dutch form finished in the bottom 5% for those reasons.

Nevertheless, I continued throughout high school to develop simple games and even taught Game Maker in a 10-week course in my computer science class to my peers.

University

Mt game development career ended already before I graduated high school. I stopped programming frequently and was not working on any projects when I started University. In my first semester, we had a course in Java. As an engineering student, this was the prefered language taught. I was the final year of my faculty that was taught Java after my year Matlab was being given and a few years later Python was opted instead.

Programming Java was coming naturally to me. With the experience of GML, I already knew the basics of programming and scripting. The only two new things I had to learn were the syntax and objective oriented programming. The course material was short and in a few lessons and coding sessions, I was finished with all the work for that year.

The real practical application, and where I learned much more about Java than in the actual course, was in my second year. A second-year course combined multiple first-year coursed into a group project. Here I could do as much programming as I wanted. In every group project, each person should work on all parts of the project. In practice this is never the case, at the start as a group you find all the strengths in your group and each person works on his or her strongest skill for the project. For me that was programming. Together with another student, we did the majority of all the code for the next coming three months. Our task was to develop a simulation of tracking satellites orbiting Earth that, using the Doppler effect, could localize a transmitter anywhere on the surface. This was a fantastic project where not only we used basic coding but also data visualization and 2D graphics. This project triggered my interest in programming.

I was not the only one. A couple of friends also liked programming and wanted to do more with this than only one or two courses. Luckily for us, Android just started rolling out and getting some traction. We all got our first smartphones and found out that Java was used for writing Android apps. One plus one is two and we started developing our own apps.

I will not go into much detail of these first apps because after all these years they are not something to be proud of. We learned a lot about Android, Java and general coding, but in the "Wild West time" of Android, any app was something that could be a big thing. We had one app, loaded with ads to gain some revenue, that was for some, until this day unknown, reason a big hit. It only lasted a few months before Google shut down all the obnoxious ads using a stricter policy. This was the right call, our apps were not good just good enough to get some ad revenue. We had to change our strategy and start making apps that were worth downloading.

During the following years, we worked on a lot of small projects, even a secondary dashboard of an electric car using an Android tablet. The main thing we got from these projects and small jobs was experience and a lot of fun.

At this point, I was mainly programming in Java. We had some other small front-end projects using PHP initially and later on Ruby on Rails. All was still focussed on front-end, building a back-end was just an experiment at that time. This however changed when I started working on another project.

Full-stack development

Later during my studies, me and some friend wanted to make a more complicated, Uber-like service for hairdressers. Tip, never start your pitch with "Uber-like" it will always link your product to something else, mainly with the downs of the other product. Make a unique pitch for your idea without relying on other products or services. Anyway, we got some ideas for the front-end, this is what we were doing for the past few years. The back-end, however, was still unknown. After some time on Google, and posting on Stack Overflow, we settled on a NodeJs server for our backend. We were deploying our backend on Heroku, this resulted in using a Postgres database because this is free on Heroku.

In my later years, I got more experienced with working with Postgres in combination with NodeJS. Later on, I started working with a lot of geospatial data. Postgres has a geospatial plugin called PostGIS that is used to store this kind of data and query it. Making the transition to using this data type as easy as possible for me.

The past few years I finished my study and decided to start working full-time as a developer. I joined a small company where I did most of the programming and technical work. Today I work with a small group of developers. I am still working in the trenches, sometimes coding for ours, but time after time I need to spend more and more time designing and planning new features in our software and partially hardware product.

I keep learning new and improving known languages and frameworks. The last years I worked with Typescript, React, Swift, as well as the previously mentioned languages and frameworks to have a solid programming base.

However, learning a language once is not a guaranty that you will know it years later. Therefore, I keep learning new things of each language and keep investigating if a new language will be worth my time. This blog will be my travels, successes and failures of learning the new languages, frameworks and improving my current once.

20 views