Engineering Managers Should Code

Hi Everyone, in this post I just want to direct your attention to the following article at Dr.Dobb’s:

Engineering Managers Should Code 30% of Their Time

Of course I really like the article, and I agree to that statement. And I want to keep this as a reminder for myself on this blog. ūüėČ And I also think it fits really well with some of the articles that I have written recently.

Have fun,

Building a virtual Software Company

Roles and Infrastructure
So let’s build a virtual software company. That is, a company that creates and sells software. While this kind of effort might be possible to do alone, to make it a bit more interesting it will be designed as a collaborative effort.

One idea of collaboration is to pool resources, and exploit the removal of redundant effort. This will be one motivation of that idea, but the other part will be that of a learning/teaching opportunity. Knowledge transfer if you want to call it that.

So in a highly structured effort which software development is, lets define a few roles, that might be worth considering.

Sets up Servers, installs operatingsystems, configures the routers. Eventually DNS, Firewalls, etc.
However, as cloud services, vservers, etc. are somehow a commodity, I’d prefer to keep these tasks to a minimum or outsource them entierly by using some service.

Mail Master
That role will be neccessery, even if it is decided that the company will use an external service for email. But someone has to add new teammembers, so this role will be admin for Email. The role could include setting up an email server on some virtual machine. Eventually the company will be sending out some kind of newsletter to customers, so somebody needs to take care that mail gets out. If a Newsletter Service is used, that role will include configuring that service.

Additionally, that role will likely include setting up and maintaining test-email accounts at various freemail providers, to make sure that mails go through to them unharmed, if custom email systems are deployed.

Web Master
That role will essentially do the same thing for web as the mail-master does for email. It will include setting up webspace, provide ftp-accounts, eventually installing and setting up apache, etc. If some kind of external Hosting Provider is used, and that should be done, this role will take care of manning the web hosting control panel.

Eventually the Web Master will also make sure that there is webspace available for having some kind of testing stage, when web application changes are rolled out.

And if the kind of software that the company is providing is web based, then there will be close collaboration with the next role.

Development operations is kind of the glue between web master and programmers. Devops basically provides and maintains tools for programmers. This role will be doing nightly builds, will make sure test suites are run, will make sure git repositories are available. They will be packaging applications, upload them to the file area, etc. They will also install the applications that the programmers create. They will maintain the tools to continously collect code metrics.

They will install development tools on virtual machines, and set up images for build servers.

This role will be doing the actual programming, and that is for web applications. This means both, public facing widgets that are on the web site, signup-forms, databases, cms-tools, crm-tools. The application that is being sold, and internal tools that will support other parts of the business, may it be a company adressbook, wiki, or whatever.

The job of that role is to commit stuff to a git repository. Whatever is being used as development environment is up to the individuals, as long as coding conventions are followed, unit-tests are maintained, etc.

While related, the advent and wide spread adoption of smart phone app markets has probably made it necessary to have some of those as well, so this group will be working on that. Devops will be creating packages and submitting them to app-markets. App-Programmers will submit code and tests to git.

This role will make sure that programmers do not lose focus. Here Application workflows will be created, and layouts will be sketched out, and later refined. This role will probably work closely with programming. Much of this role will also include making sure that the programmers go all the way through and implement clean validations for forms, that everything is pixel perfect and not thrown together.

Last words
And finally, don’t get me wrong, every role will be programming, mail-masters, web-masters and devops won’t be doing their tasks by hand, they will be creating scripts and control panels to streamline whatever they find themselves doing. May it be shell-scripting or automating a service via an API.

The idea here is to have some “easier” tasks, that youngsters can get their hands dirty, while creating some automation that will allow them to move up from their roles and graduate into more interesting fields.

Using magical practices to work with large code bases

A large and legacy code base, can sometimes be like a collection of mystical documents, they are riddled with number magic, cryptic references, mysterious rituals and descriptions. Some are are guarded and governed by old masters, that are grumpy and quick to dismiss any newbie asking for access to their code. They answer in muffled mumbling, and are easy to anger.

Also, the habits and customs with which the guardians of the old code work with the code, interpreting it continuously, rewriting it, trying to understand it, very much matches which how I would expect a magical order to be working through old manuscripts trying to recreate ancient rituals.

However, many of the maintainers of old code do not necessarily indulge into this kind of self reflection about their work. They tend to be governed by fear, from failures in their code, from changes in certain “mythical” parts, from confrontation by their superiors, or by the choleric masters of certain rooms. The strategy to deal with those challenges is often a form of rationalizing, which includes denying how emotions and relationships might influence the code. Communication is often channeled into ineffective rituals, including meetings with no results, and throwing around jargon that aims to hide, what needs to be said, because of lack of a common vocabulary. The value of deep and completely open communication in such endeavors is often completely neglected, and there exist no mechanisms to facilitate such communication.

Part of this phenomenons is often a very deep focus within the programming community on “rationality”. The programming community prides itself on its reliance of “facts” is composed largely of atheists, and in general people who keep a high nose, in respect to religious, mystical, esoteric practices. Everything that carries even a scent of “softness”, is immediately thrown into the corner with hocus pocus and fairy tale magicians.

Those prejudices are unfortunate, because some of the techniques of working with mystical and old manuscripts and ancient rituals, might be quite well suited to deal with old and difficult to understand code.
There might be complicated code bases, that deal with legacy functionality and complex algorithms, that are quite well understood by their teams, and those teams might dismiss this quite “esoteric” approach. And maybe for those well oiled and effective teams, it might not make any sense indeed.

However, there are teams, where I believe much healing needs to be done, misunderstand needs to be cleared up, and honesty as well as understanding needs to be fostered. Often this also goes along with a feeling of exhaustedness, mistrust, and aggression. Team members tend to withdraw, and build walls around them. And in such cases, I believe magic practices and experiences might come in useful, to help resolve those situations.

I also believe, that industry practices, which are often described in books and are believed to be easy to apply by practicing the theory often fail to work. Which is because the required self transformation does not take place. Those industry practices often even fail to mention the necessity of transformation, rather the indulge into detailed descriptions of their “rituals” and artifacts. And therefore they fail to create a conscience for spiritual development in the industry.

This actually is a common pitfall of many industrial and developed nations in which the dominant mainstream consciousness is based around the notion of consumerism. The consumer-culture, that often promises happiness and success, to be tied to objects and artifacts that can be bought. Like to better computer, or the faster bicycle, or any kind of more effective product. However, the fact that growth results from discipline and from transformation of the inner self, and not from buying arbitrary artifacts is seldom communicated and highlighted.

Even advice that goes into building teams and software companies always starts at the point of selecting people based on their psychological qualities and their ability to work and communicate together. It start with the notion that some people simple are mature enough to engage in the art, and some are not. Without elaborating on how people, who might not yet have the required maturity might acquire it. It deals more often also with the suggestions of how to remove “poisonous” team members rather than how to inspire them to grow. Sure, some people might effectively work against such efforts and sabotage them, but those that can be reached, should be.

And here comes in what I believe magic (or magick) could do for the development of programming as a craft and art form. Especially, because something that is seen as “wishy-washy” and arbitrary and be members of the programmers community, and especially because it would evoke quite an emotion and foster discussion. In a sense it is a provocation. It would rattly things up.

And therefore it would require quite some questioning and reflection about ones art.

What I failed to mention in this article is mentioning some concrete techniques. This is intentional, and the entire point, what I suggest should not necessarily and even could not be learned by reading an article on the Internet. It should be developed, and learned in communities, by reflection, coaching, mentoring, and self discovery. We are just at the starting point of this journey. How could I know where it ends?

Take care,

Conquering rising youth-unemployment, applying lessons learned in hacker communities to the “real” world.

A gap is widening, on the one hand, unemployment among young people is on the raise, on the other hand, it is getting more difficult for companies to find qualified works. A paradox it seems? I don’t think so, neither is it coincidence.

Two factors are coming into play here.

1) The “kind” of job that companies are offering, are not very compelling. The values, benefits and problems that are prevalent in the job marked are no longer in line, with what young people expect. Growing up with open source software, social networks, Wikipedia and the Internet, makes young people expect a much higher level of transparency, than is currently lived in “old world” businesses. Old world businesses are a lot about projecting an image, about hiding information, about political bickering etc. A system that fundamentally relies on an asymmetry of knowledge. If however, all of the worlds knowledge is available in seconds, relying on an asymmetry of knowledge is simple not a sustainable business model. People will find out, eventually sooner than later.

So a young person gets to start at a job, and some higher up tells him this and that. She looks it up on the Internet, and its obviously bullshit. Well, she will find that situation unacceptable, and if she’s a high performer, she will take her business elsewhere, and “old world” businesses will have to do with the worst of the crop.

2) The second factor, is the education system. While people who are driven and have learned to educate themselves have thrived, those that got tangled up in the education system have unfortunately lost. The world of business is evolving faster than the educational system. That is, the knowledge, habits and attitudes that people leave the educational system with, are nowhere near what is required in the business world of tomorrow. They won’t learn it on their first job either, because as they are already behind, they will only be able to get work in an “old world” business of yesterday. And habits learned in those jobs will only further their unemployability.

What to do about it? Well, unfortunately many of the businesses of the future are not yet even created. Because it will be the top crop of our generation to build those businesses.

What will the future business look like?

It will probably be about diversity and automation. Many of the basic necessities of our life are already automated. What are the most fundamental pillars of wealth, luxury and comfort: shelter, energy, water. Look around you in your own home. What couldn’t you do without? Most of the stuff you pile up is probably expandable, but electricity and tap water are probably the most defining achievements of the first world countries. All other kinds of wealth are mere afterthoughts. And those amenities are available to almost everyone already.

And large parts of this infrastructure are already automated. So there is little workforce needed in the field of utilities. So, the mass market is already saturated. This brings us to the long tail. And the long tail means diversity. So now, that we as a civilization no longer need to focus on the fundamentals, we can spread our interests.

And this brings me to another observation, that I’ve made during my life. That is, if you take a specific and narrow field of interest, and you try to find all of the top performers/researches in this field, you will find that there are no more than about 50 people in this group worldwide. That’s it.

And to be quite honest, if you cannot be in the top 50 of a field, it is probably not worth pursuing at all. That may sound harsh, but the good news is, there is an almost unlimited amount of fields available at any given time. That is, there are enough fields worldwide, so that everybody can find and work in his/her specific top 50 field.

And that I believe will be the future of the workplace. To provide an environment, where everybody can strive to enter the top 50 of his/her personally preferred field and do the best work of his/her life!

Think about it.

Software Engineering: Workflow Pipeline

Building Software is difficult, it helps to have the best tools available though. One such Tool to have is an integrated development pipeline for your workflow though. Especially if you are planning to work as a team.
And since there are not really many “pre-made” tools, for this, you are probably going to need to create your own. Of course, depending on what kind of software you are working on, you will also need to choose the components your pipeline is based on.
Also, creating such a pipeline can be a bit of a chicken egg problem, because you might not to start working until you have the setup ready, but you are not going to know what setup you need, unless you start working on your problem. It might be easier though, if you’ve already done a few similar projects, and you already know what you need.
Choosing a tools for a pipeline might also depend on your budget, there are commercial tools available that integrate into certain development environments. But as I like to go “raw” in most of my development efforts, I am going to present you mostly with open source software, that is free to use, even for commercial projects.
I might not be a big fan of “over engineered” tools, but I am a big fan of¬†mendaciously¬†planned workflows and processes. And by process I mean everything that happens from the line of code entering the editor, to the click of a satisfied customer into the gui, or whatever it is that has been delivered. There needs to be a way from my line of code to get under the customers mouse cursor, that is working as smoothly and as reliably as a¬†Swiss¬†clockwork.
Many of those tools, the¬†average¬†software engineer or programmer probably is already familiar with, but I believe that is also of value to be aware that these tools and workflows, don’t just appear magically. They are conceived, built and it takes great care and determination to get them set up just right.
Also, I believe that especially “non technical” managers, if there is such a thing, need to have some idea about what is going on in software development. Startup founders that are building software based businesses also come to my mind here.
But lets get to the beef, the 3 basic building blocks of the set are, the source code repository, the build server, and eventually the test environment. The source code repository is where all the work of the team gets together. Here the integration happens, here the source code is backed up, should one of the developer workstations crash, and lose all its data. Here all the changes are recorded, here is where older states of the software could be restored.
The source code repository is also the key hole, through which the build server connects to the developers. Depending on what your development philosophy is, everything that you need to build the software should be in the repository. So that the build server can get it to build the software. When a developer wants to have something in the built, he needs to put it into the repo, so that the build server can get it from there. There should be no shortcuts, no tampering with the build server. No pressing buttons on the build server, no adjusting files, etc. once the process is in place.
The build server itself, should have a standard installation of the development environment you are using. However, in a way that a build can happen fully automated. If that means a few scripts here and there are needed, then be it so. Whatever your final product is, the build-server should be able to create it autonomously. The product could be a finished windows installer, for example. So then the build server creates that installer from the information he gets out of the repository.
The last role of the build server should then be to push the finished product into some kind of test-environment, be it whatever it is for your product. It could be a virtual machine if you have some rich client application, it could be a webserver, if your product is web based, or it could be some device, like tablet, smartphone, etc. if this is what you do. Could be in emulator of some kind too. Or an app-store, if you are publishing to your users directly from your workflow.
The point of this being is that whoever is testing your product, especially if the testers are not the same people as your developers, and they should not be, need to “sit” as close to development as possible. Without actually needing to disturb them constantly of course.
Source Code Repository
As for the source code repository, I do prefer git these days, although probably any distributed revision control system will do. With distributed meaning, that working with the repository does not require a permanent connection to the repository server, allowing the developers to work offline, which is generally convenient because local operations are faster, they can work offline, on the train, the plane, etc… also there is no single point of failure, such as the server being offline for¬†maintenance, etc.
However, a word of warning, git has a ton of features, and you ain’t gonna need all of them. So don’t get too comfortable applying clever tricks. In certain developer cultures there is a tendency to advocate the use of branching for example. Others tend to shy away of using them. I am firmly in this camp. Of course, it all may boil down to a matter of judgement, and situation, bit in general, don’t use it. That is branching allows to keep several streams of development in parallel, which I believes fragments the development efforts¬†unnecessarily, and I use other techniques to introduce “larger” changes, mostly on the sourcecode level, rather than the repository level.
In my process, the role of the source code repository is simple and limited:
  1. Bring developers code together
  2. Record history
  3. Feed to build server
There are some features that are convenient, like for example using a rebase pull to keep the history clean and avoid superfluous merge-markers, etc. But I again, I like to not get to clever about that.
As for branching in the source code repository, I mentioned using other techniques, one of them being modularising the code and have it communicate via fixed interfaces. This should allow it, if applied reasonable to implement even larger enhancements, in small increments, without confusing the other developers, as you can work mostly in your own newly created module.
That means however, that the core of the application has to be already relatively stable. So only few devs can work on that, but that is probably the nature of software development, and having branching in your version control system ain’t gonna change that anyways.
Build Server
As for the build server, I’d recommend to use the open source build server Jenkins, these days, but in a way it is just the scaffold for your actual build tools. It is java based, but can be used for any kind of environment, I use it for C++ for example. Eventually it will just trigger some scripts, to do what ever it is you have to do for a build of your software. If your process is already well developed, and you can do all your build and delivery steps via a script, you can already hook it into Jenkins, add a trigger based on commits to your repository, and have a go.
There are different philosophies about how to go about your build. Some people like to have everything from compilers to libraries, etc. in their repository, and basically keep all the build tools in version control too. I for one prefer a rather “vanilla” environment, based on a standard Linux distribution, with all dependencies out of the package system, with as little¬†customization¬†as possible. This makes it more convenient to what I do. If however you have specific requirements on your gcc version, a cross compiler, etc. because you do work for obscure embedded platforms, then the other philosophy might do you better.
Depending on your process, and the infrastructure you have, the build server might be a good place to run your unit tests, code metrics, static analyzers, etc. Jenkins has all kind of capabilities to record and archive your results. You might also be able to do a setup that pushes releases based on tags in your repository. That includes possible uploads to your homepage, an appstore, posting updates to shareware software news sites, beta areas of your user community, etc. If you are in anyways like me, you want to get updates out to your users as fast as possible, and this is your secret weapon, to spread as quickly as you can.
That is I am mostly talking about apps, if you are doing web development, well, then you probably need to adjust that recommendations to your specific needs.
If however you are in a more corporate context, you might not just push software into the wild, but rather into a test sandbox first. So this is what we do next.
Test Environment
This shouldn’t be to difficult, so, whatever kind if device it is you run on, set up an installation that is as close to vanilla as¬†reasonable, and make sure, either the build server pushes regularly to it, or the device can fetch updates in a¬†reasonable¬†time frame. Preferable again, installation of your test environment should be automated and not require much tinkering.
The take-away here being that as I said, you want to have a tight feedback loop between testers/users and developers. And that feedback loop should be automated, because if it is not and setting up test devices requires developer intervention, then it is doomed to distract your development crew, and it is doomed to deteriorate. That is, bit rot will set in, people will complain, developers need to fix it, so then they cannot do their actual job, and things will deteriorate further, a deadly spiral.
However, if you have a large user community, you can also push updates to selected beta testers, and have them report back for example. The details of which is beyond this article though.

Only that which can be copied is truly unique

Paradox it seems, does it?

Lots has been written about the cultivation of an abundance mindset, in contrast to the more widely adopted scarcity mindset.

One mindset, the one that is often cultivated by shady advertising material, and publications aimed at the uneducated, adopts and promotes a standpoint that is based on fear. Based on the notion that there is not enough for everyone. That there are people that have ‘more’, that there is not enough to eat, not enough money, not enough love, not enough material possessions, not enough time to enjoy etc. It instills a worldview into each and everyone that allows him/herself to be infected that there is race going on, and that you will lose it unless you do whatever is in the interest of the entity controlling this information stream. Unfortunately, there is no winner in this worldview. Because, even if you were in the position of authority, you are afraid too, because why would you make such claims, unless you are afraid that those listening to you, below you are out there to get you and take your position away?

But there is a different mindset, one that is only cultivated by knowing circles, although this knowledge sifts into the mainstream consciousness occasionally, yet slowly. And that is the abundance mindset. It is the idea that the world is rich, and can provide for everyone, the idea that everyone can live comfortable, without being afraid. Its an idea that can, and is being, cultivated among a minority. Yet this minority is growing as I already mentioned. It is an idea that is scary and uncomfortable for those that are still deeply enrooted in the scarcity culture. It is an idea that appears dangerous to the scarcity culture. It is an idea that is being violently fought, ridiculed and laughed at, by those that live in the illusion that they are in control. By those that think of themselves as having power. An illusion though.

So much for an introduction, but how to we get to the conclusion that “Only that which can be copied is truly unique”? Well lets start with an example.

I’ve been to a movie this week, which kind of inspired me to this article. But lets start with something different. I’ve been to a party last week, at a club, and I arrived early with my friends, so we got in easily, Later in the evening though, the place was already getting crowded, and outside the venue a long row of people started to line up.
Would I have arrived this late, I would have probably skipped this party, because I cannot be bothered to wait in a long row. From my mind something that I have to wait for, a resource that is only so scarcely available that I have to wait for it cannot be worth much. Most likely, it is a scam. A common advertising slogan: “Come on, get it now, it is unique, it is only available this time, it is only available for a limited time” already puts me into the perception that the good being advertised is probably boring, and not worth bothering. For example a pair of trousers or any other piece of clothing is never truly scarce. I can buy it today, if I want to or I can get something equivalent next week, next month, next year, and most likely also in ten years. So when someone creates an aura of exclusivity, I am already bored to tears.

And actually, this applies to almost any kind of physical good. Food, clothing, houses, cars, computers, smart-phones, etc…

But in fact there is something that I assign a much greater value. Something that is much more interesting to me, and that I can get excited about much more. And those are immaterial goods. Information, so to speak. And judging from the increasing amount of huge data-centers popping up around the world at centers of wealth, this appears to be a trend. Those are more or less physical factories bound to process, store and interact with immaterial data.

Why is this? What is information? How is it created? Distributed? Valued?

Lets take literature for an example. I’ll take James Joyce’s “Ulysses”, even though I haven’t read it. A work of fiction that is probably widely distributed, and a copy can be most likely acquired for a price that is affordable by a wide range of this planet’s individuals. There might have been a time where reading and the access to literature and libraries has been restricted to an exclusive minority, but in many parts of the world those times are over.

So the material wealth to acquire such an information piece is neglectable. However, few would probably argue against that the text in question is a valuable piece of art.

And even though, many many books are being written as you are reading this. And even though there are many topics and genres where authors repeat the same patterns and thoughts again and again, nothing that is exactly equivalent to James Joyce’s “Ulysses” can ever be produced again. So the idea, the piece of information is that which is unique, even though, its representation can be copied indefinitely.

And therefore we arrive at the conclusion:
“Only that which can be copied is truly unique”

Going Nude: Learning Skills that require no Tools and Equipment

Currently I am quite obsessed about the idea of doing things “nude”, that is not¬†necessarily¬†without clothes, but rather without much¬†preparation¬†and equipment. That might range from entertaining a crowd with just being yourself and showing a few tricks. Just look at Bobby McFerrin at TED for an example.

He has fun, involves the audience, and everyone feels the magic. But it does not stop there, your body is a powerful tool, but being surrounded by equipment and machinery, diminishes our perception of what is possible without crutches and prosthetics.

There are many sports and forms of entertainment, that require equipment like skiing, biking, golfing, etc. but have you experienced the pure joy of just running through the woods, jumping broken trees and grown out roots, smelling the nature, feeling your feet adjusting to the ups and downs of the ground? Yeah, that might require running shoes, but there is even a growing movement of barefoot running proponents. And as a middle ground, there are lightweight shoes like Vibram Five Fingers and Nike Frees.

Or enjoying activities with other people, that do not require gadgets or consumption. Feel the pure and raw energy of human bodys crushing together in some martial arts lessons. I’ve taken up dancing recently, and alas, physical interaction with a person does posses quite a different quality than holding the handles of your bike or pounding away on the lifeless plastic of your computer-keyboard. The mechanical interface to satisfactorily satisfy the precise quality of the human ability to perceive tactile information is still to come. Learning a skill that involves physical interaction, is like learning a new language. A language to often neglected I believe, when interacting with people not yet trained in a language of physical¬†expression, their movements being imprecise, uncontrolled hard and inhuman. Like the’ve become the plump machines themselves that were supposed to make our lives more pleasurable.

Physical movement can be a language, there are even deaf people that “think” in gestures.

And stying with language learning, of course this is another skill that requires no tools. Books maybe, to get you started, but once acquired, the skill is yours, embedded in your soul, ready to be applied.

Being the Movie Buff that I am, I rewatched one of the “Jason Bourne” movies yesterday with a friend, and it always fascinates me how Jason Bourne is able to “act” nude in almost every situation. Just imagine yourself, drifting on the ocean, no money, no tools no equipment, yet being able to deal with everything that comes thrown towards you. Being able to speak every language, being able to fight, improvise, understand technology, etc.

btw. technological understanding is an important nude skill in itself. Being able to use found equipment, computers that you’ve never used before, can¬†alleviate¬†the need to carry your own familiar technology with you all the time. And also, technology is built by humans, so by understanding technology you understand humans, and vice versa ideally. ūüėČ

And the last, and eventually most important nude skills is that of being able to build tools. ūüėČ And here I am mostly thinking about the¬†entrepreneur. Imagine yourself stranded in a foreign country, no identity, no money, no job, nothing. How long will it take you to indulge into the local economy, build networks, found organizations, provide value to the community and work your way to a joyful existence?

Knowledge is the new capital, and I have good news, there is plenty and its free for everyone. I’ve learned more from the internet and from interaction than I ever could from a university.

Have fun,

Spiritual Enlightenment for non-believers – Expanding your intellectual toolbox

If you are coming from an atheist, highly intellectual culture, like I do, where science and facts are given the uttermost emphasis, you might find it hard or ridiculous to even consider thinking about or discussing something that could be labeled as “Spiritual Enlightenment”.

So did I, because through family values, my upbringing, education and things I learned at university I was never seriously confronted with such a concept.

Today however, after many experiences, traveling, reading, interacting with the world around me, I’ve come to find a technique and understanding of what I might call “enlightenment”.¬†There might be other words to describe that experience, but lets stick with this term for now.

The idea of enlightenment, as I understand it has nothing to do with magic or god or religion or any other kind of abracadabra that might sound ridiculous to you. I simply view enlightenment as just another tool in the human intellectual toolbox. Very much like logical reasoning, reading or writing. Albeit it is a powerful and eventually even dangerous tool.

But then again, think about how the skill of reading and writing was once a jealously guarded secret by those who considered themselves to be higher up and in control. And even today, the written word is feared and restricted by certain authorities.

Enlightenment can give you a level of freedom, that you might not be aware exists, but don’t think it might make your life any easier or less complicated, rather the opposite. And I am sure there are people that might fear the prospect of widespread adoption of this knowledge, because it questions and undermines their positions of power. They might ridicule and even fight it.

However, like you were able to learn how to read and write, you can learn to enlighten yourself. And it is not much of a secret either, there are plenty of people who learned to do this, and there are many books and lots of information readily available.

Learning about enlightenment will mainly be helpful to you when you are somehow stuck in your life, when you have desires and wishes that you find unable to fulfill, be it financially, socially, romantically or intellectually. But it is not a shortcut and it does not mean that things will magically fall into place. It is just another tool that can show you the light at the end of the tunnel, and how to get there.

And it is also not a skill that can be learned in a day, or that I can fully explain in this short blog posting. Like learning how to read and write, it might take you a year or two to gain an understanding, and a lifetime to master it. But you will likely experience a number of “aha” effects and significant progress throughout the process.

While you go through this process, you can expect to experience the following sensations. You will become much more aware of your feelings and instincts and you will start to rely upon them to guide you. So for example a lot of the current industry is geared around selling you some stuff that promises to¬†fulfill¬†some desire. However, quite often you’ll fail to get the level of¬†satisfaction¬†and¬†happiness¬†that you desired so much. You will learn to let go of physical things and learn to go for the feeling you want directly.

You will gain an increased sense of your own power over yourself, your surroundings and others, and you will gain an insight into why it is unnecessary and even counter-productive to abuse that power over others to do harm.

You will also find that some goals you expected to be hard, almost impossible to reach, to be suddenly in sight and attainable. You will develop a much deeper understanding of human nature, how people interact, and why things are the way they are, how to change them, and why this is often not even necessary.

Lots of these things are happening with body language, the words we choose to express ourselves with, and also about cultural habits, fears, expectations, etc. In short everything that is¬†characteristic¬†of ¬†human nature can be used as a starting point. And conveniently enough, many of these things can be observed, explained and understood scientifically too, if desired. But the goal for enlightenment is not to understand things in a intellectual/scientific way, but rather to develop an additional intuitive understanding that results from “real” and practical interaction with actual people.

So as a first step for learning about enlightenment, you can read about something, and then go out and interact with human beings, observe what you feel, and why, learn what makes you happy, angry, what frightens you, and how the people around you might feel about a situation. Ask them if¬†necessary. ūüėČ

You see, there is nothing magic or mysterious about enlightenment. You just have to continue looking, and learning. See enlightenment as a way of understanding theoretical knowledge in practical human interaction.

Have fun,



Free Love and Happy Working, 10 Years to total lifestyle innovation

ÔĽŅÔĽŅ¬†Throughout¬†my journeys, experiences and conversations in the recent years, I learned some amazing facts. Well, amazing for me.

  1. The traditional core family, father, mother some children living together is just one of many possibilities, and quite honestly the idea of that constellation scares me. While I certainly value the experience of having deep and caring relationships, I cannot imagine myself to limit my love to just one partner. I’d rather live together in a larger “family” with several individuals, sharing compassion, like in a commune, that encourages free love and kindness.
  2. The traditional idea of working harder and harder in a job you don’t like, to earn a living scares me too. But there is a different kind of work, I know that there are people that have built lean and efficient organisations, where people can work¬†stress-free,¬†fulfilled¬†and happy on something meaningful. I¬†know¬†that such organisations exists, and I explored much of the knowledge necessary to build one. And in the coming years I will try everything to make such an organisation for me and my people a reality. Such organisations should provide the means to make a living for the big family structure that I mentioned in the first point.

Will it work? Well, I know that such structures and arrangements exists, and I am sure that there are many more that nobody has yet heard of, where people are just living their own happy lives.

And while there are probably many communes that live¬†self-sustaining, most that I’ve heard of seem to advocate more of a “hippie chic”, colorful, chaotic, earthly, alternative look. While I can understand that there is a certain aesthetic to it, I am aiming for an¬†entirely¬†different aesthetic, and that is one that is more inspired by the mainstream, corporately¬†dictated¬†“culture”, rather than the bohemian style.

Why that? Because I think the world is ready for such a way to live, and I’d love to show the world that a different life is possible for everyone. I don’t want to make people that are still slaving away in a job they dread to feel left out. I want to show people that happiness is only a tiny step away rather than requiring a radical identity shift.

I do like the world as it is, I’d just like to see a focus shift to working smarter, more relaxed and more efficiently, rather than harder, and to focus more on¬†relationships, rather than things you can buy. From what I’ve seen, learned and observed, I have no doubt it is possible. And as far as I can see, there is nothing more important for me to do in the next 10 years, so I’ll go for it in any case. And the best thing is, I know I am not alone, this movement is already taking up speed.

Have fun,

What is a Hackerspace – Why start one?


people that know me, probably also know that I have founded a so called hackerspace in my local town last year. Actually, I founded it with my good friend Albert Frisch, and with all the help from my friends and family.

Before I go into what a hackerspace actually is, I will explain why we decided that we absolutely need to have one, and therefore started that effort.

It all started out with my working on my own Open Source Video Editing Software. Which was actually inspired by my bodybuilding and weightlifting brother doing amateur movie projects, and myself being quite a Linux enthusiast and running a local Linux User Group.

But I digress, my involvement into the Linux Video Community brought me one day to the Piksel Festival for Open Source and electronic arts. There I made a couple of quite life changing experiences.

You might have never been to an arts festival like this, so I have to try my best to describe what I experienced there. However, I am afraid to really make sense of it, you have to experience this yourself.

When you bring a number of very creative people from all over the world into one place, and they all mingle, work concurrently on all kinds of ideas, play, experiment, etc. something special happens. You have to imagine, artists can be quite open about what they are doing, and they are not afraid to try all kinds of things that might be dangerous, pointless, useless, interesting, fun, chaotic, complex, indecipherable, etc.

For example, there is the practice of “circuit bending”, which is taking apart electronic toys, essentially destroying them, and trying to connect cables that weren’t meant to be connected, just to find out, what sounds it might make.

And now imagine a whole festival where everyone is interacting and participating, doing stuff you are not ought to do. This creates kind of a bubble, a little place where everything is possible, where everything is allowed. Nobody is afraid anymore of screwing up, because essentially everyone else is screwing up already. This is a very good feeling, and it is an atmosphere where things just start to happen.

So I started thinking, determined to take that good feeling home with me, and share it with everyone I know. And I realized that there are actually places where people that are coming to events like Piksel gather. There are media labs, and artists workshops and communities all around the globe.

And the Hackerspace Zeitsparwerk is the result of that determination, its our little bubble of freedom and unlimited creativity.

Here is a video where I demonstrate a climbing wall that was built in our hackerspace:

Have fun