<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Guillaume Montard on Medium]]></title>
        <description><![CDATA[Stories by Guillaume Montard on Medium]]></description>
        <link>https://medium.com/@g_montard?source=rss-cf64cde87a0d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*p8NoQQPKosH-k4ADwBWGaA.png</url>
            <title>Stories by Guillaume Montard on Medium</title>
            <link>https://medium.com/@g_montard?source=rss-cf64cde87a0d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 05:02:26 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@g_montard/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[How to Integrate Slack Notifications to your App in 5 minutes]]></title>
            <link>https://medium.com/hackernoon/how-to-integrate-slack-notifications-to-your-app-in-5-minutes-587b8fcaac13?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/587b8fcaac13</guid>
            <category><![CDATA[slack]]></category>
            <category><![CDATA[api-integration]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Wed, 31 Oct 2018 15:52:36 GMT</pubDate>
            <atom:updated>2018-10-31T17:51:12.527Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/860/1*gX2Vf14hDsppQCTOE4aYdw.png" /></figure><p>It should be no surprise if some of <strong>your users ask you to integrate with Slack</strong>. But, a lot of others would use it if it was available to them, they are just silent about it.</p><p>So, how can <strong>your app support Slack</strong>? What is the <strong>fastest way to build it</strong> without increasing technical debt?</p><h3>The tedious path to integrate Slack yourself</h3><p>When you start working on your integration with Slack there are a few things you need to do:</p><ul><li><strong>Slack API</strong>: you need to understand it; which, for our benefit, is well documented</li><li>The backend: <strong>designing</strong> it and <strong>coding</strong> it, playing with the <strong>API Client</strong> and OAuth</li><li>The frontend: design the <strong>UI elements</strong>, code the whole thing</li><li>And also: <strong>host it</strong>, test it, monitor it, and <strong>maintain it</strong></li></ul><p>You could implement it the quick-and-dirty way, getting things done. But then you would be reducing your code quality, and accumulating technical debt.</p><p>This is a <strong>lot of complex work for something that should be straightforward</strong>. We are talking several hours of work for your team.</p><p>And that is only for one app, for your product.<br><strong>How many other teams are creating lines of code for the same results?</strong></p><h3>Five minutes Slack Notifications, for all!</h3><p>One morning, my co-founder <a href="https://medium.com/u/cbcbd8358b83">Cédric Fabianski</a> and I decided to <strong>solve this painful</strong> <strong>issue</strong> of integrating Slack notifications.</p><p>It’s a swift <strong>solution to integrate Slack Notifications in five minutes to your app, </strong>copy paste a few lines of code and be ready up-and-running:</p><ul><li>It’s completely decoupled</li><li>It’s optimized</li><li>And finally, it does not duplicate any more code!</li></ul><p>Think of it as a quick MVP tool: you don’t need to invest too much time and you get a lot done.</p><p>It also <strong>makes you autonomous</strong>, because you don’t need a backend developer to install it, and it’s only a few lines of HTML and JS to copy paste.</p><p><strong>Oh, and it’s free and the code is completely Open Source.</strong></p><p>Yup, you have no excuse: the time you have spent reading this article is the same to start playing with it.</p><figure><a href="https://www.producthunt.com/posts/slack-notification-for-your-app"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ke9JCGXH5KKmERvf6BETdg.png" /></a></figure><p><strong>Make sure to check it out now: <br></strong><a href="https://www.producthunt.com/posts/slack-notification-for-your-app">https://www.producthunt.com/posts/slack-notification-for-your-app</a></p><p>Thank you!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=587b8fcaac13" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/how-to-integrate-slack-notifications-to-your-app-in-5-minutes-587b8fcaac13">How to Integrate Slack Notifications to your App in 5 minutes</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[We have a surprise for you (hint: it’s an integration)!]]></title>
            <link>https://medium.com/@g_montard/we-have-a-surprise-for-you-hint-its-an-integration-7601e0990701?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/7601e0990701</guid>
            <category><![CDATA[api-integration]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[product-hunt]]></category>
            <category><![CDATA[slack]]></category>
            <category><![CDATA[api]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Wed, 31 Oct 2018 08:01:00 GMT</pubDate>
            <atom:updated>2018-10-31T08:01:00.997Z</atom:updated>
            <content:encoded><![CDATA[<p>We are very happy to be able to reveal today a side product we have been working on for the past months 🎉</p><p>We believe that even <strong>the best technologies in the world are useless if people don’t understand what you can do with them</strong>. That’s why we are excited to show you a first result of what Bearer’s unique technology can do.</p><p>So, let me introduce you the ultimate <strong>Slack Notification integration for any App!</strong></p><figure><a href="https://www.producthunt.com/posts/slack-notification-for-your-app"><img alt="" src="https://cdn-images-1.medium.com/max/860/1*gX2Vf14hDsppQCTOE4aYdw.png" /></a></figure><p>This integration enables any developers to add a Slack Notification feature to their App — for <strong>free</strong> and <strong>Open Source</strong>!</p><p>We know this is a story is staling at the bottom of many Product Backlogs and that is not surprising. <strong>Focusing on your core product is usually more important than building x,y,z integration</strong> when you know how time-consuming it is. Still, you’d love to have one. Your wish are now fulfilled :)</p><p><strong>Make sure to check it out now:</strong> <a href="https://www.producthunt.com/posts/slack-notification-for-your-app">https://www.producthunt.com/posts/slack-notification-for-your-app</a></p><p><em>We’d be happy if you can share some love with us on Product Hunt ❤️</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7601e0990701" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What exactly is an API Integration?]]></title>
            <link>https://medium.com/@g_montard/what-exactly-is-an-api-integration-6eebc6d8119b?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/6eebc6d8119b</guid>
            <category><![CDATA[integration]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[developer]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Tue, 26 Jun 2018 13:02:15 GMT</pubDate>
            <atom:updated>2018-06-26T13:02:15.311Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/302/1*QObzchXVtlVSqJwGTTGXuA.png" /></figure><p>We tend to think of <strong>API</strong> as an end-goal when most of the time <strong>it’s only a tool</strong> serving a product or business purpose.</p><p>Most of the time when we talk about API, the discussion revolves around REST vs GraphQL, versioning, pagination, depreciation, client SDK, authentication or documentation — which are all great topics but that usually <strong>misses some highly important aspects</strong>.</p><h4><strong>From API to API Integration</strong></h4><p><em>Private</em> and <em>public</em> API don’t mean much these days, let’s distinguish them from the <strong>point of view of the consumer</strong> and call them <strong>i<em>nternal</em></strong> and <strong>a<em>ccessible</em></strong> instead.</p><p>While building an <em>internal</em> API is a technical choice, <strong>providing an <em>accessible</em></strong> API is not. This <strong>decision</strong> is a <strong>product &amp; business</strong> one. At some point you want (need), customers or partners to integrate with you. <strong>Integration is about easing access to your product</strong> and/or <strong>teleporting</strong> part of it to enrich your partner’s one.</p><p>What matters with <em>accessible</em> API is how those people, that you don’t control, are going to use it, that’s what we call <strong>API Integration</strong>.</p><h4><strong>API Integration is much more than just API</strong></h4><p>The initial API design discussion is still important (<em>maybe they shouldn’t if we standardized API…</em>), but it’s now only a subset of the overall API Integration discussion.</p><p><strong>API Integration is about product </strong>and<strong> feature, </strong>about<strong> UI/UX, engineering </strong>but also about<strong> Ops</strong> (scaling, rate limiting, securing, logging etc.) and in the end <strong>maintenance</strong>. That’s a whole lot more than just the usual:</p><blockquote>“Hey I’m just going to consume this REST endpoint”.</blockquote><p>All those <strong>layers</strong> represent <strong>many responsibilities</strong>, requires coordination, time which make them <strong>costly</strong>. As the API provider, that <strong>friction</strong> is a challenge that needs to be overcome to make sure to be integrated. But being integrated is not enough. <strong>Integrations needs to be good</strong> enough to make sure it <strong>reflects</strong> the <strong>value of the product</strong>, but you still don’t really control it.</p><h4><strong>What’s next?</strong></h4><p>What if we could have a tool that <strong>eases </strong>the<strong> cost and friction of integrating</strong> and at the same time <strong>improve</strong> the <strong>control over integration</strong>?</p><p>Stay tuned ;)<strong><br></strong><a href="https://twitter.com/bearerSH">@Bearer</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6eebc6d8119b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[$ > bearer new HelloWorld]]></title>
            <link>https://medium.com/@g_montard/bearer-new-helloworld-7d098c9b5d1c?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/7d098c9b5d1c</guid>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[developer-tools]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[api-integration]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Fri, 01 Jun 2018 07:41:38 GMT</pubDate>
            <atom:updated>2018-06-01T07:41:38.167Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/976/1*j9Rwp4y42QiSwxLUPjzqhg.png" /></figure><p><a href="https://medium.com/u/cbcbd8358b83">Cédric Fabianski</a> and I have the pleasure to officially announce the new product we have been working on for the past six months, <strong>please welcome </strong><a href="https://www.bearer.sh/"><strong>Bearer</strong></a>!</p><p>After working together for over 10 years in the SaaS Industry as developers, vendors &amp; CTO, we have <strong>witnessed a dramatic change</strong> in how we <strong>build</strong> and <strong>consume</strong> <strong>applications</strong>.</p><p>From few applications to the current exponential growth, the initial<strong> SaaS promise of simplifying everyone’s life is rapidly vanishing</strong>. Gluing this ecosystem together is becoming critical. Vendors spent the past 5 years opening APIs, meaning we now have the <strong>foundation to build integrations</strong>. Unfortunately, today <strong>working on API Integration remain painful, costly and isn’t scalable!</strong></p><blockquote>With <a href="https://www.bearer.sh/">Bearer</a> we are crafting the ultimate technology to build plug’n play and reusable API Integrations, helping developers &amp; companies get the most of APIs.</blockquote><p>Our journey is only beginning, but we are very lucky to already count onboard with us amazing Business Angels, VCs and most importantly a <strong>very talented and dedicated team</strong>.</p><p><strong>If you recognize yourself in this pain, let us know, we will be more than happy to spend time with you discussing how we can help.</strong></p><p>Stay tuned with our <a href="http://twitter.com/BearerSH">Twitter</a> account.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7d098c9b5d1c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to start a company in France — 2018]]></title>
            <link>https://medium.com/mythoughts-io/how-to-start-a-company-in-france-2018-c56f38d107c3?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/c56f38d107c3</guid>
            <category><![CDATA[france]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[entrepreneur]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Thu, 19 Apr 2018 09:58:34 GMT</pubDate>
            <atom:updated>2018-04-19T12:17:20.466Z</atom:updated>
            <content:encoded><![CDATA[<h4>I’m back at being an entrepreneur this year and just launched a brand new startup here in France. This new venture is my third one in 12 years — but my last one having been started in 2007, a few things changed since then…</h4><h4><strong>What is it like to launch a company in 2018?</strong></h4><p>Honestly <strong>this is easier than ever</strong>, thanks to new laws that have been able to bootstrap a whole ecosystem of <strong>startup</strong> focused on <strong>easing your “administrative” tasks as a founder</strong>!</p><h4><strong>1- Legal Setup</strong></h4><p>The time of gibberish forms and endless back and forth with the administation is over, you can now <strong>start a company 100% digitally -</strong> without hassle — and have everything ready in <strong>3 to 4 days maximum</strong>!</p><p><strong>For that purpose we used </strong><a href="http://legalstart.fr/"><strong>LegalStart.fr</strong></a></p><p>The big plus is that even if you are new to entrepreneurship, LegalStart provides you with very good information and advice — definitvielty a great source of knowledge.</p><h4><strong>2- Banking</strong></h4><p>One big part of the process of setting up a company is to open a bank account (<em>it’s mandatory</em>) — and sadly <strong>banks are usually a huge hassle</strong>. On the consumer level a lot of new options are now available (N26, Revolut etc.), but don’t worry <strong>entrepreneur have not been forgotten</strong>!</p><p>You can now <strong>open a bank account</strong>, have an IBAN and Credit Cards in few clicks, no phone call, <strong>no paperwork</strong> and most importantly <strong>no opening hours</strong>!</p><p><strong>For that purpose we use </strong><a href="http://qonto.eu/"><strong>Qonto.eu</strong></a></p><p><em>The nice thing is that Qonto and LegalStart are partners, making the whole capital process very simple.</em></p><p>Disclaimer: As of today these solutions are not yet fully comparable to “traditional” bank offers, meaning that if you plan to keep lot of money (<em>for ex. with a VC round</em>) you will probably still have to open a traditional bank account later. That said it might change with the future opening of <a href="https://margo.com/en/">MargoBank</a> and still it’s a great solution for many.</p><p><strong>3- Office Space</strong></p><p>Working <strong>remotely is definitively a great option</strong> <strong>in 2018</strong>, still you might want to get an office, meet with co-workers or simply don’t feel working alone.</p><p>In France, <strong>renting an office is legally very constraining</strong> (“<em>bail 3/6/9”)</em>, expensive, subject to taxes and therefore not flexible. That’s also changing thanks to CoWorking Spaces that boomed in the last 18 months.</p><p>If you live in Paris, there are literally dozens of very <strong>nice co-working spaces</strong>. You can rent —<strong> without any commitment</strong> — from a <strong>single desk </strong>to a <strong>2 or 50 people closed office</strong> in a matter of hours and be ready to work asap (<em>Internet, furniture, meeting rooms, kitchen, coffee etc.- all included</em>).</p><p>There are even startups handling that search &amp; find process for you!</p><p><strong>For that purpose we used </strong><a href="http://kowffice.com/"><strong>Kowffice</strong></a><strong> &amp; </strong><a href="https://www.leosquare.com/"><strong>LeoSquare</strong></a><strong> and ended-up renting at </strong><a href="https://www.athome-startup.fr/"><strong>At Home</strong></a><strong>.</strong></p><h4><strong>4- Employee Pay &amp; Health Insurance</strong></h4><p>Now that you are ready to hire people you need to manage what we call “The Pay” and everything that goes with it. Remember <strong>France is a welfare state</strong>, meaning it doesn’t come free of charge and <strong>administrative complexity</strong>!</p><p>That said this <strong>complexity is now a thing from the past</strong> — you don’t need to read the entire labor code anymore or hire dedicated people to manage it.</p><p><strong>For the pay we use </strong><a href="https://payfit.com/fr/"><strong>PayFit</strong></a><strong><br></strong>Payfit is even able to manage employee’s expense report and obviously link that to the monthly pay. They handle every possible scenario which is highly impressive.</p><p><strong>For the health insurance we use </strong><a href="http://alan.eu/"><strong>Alan</strong></a><strong><br></strong>The nice thing is that PayFit and Alan did partner and the link between them is automated!</p><h4>What else do you need to handle?</h4><p><strong>Accounting</strong> — There are startups that try to ease that part (<a href="http://freddelacompta.com/">Fred</a>), but at the end it is a person’s job where trust is key.</p><p><strong>Legal</strong> — Same apply to lawyers, and probably even more. Legal is about lot of different highly critical topics — corporate legal, IP, employment law etc. — that you don’t want to underestimate! The best idea is to have someone that can coordinate all those different aspects for you.</p><p><strong>Insurance </strong>— If you have an office you legally have to get insurance and besides it’s a good idea to get one for the company. It’s fairly easy with lot of private offers, some are now even focusing on startup like <a href="http://yesassurances.fr/">YesAssurances</a>.</p><p><strong>I hope this post will make you want to start a company in France and even help you, remember we now are a </strong><a href="https://www.reuters.com/article/us-france-business/french-business-creation-surges-as-macron-promises-start-up-nation-idUSKBN1F51M0"><strong>Startup Nation</strong></a><strong>!</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*FKDWkdSkCFLL0pv7nYW3ug.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c56f38d107c3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mythoughts-io/how-to-start-a-company-in-france-2018-c56f38d107c3">How to start a company in France — 2018</a> was originally published in <a href="https://medium.com/mythoughts-io">mythoughts.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Browsers weren’t built to handle your work life!]]></title>
            <link>https://medium.com/hackernoon/browser-werent-build-to-handle-your-work-life-b26873a3e4de?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/b26873a3e4de</guid>
            <category><![CDATA[browsers]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[user-experience]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Wed, 04 Oct 2017 18:37:05 GMT</pubDate>
            <atom:updated>2017-10-04T20:55:24.701Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BGbWgrXM8GfDdmkTzQNPVw.png" /><figcaption>Tired switching between tons of tabs? You’re not alone!</figcaption></figure><p>You probably noticed like me that today most of <strong>your daily work life happens to be located in your Web browser</strong> (aka SaaS), right?</p><p>Sadly, browsers haven’t really changed in decades and yet we still use them for a usage they haven’t been built for.</p><p>For example my friends and I <strong>were struggling with simple things</strong>, like switching between tons of tabs &amp; handling notification nudges and at the end of the day just try to be productive.</p><p>A year ago we decided it was enough and decided to find a solution. After realizing we really liked the experience on Mobile (Centralized search, notification center etc.), <strong>we decided to build </strong><a href="https://www.producthunt.com/posts/station-3"><strong>Station App</strong></a><strong>:</strong></p><blockquote>The one app to rule them all!</blockquote><p>After many long nights, <strong>we are happy to be publicly launching </strong><a href="https://www.producthunt.com/posts/station-3"><strong>Station</strong></a><strong> today!</strong> Now we’d love to have your feedback to help push this new experience forward.</p><figure><a href="https://www.producthunt.com/posts/station-3"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1bx-1pGJBtJMnkxW4UfSIA.png" /></a><figcaption>Meet Station, one App to rule them all!</figcaption></figure><p><strong>Make sure to go check it out now: </strong><a href="https://www.producthunt.com/posts/station-3">https://www.producthunt.com/posts/station-3</a></p><p>Thank you!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b26873a3e4de" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/browser-werent-build-to-handle-your-work-life-b26873a3e4de">Browsers weren’t built to handle your work life!</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using Rails and Docker in Development — making them play nice together!]]></title>
            <link>https://medium.com/mythoughts-io/using-rails-and-docker-in-development-making-it-play-nice-together-41ef20ef78b0?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/41ef20ef78b0</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[ruby]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[rails]]></category>
            <category><![CDATA[docker]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Wed, 12 Apr 2017 11:58:15 GMT</pubDate>
            <atom:updated>2017-04-12T12:01:07.571Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fc2h4HcmLnrNr0iTrFje8w.png" /></figure><p><strong>Who didn’t try Docker? But who succeeded in setting-up an efficient and clean development environment with it? Sadly a lot less</strong> :(</p><p>Using docker in development is a lot trickier than running it in staging or production from a functional standpoint (<em>let’s not start a :troll:</em>). Let’s see in this article <strong>what are the issues, how to circumvents them</strong> and finally how to <strong>make everything easier</strong> with the <a href="https://github.com/gmontard/dockrails"><strong>Dockrails Gem</strong></a><strong>!</strong></p><h3>Common issues</h3><h4>1- Docker Compose</h4><p>Your application is probably not just a simple app container, but chances are you will <strong>need one or more databases</strong> (mysql, pgsql, redis etc.) and even a <strong>job container</strong> or more. This is where <strong>Docker-Compose comes to play</strong>, by using a <em>docker-compose.yml</em> file you get to describe your containers and their link between each other.</p><h4>2- Code sync</h4><p>In development you <strong>code on your docker host machine</strong> (Mac etc.) with your <strong>favorite editor</strong> (Atom, Sublime, Vi etc.) and instantly refresh/run it — something that <strong>docker is not intended for</strong>. To be able to perform this sync you need to have your code base shared as a volume between your host and your container (both ways), sadly <strong>docker shared volume is so slow that it makes it unusable for this task</strong>!</p><p>Luckily a very smart guy, <strong>Eugen Meyer</strong>, came up with a <strong>tool called “docker-sync”</strong> that provide <strong>near instant sync</strong>. This tool come with a built-in <strong>command <em>docker-sync</em> </strong>that sit <strong>on top of docker-compose</strong>.</p><h4><strong>2- Data persistence</strong></h4><p>Each time you <strong>restart a container it does lose all its previous data</strong> (<em>containers are stateless</em>), meaning your <strong>databases get lost</strong>, your <strong>Gems too</strong> etc. To <strong>enable persistence</strong> you need to use a <strong>docker volume</strong> and <strong>mount the desired folder(s)</strong> to it and then reference everything in <em>docker-compose.yml</em>.</p><h4>3- Live debugging in the console</h4><p>If you’ve tried it yourself chances you discovered that it <strong>wasn’t straightforward to be able to use Pry or ByeBug</strong> while running your app in a container. The solution is to use <strong>docker-attach</strong> with the container image name and <strong>add a few lines</strong> in your <em>docker-compose.yml</em>.</p><h4>4- Git/SSH Access</h4><p>Did you find yourself <strong>needing to access a Git </strong>repository or perform<strong> an SSH session, from a container</strong>? You probably don’t want to add yet an other key that might get lost or changed at the next container reboot! The solution is to <strong>share your host SSH keys with your containers</strong> and possibly <strong>deal</strong> with the <strong><em>known_hosts</em> message</strong> in advance.</p><h4>5- Commands hell!</h4><p>If you are <strong>not familiar with docker it can get a bit messy</strong> and add a lot of <strong>overhead </strong>for your day to day workflow. Most of us are <strong>used to a set of commands </strong>in development, like bundle exec <em>rails start</em>, <em>bundle exec rake db:migrate</em> etc. and we <strong>don’t want to add complexity </strong>because we are using Docker. In addition to the <em>docker </em>command we introduced <em>docker-compose</em> and <em>docker-sync</em>, <strong>now go figure out which one to use and how </strong>to combine them with <strong>your development workflow</strong>!</p><h3>Let’s introduce Dockrails!</h3><p>I strongly <strong>believe in simplicity </strong>and<strong> automation</strong>, after discovering and circumventing all the above issues I was <strong>very</strong> <strong>satisfied with my docker environment for development</strong>. Finally, I was able to <strong>ditch Vagrant</strong> and the heavy Virtual machine.</p><p>To make <strong>all of this much easier</strong> I designed a <strong>simple CLI</strong> (through a Gem) called <a href="https://github.com/gmontard/dockrails"><strong><em>Dockrails</em></strong></a>, it <strong>provides an interactive command to build</strong> <strong>and run </strong>your environment <strong>without falling into the commands hell</strong>!</p><figure><a href="https://asciinema.org/a/26tls9e5bh860ai91d7grkkf6"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NFL6MRO7DhVNUVHcZKku_A.png" /></a></figure><blockquote>Now you don’t have any more excuses to not use docker in development and build a reusable environment!</blockquote><p><strong>Get Dockrails on Github: </strong><a href="https://github.com/gmontard/dockrails">https://github.com/gmontard/dockrails</a></p><p><strong><em>If you liked this article please consider clicking the ❤️ below so more people could read it, thank you!</em></strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41ef20ef78b0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mythoughts-io/using-rails-and-docker-in-development-making-it-play-nice-together-41ef20ef78b0">Using Rails and Docker in Development — making them play nice together!</a> was originally published in <a href="https://medium.com/mythoughts-io">mythoughts.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What I Learned Spending 10 Years Building a Startup]]></title>
            <link>https://medium.com/mythoughts-io/what-i-learned-spending-10-years-building-a-startup-86ee58f6aea8?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/86ee58f6aea8</guid>
            <category><![CDATA[feedback]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[experience]]></category>
            <category><![CDATA[entrepreneur]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Fri, 03 Mar 2017 11:15:21 GMT</pubDate>
            <atom:updated>2017-03-06T12:17:35.266Z</atom:updated>
            <content:encoded><![CDATA[<p><em>I Co-founded Vodeclic in 2007 and served as CTO, we got acquired in 2015 by SkillSoft and I kept on working there for 18 months until I decided to quit last December.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DHM_0L_Qyjlu5vlCw_iNPg.png" /></figure><h4>It takes a lot of time, a whole lot of time!</h4><p>I never thought about this before I started, obviously it takes a lot of your day to day time but more importantly it just takes time as in years. <strong>It took me almost 10 years and I honestly don’t know if I would have signed for it if I knew</strong>. By the way 10 years is the average time for a successful startup adventure.</p><h4><strong>Hiring is key and yet you will do many mistakes and it’s OK</strong></h4><p>You have to hire, but the truth is that it’s damn hard and not only in tech jobs, in any jobs! I found this hard because you end-up always<strong> looking for the five-legged sheep</strong> and even when you found it chances you will need someone different in a year or two because your company changed so much.</p><h4><strong>Why would the best work for you?</strong></h4><p>Like I said previously hiring is hard and yet people always say something like “I’m looking only for the best” but did you ask why would those people work for you? Honestly we weren’t Google, Uber or the next Unicorn and chances are most startups aren’t either. <strong>You won’t hire “only the best” and it’s OK</strong>, you probably <strong>don’t need them</strong> and <strong>won’t be able to handle them </strong>anyway. At the end of the day I often even traded really good technical candidates by other I found more as a match with the company, the mindset and that I could help grow with the company. <strong>More than hiring people you are building a team!</strong></p><h4>Taking decision will become natural</h4><p>Sometimes people ask me how do you do to take such decision without looking back or doubting? <strong>Build a company and you will understand!</strong> Decision have to be taken everyday and the truth is that usually this is <strong>not the decision that matter, there is no right or wrong, only knowing why you took it really matters.</strong></p><h4>You never have enough money, never!</h4><p>As a founder you crave to raise fund because you need it to hire people, invest in the product, marketing etc. so <strong>once you raise money you think this is it</strong>. In fact, no and <strong>it only gets worse, money call money</strong> and the life of a startup is the non stop growth, in other words more money.</p><h4>It goes fast, but never fast enough</h4><p>Building from scratch a company, create a new product, hire dozens of people, make millions of dollars etc. <strong>this is amazing to do this in only 10 years</strong>! Building a startup can feel <strong>like a sprint with a marathon distance, </strong>but even that feel too slow when you are in because<strong> you always look for the next step.</strong></p><h4>Focus is key</h4><p>Everybody says it and yes it’s so true! <br>I felt this is a <strong>schizophrenic thing to do</strong> because you need to be open, for instance to get the right business model or market or product fit, but you need extreme focus in the meantime because <strong>it’s so easy to get yourself lost in endless path</strong>. It’s also very hard for technical/product people because <strong>today it’s easier than ever to build almost anything and that is a dangerous thing!</strong></p><h4>This is the best learning adventure possible</h4><p>Looking back my 10 years, I learned so many things that I don’t even know from where to start. If you like this<strong> feeling of not knowing anything about a topic and starting to catchup time after time, this is just amazing</strong>.</p><h4><strong>It’s a lonely job</strong></h4><p>Most people don’t talk about it, but I really do feel that way. Usually <strong>we create friendship and sometimes even more at work</strong>, the place you spend most of your time, but <strong>as a founder I don’t see how you can do this</strong> and yet it takes 10 years.</p><h4><strong>Doing it alone would have been impossible</strong></h4><p>I had two co-founders and I consider this the best approach, I wouldn’t start a company only by myself. Having co-founders help you <strong>keep the motivation</strong> and <strong>brings X times more skills/time</strong> on the project which is truly invaluable.</p><h4>The grass looks always greener on the other side</h4><p>Don’t read TechCrunch, it’s as simple as that! I’m only half joking, there is <strong>sadly a lot of bullshit in this economy</strong> so don’t spend too much time listening or you will end-up frustrated for nothing. <strong>Focus</strong>.</p><h4>Sometimes you wish you’d have stay small</h4><p>Crazy right? You <strong>spend you entire time growing</strong> and yet you do <strong>feel</strong> <strong>it was better once you were only a few</strong>. I felt this at about the 20th employees and once you don’t even remember everyone first name then it gets bad, but this is the game.</p><h4>Your company feels like home</h4><p>Imagine a place where you spend 50% of your time for years, where you know (<em>mostly</em>) everyone, they all know you, you have all your habit, etc. <strong>doesn’t it sound a bit like home?</strong></p><h4>Exit is the accomplishment you looked for!</h4><p>When you start a company and raise money <strong>you know there will be an exit</strong> (good or bad) and this is how most people <strong>measure</strong> <strong>success </strong>in this economy. I felt the acqusition of my company as a <strong>recognition</strong> for all that<strong> time and hard work</strong>.</p><h4>Yet an Exit is still an Exit</h4><p>An <strong>exit means you are gone one way or another</strong>, this is no longer your company and chances are you won’t work there anymore very soon after. Usually you <strong>don’t really control that timing,</strong> which is maybe what makes it harder to grasp.</p><h4>What to do next after such an adventure?</h4><p>Personally it is still an open question, but I don’t see how not to start something else,<strong> it’s probably an addiction!</strong></p><p><em>Below the slides that support this talk.</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2FbTcyANVSbHmaTK&amp;url=https%3A%2F%2Fwww.slideshare.net%2FGuillaumeMontard%2Fwhat-i-learned-spending-10-years-building-a-startup&amp;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fwhatilearnedspending10yearsbuildingastartup-170303110924-thumbnail-4.jpg%3Fcb%3D1488539445&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=slideshare" width="600" height="500" frameborder="0" scrolling="no"><a href="https://medium.com/media/a3a1fb7eeb41f2fa1129f9a8731b3b74/href">https://medium.com/media/a3a1fb7eeb41f2fa1129f9a8731b3b74/href</a></iframe><p><em>If you liked this article please consider clicking the ❤️ below so more people could read it, thank you!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=86ee58f6aea8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mythoughts-io/what-i-learned-spending-10-years-building-a-startup-86ee58f6aea8">What I Learned Spending 10 Years Building a Startup</a> was originally published in <a href="https://medium.com/mythoughts-io">mythoughts.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The End of a Great Story]]></title>
            <link>https://medium.com/mythoughts-io/the-end-of-a-great-story-a1f50442ddf8?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/a1f50442ddf8</guid>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Wed, 30 Nov 2016 09:21:31 GMT</pubDate>
            <atom:updated>2016-11-30T09:23:53.958Z</atom:updated>
            <content:encoded><![CDATA[<p>The day has come, today is my last day at <a href="http://www.vodeclic.com/">Vodeclic</a> (<em>as Co-Founder &amp; CTO</em>) and <a href="http://www.skillsoft.com/">Skillsoft</a> (<em>as VP Engineering</em>), a story that started almost 10 years ago and that I never thought would lead me to that incredible journey!</p><p>I would like to thank my co-founders, Gabriel and Xavier, with whom this journey would never have happened. Thanks to my amazing engineering team at Vodeclic that I enjoyed so much working with along those years and finally the Skillsoft team, especially <a href="http://www.skillsoft.com/percipio">Percipio</a> project.</p><p>I won’t forget all the people I came across along those years, co-workers, partners, investors, etc. It was a fantastic journey, a once in a lifetime experience!</p><p>Anyway it’s time open a new chapter, but not first without some long overdue relaxing vacation :)</p><p>Guillaume.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/1*RBxdQqgxxmgblAmIJ33DSw.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a1f50442ddf8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mythoughts-io/the-end-of-a-great-story-a1f50442ddf8">The End of a Great Story</a> was originally published in <a href="https://medium.com/mythoughts-io">mythoughts.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Migrating from Jekyll to Medium]]></title>
            <link>https://medium.com/mythoughts-io/migrating-from-jekyll-to-medium-98f83bad1619?source=rss-cf64cde87a0d------2</link>
            <guid isPermaLink="false">https://medium.com/p/98f83bad1619</guid>
            <category><![CDATA[ruby]]></category>
            <category><![CDATA[jekyll]]></category>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[medium]]></category>
            <dc:creator><![CDATA[Guillaume Montard]]></dc:creator>
            <pubDate>Thu, 13 Oct 2016 17:54:17 GMT</pubDate>
            <atom:updated>2017-03-06T12:20:59.830Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/423/1*ITWPCJsXE4OGHiDaGdy5Kg.png" /></figure><p>For those that don’t know <a href="https://jekyllrb.com/">Jekyll</a>, it’s a simple and yet powerful static blog engine, used by <a href="https://pages.github.com/">Github Pages</a> for instance. I decided to <strong>move to Medium and needed a migration solution</strong>.</p><p>Medium let you <a href="https://help.medium.com/hc/en-us/articles/218572107-How-to-move-to-Medium">import</a> your old blog posts (by keeping date, tags etc.) but there is one small gotcha, it <strong>only works with Wordpress</strong>! In fact Medium ask you to export your posts with the Wordpress export feature which <strong>produce a custom XML file</strong>.</p><p>Jekyll doesn’t offer export feature, but by using <strong>Liquid markup</strong> I knew it was <strong>going to be possible to reproduce the same export file. </strong>Indeed, the solution was simple and took less than an hour to build.</p><p>Now time to get <strong>hands dirty, </strong>start by creating an <em>export.xml</em> file at the root of your blog, use code snippet below which use Jekyll template and liquid variables (<em>you may need to adapt those to your own Jekyll config</em>), download the XML output and use it in the Medium import tool.</p><blockquote>Simply put, <strong>it works great!</strong></blockquote><p>The Markdown -&gt; HTML -&gt; Medium <strong>text</strong> <strong>conversion is fantastic</strong>, your <strong>old URL are well 301 redirected</strong>, <strong>tags</strong> are presents, <strong>images</strong>, <strong>subtitle</strong> etc. the only <strong>downside</strong> is for <strong>code block</strong> that I ended-up rewriting quickly after the import was performed.</p><p>Below the full Jekyll export file, enjoy!</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8352a89df47fffa84ba5722c78b6575a/href">https://medium.com/media/8352a89df47fffa84ba5722c78b6575a/href</a></iframe><p><em>If you liked this article please consider clicking the ❤️ below so more people could read it, thank you!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=98f83bad1619" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mythoughts-io/migrating-from-jekyll-to-medium-98f83bad1619">Migrating from Jekyll to Medium</a> was originally published in <a href="https://medium.com/mythoughts-io">mythoughts.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>