I think I'm falling out of love with front end web dev
Tags: javascript, webdev, haxe, career
Published: 2020-11-23 11:35:24


*Photo by Matthew Henry on Unsplash*


I've been a front end developer for a pretty long time now and I've enjoyed the journey. When I first started making sites [jQuery](https://jquery.com/) and [SASS](https://sass-lang.com/) we're all the rage and you could get by not knowing too much JavaScript. Now things have turned around to the point where you can't call yourself a front-end developer without knowing how to use a [JavaScript framework or library](https://raygun.com/blog/popular-javascript-frameworks/). I've been lucky enough to work at places that have allowed me to adapt to that change and try out different things, but I'm at the point now where what I'm doing is starting to lack variety.

Typically my tasks as a developer have involved creating the entirety or working on parts of a [thin client application](https://stackoverflow.com/questions/1518291/what-do-you-mean-by-thin-client-application#:~:text=Basically%2C%20a%20thin%20client%20is,much%20processing%20via%20the%20network.) so; creating and styling components, laying them out on a page, hooking the site up to an API to send and receive data, then displaying that data in a presentable way for the user. That is a very high-level overview, there are more details like making the site performant, accessible, functioning on multiple devices and browsers, but I won't go into too much detail on that. For the most part that has been what I've been doing and I've gotten pretty good at it, but now I want to try something else.

About 2 to 3 years ago I started to look into game development. It's something I've always wanted to do but never thought I was a good enough until I took the plunge. I learnt a programming language called [Haxe](https://haxe.org/), a game engine called [HaxeFlixel](https://haxeflixel.com/) and a new side of programming was revealed to me. One that involved learning more about object-orientated programming, [GoF (gang of four) design patterns](https://en.wikipedia.org/wiki/Design_Patterns), accessor methods, static extensions, machine code, how compilers work. These are things that you don't have to think about to be a good front end developer since JavaScript is a dynamically typed language and the browser does a lot of heavy lifting ( i.e. dead code elimination, memory management and garbage collection). So now instead of thinking about the best way to [organise files in a large React project](https://medium.com/octopus-labs-london/how-to-structure-files-in-large-react-projects-48ee3dc424ed), I think about how [JIT (just-in-time)](https://stackoverflow.com/questions/95635/what-does-a-just-in-time-jit-compiler-do) compilers work, or what the difference is between [heap and stack memory](https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap), or how wasteful it is that JavaScript represents all numbers as 64-bit floating points in memory (even really small ones). So you can imagine what it feels like for me after spending my free time converting colours using inverse trigonometric functions to continue my day job task of styling pink buttons.

This is not to say there aren't times that I've written complex logic during my day job or that front end development can't be logic heavy, [Visual Studio Code](https://code.visualstudio.com/), [Figma](https://www.figma.com/), [Framer](https://www.framer.com/), or any Google drive application are a few complex frontend heavy apps (which I would love to work on) that immediately come to mind. I just feel like I want to take a break from thin web clients and try something else. This something else could involve working with a different programming language like Java, [Rust](https://www.rust-lang.org/) (which I've been looking into with Web Assembly), or TypeScript to do something more complex on the web or, move out of the web completely to work on games or native software applications on desktop or mobile, I'm open to it all.

There is however the question of salary. I've been doing front-end dev for a while and the experience has got me a decent salary. As the only working parent in my family the thought of changing career to say, something like a junior C++ developer would reduce my monthly income and would make it a struggle to keep up with bills. It's something I'd do in a heartbeat if money wasn't but I'm sort of bound by golden handcuffs.

In conclusion, I'd love to hear fro people who are or have been or are in a similar situation. Is this something that should stay a hobby or something I should pursue as a complete career change? Feel free to comment in this post or contact me privately via email or social media. Googling my full name "Richard Oliver Bray", should give you my social details.