I've also used alpineJS, Golang and tailwindCSS to build gocial [1]. The source code is also publicly available [2]. The whole project is hosted at netlify as a big Lambda function.
But I think for future projects I might use HTMX + Tailwind.
The use of Infrastructure as Code (IaC) has been gaining popularity as a best-practice for automating infrastructure deployment and configuration. It brings numerous benefits such as increased development velocity, less errors and less deployment pain. One of the widely used IaC tools is AWS Cloud Development Kit (CDK), which allows developers to create resources in AWS using their preferred coding language (e.g. TypeScript, Python, Golang etc.). With CDK, developers can leverage language-specific features (for-loops, if-statements, functions, classes) and create and customize most AWS resources easily.
However, sometimes custom resources are needed, which are not directly supported by CDK. And in some cases, extra logic is required whenever a resource gets created. So was my case with AWS Systems Manager Parameter Store (SSM) SecureString parameters. These parameters ensure that sensitive data like passwords, API keys, and other credentials are encrypted using AWS KMS. While CDK supports SSM parameters, it does not allow for the creation of SSM SecureString parameters.
This is where AWS Lambda-baked custom resources come in. They allow developers to define the lifecycle management of resources and implement required logic when resources are created, changed, or deleted. In my latest blog post I've leveraged CDK, TypeScript, and Golang to create a custom resource for SSM SecureString parameters. This custom resource used an internally created lambda to take care of everything.
For me it was definitely Emacs and ORG mode. I use this combo to create presentations (pdf + reveal.js), write notes (org-roam style), do project management (ORG mode at its best), collect small code snippets (literal programming in ORG mode), almost everything...
As for a large code base I found ripgrep + rg.el (the interface in Emacs) to be pure gold!
Nice and thanks for sharing! I recently listened to the "SE Radio Podcast - Episode 531" where you talked about tailscale. I've subscribed to your blog and now I see you again on HN :D
In the first part¹ I've outlined the main factors for moving my braindump / digital garden (from Tiddlywiki) to org-roam. In this 2nd part I show how to publish ORG roam notes to HTML using hugo. Some #emacs kung fu also helped with the content editing of old/new notes.
Speaking for myself: For someone who didn't have a software engineering background (for the last decade I was mainly doing offensive Security stuff) probably the main choice would be Python. However, at some point I've felt in love with statically typed languages: The compiler became my biggest friend and I learned about the benefits of having "contracts" (in form of interfaces, strict parameter types for methods etc.) between (software) components.
That's why I've spent the last years learning Go. It taught me how to design bigger projects and how to tackle architectural problems in an easy/comprehensive way. I didn't try Rust yet because I didn't have to. I mainly code software/tools to work in cloud environments and HTTP/gRPC technologies. Under these circumstances Golang performs quite well.
For me it's true that Go "is better for getting things done": You'll get one statically linked binary that can be executed almost everywhere (without further dependencies). I'm a big fan of serverless and I wrote simple applications that currently run in AWS Lambda and Netlify (they also used Lambda under the hood). And more recently I got into web development where Golang is again my main choice (at least for the backend part). For frontend I would rather go for VueJS/React. And that's one reason why I've started to learn TypeScript.
I don't have that much experience in TS but I guess I could easily replace Golang by TS to do simple things (HTTP requests, JSON parsing etc.), especially in a Serverless environment.
While my Golang journey was accompanied by this "Golang vs Rust" debate, I do plan to learn Rust as well. But as I've mentioned before, currently I don't have any needs to do so. My advice would be: Learn both (for backend) and some TypeScript (for frontend).
I mostyl use PlantUML and C4 Model (by Simon Brown). I have my own collection of PlantUML related resources [1]. I've also recently found these examples [2] which are really nice.
I also do some sketchnoting (using pen & pencil) when I design a system for the first time. I wish I could easily convert those sketches to PlantUML.
> I'm always in awe of articles like this one where people describe their workflow with the help of mindmaps, flow charts, class diagrams etc. and where they detail meticilous (self-written) extensions or scripts for categorization, readability etc.
Thanks for your kind words. It took me years to find the almost perfect workflow - at least for me (I still have some ideas how to automate several things even more).
I'm a heavy Emacs user but I thought sharing some diagrams might visualize more the described process. Also for non-techies.
I know that when you do the math, you end up with a huge list. The trick is to focus on one little portion of your reading list (the next bucket in my post).
Some months ago I've also realized I had items in my list from 2017. But I didn't read them. You don't have to read everything. Just focus on what currently has your attention: a specific event, a topic, just sth that's interestingly for you now. This way you'll manage to read more.
Again: I think the goal is not to achieve inbox zero. The goal should be to just read/learn more.