<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>mchls.works</title>
    <description>Personal homepage of Ole Michaelis – Working @DNSimple, curator of @socodedconf and @slidrio. Passionate Software Engineer. I ♥️ elixir, ruby, node, metrics, NoSQL and all bleeding edge stuff!
</description>
    <link>http://mchls.works/</link>
    <atom:link href="http://mchls.works/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 17 Nov 2022 20:39:38 +0000</pubDate>
    <lastBuildDate>Thu, 17 Nov 2022 20:39:38 +0000</lastBuildDate>
    <generator>Jekyll v3.9.2</generator>
    
      <item>
        <title>Going remote: One year with DNSimple</title>
        <description>&lt;h2 id=&quot;going-remote&quot;&gt;Going remote&lt;/h2&gt;
&lt;p&gt;As mentioned in my &lt;a href=&quot;/2017/jimdoquit-one-year-later&quot;&gt;previous post&lt;/a&gt;, I am working remotely for about a year now. I wanted to work remotely for quite some time before that. Getting a remote job is quite hard, as most companies want you to have existing remote work experience already. So getting into it is tricky. I managed to &lt;a href=&quot;https://blog.dnsimple.com/2017/02/welcome-ole/&quot;&gt;join DNSimple&lt;/a&gt; after a period of a short-term contract.&lt;/p&gt;

&lt;p&gt;When I announced that I’m joining DNSimple my friend Daan challenge me to blog about my experience.&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; data-conversation=&quot;none&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I would be very interested in knowing how you first day/week/month/year will be. Care to blog about that?&lt;/p&gt;&amp;mdash; Daan van Berkel (@daan_van_berkel) &lt;a href=&quot;https://twitter.com/daan_van_berkel/status/816652787555729408?ref_src=twsrc%5Etfw&quot;&gt;January 4, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;So here am I summarizing my first year of working with DNSimple. Whenever I mention that I am working remotely, I usually face the same questions. Here are the Top 3 and their respective answers.&lt;/p&gt;

&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;

&lt;h3 id=&quot;where-is-your-company-based&quot;&gt;Where is your company based?&lt;/h3&gt;
&lt;p&gt;We have no headquarter, the company &lt;em&gt;DNSimple&lt;/em&gt; is a US company. But the team is globally distributed across six different countries.&lt;/p&gt;

&lt;h3 id=&quot;so-you-are-working-from-home&quot;&gt;So you are working from home?&lt;/h3&gt;
&lt;p&gt;TL;DR: Sometimes.&lt;/p&gt;

&lt;p&gt;It depends some month I prefer staying at home, but I quickly realize I’m not that productive and staying at home the entire day drains my mood. I also work from various co-working spaces, some month I spend a more or less &lt;em&gt;regular&lt;/em&gt; working day there. Others I’m only there to attend a conference call.&lt;/p&gt;

&lt;p&gt;But my most favorite places are coffee shops, I wrote an article about &lt;a href=&quot;https://blog.dnsimple.com/2017/03/working-in-coffeeshops/&quot;&gt;the dos and don’ts of working from coffee shops&lt;/a&gt;. Coffeeshops are great because you have people around you it’s a busy environment but allows focus (for me).&lt;/p&gt;

&lt;h3 id=&quot;are-you-lonely&quot;&gt;Are you lonely?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;No!&lt;/strong&gt; I’m part of a team, we work together, we are just not in an office. We’ve Slack that’s our company water cooler, where you meet your coworkers, joke around and chit-chat. Say hello when you arrive and let others know when it’s time to pick up the little one from the Kindergarten.&lt;/p&gt;

&lt;p&gt;We also see each other at least three times a year at a tremendous sunny place somewhere on earth when we have our team meetups. This year, we’ve been to the south of France, Rome and the USA.&lt;/p&gt;

&lt;p&gt;If I feel to urge to have actual human conversations, it’s OK to take the time to &lt;em&gt;just&lt;/em&gt; meet a friend for an extended Lunch. That’s part of working remotely too.&lt;/p&gt;

&lt;h2 id=&quot;frustrations&quot;&gt;Frustrations&lt;/h2&gt;

&lt;p&gt;When I started I remember one of the biggest frustrations was to keep up with everything that was happening. Slack is a firehose. Every commit, every PR, every signup and every human is posting to the chat. &lt;strong&gt;A LOT&lt;/strong&gt;. I wanted to read and understand everything. There is so much going on, and I had questions about every single bit.&lt;/p&gt;

&lt;p&gt;In hindsight, this is great. It creates the feeling that you are not working alone, and even if no one is actively chatting, you see that others are around because they trigger the web hooks that fire into chat. Now, this firehose creates a warm and fuzzy feeling for me.&lt;/p&gt;

&lt;h2 id=&quot;celebrations&quot;&gt;Celebrations&lt;/h2&gt;

&lt;p&gt;There is so much to celebrate it’s hard to pick the most and single best thing. For me, it is the fact to work with brilliant humans, that are eager to teach. I can learn so many great new things in a field I am very interested in. Still, there are many things to learn and areas to improve technically and especially personally.&lt;/p&gt;

&lt;p&gt;I am thankful for being presented with the opportunity and working with so many great and wonderful humans. Thank you wonderful humans of DNSimple onwards to the next years!&lt;/p&gt;
</description>
        <pubDate>Wed, 27 Dec 2017 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2017/one-year-remote-with-dnsimple</link>
        <guid isPermaLink="true">http://mchls.works/2017/one-year-remote-with-dnsimple</guid>
        
        <category>remotework</category>
        
        <category>coffeeshops</category>
        
        
        <category>DNSimple</category>
        
      </item>
    
      <item>
        <title>#jimdoquit one year later</title>
        <description>&lt;p&gt;This day exactly one year ago I was fired.&lt;/p&gt;

&lt;p&gt;Actually, I was one of about 70 people, around 25% of the company, which were fired as part of a mass layoff. Here is what happened that day.&lt;/p&gt;

&lt;h2 id=&quot;getting-fired&quot;&gt;Getting fired&lt;/h2&gt;

&lt;p&gt;The whole company was gathered in the huge kitchen area to listen to a short announcement of one of the founders that they missed to place effective structures and that they will have to fire 25% of the company to accelerate again.&lt;/p&gt;

&lt;p&gt;The whole time the atmosphere was &lt;em&gt;super strange!&lt;/em&gt; I knew right from the beginning that I would be part of the 25%. I told my boss the day before that I’m about to quit. Turns out most of the people in our group were about to leave, like me.&lt;/p&gt;

&lt;p&gt;Obviously this was not true for everyone, some people were &lt;strong&gt;shocked&lt;/strong&gt; because they have not seen any of this coming. They felt as integral part of the company.&lt;/p&gt;

&lt;h2 id=&quot;jimdoquit&quot;&gt;#jimdoquit&lt;/h2&gt;

&lt;p&gt;I went back to my desk to pack my stuff and tweeted this:&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;To you my lovely fellas 💖 &lt;a href=&quot;https://twitter.com/hashtag/jimdosplit?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jimdosplit&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/jimdoquit?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jimdoquit&lt;/a&gt; &lt;a href=&quot;https://t.co/Qs4nnwZxpg&quot;&gt;pic.twitter.com/Qs4nnwZxpg&lt;/a&gt;&lt;/p&gt;&amp;mdash; Ole Michaelis (@OleMchls) &lt;a href=&quot;https://twitter.com/OleMchls/status/791210157665579008?ref_src=twsrc%5Etfw&quot;&gt;October 26, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;– #jimdoquit was born.&lt;/p&gt;

&lt;p&gt;One thing that stuck with me: &lt;em&gt;They&lt;/em&gt; even prepared IKEA bags and placed them in the hallways. I’m still torn if this was either a super nice thing to make this day a little bit better or if this was the absolute sign that we are just human resources that need to leave asap.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/uploads/2017/ikea-bags.jpg&quot; alt=&quot;ikea bag full of folded ikea bags in a hallways&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This #jimdoquit thing took off like crazy. Almost every company in Hamburg and many many others from Germany posted their job offers with that hashtag. They were after us on Xing, LinkedIn, and basically everywhere.&lt;/p&gt;

&lt;p&gt;That’s what happened that day, but for me the more interesting days were just ahead.&lt;/p&gt;

&lt;h2 id=&quot;feeling-the-support&quot;&gt;Feeling the support&lt;/h2&gt;

&lt;p&gt;I’ve meet tons of people from around Hamburg in the days after. I think they enjoyed the chance to talk to someone who was affected and I had the chance to grow my network and check-in with possible new employers. In general, and here is &lt;strong&gt;a take away for you&lt;/strong&gt;, everyone wants to hire software people. At no point in this journey I had the fear of not getting food on the table.&lt;/p&gt;

&lt;p&gt;Everyone was so supportive; the affected people were organized in facebook groups to catchup and exchange job offers. We took application training at my friends from &lt;a href=&quot;http://www.alphacoders.de/&quot;&gt;alphacoders&lt;/a&gt; and helped each other by checking our CVs.&lt;/p&gt;

&lt;p&gt;I still remember two cases that I appreciate a lot. I was having a (sort of) interview and had to take a very important phone call; instead of getting weird looks I recived all the support with a quiet room and a shifted meeting.
The other occasion was a former co-worker who is now running a company as CTO. He said I should really look for what I wanted to do and if this takes more time he’ll hire me to bridge the gap.&lt;/p&gt;

&lt;p&gt;Thanks, mates ❤️&lt;/p&gt;

&lt;h2 id=&quot;one-year-later&quot;&gt;One year later&lt;/h2&gt;

&lt;p&gt;One year has passed since then. The time has helped to let this situation sink in and reflect on what happened. I am thankful for the time and opportunities I had. But still, getting fired is something that stinks.&lt;/p&gt;

&lt;p&gt;I have now joined &lt;a href=&quot;https://dnsimple.com&quot;&gt;DNSimple&lt;/a&gt; working in a globally distributed remote team; working on products for other tech people. How I landed that job is a story on it’s own that I will &lt;em&gt;most likely&lt;/em&gt; publish soon.&lt;/p&gt;

&lt;p&gt;If you ever find yourself in the same situation, do not let this get you down. Ask your peers for help or get in touch with me; I’m also always happy to help.&lt;/p&gt;
</description>
        <pubDate>Thu, 26 Oct 2017 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2017/jimdoquit-one-year-later</link>
        <guid isPermaLink="true">http://mchls.works/2017/jimdoquit-one-year-later</guid>
        
        <category>jimdoquit</category>
        
        <category>remote</category>
        
        <category>distributedteams</category>
        
        
        <category>Jimdo</category>
        
        <category>DNSimple</category>
        
        <category>meta</category>
        
      </item>
    
      <item>
        <title>Let's Encrypt (beta) on rails</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://letsencrypt.org&quot;&gt;Let’s Encrypt&lt;/a&gt; is here to fix the web with free SSL certificates for everyone, and I hope they will gain a lot of tracing with this! &lt;a href=&quot;https://slidr.io/&quot;&gt;slidr.io&lt;/a&gt; was choosen as a beta tester. And operates with a Let’s Encrypt certificate I want to share how I got through the challenges with my rails app hosted on Heroku and uploaded the certificate.&lt;/p&gt;

&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;Follow the steps in the &lt;a href=&quot;https://letsencrypt.readthedocs.org/en/latest/using.html#installation-and-usage&quot;&gt;installation instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;generating-the-certificate&quot;&gt;Generating the certificate&lt;/h2&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./letsencrypt-auto &lt;span class=&quot;nt&quot;&gt;--agree-dev-preview&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--server&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
      https://acme-v01.api.letsencrypt.org/directory auth
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The first question is if you’d like the standalone verification or the manual one. I’d go for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;manual&lt;/code&gt; one as I’ve no access to the “server”.&lt;/p&gt;

&lt;p&gt;The client will ask you for the domain(s) you want to have included in the certificate.&lt;/p&gt;

&lt;p&gt;Next you will be presented with a challenge which looks basically like this:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Make sure your web server displays the following content at
http://slidr.io/.well-known/acme-challenge/&amp;lt;some &lt;span class=&quot;nb&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; before continuing:

&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;header&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;alg&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;RS256&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;jwk&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;e&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;AQAB&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;kty&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;RSA&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;n&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;}}&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;payload&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;...&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;signature&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;

Content-Type header MUST be &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;to application/jose+json.
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;...]
Press ENTER to &lt;span class=&quot;k&quot;&gt;continue&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;headsup: the url is http, and as of now their client does not follow 30&lt;/em&gt; redirects, also non to https :wink:*&lt;/p&gt;

&lt;h3 id=&quot;passing-the-challenge-with-rails&quot;&gt;Passing the challenge with rails&lt;/h3&gt;
&lt;p&gt;To pass this challenge I’ve to get my Rails app to respond, here’s the change set I’ve figured out working nicely for me:&lt;/p&gt;

&lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# config/routes.rb&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'/.well-known/acme-challenge/:id'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'welcome#letsencrypt'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# app/controllers/welcome_controller.rb&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;letsencrypt&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;application/jose+json&quot;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;render&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;body: &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'{&quot;header&quot;: {&quot;alg&quot;: &quot;RS256&quot;, &quot;jwk&quot;: {&quot;e&quot;: &quot;AQAB&quot;, &quot;kty&quot;: &quot;RSA&quot;, &quot;n&quot;: &quot;...&quot;}}, &quot;payload&quot;: &quot;...&quot;, &quot;signature&quot;: &quot;...&quot;}'&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As I mentioned it will not follow redirects, so make sure you &lt;strong&gt;temporarily&lt;/strong&gt; disable it.&lt;/p&gt;

&lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# config/environments/production.rb&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;force_ssl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;uploading-the-certificate-to-heroku-ssl&quot;&gt;Uploading the certificate to Heroku ssl&lt;/h2&gt;
&lt;p&gt;After pressing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Enter&lt;/code&gt; and waiting a few secs, I was presentes with the following message&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;IMPORTANT NOTES:
 - Congratulations! Your certificate has been saved at
   /etc/letsencrypt/live/slidr.io/cert.pem and will expire on
   2016-01-20. To obtain a new version of the certificate in the
   future, simply run Let's Encrypt again.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now I had to upload the cert to Heroku:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;heroku certs:update /etc/letsencrypt/live/slidr.io/fullchain.pem /etc/letsencrypt/live/slidr.io/privkey.pem
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;headsup: it is important that you choose the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fullchain.pem&lt;/code&gt; because otherwise some browsers might mark your site as untrusted.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That’s it already. I hope this little guide helps you too, or gave you some insights how the Let’s Encrypt process looks like.&lt;/p&gt;

&lt;p&gt;I also want to say a huge THANK YOU to everyone involved with Let’s Encrypt it’s a great project involving a lots of efforts. You folks rock! &amp;lt;3&lt;/p&gt;
</description>
        <pubDate>Thu, 22 Oct 2015 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2015/let-sencryt-on-rails</link>
        <guid isPermaLink="true">http://mchls.works/2015/let-sencryt-on-rails</guid>
        
        <category>tech</category>
        
        <category>heroku</category>
        
        <category>rails</category>
        
        <category>ssl</category>
        
        
        <category>OpenSource</category>
        
        <category>Development</category>
        
      </item>
    
      <item>
        <title>DevOps @ Jimdo, conferences and slidr.io on a podcast</title>
        <description>&lt;p&gt;I was a guest at &lt;a href=&quot;http://descriptive.audio/&quot;&gt;DESCRIPTIVE&lt;/a&gt; a podcast from my friend &lt;a href=&quot;https://twitter.com/distilledhype&quot;&gt;Kahlil Lechelt&lt;/a&gt;. I talked about various topics, including how we do DevOps at Jimdo, the stoy of so coded and the bliss I found in developing &lt;a href=&quot;http://slidr.io&quot;&gt;slidr.io&lt;/a&gt;.&lt;/p&gt;

&lt;audio src=&quot;http://static.squarespace.com/static/542864e4e4b04de32a8a5ece/t/54622612e4b0ba3d01e5168e/1415718418677/DESCRIPTIVE-6.mp3/original/DESCRIPTIVE-6.mp3?download=true&quot; controls=&quot;controls&quot;&gt;
&lt;/audio&gt;

&lt;p&gt;You can find the shownotes and the podcasts subsribe button here &lt;a href=&quot;http://descriptive.audio/episodes/6&quot;&gt;http://descriptive.audio/episodes/6&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Nov 2014 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2014/devops-at-jimdo-conferences-and-slidrio-on-a-podcast</link>
        <guid isPermaLink="true">http://mchls.works/2014/devops-at-jimdo-conferences-and-slidrio-on-a-podcast</guid>
        
        <category>podcast</category>
        
        <category>slidr.io</category>
        
        <category>guest</category>
        
        <category>audio</category>
        
        <category>devops</category>
        
        
        <category>slides</category>
        
        <category>jimdo</category>
        
        <category>conferences</category>
        
        <category>talks</category>
        
        <category>slidr.io</category>
        
        <category>devops</category>
        
      </item>
    
      <item>
        <title>Finding Your Voice</title>
        <description>&lt;p&gt;&lt;small&gt;this article was initially published with the March edition of &lt;a href=&quot;http://www.phparch.com/&quot;&gt;php[architect]&lt;/a&gt; magazine. I want to thank them that they allowed me to published the post here on my blog, too!&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;It’s (mostly) always the same story: I’m trying to convince some of my friends to finally submit a talk to a conference Call for Papers (CfP), and the answer is always: &lt;em&gt;“Yeah, I would love to…but I have no idea what I should talk about.”&lt;/em&gt; It’s time to get over your reservations and find your voice.&lt;/p&gt;

&lt;h3 id=&quot;step-1-finding-your-topic&quot;&gt;Step 1: Finding Your Topic&lt;/h3&gt;

&lt;p&gt;Since I have been hearing this so often, I want to share some of my thoughts on finding a topic and becoming the best speaker to present on it at any conference.&lt;/p&gt;

&lt;p&gt;I started speaking at conferences almost two years ago. Since then, I’ve been to a lot of conferences. I was very lucky because my CTO back then was an experienced speaker already. He gave me a bunch of good advice and helped me to find my very first topic. Today, I am going to pass this advice on to you.&lt;/p&gt;

&lt;h4 id=&quot;share-the-story-of-what-you-are-doing&quot;&gt;Share the Story of What You Are Doing&lt;/h4&gt;

&lt;p&gt;I assume you are getting your monthly paycheck for a reason, which means you are actually adding value to your company’s goals. Are you programming new features? Great - go talk about that. How about sharing: ‘How we evaluate which features are worth being implemented’? Are you fixing a lot of bugs? That is also a great topic to talk about. How about: ‘The top five ways to drill down and find EVERY bug’? You may even be doing a bunch of other stuff besides programming - proper project management, prototyping, or technical evaluations - and these are also great things to talk about.&lt;/p&gt;

&lt;p&gt;This brings me to my next point.&lt;/p&gt;

&lt;h4 id=&quot;share-the-story-you-are-absolutely-passionate-about&quot;&gt;Share the Story You Are Absolutely Passionate About&lt;/h4&gt;

&lt;p&gt;Very often after giving a talk, what I hear is that I’m so passionate about the things I’m talking about. The reason for this is dead simple. I &lt;strong&gt;am&lt;/strong&gt; enthusiastic about the things I’m talking about. You should be too. Don’t just pick a topic that’s worth sharing. Pick a topic where you really feel like it’s an amazing thing - it’s the one tool, best practice, or workflow that you can’t live without anymore!&lt;/p&gt;

&lt;p&gt;That being said, there is one last thing you really should know about finding talk topics:&lt;/p&gt;

&lt;h4 id=&quot;even-though-you-know-it-not-everyone-else-knows-it&quot;&gt;Even Though You Know It, Not Everyone Else Knows It&lt;/h4&gt;

&lt;p&gt;That’s really the biggest takeaway of this whole article. To be able to talk about a topic, you should really feel comfortable with it - whatever it might be. We all know that it usually takes at least a couple of months - or even longer, possibly a year - to dig into something well enough to feel comfortable with it. Which brings us to the actual problem: As soon as you know a topic well enough to be able to speak about it, you feel like the topic is so easy that you expect everyone to already know about it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YOU ARE WRONG!&lt;/strong&gt; You should feel special for knowing that thing. Ask your peers if they would be curious to see a talk about that topic.&lt;/p&gt;

&lt;h3 id=&quot;step-2-the-abstract&quot;&gt;Step 2: The Abstract&lt;/h3&gt;

&lt;p&gt;Now that you have a rough idea for a topic, it is time to write a nifty abstract for your idea. Let me tell you my little secret about abstracts: Be as specific as you have to, but try to be as least specific as you can. I usually write my abstract without knowing how my story will look in the end. By keeping it a bit vague, you are preserving the chance to change bigger and smaller details while crafting the talk.&lt;/p&gt;

&lt;p&gt;If you’d like to get an idea of how other speakers are writing their abstracts, there is a pretty obvious way that most people forget about. When you are reading through a conference program, you are just reading a collection of abstracts (and ones that were successful at that). I only know of a very few number of conferences where they ask speakers to write an extra paragraph, separate from their proposal, for the program, so just read through a bunch of programs from your favorite conferences. This way, you can get an idea of what the best writing style would be.&lt;/p&gt;

&lt;p&gt;You are almost there, but there one last thing to do.&lt;/p&gt;

&lt;h3 id=&quot;step-3-name-the-talk&quot;&gt;Step 3: Name the Talk!&lt;/h3&gt;

&lt;p&gt;As we all know, there are just a handful of unsolved problems in Computer Science, and besides printing and dual screen solutions, it’s naming things. This, unfortunately, also applies to finding a name for your conference talk. At this step, it’s a lot about your creativity. Try to make the audience curious, but don’t make false promises. Try to tell them what they can expect and what kind of level your talk will be at…and pack all this information into about 40 to 60 characters. Good luck!&lt;/p&gt;

&lt;h3 id=&quot;youre-done&quot;&gt;You’re Done&lt;/h3&gt;

&lt;p&gt;I hope this made the process of how to get your paper into a CfP a bit more clear and also encourages you to share what you already know. People speaking at conferences aren’t super heroes or super brains. The only difference is that they have realized that they have something to share, and now, you have too!&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Aug 2014 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2014/finding-your-voice</link>
        <guid isPermaLink="true">http://mchls.works/2014/finding-your-voice</guid>
        
        <category>tech</category>
        
        <category>first talk</category>
        
        <category>talk topic</category>
        
        
        <category>Conferences</category>
        
        <category>Development</category>
        
        <category>Talks</category>
        
        <category>Tech Scene</category>
        
      </item>
    
      <item>
        <title>Docsplit on heroku</title>
        <description>&lt;p&gt;I often search the web for things! But in roughly 20% of the cases even google don’t have the answer to my very specific questions. So to prevent you I just want to blog more often tech stuff again. So lets go!&lt;/p&gt;

&lt;p&gt;For my side project &lt;a href=&quot;http://slidr.io&quot;&gt;slidr.io&lt;/a&gt; I choose heroku as a platform, because hardware sucks. But it’s (beside my current work project) my first “real” thing on heroku. So I sometimes stumble upon things I have no clue how to solve it in heroku-candyland. Like recently I wanted to use &lt;a href=&quot;http://documentcloud.github.io/docsplit/&quot;&gt;Docsplit&lt;/a&gt; a gem which has dependencies to some system packages.&lt;/p&gt;

&lt;p&gt;After searching the web for quite a while I found ‘heroku build packs’ will be the solution for that. But I needed more packages and build packs usually only fulfill one dependency. So we need the &lt;a href=&quot;https://github.com/ddollar/heroku-buildpack-multi&quot;&gt;multi-buildpack&lt;/a&gt;. You can use it for your current app like this:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;heroku config:add &lt;span class=&quot;nv&quot;&gt;BUILDPACK_URL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;https://github.com/ddollar/heroku-buildpack-multi.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now you can go ahead and search the web (or basically github) for all the build packs you need for docsplit to run and put them into your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.buildpacks&lt;/code&gt; which should be located in your projects root.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;λ  slidr.io git:&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;master&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ✗ &lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .buildpacks
https://github.com/mcollina/heroku-buildpack-graphicsmagick.git
https://github.com/BauCloud/heroku-buildpack-poppler.git
https://github.com/elbongurk/heroku-buildpack-ghostscript.git
https://github.com/heroku/heroku-buildpack-ruby.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is how my &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.buildpacks&lt;/code&gt; looks like and docsplit runs very fine so far.&lt;/p&gt;

&lt;p&gt;I hope this might also help you, just drop me a line if so or even if you might encounter any issues.&lt;/p&gt;
</description>
        <pubDate>Tue, 04 Feb 2014 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2014/docsplit-on-heroku</link>
        <guid isPermaLink="true">http://mchls.works/2014/docsplit-on-heroku</guid>
        
        <category>tech</category>
        
        <category>docsplit</category>
        
        <category>heroku</category>
        
        <category>buildpacks</category>
        
        
        <category>OpenSource</category>
        
        <category>Development</category>
        
      </item>
    
      <item>
        <title>Programming Motherfucker or how I rediscovered my hacker spirit</title>
        <description>&lt;p&gt;When I was 18, still living at my parents house, a good friend of mine and I volunteered for Europe’s biggest internet radio &lt;a href=&quot;http://www.rautemusik.fm/&quot;&gt;#Musik&lt;/a&gt; to rewrite their website. I was still a trainee at my current company and had a normal 8 hour working day. Right after finishing that, I arrived home and started hacking the website. It was a hilarious time, but I learned a lot and we had so much fun! We also made a lot of mistakes, like writing our own framework and implementing every shitty component on our own. And even if PHP 5.3 was there at the time, we didn’t give a fuck about name spacing our code and such.&lt;/p&gt;

&lt;p&gt;The site launched right before our final exam. When we were done, we parted ways. I became a Lead Developer at the company we were working at and ended up with much less time to hack on things I enjoy. I had way too many managing tasks back then. I just lived my programmer’s life and had some good and some bad times, including &lt;a href=&quot;http://jsconf.eu/&quot;&gt;awesome&lt;/a&gt; &lt;a href=&quot;http://2012.funconf.com/&quot;&gt;inspiring&lt;/a&gt; &lt;a href=&quot;http://www.developer-conference.eu/&quot;&gt;conferences&lt;/a&gt;, some cool projects and a shitload of new things I learned.&lt;/p&gt;

&lt;p&gt;In the middle of 2012 I had my very first public speaking gig at the &lt;a href=&quot;http://www.php-unconference.de/&quot;&gt;phpunconference&lt;/a&gt; here in Hamburg. It was so much fun for me that I decided to do this more often. I submitted my talk here and there, ending up with my first international speaking gig at &lt;a href=&quot;http://takeoffconf.com/2013&quot;&gt;TakeOff Conference 2013&lt;/a&gt;. I went there with 2 friends of mine and we had an awesome time in north France. The Take Off Conf organizes were running that conference for the very first time, and they did an awesome job, but there were still a few little things which annoyed us. It made us think:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If we were running a conference we would do it different&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is what happened eight months later. We spun up our very first conference and &lt;a href=&quot;http://socoded.com/&quot;&gt;So Coded 2013&lt;/a&gt; was a thing! Organizing this was a rollercoaster ride, and right in the end sprint of organizing the event, my two friends became unemployed for (conference) unrelated reasons. So our default chit-chat topic was about what kind of business we could create. What could we do for a living? What would be fun?&lt;/p&gt;

&lt;p&gt;In the middle of the discussion I thought of a thing which has bothered me for quite a long time. Over the previous year I started speaking at conferences because I enjoy teaching and spreading the things I have learned. And for &lt;a href=&quot;/speaking.html&quot;&gt;every conference I spoke&lt;/a&gt; at, I always wanted to upload my slides and give that link to the audience so they can check out all the stuff I mentioned later on. But for me as a speaker uploading slides on a shitty conference wifi was always a hassle. The platforms around really bugged me. Some were not free and didn’t followed the FLOSS principles. Others had bad UX and viewing the slides on your tablet or mobile device wasn’t possible at all (from a point of UX and because of iframes and stuff). Think about how often you are checking stuff on your phone or table on a conference. So I came up with the idea to create a slide hosting platform that does &lt;strong&gt;not&lt;/strong&gt; suck. This was the moment that the idea for &lt;a href=&quot;http://slidr.io/&quot;&gt;slidr.io&lt;/a&gt; was born. I just wanted to get rid of that pain I experienced so often.&lt;/p&gt;

&lt;p&gt;While still in that same Cafe, I immediately registered the domain (on my phone thanks to &lt;a href=&quot;https://dnsimple.com/&quot;&gt;DNSimple&lt;/a&gt;). And due to that fact that 2013 was the year I finally wanted to dig deeper into ruby, I decided to use Rails as a framework. I had the complete software stack in mind. It didn’t cost me any effort to think what I would need, I just knew what I wanted to build. So as soon as I got home I started hacking away. I hacked the whole night till the early morning hours, no matter that I had to go to work the next morning again. I read a lot of documentation, played around with Rails, searched for a plugin for handling auth, and figured out how to run a rails app on Heroku. I had a very very basic setup running by the end of that first night. That was now about 50 days and 80 commits ago. And since that day I have rediscovered my hacking spirit. I just want to get things done, I want to see progress on the tool I want to build, the tool with which I want to change the industry.&lt;/p&gt;

&lt;p&gt;As I mentioned before, I’ve attended so many conferences and I always saw so many fellow nerds hacking (not surfing Facebook) with every free minute they had. I was kind of jealous, because I knew that feeling but it had been for a very long time. But now I’m also one of these people. I grab my laptop with every free minute to improve what I’ve built so far. I hack when I wait at the airport for my next flight. I hack at night and when meeting friends in a cafe with the sole purpose of hacking together.&lt;/p&gt;

&lt;p&gt;I asked a bad ass UX expert and friend of mine (&lt;a href=&quot;https://twitter.com/filtercake&quot;&gt;Fabian&lt;/a&gt;) for help, and lucky me, he also really liked that idea and the challenge of creating something new on a green field. So as of now we are a team of two passionate developers / designers getting our own playground for new technologies we always wanted to play around with. And we aren’t just making a demo for the purpose of testing things, we are building a real app.&lt;/p&gt;

&lt;p&gt;In the past few days, I’ve been thinking about what happened over the last few months, and I realized that whenever I share this story I inspire people. That’s also why I am sharing the story here. Sometimes I’m afraid that I’ll lose this feeling again, and I don’t want it to take me another 3 years to rediscover it.&lt;/p&gt;

&lt;p&gt;I cobbled together this logo so that I don’t forget that,&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/uploads/2013/logo_small.png&quot; alt=&quot;Programming Motherfucker&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I decided to use the term made popular by &lt;a href=&quot;http://zedshaw.com/&quot;&gt;Zed A. Shaw&lt;/a&gt;: &lt;a href=&quot;http://programming-motherfucker.com/&quot;&gt;“Programming Motherfucker”&lt;/a&gt;. It has a different meaning for me than being against all the Agile stuff which is happening in our community.&lt;/p&gt;

&lt;p&gt;It’s more about doing what you love, focusing on why you started doing this kind of job, remembering the reason why I work in this industry. It’s about programming, having fun making things, and creating software and &lt;em&gt;maybe&lt;/em&gt; changing the world!&lt;/p&gt;

&lt;p&gt;I want to make stickers out of it, use it as wallpaper and place it everywhere in my life. Anything to keep myself from forgetting what I am really passionate about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming Motherfucker!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: please feel free to use this ‘logo’ and to place it in your office, bump it to your co-workers screen or paint your wall with it!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 12 Dec 2013 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2013/programming-motherfucker</link>
        <guid isPermaLink="true">http://mchls.works/2013/programming-motherfucker</guid>
        
        <category>slidr.io</category>
        
        <category>motivation</category>
        
        <category>programming motherfucker</category>
        
        <category>so coded</category>
        
        
        <category>Conferences</category>
        
        <category>Rautemusik</category>
        
        <category>OpenSource</category>
        
        <category>Talks</category>
        
        <category>Development</category>
        
        <category>Tech Scene</category>
        
      </item>
    
      <item>
        <title>Bring the valley!</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;I will make the valley know, that Hamburg is way more awesome then Berlin!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a quote from the &lt;a href=&quot;http://socoded.com/&quot;&gt;So Coded Conference&lt;/a&gt; after party. And this, for me as one of the organizers, is one of the biggest compliments we could get. Many people asked me: “Why do you do this?”  Well, that’s an obvious question, right? And with this blog post I will try to explain why, especially in relation to the quote above.&lt;/p&gt;

&lt;p&gt;I love the Valley, or more specifically, I love the hacker spirit around there. So many cool tech companies want to change the world we all live in. In every café you enter, you will find nerds sitting in front of their MacBooks, hacking on new things. So what’s cool about this? These people don’t do it for the money or the fame they might get. They do it because they believe! They believe in the things they build – they believe they can change something. It’s the hacker spirit I love and it is tech people like us that are creating this.&lt;/p&gt;

&lt;p&gt;So when I came back to Hamburg again and took a closer look at the few startups around, I quickly realized that these startups are different, different in a bad way. Almost all of them are founded by business people just trying to create the next Facebook and earn a shitload of money. Some just want to create a cheap, shitty copy of Y and get some money. This fact really bugs me. So what to do?&lt;/p&gt;

&lt;p&gt;One possible option is to just move to the Valley. I guess almost everyone of us had, at some point, thought about this. And never say never, but for the moment Hamburg also has some upsides for me. My wonderful girlfriend, my family, and the wonderful city itself. So there must be another option.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If I can’t go to the valley. The valley has to come to me!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pushing the tech community in my hometown was one of my personal goals that I wanted to achieve with the So Coded Conference. Running a conference is obviously only one aspect of it. It’s more about enabling people. Giving them permissions, the permission to build awesome things, the permission to change the world, and the permission to just be awesome, as &lt;a href=&quot;https://twitter.com/adambrault&quot;&gt;Adam Brault&lt;/a&gt; stated &lt;a href=&quot;http://adambrault.com/2013/09/15/people-first&quot;&gt;on the JSConf.eu closing keynote&lt;/a&gt; this year. &lt;em&gt;Thanks buddy, this keynote was very inspiring to me&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What’s the point then? Well I need your help! This isn’t my mission, it’s ours! Running events like user groups, giving them a place to happen if your office allows it, or organizing free programming lessons for interested people. So many great examples are around already, and there are so many organizations that exist to support you if you want to pitch in! So many companies are willing to help! And at this point, I just want to say thank you to all the people and companies making this happen. And of course this does not exclusively apply to Hamburg, if you feel your city’s tech community should improve, change it!&lt;/p&gt;

&lt;p&gt;Coming back to the initial quote, X is way more awesome then Y? That’s not the point I wanted to make. It’s just that I was overwhelmed by the feedback we got in general. This really empowered my desire to continue my mission.&lt;/p&gt;

&lt;p&gt;In closing, I just want to say thank you to all the people inspiring me to do so!&lt;/p&gt;

</description>
        <pubDate>Fri, 18 Oct 2013 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2013/bring-the-valley</link>
        <guid isPermaLink="true">http://mchls.works/2013/bring-the-valley</guid>
        
        <category>hamburg</category>
        
        <category>san francisco</category>
        
        <category>so coded</category>
        
        <category>epilog</category>
        
        
        <category>Conferences</category>
        
        <category>Tech Scene</category>
        
      </item>
    
      <item>
        <title>Could I become an Ops please</title>
        <description>&lt;p&gt;I started at Jimdo in December 2012, ready to change everything and bring in all my gained knowledge in Software Design and Service Oriented Architecture (SOA). I already knew that the Jimdo system was approximately eight years old, so what we all call a “grown system”. In fact this means that there are a few thing I would do “better”, like we have code tightly coupled to the hardware structure and also into itself. No SOA at all, but I want to change that, as I was hired for the Feature team, I quickly realized that I obviously couldn’t do it alone. I teamed up with &lt;a href=&quot;https://twitter.com/s0enke&quot;&gt;Sönke&lt;/a&gt; and joined the Infrastructure team. He has been at Jimdo since 6 years, so he does not only know a lot about the system, but also is a great software architect.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Why I joined the Infrastructure team?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, I realized that before we can refactor the software we have to do some operations work. The Infrastructure team at Jimdo is responsible for two different tasks:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Keep the system running&lt;/strong&gt;, we have a bunch of hardware servers, so we have to deal with many disk failures and network issues.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Improve the system&lt;/strong&gt;, we are all very annoyed by the things mentioned above. So we can’t to get rid of “möhrchenkonzept” (that’s how we call it internally), which means putting old parts of the system out and putting new stuff in.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hired as an Open Source Rockstar (or technically speaking “Software Engineer”) - I ended up as an Ops guy just a month after I started. This was and still is a great opportunity to learn, not only for me, and I’d like to say that every developer should do this.&lt;/p&gt;

&lt;p&gt;Things I learned so far:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Beeing on-call&lt;/strong&gt;, this actually is one of the hardest things I had to learn. As an Ops guy you are FUCKING RESPONSIBLE for the system, not only when you’re in the office or in front of your notebook. You should respond to an alarm within a given time, so no partying, no real chance for any activity where you cannot react within a reasonable time frame. Of course you also have to get up in the middle of the night. Think about the things you’re doing over the week, and if you can also do them when you are &lt;strong&gt;on-call.&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deploying to production&lt;/strong&gt; can cause a collage to spend the night infront of your notebook. You should develop, as if you have to get up when your deploy cause errors.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;There’s no magic involved&lt;/strong&gt;, your code is always running on systems which have, somehow, to be maintained. Of course you can reduce the amour of work that has to be done with cloud solutions. But these could solutions can only reduce the work which results from hardware stuff. But when you are coding crap even Amazon can’t help you. So sorry friends, I know, the truth can hurt. But there’s no shiny candy land out there which can execute code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This can be a little bit catchy&lt;/em&gt;
For me people who have never used linux as an operation system are &lt;em&gt;no real developers&lt;/em&gt;. It’s more than mandatory to know the platform your code is running on, as I mentioned above. And most of our apps are hosted on an some kind of linux distribution. I’m also a Mac user, but before I switched to Apple I used Ubuntu for quite a long time. And this now helps me a lot, so that I know at least the basics in operations business. Maybe I should rephrase this: Every software developer should have at least some shell and unix knowledge.&lt;/p&gt;

&lt;p&gt;So grab your ops colleagues and maybe offer them a little position exchange (everything included, also being on-call) for about a week or so. You will see this will change your mind and you will gather some more insights and gain a better understanding of the so called “system administrators” in your company. Oh and I finally learned some puppet, too.&lt;/p&gt;

&lt;p&gt;Sidenote: If you like this topic and want to hear more of this, I will give &lt;a href=&quot;http://www.thatconference.com/sessions/speaker_Ole_Michaelis&quot;&gt;a Talk on this topic&lt;/a&gt; at &lt;a href=&quot;http://www.thatconference.com/&quot;&gt;ThatConference&lt;/a&gt; in Wisconsin this August. If you’re also curious about this topic please step by and let’s have a talk.&lt;/p&gt;

&lt;p&gt;Jimdo also has a &lt;a href=&quot;http://dev.jimdo.com&quot;&gt;Developers Blog&lt;/a&gt; you definitely should follow. We try to blog about more specific things we archived so far.&lt;/p&gt;
</description>
        <pubDate>Wed, 08 May 2013 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2013/could-i-become-an-ops-please</link>
        <guid isPermaLink="true">http://mchls.works/2013/could-i-become-an-ops-please</guid>
        
        <category>devops</category>
        
        <category>learning</category>
        
        
        <category>Development</category>
        
        <category>Jimdo</category>
        
      </item>
    
      <item>
        <title>Hubot on nodejitsu</title>
        <description>&lt;p&gt;A few weeks ago I finally managed to deploy &lt;a href=&quot;http://hubot.github.com/&quot;&gt;Hubot&lt;/a&gt; on &lt;a href=&quot;https://www.nodejitsu.com/&quot;&gt;nodejitsu&lt;/a&gt;, as I’ve read a few times people want to know how this works, heres my tutorial.&lt;/p&gt;

&lt;p&gt;###Prerequisites
First of all you need a deployable version of Hubot&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone git://github.com/github/hubot.git
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;hubot &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm &lt;span class=&quot;nb&quot;&gt;install
&lt;/span&gt;bin/hubot &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; ../deployable_bot
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ../deployable_bot &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now you have a deployable version of Hubot in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;deployable_bot&lt;/code&gt; folder. Next step would be to &lt;a href=&quot;https://github.com/github/hubot/wiki/_pages&quot;&gt;configure your adapter&lt;/a&gt;. When your done with this, you have a runnable version of Hubot. Now let’s move on with the nodejitsu part. I assume you have your account and the cli-tools properly set up.&lt;/p&gt;

&lt;p&gt;###nodejitsu and cli flags
As you might have noticed nodejitsu isn’t able to take cli flags. But we need them to make Hubot run properly. Luckily we can configure Hubot also via environment variables. So let’s move all the needed parameters into the package.json, every cli flag is also available as environment parameter with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HUBOT_&lt;/code&gt; prefix&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;demo-hubot&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;start&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;node_modules/.bin/hubot&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;env&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;HUBOT_ADAPTER&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;xmpp&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;HUBOT_NAME&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;demobot&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;note: with nodejitsu you can also store your environment variables in the WebOps interface. Because you’ll have a lots of passwords in your environment variables, and I really suggest &lt;em&gt;not&lt;/em&gt; storing passwords in any repository.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;###deploy on nodejitsu&lt;/p&gt;

&lt;p&gt;This is properly the easiest part&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jitsu deploy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Your application will be created if it’s not there yet. Your robot should now join your configured chat.&lt;/p&gt;

&lt;p&gt;###why nodejitsu? when there is already heroku support&lt;/p&gt;

&lt;p&gt;Here are a couple of reasons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I like new stuff&lt;/li&gt;
  &lt;li&gt;nodejitsu is for node&lt;/li&gt;
  &lt;li&gt;there are no dynos (so no idle timeout stuff)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nodejitsu.com/documentation/features#zero-downtime-deploys&quot;&gt;Zero Downtime Deploys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;###is there more?&lt;/p&gt;

&lt;p&gt;Oh yes! &lt;a href=&quot;http://blog.nodejitsu.com/github-continuous-deployment&quot;&gt;You can have auto-deploy&lt;/a&gt; or check out &lt;a href=&quot;https://github.com/github/hubot/wiki&quot;&gt;Hubot docs&lt;/a&gt; or &lt;a href=&quot;https://www.nodejitsu.com/forward#/docs&quot;&gt;nodejitsu docs&lt;/a&gt;. Hope you this works for you as good as it does for me. If not, just drop me a &lt;a href=&quot;https://twitter.com/codestars&quot;&gt;tweet&lt;/a&gt; :)&lt;/p&gt;

</description>
        <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
        <link>http://mchls.works/2013/hubot-on-nodejitsu</link>
        <guid isPermaLink="true">http://mchls.works/2013/hubot-on-nodejitsu</guid>
        
        <category>coffeescript</category>
        
        <category>robots</category>
        
        <category>chatrobot</category>
        
        <category>nodejitsu</category>
        
        
        <category>Hubot</category>
        
        <category>JavaScript</category>
        
        <category>PaaS</category>
        
      </item>
    
  </channel>
</rss>
