profile

Ivan on the Server Side

iximiuz Labs: authors wanted, new UI/UX features, and hot posts on eBPF, Unikernels, and Uncloud πŸ”₯


Hello πŸ‘‹

iximiuz Labs has just gotten new content & playground catalogs.

This is something I've wanted for a long time - the new catalog structure reflects iximiuz Labs' intended direction so much better. Each catalog now opens with a completely reworked filter:

  • iximiuz Labs Official Collection
  • Content by Independent authors
  • Community-contributed materials

I'm gradually turning iximiuz Labs from "a single person's blog on steroids" into a fully-fledged publishing platform where anyone can post interactive server-side learning materials and make them available to the platform's entire audience or to a specific subset of students.

video preview​

In addition to the new catalogs, I finally shipped a proper author profile page where students can find all tutorials, challenges, courses, skill paths, and playgrounds created by an author. And each content card in the catalog now shows the author's avatar and a link to that page. This should improve the content attribution, making it crystal clear that there is not one guy or worse - a soulless publishing machine - but a cozy community of bright individuals regularly posting on iximiuz Labs.

Finally, authors got an internal dashboard where they can create new content and manage the already published materials.

What's coming next:

  • Better docs for the content authoring process (the content format is already well-documented, but the creating & publishing process itself can definitely use some docs)
  • Claude Code Skills for content authoring (just pasting the above docs to Claude Code can already get you pretty far, but it can be automated even further)
  • Content monetization tools for independent authors (because content creation is hard work, and the current revenue still doesn't allow me to pay iximiuz Labs authors for even a fraction of their time).

If you want to share your server-side experience or the idea of learning in public resonates with you, come join us as a community or independent author! You'll get a cool public author profile that will be a great addition to any technical resume. And who knows, maybe content creation will also become a profitable side gig πŸš€

A bunch of UI/UX improvements

The learning experience at iximiuz Labs has also improved over the past couple of weeks.

Lots of people have asked about a "full-width" mode for tutorials, challenges, and course lessons, and I finally had a chance to enhance the content page layout:

In addition to the enhanced layout, challenges now have a handy sidebar with tasks, so you don't lose track of them when switching to the Solution tab. And you can even hide the content section completely, freeing up real estate for the terminal window while leaving the tasks in the sidebar open.

Course lessons didn't go unnoticed, either - the newly added sidebar there helps navigate the course materials much better than the old syllabus widget in the awkward right sidebar (gone now) "borrowed" from the course's front page.

Skill paths and training programs got a new, more structured look, too. Historically, both skill paths and training programs were presented as a vertical "wall of text" on a single page, with no way to navigate the often lengthy content, and I kept hearing from students, especially trainers, how suboptimal this representation was. Not anymore!

Finishing the streak of content UI improvements, a new Progress Reset button was added for tutorials, courses, lessons, challenges, and skill paths (roadmaps aren't supported yet - but instead you can reset individual pieces of materials linked from a roadmap). Handy if you want to brush up on the materials you've previously completed before an interview, or to keep your hands-on skills sharp.

Last but not least, all dashboards (main, author's, instructor's) now have the current tab reflected in the URL fragment (hash), allowing you to share a link to a specific section of the dashboard. Plus, dashboard sidebars were narrowed, the tab bar was made sticky, and content filtering and pagination were added, making the dashboards much handier to use on both desktop and mobile.

Ah, and the Playgrounds tab of the main dashboard was consolidated and now shows all Running, Persistent, your Custom, Recent, and Popular playgrounds (with Running and Persistent and updated in real-time).

New playground/labctl feature: Auto Port Forwards

It's pretty common to fire up a playground, launch a few services in it (a web app, a database, Kubernetes API, etc.), and then make them accessible locally with the labctl port-forward command. Before persistent playgrounds, this was a rather one-off action, so running the port-forward command each time was ok-ish.

However, the addition of persistent playgrounds led more people to use the same playground instance for day-to-day tasks, including coding with agents. But once you start using a playground with certain services in it daily, running the port-forward command over and over again becomes tedious!

​Divyendu Singh brought it to my attention, and I paired with Claude Code to ship a few new flags:

  • labctl playground restart --with-port-forwards
  • labctl port-forward --restore (if you forgot to use --with-port-forwards during the restart)

You can now auto-forward local ports, making services running in the playground available on the local machine right after a persistent playground restart:

Additionally, it has also become possible to configure auto port forwards for new playgrounds. I.e., you can make a custom playground template, which, when started from the CLI, makes some services running in the playground available on local ports automatically via:

  • labctl playground start --with-port-forwards

I will try my best to send another "out-of-schedule" newsletter in the next few days, showcasing a few common playground usage scenarios that I use myself and see others use.

A bunch of quality learning materials

Even though I'm still spending all my time on feature work and operating the platform (sigh), iximiuz Labs' content and playground collections have kept growing!

Hands-On Introduction to Unikernels

Hot off the press, a massive piece on Unikernels by a debuting author, Antoine Cotten πŸ‘ The tutorial explains the motivation behind the technology, its difference from traditional virtual machines and containers, and also features a working example of how to run a Unikraft application on your own machine (or in the attached playground).

Uncloud: How to Set Up a New Cluster

Uncloud (GitHub) by Pasha Sviderski is a lightweight tool for deploying and managing containerised applications across a network of Docker hosts. It's the tech you want when you think Kubernetes would be overkill, but deploying to a bunch of VMs with bespoke scripts or Ansible playbooks doesn't sound like fun either.

​Anton Ovchinnikov prepared an Uncloud playground and wrote a step-by-step guide on setting up an Uncloud cluster from a few VMs. Traditionally, you can try all the commands right in the browser.

eBFP + Networking = πŸ–€

Everyone knows eBPF load balancers beat user-space LBs by avoiding packet copies and context switches. But did you know you can build your own eBPF load balancer, with backend selection and session affinity, in 200 lines of C? Teodor Podobnik continued his eBPF programming series with two new hands-on tutorials on how to build a firewall and an L4 load balancer:

And English is not the only language to write about eBPF! Başar Subaşı, our other debuting author, published a highly illustrated introduction to the technology in Turkish: eBPF'e Giriş πŸ‘

New Linux Hands-On Challenges

​Lotfi Hamadene prepared two hands-on exercises on sed and awk, with a whopping total of 32 problems to crack:

If you're like me and spend most of your day in the terminal, being fluent in shell commands is a must, and these two challenges will help you practice.

New Linux Playground: openSUSE Tumbleweed

The official collection of playgrounds got a new member - openSUSE Tumbleweed - thanks to Eduardo MΓ­nguez, who did all the hard work and prepared a working template, which I only needed to copy into the internal build pipeline πŸ™

Assorted video appearances

Wrapping up

All of the above features (and countless bug fixes) were shipped within two weeks and comprise tens of thousands of lines of code. I couldn't have imagined such productivity back in 2023, when I was just starting to build iximiuz Labs.

Most of this code was generated by Claude Code, and I'm grateful for it. But I'd argue that all of this code was still authored by me. When left unattended, Claude Code and other coding agents aren't half as good as people on X want you to believe - no matter how many rules and skills you add.

I should probably take a break for a day and write a proper blog post describing my October-January agentinc coding experience, with the TL;DR that the code can be generated at inference speed now, but the output is only as good as the driving person's architecture skills in general and understanding and familiarity with the project at hand in particular. Anyway...

Next on the list is the pricing plan change. It's a couple of weeks overdue already, but hey, we've gotten all these good features, and also the current pricing is bad for the platform, not for its users. So it's only me who should be a little disappointed by the delay.

The change is already underway, but there are ~1,500 mentions of the word "premium" in almost 200 files, so it'll take a few more days to turn this mess into a sound system supporting both the new Tinkerer and Learner plans for new joiners and the historical all-inclusive Premium plan for people with lifetime deals or still active subscriptions.

In any case, the end of the grand overhaul (and the beginning of content work) is nigh πŸš€

Happy hacking!

Cheers

Ivan

Ivan on the Server Side

A satellite project of labs.iximiuz.com - an indie learning platform to master Linux, Containers, and Kubernetes the hands-on way πŸš€

Share this page