Building your own personal development platform

@kjuulh

2024-01-29

A personal development platform is to a craftsman what the workshop is. It is the place we come to tinker, relax, expand our skills, be frustrated, be happy, and spend too many ours on our own refining our skills and building our own sanctuary.

There is nothing like kicking back in the chair, watching your own services get merged in git, built, deployed and finally be available to you and your users. I expect it to be the same as when a craftsman holds up a fixture that they made themselves using the CNC they themselves assembled. You can see all the flaws, but you're still satisfied with the tool and rely on it to do work. Nothing is perfect, a tool never it.

To me, my personal platform is a labor of love, time and refinement. I've spent countless hours tinkering, solving problems, and just having fun. Again I should stress my platform will never be yours, never truly, you might see a snapshot of it, it is open source after all. But I constantly iterate, improve and pivot. Unlike a professional product it is never whole, or at least attempting to be.

To expose my platform to you means that I'd have to curate it in a way to make it presentable. For even I sometimes get lost in the jungle that is my tools. As an engineer you will constantly build, and build, and build. It can sometimes be difficult to remember how a certain part works even if it was myself whom built it from scratch.

Sharing my platform

I'd still like to attempt to share said snapshot of what my own workshop looks like, give you a little peak inside, have you play around with the tools a bit. Maybe do a project or two, then leave. Take the learnings back, and develop your own in your own image, with your preferred approach, maybe start with a few of mine, and continuously build on.

So for the next few articles, I'll focus on key pieces of my own platform. We'll start with something basic, like hosting web servers and whatnot at home, until we gradually can deploy some services automatically from git. I've built all my tools on open source software, so you should be able to pick apart and replace parts as we go.

Nothing should be as complicated that you couldn't just choose another programming language or application to do the same work. I'd even encourage it, choose whatever fits your needs and wants the best. Remember only work on the tools you need and want to build. If you don't find it fun building applications or tools, choose those tools from the open source library and built what you want on top of that.

My own platform is built from the principle that I'd like a convenient way of releasing software to others, be they tools or services. That is because at work my role is a Platform Engineer, I spent far too many hours thinking about how to remove work from others, such that they can work on what they do best.

You will have a different goal, you will not know it in the beginning, and you probably won't know it by the end, but you should get a taste of what you find most enjoyable and pivot from there. Sometimes my articles won't be picture perfect, so I expect you to go and tinker if you find a problem, or contribute it to the template repository either as an issue, or pull request.

The workshop series

I will continue to develop this series of time, for now feel free to follow along or ask questions in: https://discord.gg/vwNCMTSVxA and on my own git server: https://git.front.kjuulh.io/workshop (will be synced to GitHub as well as: https://github.com/kjuulh/workshop-intro) they all are fairly empty for now. More to come.

This page should serve as the index of what I endearingly call The Workshop series.