Who are you? Where are you from? What's your backstory?
Hello my name is Bjorn, online more commonly known as ‘Bjeaurn’. I’m 29 years old as of right now and I live in The Netherlands. I currently work as a Senior Front-end Engineer.
I have been coding for as long as I can remember and have been programming professionally for about 10 years, with a couple of stories on how I got to where I am right now. Hopefully we’ll get to explore some of the more interesting parts in my journey to becoming a developer and an engineer during this interview!
What made you get into programming?
My dad introduced me to programming when I was 6. When you’re younger you just pick up faster on things like language, so this was both a nice way to see if I could develop some understanding of the English language and maybe get me to get interested in computers and the like. We used very simple languages like (Q)BASIC and a few years later and tons of hours with books that my dad would help me get through, I was quite fluent in the language and made games for myself and others to play.
My interest in board games and video games later on definitely triggered me to learn and try and do more with computers than I normally would’ve, as I can imagine plenty of people reading this may have in common with me.
Around my 12th or 13th I had tried a few languages, including Visual Basic and was getting familiar with some basic HTML. I think I built a simple (manually managed) RPG as a bunch of HTML pages and me and a couple of friends from around the block would play with that. Sending messages through a forum describing actions they wanted to take; which I would reflect in the HTML pages.
The web really peaked my interest in development in general and that’s where the bug bit. I learned PHP and starting building websites, which I could in turn sell to other people. This new found power of being able to make a little bit of money tinkering around with computers and software I had made myself really got me driven to actually pursue a career in (web) development. I was hooked and some entrepreneurial spirit became more and more visible.
What does your process for learning to code look like?
Coding is more of a side-effect of trying to solve a problem using software. That may sound a bit vague, but when you’ve played around with multiple languages; you’ll quickly run into some common concepts, theories and so called “patterns” that run throughout all levels of software development. The language becomes more of a tool, then something you feel you have to master.
So picking up a new language, as an experienced “coder”, is much more of a low effort switch that brings new and interesting experiences and let’s you try a different approach to doing something, then you’re used too.
One of the first things I would do if I were to try out a new language, tool, library or framework, is to look up how to do basic things. Every program starts with a “Hello World”. Figuring out how to get the expected result, as basic as a message on the screen, is always the first step in understanding how a particular “tool” works.
The more interesting question underlying this question, in my opinion, is where to start if you have little or very limited experience with coding in general. And it’s definitely the harder question as well, cause there’s so many paths to take and none is actually better or worse than another.
In any case, my process for starting something new that I’m unfamiliar with is visit the website. Read through the “Getting Started” tutorials that they so often provide, or if I’m feeling I need more visual stimulation: Look up a YouTube video of someone that you don’t mind listening to and goes through some material in a pace that you are comfortable with.
What does your process for building apps look like?
An app always starts with motivation. This came come in the form of an idea, which I’m sure many people have often. The difficult thing for me is that ideas usually don’t come alone, they come with many, and identifying which ones are worth the pursuit and the time investment is very difficult. I know for a fact that many coders have plenty of unfinished side-projects because of this.
But where to start when that motivation strikes hard, depends on what your side goals are. Do you want to try a new language or tool? Do you want to expand on your limited knowledge of something, or do you actually want to make something and ship to see if your idea actually works as you intend it to?
In the former two cases, figuring out what “technical stack” to use and laying some groundwork (usually known as getting the “boilerplate” to work so you can start) and actually seeing some results can be very rewarding already; just finding a reason to use a piece of technology you were interested in.
But for the latter case, when you just want to start making and shipping; what works best for me is to grab some tools I’m comfortable with and just start writing.
When you’ve built a few apps, either professionally for a company or for yourself, can be either big or small, you will always learn some things you would approach differently. And we could probably dedicate an entire website to describing these pitfalls and where to find them, but that’s not a very powerful to learn.
Many parts will be rebuilt anyway after learning some things just don’t work at scale, or are very hard to expand upon. So not sitting still for too long and not overthinking big design decisions in the beginning is how you get something that actually works out within a few days or a few weeks depending on the size of the project.
I can’t stress enough how powerful “just start” is, and starting can also be just drawing a basic interface you would want to build. You’ll hit plenty of things on the way that you wished you’d thought about a bit more before you went ahead and built something in a certain way, but THAT is the most powerful way to learn in my honest opinion.
Are you currently learning anything new?
I’m currently working for a big client with a very ambitious project and as one of the lead front-end engineers in my team; we work with Angular. The very latest, bleeding edge version. (Version 7 at the time of writing)
I love working with it, and I still learn and think about new approaches whilst I have been working with Angular for the better part of 2,5 years now, starting from the Angular 2 beta in 2016.
What I’m also learning a lot about right now is the more professional and scalable enterprise ways of doing big apps that must handle enormous loads and concurrent users, and how to make sure you have to never do anything manually in order to keep it all running. It’s a very interesting experience.
What's your tech stack?
On a daily basis I work with Angular (7, not to be confused with the end-of-life AngularJS!), RxJS, TypeScript. I use Visual Studio Code (free) and JetBrains IntelliJ (paid) to manage my code. The results and features I produce usually interact with a Java or Scala backend. If I had to do some backend work, I would pick NodeJS or PHP for the job, depending on what I’m trying to do.
For version control of our code (crucial when working in a team or with multiple teams!) we use Git, which is the de-facto standard around; don’t let anyone else tell you differently. For private projects I use Github or my own Gitea server, for work we either use Github paid or GitLab. All of which are excellent products, so use what you’re comfortable with.
For the more boring parts of coding, like unit testing and Continuous Integration and Delivery (CI/CD), Karma/Jasmine is an excellent basis that is very compatible with Angular and TypeScript. For CI/CD, either Jenkins if you can host it or free and paid options like CircleCI or TravisCI do an excellent job. But if you’re just learning and getting started, I wouldn’t go to deep into CI/CD unless you’re really interested in what it does. Let’s skip over that for now.
Most frontends are hosted on either Apache or Nginx, I prefer the latter; but both are really excellent and have similar learning curves if you want to do some creative things with these. Setting them up is a breeze if you follow the right guides.
There’s probably a hundred or more tools and libraries I use on a daily basis that I’m either not aware of, or are so automated in my workflow I don’t even notice them anymore. But feel free to hit me up if you are looking for a tool do a specific thing, there’s always someone around that knows one.
Advice for those learning to code?
Think of something simple, that is useful to you; and just start. Both starting and keeping it simple is important, cause it keeps you from getting demotivated by the enormous amounts of work you’ll have to dig through before you see any results.
We all would like to build the next Facebook or a Massive Multiplayer Online game. But when starting out to gather experience and maybe building a small product; focus on the very basics. Get results fast so you can see what works and what doesn’t work. One of the most important things is learning to design and write code that is easily extendible and properly readable. This helps you understand code when you revisit it a few months or even years later when you need to touch older code to add new features or fix bugs.
Follow me at @Bjeaurn on Twitter, I talk and retweet plenty in regards of (game) development, and I also do some game and development streaming on a regular basis so plenty to go round for all!
Recently released “Gine” version 3, which is a TypeScript based HTML5 game engine that I intend to use in the next Ludum Dare challenge (48 hours to build a game, most of it is live streamed), so definitely check that out if you’re interested and come say hi on Twitch!
In regards of projects, plenty of ideas; nothing concrete I can tweet about now. Just follow on Twitter mainly or any other platform you would like to use; I’m usually named the same. If not, feel free to ask! And that goes for anything basically, feel free to ask me things!
I just got back from AngularConnect in London. Met some amazing people from the Angular community and saw some interesting ideas.
One I took with me is “FormQL”. Interesting if you want to work with GraphQL (a way of communication between front and backend, simply put) and reactive forms in Angular.
Good luck on your personal journey!