Bash scripting to check the status of 100 repositories

At </salt> we have a lot of labs and tests. Last time I counted we just passed 100 repositories. And it’s dawned on me that all of those need some love and attention from time to time. Stuff moves pretty fast in the JavaScript world and dependencies might start to act up etc.

At least you’d want to check out the code, do an installation of dependencies and then run the test and see that you get the expected behavior. Preferably you’d also wanna see that we don’t have deprecated dependencies or broken stuff. And probably check this, at least once before each course.

This is what scripts are made for, right? Automate the boring stuff.

The only problem is that since we are teaching a lot of different technologies and tools, not two repositories are the same; this one uses Docker and this is actually just text, and...

Read More

Building teams - where our training starts

At School of Applied Technology, our accelerated career program is running in small teams, using Mob Programming. We have found that this gives us the most and best learning in a short amount of time. In this setup the tight group that you are in becomes both your best teachers but also, from time to time, you will be the teacher others in the group.

For these reasons, we are emphasizing and trying to give our mobs a good start to become a team. We start already before we start - on our introduction day (that is the Friday before the course start), by having the newly formed mobs go through a simple exercise based on the brilliant book Five Dysfunctions of a Team, by Patrick Lencioni. I have written about one version of this exercise here.

During the first weeks of the accelerated...

Read More

Remote work, transparency, and feedback

In these very strange times, we see a lot of change; some are really sad, devastating, and depressing. While others are encouraging and celebrate humankind’s will and capacity to survive and overcome.

Others still, are just interesting to observe and learn from. These last weeks I’ve noticed two new realizations about two of my favorite topics; feedback and transparency. They too, it turns out, are affected by the changes in our ways of life due to the corona pandemic we are living under now.

This post reflects a few thoughts and ramblings that I’ve had in my head for some time. I’m not hoping to solve world problems here, but just get some reasoning down.

As in most companies, School Of Applied Technology has also moved to social distancing and remote work. And as I have written about, it works out pretty well - but I’ve noticed...

Read More

Experience report: first week of 2 x 5 mobs going remote

I’ve just experienced something fantastic and a real testament to what amazing people can do when given the room to be amazing (and have an apparent and real reason to do so)

A week back, our accelerated career program; School of Applied Technology - the world’s toughest coding bootcamp were running five mob programming teams (that we call mobs) in two locations. This is how we teach and it has given us amazing results so far.

But it’s not cool being the “let’s sit as close together as possible for 8 h per day”-teacher in times of Covid-19 infection spreading across the world.

So in the middle of last week we started to make plans. Last Friday we had a “just in case”-lecture on tooling for our 5 Amsterdam mobs. Then during the weekend, things escalated in Sweden and we decided to move over the 5 Stockholm mobs...

Read More

Listing and cloning private GitHub repos - some fun with bash and curl

My current role is awesome - I get do do some agile coaching, quite a lot of teaching, reading up on new tech and from time to time some programming.

Yesterday evening someone just blurted out: what if all of us died at once?! All the code and documentation would be hidden in a cloud somewhere and we will not be able to get it.

That cloud is GitHub and I’m sure it would be safe and that the risk that we all die at the same time is relatively low. Then again - I have booked a raw chicken tasting for our next offsite …

Just kidding - but when that was said my programmer-self sprung to life and I deviced, in my head, a simple script to make an offline copy.

This post describes that script. Oh - I only had 30 minutes spare time to do it...

Read More

How do I kanbanize my 300 items backlog - a response

I got a question, on twitter, the other week about how to handle a long list of backlog items on a kanban board. Here’s the original tweet:

And my adequate translation. The tweet by “The Doubter”

Hey @marcusoftnet. We got a backlog of 300+ un-organised and unprioritized stories that will pass through our #kanban board the coming 10 months. How can we “group” stories to simplify refinement and dependencies between stories?

– by epics?

– funktional areas?

I got his permission to repond here on the blog. It’s a response and...

Read More

getcwd: cannot access parent directories: No such file or directory

The other day we started a new course here at </salt> And the first day we are used to seeing some confusion from the developers and the odd strange, wrongly configured computer (by us). But the error in the title of this blog post:

 getcwd: cannot access parent directories: No such file or directory 

had me scratching my head for quite some time. Until I realized that the error message states what was wrong.

The whole thing is quite simple: the team I was helping got this, or similar errors whatever command they tried to run:


shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory 

open .?

LSOpenURLsWithRole() failed with error -50 for the URL ./. shell-init: error...
Read More

How we start with trust and vulnerable in our developer training

In the </salt> accelerated learning program we emphasizes learning in groups throughout the entire boot camp. We do this through the use of mob programming that is not only a great way to solve problems together but also puts learning front and center. I’ve yet to sit down with any mob and not learn a new thing (I’ve tried 40+ so far.)

But there’s a thing that needs to be in place in order for the learning to be allowed to flow freely; psychological safety. We try to create a psychological safe space through two tools:

  • Trust
  • Vulnerability

Let me, very breifly, expand on how we use this in our training.


We build trust in the mob through some different exercises, but the underlying thought is that from the great book 5 dysfunctions of a team

You trust...

Read More

Applied learning - things noticed

I work for a developer accelerated career program. I have (together with Jakob Leczinsky) created a training material that takes people with no professional development experience into professional developers in 3 months. We have now run 4 courses and found jobs for about 100 people. All of them have got rave reviews from our clients, top-line software companies in Stockholm.

But how?! This is quite provocative, even for me. I spent 4 years in university (Go DSV!) - surely you can’t learn as much in 3 months.

How can this work? Because it quite obviously does. I have 100 devs telling me so.

I was pondering this as I picked up the book Antifragile by Nicholas Nassim Taleb for a reread. And things clicked. Our method is antifragility applied to training. And we create antifragile developers.

In this post I will speak solely from my...

Read More

How do you get so much done?

How do you get so much done? Where do you find the time?

This is a question that I often get asked and it always catch me off guard. I don’t have a recipe (or do I?) and I don’t think I get more done than others.

But last time when I was asked this question I stopped for awhile and thought to myself - what do I do, and is that something others don’t?

In this particular case I referred to a blog post I’ve written and the question back was:

How do you find the time to write blog posts?

In this blog post I share a couple of my … tricks.

When I decide to do it - I do it

If I get an idea for a blog post (or any other task that needs to be done) -...

Read More