What technologies are currently coming to popularity that you are learning/keeping abreast of so you don't get left behind?
I'm building https://github.com/hofstadter-io/hof on top of it. I also use it a lot in CI / cloud related things. Tamed the monorepo with CUE too
hof reminds me of those. Granted, I'm likely too young to have ever used them.
Are they back with a vengeance, but with type-safety? :)
Having built extensively on top of CUE, may I ask your thoughts on Dhall?
I wanted to use it as a YAML conformance tool, detecting drift across multiple git hashes of the same file. The aim would be to evolve a superset (if possible) data model that includes all fields (or reconciles them).
That would become the database tables.
Dhall is written in Haskell, CUE in Go. I write Go extensively and can make use of CUE's Go API, something I couldn't do with Dhall. Since then, it seems like Dhall's development has fallen off a cliff. The CUE creator has built a team and they have raised funds. There is a sizable team behind CUE now. Lot's of exciting things to come.
There's a CUE community call next Tuesday, if you want to watch live: https://github.com/cue-lang/cue/discussions/2219 and the old ones are here: https://www.youtube.com/@cuelang
CUE can detect backwards compatibility of config, I use this for your exact use case. https://docs.hofstadter.io/first-example/data-layer/checkpoi... (sorry, I need to work on the docs more) The goal is to be able to generate SQL to create and migrate database tables automatically.
Its a much harder skill to master and more valuable imo.
I also started reading protocol specifications. For example, I read the XMPP protocol as I was setting up ejabbered.
At work I try to find inefficiencies and opportunities in the way we do things across all domains. When I find an issue, I create a quick draft of the problem and potential solution, along with the pros/cons etc. I share that with the broader architectural group leaders and end up demo'ing it in front of them. So far, I've been able to get maybe a dozen such ideas implemented (best part - I didn't do the actual work but get to see the benefits like faster builds, or when I did some things for our mobile app UI an easier way to work with dynamic components, etc.).
On the side I am trying to build up a company since last summer in the AI space. I'm still trying to figure out what exactly I want to build, talking to people/customers, but along the way I'm building a ton of the underlying foundation for the business. I've learned a lot about writing extensible and modular code, and across languages and technologies. It is a lot of fun, and I doubt I'd have learned all that on my own at my job.
Another no so popular take, BlockChain/Ledger type technology in traditional financial market will see an uptick in activities.2
These won't go away for a long time. So it's worth picking them up today.
Haven't had the opportunity to look at Kubernetes yet, and usually work higher in the stack than Rust I think! But thanks for the advice.
A way to run ANY random program from anywhere, and just give it a file in a safe and secure manner fills so many needs that most people can't even imagine right now.
PS: I'd have written it myself, but there's about 1000 items to check off just to get an MVP working on a PC if my survey of the standards is right. 500ish instructions, and a boatload of APIs.
PPS: I've looked at several implementations, but I don't have the familiarity with the languages they are written in to be able to dig deep into the guts and add the required code to turn the WebAssembly VM into a black box whos interface I can control. Thus, it seems I have to build my own 8(
The conceptual clarity combined with sparse documentation, rough edged user land, and the army of edge cases give me flashes of Docker in 2013/14.
It’s a pain to use but the promise is there. When setup and working, Nix seems like _the_ way forward for reproducible builds and dev environments at any 20+ dev team.
I work in dev experience at a larger tech company. I work on many different REPLs, often jumping into unfamiliar projects- in my first three months I’ve worked on go, python, node, terraform, k8s, etc.
With nix I’m able to clone a repo in an ecosystem I don’t use, create a couple files (flake.nix + .envrc) and reliably create a working, isolated dev environment that works and doesn’t mess my other projects… gaming changing.
(Plus I took the plunge after system issues to move to a VM running NixOS, defined in my dotfile repo.)
The language is difficult, the documentation needs to get there, the amount of breaking or confusing api are big hurdles. I think some simple wrapper like https://devenv.sh may be what gets the industry on board.
Joking. In reality, Python and React working well, but sometimes i write chunks of C code for performance critical things, and in some cases have to use jquery, because old browsers.
And K8s and Docker will definitely live long, because good market fit.
For Rust, I'm not sure. For me it is not mature enough, so if will learn just now, in half year will need to learn new version.