<?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 Chen Feldman on Medium]]></title>
        <description><![CDATA[Stories by Chen Feldman on Medium]]></description>
        <link>https://medium.com/@chenfeldmn?source=rss-7fd5ce501cbd------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*uQKpnQNC4w5bUw7XI-dK3w.jpeg</url>
            <title>Stories by Chen Feldman on Medium</title>
            <link>https://medium.com/@chenfeldmn?source=rss-7fd5ce501cbd------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 27 May 2026 13:36:38 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@chenfeldmn/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[Building an Impactful Guild: How We’re Doing It At Gong]]></title>
            <link>https://medium.com/gong-tech-blog/building-an-impactful-guild-how-were-doing-it-at-gong-c0f900d49d17?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/c0f900d49d17</guid>
            <category><![CDATA[guild]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Wed, 21 Apr 2021 05:54:50 GMT</pubDate>
            <atom:updated>2021-04-21T05:54:50.390Z</atom:updated>
            <content:encoded><![CDATA[<p>If you’ve hung around the high-tech space over the past few years, you’ve probably come across the term <em>guild</em> at least a few times. These days, most companies that have grown past the few-developers-in-a-garage phase establish (and pride themselves on) a guild.</p><p>At Gong, we’re proud to have a guild, too.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0gTlf2bqSbg_YKymIaAnhQ.jpeg" /></figure><p>As a front-end developer at Gong, in this post, I’ll focus specifically on our front-end guild, but many of the things I share here can also be applied to guilds for back-end developers, mobile, DevOps, and more.</p><p>This post will shed some light on <strong>why</strong> to start a guild at your company and how to actually do so in a way that has an <strong>impact</strong> on the company and the people that are part of it.</p><p>I start out with some background, followed by concrete steps we’ve taken (and you can, too):</p><ol><li>Terms and background</li><li>Setting goals for the guild</li><li>The guild’s structure and processes</li><li>Creating a roadmap for the guild</li><li>Getting buy-in and support from management</li><li>What’s next for us?</li></ol><p><strong>Terms and background</strong></p><p><strong><em>What is a guild?</em></strong></p><p>According to dictionary.com, a <em>guild</em> is:</p><ul><li>An organization of persons with related interests, goals, etc., especially one formed for mutual aid or protection.</li><li>Any of various medieval associations, as of merchants or artisans, organized to maintain standards and to protect the interests of its members, and that sometimes constituted a local governing body.</li><li><em>Botany</em>. a group of plants, as parasites, having a similar habit of growth and nutrition.</li></ul><p>Even without getting into the tech terminology, we can see that a guild is a group of people with something in common and the desire to improve together.</p><p>It works in nature with plants and parasites, so why shouldn’t it work at a company?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DChOyZN0y7ef1Ftn9Sp65g.jpeg" /></figure><p>One of the first (or maybe even <em>the</em> first) tech companies to take this seriously and create a guild was Spotify. (You can read about it <a href="https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc">here</a>.)</p><p>The idea snowballed, inspiring other companies around the world.</p><p>If the biggest and brightest companies are doing it, you should, too, right? Well, not so fast… Building and getting value out of a guild takes work, so, like everything, you should be able to identify a real “why” for your guild. Otherwise, it’s likely to fall flat on its face or even become a bottleneck — exactly the opposite of what’s supposed to happen.</p><p><strong><em>So, why should you start a guild?</em></strong></p><p>There are lots of reasons to start and have a guild. In a moment, I’ll share the reasons behind ours, here at Gong.</p><p>First, however, a word on how R&amp;D is structured at Gong: Our R&amp;D team is organized into pods, a decision made by the company leadership to make our work and delivery of Gong products faster and more streamlined. (Read more about our pods and other aspects of our unique culture in <a href="https://medium.com/gong-tech-blog/gongs-unique-culture-it-comes-down-to-7-things-99e2b8f638bc">this post</a> by Ohad Parush, our EVP of R&amp;D.) At other companies, like Spotify, pods are called <em>squads</em>, but the idea is the same.</p><p>A <strong>pod</strong> or <strong>squad</strong>, is, according to Cambridge Dictionary, “a small group of people trained to work together as a unit.” In high-tech, this usually refers to a self-sufficient unit that comprises everything it needs to work fast and smoothly.</p><p>Each pod at Gong consists of a team lead, product manager, product designer, content writer, and developers (back-end, front-end, cloud experts, and more depending on the specific needs).</p><p>The advantage of pods is that they have the agility and they’re totally focused on the product (unlike, for example, infrastructure teams, which can become a bottleneck and are often too far removed from the product). The challenge, however, is that a team made up of pods lacks owners for the infrastructure-related tasks and other cross-company processes.</p><p>Since each pod is responsible for a product or specific, significant element of our SaaS product, what we need is someone who can take ownership of cross-company tasks.</p><p><em>That’s where the guild comes in.</em></p><p>The guild might be responsible for:</p><ul><li>Infrastructure tasks</li><li>Knowledge sharing</li><li>Onboarding new developers</li><li>Bringing architecture decisions to the table and making the final decision</li><li>Work directly with the company’s management</li><li>…and at least 10 other things.</li></ul><p>Before creating and assigning responsibilities, however, it’s most important to determine, as a team, your main pain points and, therefore, goals for the guild.</p><p>To come up with goals for the Gong guild (try saying that ten times fast…), we started by turning to the crowd wisdom of the developers in the guild.</p><p>We created a poll with around 15 questions divided by subject (e.g., delivery, quality, knowledge, guild structure). We structured the poll in a way that would enable us to actually define and measure the progress down the road, as well as get clear directions for what to handle first.</p><p>After the poll, we split into 4 roundtables, each with about 5–7 participants to enable open discussion. Each table was responsible for a different area and was led by a “table lead,” who led the discussion and gathered the ideas and common thoughts.</p><p>The conclusions from the poll and roundtables helped us zero in on the following top priorities at Gong:</p><ol><li>Design system upgrades and more tests</li><li>Delivery time improvements (specifically improving the speed of the local environment)</li><li>Knowledge sharing (specifically more lectures on specific subjects we encounter every day as developers at Gong)</li><li>The guild’s agenda, structure, and “titles”</li></ol><p>In other words, we whittled it down from over 10 “big ideas” that we thought we should be responsible for to 4 areas that were super specific and focused. The rest (onboarding, recruiting, and more), while important, aren’t as high priority and central, based on the crowd&#39;s wisdom.</p><p>With that list in hand, we would have an easier time defining goals that actually make an impact.</p><p>First, though, let’s jump to #4 on that list: The guild’s agenda, structure, and “titles” because it sets the foundation for everything the guild can, and can’t, do.</p><p><strong>Guild leadership, structure, and processes</strong></p><p>There are lots of different ways to divide up tasks and responsibilities among members of a guild. And it’s easy to fall in love with other companies’ guild roles and titles: guild ninja, guild moderator, guild magician, guild [something strange]… Yup, those are real titles that companies use.</p><p>But it comes back to that central “why”: Why do you want a guild? What do you <em>really </em>need?</p><p>At Gong we used the data from the polls and roundtables we did (plus learnings from prior guild meetings) to find the right titles and structure for us (and it’s still a work in progress…):</p><p><strong>Guild Master: </strong>This person leads the guild. At Gong, the guild master is a very experienced developer who spends around one day a week on guild tasks and management. He isn’t expected to do all the guild tasks himself or split them with one other person (that was one of the mistakes we made before the roundtables…). Instead, he’s responsible for delegating tasks in a smart and efficient way. (At some companies, the guild master is a full-time job, and that individual is responsible for leading and executing the guild’s tasks. That’s not the case at Gong.)</p><p><strong>Guild Leads:</strong> We have a few guild leads. Each one is the owner of a big goal or pain point and is responsible for making it happen and working to eliminate any stumbling blocks that may be standing in the way. They spend a couple of hours a week (tops) on their focus area, and they often work closely with the guild master, but not always. Some examples of guild leads are: meeting agenda lead, knowledge-sharing lead, design system lead, testing lead, and more based on <em>actual</em> needs we have, rather than guesses or feelings.</p><p>Besides the titles, we also came up with specific guidelines for guild meetings, so they’re as effective as possible:</p><ul><li>Keep meetings short and sweet so participants can get as much as possible out of them</li><li>Put together an agenda that combines new stuff people are working on with new things people want to present and teach (short sessions only — longer lectures are scheduled outside of the guild meetings)</li><li>Schedule no more than two 1-hour meetings per month — everyone’s time is valuable and we care about respecting that; if we cover everything before the hour is up, we end early</li><li>Leave a 7–10 minute slot at the end for participants to ask anything they want</li></ul><p>Outside the guild meeting, we do lots of offline things, too, such as:</p><ul><li><em>Huddles</em>, an open forum where team members can present or suggest new architecture, ideas, or libraries and lead/participate in a discussion about it to decide the next steps</li><li><em>Lectures</em> by people both inside and outside Gong to enrich knowledge among the front-end developer team</li><li><em>Slack channel</em> for offline questions/consulting, meetups, new posts, and more</li><li><em>Guild contributors</em> — Each quarter, the leads of each pod provide the names of developers who are willing to volunteer for the guild and participate in infrastructure tasks for 1–2 weeks (It’s actually really fun, I swear!)</li></ul><p><strong>And now: The roadmap!</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vYMM7HQPm5FO8y-_6n2gEQ.jpeg" /></figure><p>As I mentioned at the beginning, besides the guild’s main activities and priorities, we’re also responsible for infrastructure and cross-company tasks. So, once we set our goals (and considered other responsibilities), we put together the roadmap.</p><p>The roadmap is a crucial part of making sure that the guild remains focused and being able to measure its effectiveness. We created a task roadmap with the priorities and sub-tasks for the next two quarters and presented it to our tech leaders (EVP of R&amp;D, group leads, etc.) to get buy-in and time to work on it beyond the normal product tasks each developer already has.</p><p><strong><em>At Gong, we chose 3 main goals to drive the roadmap:</em></strong></p><ul><li>Design system</li><li>Testing our components</li><li>Local environment and faster deployment process</li></ul><p>(And one optional 4th goal for the future: TypeScript)</p><p>I won’t get into the sub-tasks and timelines here, but with these goals clearly defined, we could then start working and easily navigate and divide up tasks among developers.</p><p><strong>Getting management involved</strong></p><p>This was the point at which it made sense to get management involved.</p><p>Once we had a rough roadmap in place, we scheduled a couple of meetings with our leadership to present our process, goals, pain points, and final roadmap and ensure alignment on how we plan to carry it out, how much time we can allocate towards guild tasks, and overall expectations.</p><p>By working through the details with the company management, we were able to get more buy-in. After all, when people are involved in decision-making, rather than having it dropped on them, it’s more likely to succeed, even if it means compromising a bit. And from our side, that support from the leadership gave us the motivation and momentum we needed to get things moving.</p><p>(It’s worth mentioning that we got our EVP R&amp;D involved from the very start to ensure full alignment between guild goals and company goals.)</p><p><strong>What’s next?</strong></p><p>When the front-end guild was started at Gong around 2–3 years ago, it was just 5 developers. Since then it’s grown significantly, making it clear that we needed to find a way to operate and scale more sustainably and intentionally. About 6 months ago, we started all the processes I’ve described here.</p><p>Thanks to our roadmap and a clearer structure, there’s more clarity surrounding the guild — what it does, how it works, etc.</p><p>Still, there are many challenges ahead, including:</p><ul><li>Boosting the engagement of the developers in the guild</li><li>Proving to ourselves and to company management that we actually make an impact (with facts and figures to back it up)</li><li>…and lots of other challenges we don’t even know about yet.</li></ul><p>As Ohad wrote in his post about Gong’s culture, we love our developers and our guild, but we’re not <em>in love</em> with our guild: we’re constantly looking to learn from other developers and guilds at other companies (shoutout to Daniel from Outbrain!) so we can make changes and improve the way we work.</p><p>As the guild, we constantly remind ourselves that our role is to solve the <em>real </em>pains Gong developers have — not to invent stuff that doesn’t exist and that might distract us from what really matters.</p><p>We may have a long way to go, but we think we’re off to an exciting and promising start…</p><p>Special thanks to all the people who were involved in the process we started.</p><p>Yasmin, Moshiko, Ran, Shmulik, Valentin, Eli, Amir, and the rest of the FE Guild at Gong!</p><p><em>Does your company have a guild? Do you have questions about our guild or thoughts about guilds in general? Drop them in the comments or reach out! I’d love to hear from you and bring new ideas to our next meeting or huddle.</em></p><p><em>Want to be part of a kickass team that writes awesome code by day and geeks out on guild stuff, erm, also by day? We’re hiring! Check out our open positions </em><a href="https://www.gong.io/careers/"><em>here</em></a><em>.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oNCGSE_eiWtD6VSPNpfIFQ.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c0f900d49d17" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gong-tech-blog/building-an-impactful-guild-how-were-doing-it-at-gong-c0f900d49d17">Building an Impactful Guild: How We’re Doing It At Gong</a> was originally published in <a href="https://medium.com/gong-tech-blog">Gong Tech Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Native — A Bridge To Project Fabric — Part 3]]></title>
            <link>https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-3-ae495794c6b0?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/ae495794c6b0</guid>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[frontend]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Tue, 30 Jul 2019 02:32:33 GMT</pubDate>
            <atom:updated>2019-07-30T05:50:34.387Z</atom:updated>
            <content:encoded><![CDATA[<h3>React Native — A Bridge To Project Fabric — Part 3</h3><p>Finally, we got to the last post explaining about the future that’s coming for RN architecture.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*T31hBqtHlGV-9qLOYPab_w.png" /></figure><p>We discussed the <a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-2-1f082415b881?source=friends_link&amp;sk=a406d0f75854af01865b990af6991857">current structure</a> until now and it is time to talk about the stuff that was not the perfect choice, looking backward as React team leader on Facebook at this time mentioned in <a href="http://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018">her blog post</a></p><p>Some of the main disadvantages of the structure of the current architecture are =&gt;</p><ul><li>There are two realms: JS and Native which are not really aware of each other and do not share the same memory</li><li>The communication is async through the bridge between the two realms but it also means no guarantee the data will get to the other side in 100% or in the time we want</li><li>It is slow to transfer large chunks of data. Since the memory is not shared, all the data passed between js and native is a new copy</li><li>No way to update the UI in a sync way. Let&#39;s say I have a FlatList with a huge amount of data the is loaded when I scroll, the screen might flicker in some edge cases when there was a UI interaction but the data hasn’t got back yet to be shown</li><li>The library repo is HUGE. It makes the library heavier and also making it slower to contribute code from outside or release new fixes</li></ul><p>Don’t get them wrong, Facebook is using React Native by themselves for the Marketplace app, Ads app and more which servers millions of daily users. In addition, some well-known companies like Wix, Bloomberg, Tesla, Zynga and much more using RN in production with the current architecture.</p><p>But all of the above companies and especially Facebook got to a point where they understood that if they want to make a better native experience and better developer experience they have to do a huge move and change and this is exactly what they are in a process of doing (part of it is already completed)</p><p>They decided to solve all those issues mentioned as disadvantages above.</p><p>So if that was the previous architecture structure =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eCTd2Ymrxse2TKYe1k4Tew.png" /><figcaption>The General Structure of the main pieces in the current architecture (for explaining the terms)</figcaption></figure><p>This will be the new one =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Vjsy_fCUFxle_UvtjZ8D2Q.png" /><figcaption>The General Structure of the main pieces in the new architecture (for explaining the terms)</figcaption></figure><p>Now, let me explain about all the new words you see here: JSI, Fabric, Turbo Modules, and CodeGen.</p><p>I will do it in the same way I did in my last post. First -&gt; Fundamental terms and Second -&gt; App launch flow with the new structure and terms.</p><ol><li>JSI (Will replace the Bridge) — Its purpose is to make the JS and Native are aware of each other. There won’t be any need to serialize JSON through the bridge and even more than that — there won’t be a bridge! It will allow to expose native object as js objects and vice-versa. It will also expose an API for synchronous calling on this object on both sides. Actually, all the rest of the architecture will be built on top of that (Fabric, Turbo Modules which will be explained next).</li><li>Fabric — the new name for the UIManager which will be responsible for the native side. The biggest difference now that instead of communicating the JS side by the bridge, it will expose its native function using the JSI so the JS side and vice-versa can communication directly those ref functions. Better and efficient performance and passing data between sides.</li><li>Turbo Modules. Remember the native modules from the last post? Text, Image, View. So their new name is Turbo Modules. They have the same purpose but implemented and acting differently. First, they are lazy-loaded (only when the app needs them) comparing to loading all of them on the launch time. In addition, they are also exposed using the JSI so JS holds a ref to use them on the React Native JS lib side. Result =&gt; better performance especially on launch time.</li><li>CodeGen — Suppose to make the JS side a Single Source Of Truth. Can let you create static types of the js so the native side (Fabric and Turbo Modules) will be aware to them and avoid validating the data each time =&gt; better performance and less place for mistakes when passing data.</li><li>Lean Core — A change in React native repository structure. The purpose is to make the lib lighter and help the community resolve more pull requests faster than before. Facebook splits some of its parts to an external repo. It is already a process in progress that you can follow in their Github here. This is how they show it =&gt;</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/984/1*yD11dL03vWJ-nknV3AXoaw.png" /></figure><p>BTW — here is an example of something you can try on your chrome browser which is the inspiration for how the JSI works and exposes objects =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J53LMcRY9m8Mv4H0bwftCQ.png" /><figcaption>Inspect a page in chrome and write console.log and press Enter. You will see a native code. The console.log and other functions are actually objects exposing a ref to native code (C++ in this case)..crazy ah?</figcaption></figure><p>As promised, I will now go over the flow from the previous post and will show the differences. The biggest difference is that there is no Bridge anymore.</p><ol><li>User clicks on the app icon</li><li>Fabric loads the native side (no native modules)</li><li>It tells the JS thread that it is ready and now the JS side loads all the main.bundle.js which contains all js and react logic + components</li><li>JS called through the ref native function (the one that was exposed as an object using the JSI API) to Fabric and the shadow node creates the tree as before</li><li>Yoga does the layout calculation converting from flexbox-based style to host layout</li><li>Fabric does its thing and shows the UI =&gt;</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/548/1*T4wuCEqo43VVKWR56gai3Q.png" /></figure><p>To wrap up the flow, we do almost the same but without the bridge and now we can have better performance, we can do stuff in a sync way and even prioritize the sync actions on UI. The launch time will also be better and the app size will be smaller.</p><p><strong>So..when can I use all this awesome stuff???</strong></p><p>You can follow all the updates in threads that Facebook created in their Github here:</p><ol><li><a href="https://github.com/react-native-community/discussions-and-proposals/issues/91">JSI</a></li><li><a href="https://github.com/react-native-community/discussions-and-proposals/issues/4">Fabric</a></li><li><a href="https://github.com/react-native-community/discussions-and-proposals/issues/40">Turbo Modules</a></li><li><a href="https://github.com/facebook/react-native/issues/23313">Lean Core</a></li><li><a href="https://github.com/react-native-community/discussions-and-proposals/issues/92">CodeGen</a></li></ol><p>Generally, most of the changes will be done gradually and will hopefully be released in Q4 2019 or Q1 2020.</p><p>Finally, we got to the end of the posts about Project Fabric. It took me some effort to collect all those pieces of information to get a better understanding of this new structure.</p><p>I will be happy to get some Claps and if you also want to follow me on twitter to see the slides and lectures I started giving about it you are welcome to <a href="https://twitter.com/chenosfeldman">follow here</a></p><p>Feedbacks are also welcome! Thanks for reading (:</p><p>My Twitter: <a href="https://www.twitter.com/chenosfeldman">chenosfeldman</a></p><p>My LinkedIn: <a href="https://www.linkedin.com/in/chen-feldman-2404682a/">Chen Feldman</a></p><p><strong>P.S</strong> — here is some little part of links I read and watched as part of the process and recommend you to try to sharpen your understanding. (I give credits to all of them for giving me great material to read and watch)=&gt;</p><ul><li>Latest RN news from Core Team- <a href="https://facebook.github.io/react-native/blog/">https://facebook.github.io/react-native/blog/</a></li><li>Parashuram post about the new architecture <a href="http://blog.nparashuram.com/2019/01/react-natives-new-architecture-glossary.html">http://blog.nparashuram.com/2019/01/react-natives-new-architecture-glossary.html</a></li><li>Pharam new 2019 lecture React Amsterdam — <a href="https://www.youtube.com/watch?v=NCLkLCvpwm4">https://www.youtube.com/watch?v=NCLkLCvpwm4</a></li><li><a href="https://levelup.gitconnected.com/wait-what-happens-when-my-react-native-application-starts-an-in-depth-look-inside-react-native-5f306ef3250f">https://levelup.gitconnected.com/wait-what-happens-when-my-react-native-application-starts-an-in-depth-look-inside-react-native-5f306ef3250f</a></li><li>Layout engine explnation — <a href="https://www.freecodecamp.org/news/how-react-native-constructs-app-layouts-and-how-fabric-is-about-to-change-it-dd4cb510d055/">https://www.freecodecamp.org/news/how-react-native-constructs-app-layouts-and-how-fabric-is-about-to-change-it-dd4cb510d055/</a></li><li>Four parts article about the new architecture by Lorenzo from Formidable (part 1 here links to the others)— <a href="https://formidable.com/blog/2019/react-codegen-part-1/">https://formidable.com/blog/2019/react-codegen-part-1/</a></li><li>FB State of React Q4 2018 by Sophie Alpert from FB team at this time — <a href="http://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018">http://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018</a></li></ul><p>Credits to : <a href="https://medium.com/u/95c29abc8c2b">Ronen Mars</a>, <a href="https://medium.com/u/6d0175d50fb7">Nick Ribal</a> <a href="https://medium.com/u/6eca7d7f1f56">or frenkel</a> and Irad for helping to finalize the post’s content</p><p><strong>My lectures about this subject — upload here soon</strong></p><ul><li>React Next 2019 (English) — <a href="https://youtu.be/_IiDHmAPH28">https://youtu.be/_IiDHmAPH28</a></li><li>Reversim 2019 (Hebrew) — <a href="https://youtu.be/2eZ4G-loZkY">https://youtu.be/2eZ4G-loZkY</a></li><li>Podcast episode (Hebrew) — <a href="https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/">https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae495794c6b0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Native — A Bridge To Project Fabric — Part 2]]></title>
            <link>https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-2-1f082415b881?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/1f082415b881</guid>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[frontend]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Tue, 30 Jul 2019 02:31:54 GMT</pubDate>
            <atom:updated>2020-04-09T14:43:36.524Z</atom:updated>
            <content:encoded><![CDATA[<h3>React Native — A Bridge To Project Fabric — Part 2</h3><p>In the <a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-1-5af6a53c0d83?source=friends_link&amp;sk=c682e3c0f327108adf6c56635272c32e">previous post</a>, I explained the way the bridge lets JS thread communicate with the Native thread and vice-versa.</p><p>In this post, I am going to break the process of opening the React Native app from the moment you click on the app icon to the moment the app opens to small parts and explain each relevant term inside it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ky7O5Ih3cw9oMSxbjfgysQ.png" /></figure><p>Let’s go!</p><p>In order to understand how RN creates the views in the background, I will need to explain to you some fundamental terms.</p><ol><li>UIManager — Responsible on the native side. This is the main thread where the iOS/Android app is running. It has access to the UI which can be changed only by it.</li><li>JS Thread — Run all the bundled main.bundle.js file which contains all the logic of the app &amp; the React Native behavior and components.</li><li>Shadow Node/Tree — Represent a tree of the mutable native side of the app. It supposes to help follow the UI changes inside the app (if it helps it has kind of the same relationship between the Virtual DOM and the DOM in ReactJS.</li><li>Yoga — Its job is to calculate the layout. It is a C engine created by Facebook that knows how to convert a flexbox-based layout into the native host layout system.</li></ol><p>After you got some fundamentals lets take a flow of opening an app and I will describe what happens behind the scenes on each step =&gt;</p><ol><li>User click on the app logo</li><li>UIManager thread — loads all the native side and the native modules (remember? Text, Button, Image and much more..)</li><li>It tells the JS thread that it is ready and now the JS side loads all the main.bundle.js which contains all js and react logic + components</li><li>It sends a message thought the bridge (JSON message) that will tell the native side how to create the UI. It is important to mention that all the communication through the bridge is asynchronous and sent in batched action to avoid blocking the UI while it happens. Here is an example =&gt;</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DkhJw_A_amvOfZ_xrpWIHg.png" /></figure><p>5. The shadow thread gets the message and first, it creates the UI tree</p><p>6. From there it uses the Yoga layout engine to take all the current flexbox- based styles and convert it to native layout width, height, spacing..</p><p>7. Now the UIManager do its thing and show the UI on the screen like that =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/548/1*T4wuCEqo43VVKWR56gai3Q.png" /></figure><p>That’s it, those are the main steps that happen only when you lunch the app.</p><p>There are some great advantages by using this architecture in RN</p><ul><li>UI is not blocked -&gt; User experience feels smoother</li><li>No need to write native code — most of the code can be javascript using RN library</li><li>Performance is getting closer to native</li><li>Everything is done without you need to control it and fully understand it</li></ul><p>But, where you can find advantages, you can always find some disadvantages and in the <a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-3-ae495794c6b0?source=friends_link&amp;sk=886a247690273a859734e31c98383bb9">next post</a>, I am going to explain about the new architecture which supposes to avoid them — Project Fabric.</p><p>I will be happy to get some Claps and if you also want to follow me on twitter to see the slides and lectures I started giving about it you are welcome to <a href="https://twitter.com/chenosfeldman">follow here</a></p><p>Feedbacks are also welcome! Thanks for reading (:</p><p><strong>My lectures about this subject</strong></p><ul><li>React Week NYC 2019 (English) — <a href="https://youtu.be/k1Y6C11QX5c">https://youtu.be/k1Y6C11QX5c</a></li><li>React Next 2019 (English) — <a href="https://youtu.be/_IiDHmAPH28">https://youtu.be/_IiDHmAPH28</a></li><li>Reversim 2019 (Hebrew) — <a href="https://youtu.be/2eZ4G-loZkY">https://youtu.be/2eZ4G-loZkY</a></li><li>Podcast episode (Hebrew) — <a href="https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/">https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1f082415b881" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Native — A Bridge To Project Fabric — Part 1]]></title>
            <link>https://medium.com/swlh/react-native-a-bridge-to-project-fabric-part-1-5af6a53c0d83?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/5af6a53c0d83</guid>
            <category><![CDATA[frontend]]></category>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Tue, 30 Jul 2019 02:31:11 GMT</pubDate>
            <atom:updated>2020-04-09T14:43:08.797Z</atom:updated>
            <content:encoded><![CDATA[<h3>React Native — A Bridge To Project Fabric — Part 1</h3><p>In the last couple of years, React Native became one of the most popular platforms for mobile apps development. It filled some of the gaps that some developers had while asking themselves: Should I develop a mobile app using native languages or a hybrid app using web development knowledge(JS, Html, CSS using Cordova or Ionic for example)?</p><p>Using RN requires a knowledge of web technologies like the above and also React experience since it’s mostly based on it and its mechanism. So with a little bit more effort than using libraries like Cordova and a lot less effort than writing code in two native languages: Swift &amp; Kotlin, you get a middle ground which gives you a native-like experience by writing almost 100% javascript code.</p><p>While I am playing with some code, reading many posts and watching tons of videos on YouTube and learning about The Bridge, which is the current architecture of RN at least until version 0.60, I found some more and more material about a big change in this architecture. It’s called — Project Fabric</p><p>Those new materials are not 100% organized and do not contain enough real projects for example since it’s work in progress (WIP) by the Facebook React Native team and its contributors. To get the real image of the new architecture that actually starts to make sense, I had to read and watch the same materials 2–3 times, summarise them and try to read some of their WIP code.</p><p>I would not tell you it was an easy job, but for me, definitely a rewarding one. I learned so much from this process of diving into this code and decided to write a series of 3 posts to spread some more light on the current architecture &amp; the future one.</p><p><strong>These will be the posts</strong></p><p>Part 1 (current) — Intro and what is this Bridge that everyone is talking about and what is the “magic” behind it?</p><p><a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-2-1f082415b881?source=friends_link&amp;sk=a406d0f75854af01865b990af6991857">Part 2</a> - How does the engine behind React Native works? Giving an example of flow.</p><p><a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-3-ae495794c6b0?source=friends_link&amp;sk=886a247690273a859734e31c98383bb9">Part 3</a>- The advantages and disadvantages of the bridge and what is next? Project Fabric</p><p>Let&#39;s start this part by explaining where React Native stands compared to other options.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oOJaU8KkNvRZxPtRG-ErVQ.png" /></figure><p>In the image above, I took part in the libraries you can use (of course that there are hundreds more) to develop a mobile app that you can upload to a store (App Store, Google Play..)</p><p>I would divide those platforms into three (right to left):</p><ol><li>Native. It means you want to write your app using a native language like Swift for iOS or Kotlin for Android. You will defiantly get here the best performance and you will be able to get the most out of the device hardware and native APIs. But, it requires learning two different programming languages, maintaining two different repositories of projects and has probably a double amount of bugs and maybe even two different development teams.</li><li>Hybrid. If you are a web developer or have a team of web developers who are already familiar with JS, HTML, CSS and maybe some frontend lib (not required), you can take them and with some more steps using Cordova/Ionic make your website a mobile app or just develop a mobile app. Here we learn only one development stack and using only one team. But, we might pay in a limitation on the performance side, hardware limitations and other device abilities we want to access like : GeoFencing.</li><li>Native-Like (also kind of Hybrid in a way). This is the category where React Native stands in. You learn JS, HTML, CSS and using your web development team that might also know React lib or need to learn it. But now they can have a little higher learning curve than the Hybrid options. They learn to React Native lib and might need to open the project in some cases in XCode or Android Studio (IDEs for iOS and Android) but the code they write will be relevant to both iOS and Android platforms and in this case, there are fewer limitations than the Hybrid option. The performance will be almost like you wrote native code and you will be able to access hardware a lot easier if we are talking again about the example of GeoFencing as a use case.</li></ol><p>Now that we understand where RN stands, let compare a case of using Cordova as a use case of Hybrid app between RN app</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OQnf-lW2VRs2m3f3i3FtHw.png" /></figure><p>As you can see in the image above, the app which used Cordova is hosted as a web view inside a real native component called the UIView (in case of the example of iOS). Generally, it’s more like a browser inside a mobile app and everything is affected by that. If you want an example from the web dev world, it’s more similar to an iframe inside a web app.</p><p>The left side shows how it works in React Native. Each component in the RN Javascript library (Text, Button, Image..) has a corresponding native component written in the native language. So differently that most new RN developers think, it’s not compiling to native code, it’s mapped to a corresponding component in the native side.</p><p>When we write this part of code inside a render function of an RN component this way =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u-f_PgEhrTmSiUpg9MApkA.png" /></figure><p>Part of the pre-written native component will look like that behind the scenes =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BSDspmvZp9gdiEwO2MizNA.png" /></figure><p>If we take iOS as an example, this is the inner code of a native module in RN =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ecEBh7igcp_zzvlSJ8Oo1g.png" /></figure><p>To summarise, the RN team already created and mapped all the native modules for you. What you need to do is just write what you love — javascript code using RN components and library. All the rest will be transparent to you as a developer and will work like a “magic”.</p><p>But you know, magic is not real (sorry Santa), especially in coding.</p><p>Now that we are ready to put our legs inside the water before we dive, let’s do it!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9__epwFxMS3Bhsn2x2Ac8w.png" /></figure><p>So it seems that you just write js code and it’s just working. Let me start explaining step by step how this architecture is built. The best place to start is the Bridge.</p><p>Each side has its own thread: JS and Native (that has more but we will talk about them later).</p><p>The thread can communicate with the bridge with JSON messages containing: module id, method id to use and data if needed. They are not aware of each other directly and do not share the same memory.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EyrKdFUVl4F0PbQmEt4P3Q.png" /></figure><p>It’s like the message broker pattern. When you have backend services written in different languages, how will you communicate between them?</p><p>A queue is a great solution many people use. You send the queue JSON/XML message in an agreed format and each service knows how to read it and translate it to action on his side. So this queue is the Bridge.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RsXkvfH4VAluHpb5yZ7vSg.png" /></figure><p>This is an example of how the communication looks, a message is sent to the bridge. From creating new views and show on the screen + its styles to setting children on the mobile side and doing some actions =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zzp02h7JwexpeAL6uyDqMQ.png" /></figure><p>For the curious ones here, to see the bridge messages on the console, just put the following snippet into the index.&lt;platform&gt;.js file =&gt;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TJvHUXeqrJvcuSLnQ6nB5g.png" /></figure><p>Now we understand how it communicates and starting to break the magic.</p><ul><li>Calls js code from objective-c and vice-versa. RN uses JSCore which is more fit to iOS and already built-in there.</li><li>JS Engine knows to convert JS to machine language and work much more efficiently.</li></ul><p>Chrome, for example, uses V8 and this is not just luck that this one of the most popular and fastest browsers.</p><p>This is one of the reasons that if you have an android app it takes more time to load since it’s bundling JSCore to its project.</p><p>But here is a spoiler announcement from the last <a href="https://www.youtube.com/watch?v=zEjqDWqeDdg">ChainReact conference by Mark Horowitz</a>. Hermes which is a JS Engine ideal for RN is available to use since version 0.60.2</p><p>Now that we broke some of the magic of the Bridge, we are ready to deep dive and give an example flow of opening an RN app and explain how the JS and Native side are actually communicating with the help of the bridge and much more interesting architecture parts in the <a href="https://medium.com/@chenfeldmn/react-native-a-bridge-to-project-fabric-part-2-1f082415b881?source=friends_link&amp;sk=a406d0f75854af01865b990af6991857">next post</a>.</p><ul><li>Credits to unsplash.com and Freepik.com for part of the image resources (relevant for all 3 parts)</li></ul><p>I will be happy to get some Claps and if you also want to follow me on twitter to see the slides and lectures I started giving about it you are welcome to <a href="https://twitter.com/chenosfeldman">follow here</a></p><p>Feedbacks are also welcome! Thanks for reading (:</p><p><strong>My lectures about this subject</strong></p><ul><li>React Week NYC 2019 (English) — <a href="https://youtu.be/k1Y6C11QX5c">https://youtu.be/k1Y6C11QX5c</a></li><li>React Next 2019 (English) — <a href="https://youtu.be/_IiDHmAPH28">https://youtu.be/_IiDHmAPH28</a></li><li>Reversim 2019 (Hebrew) — <a href="https://youtu.be/2eZ4G-loZkY">https://youtu.be/2eZ4G-loZkY</a></li><li>Podcast episode (Hebrew) — <a href="https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/">https://www.ranlevi.com/2019/07/23/osim_software_react_native_bridge/</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5af6a53c0d83" width="1" height="1" alt=""><hr><p><a href="https://medium.com/swlh/react-native-a-bridge-to-project-fabric-part-1-5af6a53c0d83">React Native — A Bridge To Project Fabric — Part 1</a> was originally published in <a href="https://medium.com/swlh">The Startup</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Behind the scenes of building a react lecture]]></title>
            <link>https://medium.com/@chenfeldmn/behind-the-scenes-of-building-a-react-lecture-9b05705baeff?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/9b05705baeff</guid>
            <category><![CDATA[do-lectures]]></category>
            <category><![CDATA[presentations]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Wed, 26 Dec 2018 09:28:05 GMT</pubDate>
            <atom:updated>2018-12-27T13:28:16.395Z</atom:updated>
            <content:encoded><![CDATA[<h3>Behind the scenes of building a React lecture</h3><p>For a long time I wanted to create a React lecture but could never find the right time and courage for that.</p><p>When I almost started I said to myself : “Who do you think you are? You are not ready yet dude..”</p><p>But Luckily , I told some people about it some spontaneous calls and meetings and some of them gave me some great tips and made me feel I can do it.</p><p>Feeling you can is not enough , but you also need your first early adopter for presenting the lecture and get valuable feedbacks.</p><p>Two months ago, <a href="https://medium.com/u/45bb92a77dd6">Omri Bitan</a>(a great friend and the founder of UpStream Accelerator) , approached me and asked me to do a React lecture for the 5 startups there.</p><p>Of course I said yes and from there the clock started to tick and I did not have a choice but to be efficient and just do it!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qbfxzGZLJBgM-Ffn" /><figcaption>In the image, me when building the lecture</figcaption></figure><p>It is truly important for me that others can learn from my processes and make their life easier if they are also trying to do the same thing.</p><p>I documented most of the processes from the start,</p><p>I used the documentation in order to build a todo list</p><p>hopefully it could help others</p><p>here we go…</p><h3>1. Get the courage — tell it to some experienced dudes</h3><ul><li>I spoke with <a href="https://medium.com/u/91e7a417e575">Nir Kaufman</a> and <a href="https://medium.com/u/d71e9378b18e">Ori Harel</a> which did some great tech lectures before and could give me the confidence to start and feel I know how to start</li><li>answered the following questions before I chose the subject</li></ul><p>What do I want people to take from the lecture<em>?</em></p><p><em>What do I like the most?</em></p><p><em>What do I know and don’t know? Make sure before the lecture and don’t be shy to say it</em></p><p><em>Is this lecture a tutorial/inspiration/deep dive? — decide on one type help</em></p><h3>2. Find some early adopters (or they will find you)</h3><p>I had a plan that waited on Trello for a long time to approach some meetup groups and people</p><p>And than without a notice , <a href="https://medium.com/u/45bb92a77dd6">Omri Bitan</a> (the man!) asked me : “Hey Chen, can you do for us a React lecture one and a half month for now? Me: Oh of course!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/883/1*wKlcEPCiRq1utDlS9EVeUQ.png" /></figure><p>When you get the opportunity, take it. This is the thing that will light the fire inside and everything will start happening just because you do not have a choice (:</p><h3>3. Find some subjects for the lecture. Only subjects that you are passionate about!</h3><ul><li>Write three to five main points for lecture</li><li>Fit to the audience and context! Early stage startups? Give tips for tools to build with React faster that usual : awesome-react, NativeBase, Material-UI..find more</li><li>Choose 2 subjects from your options that you like the most</li><li>Share their outline with other people to get feedback (make sure they cover the target audience)</li><li>Choose 3–5 people and send them, see what makes them interest the most and try understanding why</li><li>After choosing one subject, make sure the objective and key point are in the beginning of the lecture (also add data about myself and my projects</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/753/1*7Erc4yxfT3MLr9YaRGrs9A.png" /></figure><h3>4. Start building the structure and content</h3><ul><li>Collect links, stuff to read, videos and visuals</li><li>Choose only the ones that seem relevant</li><li>Make a list of them in a doc and categorised them by your outline</li><li>Create structure bullets for the lecture (they will become the slides in the end of the process)</li><li>Fill inside each bullet some relevant data and links and materials relevant for them</li><li>Choose from the links doc the relevant ones and past as part of the bullets</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/753/1*KFSvf53IHVF_aQ-vWeDpXg.png" /></figure><h3>5. Find places where you can let the audience participate or being active</h3><ul><li>What questions can you ask the audience?</li><li>Where can you involve them in the thinking processes as part of the lecture?</li></ul><p>For example, I did live coding with a funny emoji React website and asked them to tell me how they would build it.</p><h3>6. Now everything is ready — Create the presentation!</h3><ul><li>Each slide is a bullet unless the bullet has some sub-bullets which require some more visuals. In this case, add more slides (:</li><li>Do not take to much care of the design at first, make it organised and paste some visuals, code pieces on the slide even it looks totally ugly. Just make it get a shape with some content</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WEchUwMAhordEwOG4ROmSQ.png" /></figure><h3>7. Dry runs! Yay!</h3><ul><li>Put a timer and try doing the lecture talking to yourself, even if you are not ready. It is the best way to see where you are natural and where you are stuck.</li><li>Write the timings and places you felt less comfortable and fill the gaps in your docs of the bullets and maybe add some clues in the slides (;</li><li>Choose 2–3 relevant friends and do the lecture for them (one by one or together) . It is also fine by phone or skype as long as they see it. I got my help from two frienda who are experienced programmers <a href="https://medium.com/u/6f750ba0bf65">Amit BenDor</a> and Omri who know the audience of the lecture and can be very helpful</li><li>Get feedback from them and write it.</li><li>Change the presentation according to their feedback</li><li>Last dry run on someone else</li></ul><h3>8. You are ready to go!</h3><ul><li>Relax before the lecture, take some time to yourself (meditation is also great)</li><li>Talk to someone you love or appreciate and get their positive words</li></ul><h3>9. After the lectures, don’t be shy! Get personal feedback from part of the audience. There is always a place for improvements!</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DwkRLEhzwPU8VxDL7QoZVg.jpeg" /></figure><p>I Hope I gave you some value with this post (:</p><p>Oh and here is the <a href="https://docs.google.com/presentation/d/1rAArkmFB4NxMZdb3GfOrwI4Kg_vIMwmSPTpBz34DdFY/edit?usp=sharing">link to the presentation</a></p><p>I will be happy to get your feedback!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9b05705baeff" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[10 Freelancer notes about working with customers]]></title>
            <link>https://medium.com/@chenfeldmn/10-freelancer-notes-about-working-with-customers-b50fa70f13bc?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/b50fa70f13bc</guid>
            <category><![CDATA[freelancing]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Fri, 19 Oct 2018 13:54:20 GMT</pubDate>
            <atom:updated>2018-10-19T13:54:20.670Z</atom:updated>
            <content:encoded><![CDATA[<p>Wow it’s been half a year since I started to be a freelancer and it feels like a few years at least.</p><p>Although in terms of time sounded short but I did quite a bit mainly by exaggerating hours and working days and inability to say no! To things in my way and interest me.</p><p>I’ve already worked with 7 clients on a variety of projects (mobile apps, websites, bots, consulting …) and almost everyone is different from each other and the style of working with him is completely different.</p><p>Sounds good? Do not be sure ..</p><p>Being independent is not an easy choice, but it sounds very attractive at first and it’s a new world and it’s really cool, but in practice it requires a lot of features that you have or you’ll have to develop very quickly to make progress, succeed and most importantly survive.</p><p>Do not get it wrong, I’m a masochist and I love risks so I enjoy myself the more I suffer, but it’s important for me now, after half a year, to stop for a moment, look back and share things I’ve learned and maybe help others who are just starting out.</p><p>It’s enough that one person who reads it gets a value from the post, as far as I’m concerned it was worth writing it.</p><p>I have a lot to say and it will be difficult to write everything in one post so I’ll start with a post that talks mostly about customers and if it’s successful interest people I’ll write a few more (so tell me what you love or what you want me to write later .. alright?)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1oUXYM4ORCfPAovuOnwpwg.jpeg" /></figure><ol><li><strong>Do not compromise, especially at first.</strong>😎</li></ol><p>The first steps you take may be what defines the initial DNA of your business. If you choose a customer type that you do not feel comfortable with or technology that you do not like or even people that do not fit you to work with as partners, you may be dragged along with it and this way of thinking of compromise once it is hard, will not go away.</p><p>Even if it means not finding a customer and income immediately, be patient, trust me. It will be worth your while to find what you have connected to.</p><p>2.<strong> Do not put all your eggs in one basket.</strong>🐣</p><p>The intention is to treat your business as an investment portfolio. You choose what percentage of risk you are prepared to take by which you make up the case. For example, in the types of customers: 50% are established companies with long-term income, 20% are start-ups, 20% are private individuals with an idea and 10% are foreign customers.</p><p>If you intend to build a portfolio that is not built on one customer or a particular type of customer, you will not crash when the customer suddenly runs out of budget, decide that the client type is not suitable or for any other reason.</p><p>It’s clear to me that from the start it’s not easy to get straight to this building, but if you’re going there, you’ll always have a look at where you are missing in your bag and know where and to whom to aim.</p><p>3. <strong>Start from close circles to reach your first customers.</strong>👨‍👩‍👧‍👧</p><p>You have great friends and have a family who loves you, know you and care about you.</p><p>Tell them in every way about what you’re doing, your vision, your challenges right now.</p><p>It’s like seeds that you plant in all sorts of fields and wait for the tree to grow and produce fruit. There is no doubt that it is not guaranteed but with a little patience, faith and that you are talented in what you do, the opportunities will come and with much more credibility that they are from people you know.</p><p>4. <strong>Be transparent with the customer from scratch in everything.</strong>😇</p><p>Each client is a kind of relationship. It may be short term and can be long term but in a healthy relationship both sides are telling each other everything. Something that worries you and may develop into a problem in the future? Share. Do you feel that you lack data and you can not continue without it? Speak now since it may not be pleasant afterwards.</p><p>Are you unhappy with any conduct? Share and be honest. No need to go into the charges. You can do everything with a good vibe so long as your intention is the same — to succeed in creating something great together.</p><p>5. <strong>If you do not have time, say no.</strong>⌛</p><p>The tendency to please everyone and not miss interesting opportunities is dangerous. You may find yourself doing a lot of projects at the same time but not keeping up with your standards without starting to work now into the night, on weekends and maybe even then you are still not satisfied. Work from the beginning on the ability to know exactly what you want and can and do not be shy from time to time to say no. Otherwise, you might even harm one of your projects unintentionally.</p><p>6.<strong> It is important to please the customer but at the same time put any boundaries from scratch.</strong>📏</p><p>When I signed on a founders agreement to establish my startup,I also made sure to note what happens in the case of divorce. This is an example of something that no one wants to talk about because it is negative and not a good vibe but once it is suddenly needed and it is not registered .. believe me you will have some complications.</p><p>There is no such thing as friends, there is no such thing as unpleasant. Write together a document that describes everything that matters to you or the client that will happen as much as possible.</p><p>Once you start working with the coordination of expectations and honesty that everyone agrees upon, every time a complication is resolved in the document and there is no need to rack your brain.</p><p>7. <strong>Always give the customer more than he asked for.</strong>♥️</p><p>You promised only service X and can give service Y without any additional costs? Do it. Both the client will enjoy and you will enjoy the smile on his face since he received something fun and good that he did not expect and gave him an additional value.</p><p>8. <strong>Take an office or an open space with people who are fun to see on a daily basis.</strong>🏢</p><p>Think it is too expensive and prefer cafes or at your house? Well it depends on your taste as well. But you’re sitting in a compound where you’re not only inspired by other people (independent like you or startups), you’re also hanging around where your customers are hanging out or their friends will get to know you and even one conversation in the kitchen to make black coffee after hummus lunch and boom, you are references by other to new clients. It does not happen just like that and is not guaranteed, but sitting in the compounds definitely increases the chances.</p><p>9. <strong>Try to understand the potential of the work ahead.</strong>🤔</p><p>Sometimes it is enough just to ask directly without being ashamed. Even if the client is super nice and an super interesting, if you do not get jobs from him after the current one and at the same time there is another client with a long continuation potential, you should know this and if you ask more, you will probably know more (and if not? At least you tried)</p><p>10. <strong>Do not bet lower than you are worth to get the job done for just satisfying the customer.</strong>💵</p><p>First of all, it is crucial that you are aware to the amount of money freelancer with similar experience earn.</p><p>A customer who understands your value, is willing to pay, and there are no such deficiencies. You just need patience and mental strength to get to them (um, and a bit of luck, too).</p><p>As in section 1 I wrote, compromising the price at first can be dragged down and create damage later on. It will be possible to get away from it but it is much more difficult if you did not create such a foundation in advance.</p><p>There is one case in which I am in favor of low prices. If you have additional benefits from the project other than payment. Suppose? Learn new technology that you are less experienced in, work with someone you really want to work with or maybe someone who is sure to turn other customers to you later on. This is your decision how to do it and there is no exact science here. Mainly intuition.</p><p>Hope you had a nice and valuable reading!</p><p>Next time I will write about the freelance journey from another angle (:</p><p>Feel free to give me some claps here (only in case I deserve it!)</p><p><em>I am Chen Feldman, A Tech Freelancer</em></p><p><em>Wanna sit for a coffee or chat? </em><a href="http://www.chenfeldman.com"><em>www.chenfeldman.com</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b50fa70f13bc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[14 Lessons I Learned From My First Two Years As A Startup Founder]]></title>
            <link>https://medium.com/@chenfeldmn/14-lessons-i-learned-from-my-first-two-years-as-a-startup-founder-d943ff612351?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/d943ff612351</guid>
            <category><![CDATA[startup]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Mon, 14 May 2018 06:08:23 GMT</pubDate>
            <atom:updated>2018-05-14T11:10:35.534Z</atom:updated>
            <content:encoded><![CDATA[<blockquote><strong><em>“You can never make the same mistake twice because the second time you make it, it’s not a mistake, it’s a choice”</em></strong></blockquote><p>One of the major issues preventing us from being active is the fear of failing.<br>We are so afraid to find out we wasted our time, disappointed our family and friends or just chose the wrong path for ourselves.</p><p>The best way to avoid being always stuck a small step before achieving your dreams or passions is to try and fail and then..try and fail again and then…yeah..try and fail again! (<a href="https://medium.com/@chenfeldmn/one-day-you-wake-up-and-realize-you-are-not-in-love-with-your-startup-and-partner-anymore-9f2313c6a5a9">I wrote here</a> on my last try and fail session)</p><p>I am not saying you cannot become a success on the first time you tried. But unfortunately this is not the reality. Most people who try achieving goals they see as over their limit, do not succeed on the first time. In the startup world there is even a very sad number I have always heard from people :<strong>90% of startups fail </strong>(And I actually think it is higher..).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hyAp4Q0OPmp-wOaeSqA7nA.jpeg" /></figure><p>Trying and failing maybe sounds smart but the important point here, is what you learn between your tries and how better you become from time to time.</p><p>Honestly? It is not so easy but I decided to write some lessons I learned from my actions in the last two years.</p><ol><li><strong>Be willing to sacrifice and do it as soon as possible</strong></li></ol><p>If you really believe in what you do , show yourself it is not just something you tell yourself to feel better. Invest some major amount of cash and time on it, even consider leaving your job. I believe that if you cannot do at least one of the above something that will “hurt you” , then maybe you don’t really believe in it. Time is almost the most valuable asset you have and you need to know ASAP if it’s worth spending it on this dream.</p><p><strong>2. Be the target audience of your product</strong></p><p>Maybe it is not a must, but as I see it, you can improve your chances to create a product that people really need and love because you love it. You can always ask yourself or people like you about your product. Worst case? You created something you enjoy using.</p><p><strong>3. Choose a partner you would spend time with on a deserted island</strong></p><p>As people say, startup is a roller coaster. One day you are on the way up and one day screaming on your way down. Specially on the way down, you have to know you both can survive the fall. Even when it seems impossible. In addition to that, on a lonely island you don’t just need to survive, you need to enjoy. This way your stay there will be improved. Try to find not only a partner but a real friend you appreciate and enjoy working with.</p><p><strong>4. Always be honest with yourself and your team</strong></p><p>It is something easy to say but hard to do. We tend to say to ourselves that things will be solved by themselves, but this is not always the case. When you feel something is wrong, say it to your team. Do it in a state of mind of trying to solve it together, don’t just throw it like a bomb, always offer a solution.</p><p><strong>5. Never work with people who are not passionate about your startup</strong></p><p>There are many talented and professional people who want to join you, but without passion and light in their eyes, you can really waste each other’s time. We tend to say we are a startup with limited resources so if someone wants to work with me just for equity (shares from the company), I have to say yes. I don’t actually pay and they are willing to spend their precious time. So don’t be mistaken, money is precious but time is more. If someone works on your dream without passion, the results will be influenced respectively.</p><p><strong>6. Always free some time to help others, even when you do not have time</strong></p><p>One of the special things in the Israeli eco-system is that people love to help each other. Be the person who help others who needs your help. It can be even a coffee for 30 minutes, a phone call or an intro to a friend. And remember, Karma is a bitch (;</p><p><strong>7. Leave the ego aside and be open minded for help and advice from others</strong></p><p>Listen to ANY opinion people has and try to respect it. You do not have to agree but trying to open your mind to other directions can sometimes take you to the place that you were looking for all that time. Being open for criticism is also so important! You are going to get so much of it, so be prepared.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mYIZ8gbDG6nzgjwx-fB5KQ.jpeg" /></figure><p><strong>8. Make sure you spend time with your loved ones</strong></p><p>When working on a startup, you sleep less, your mind is always thinking about new stuff you can try, you are worried about what others in your team do. It is so easy to leave aside your hobbies, your loved ones and take them from granted. Put your loved one in first priority. They are your base when coming back home after a hard day. There is a better chance your startup is temporary than the chance they are. Take an early breakfast together, cook a surprise dinner for friends, ask for their opinion even if they are not part of the startup world..after all they are your friends (:</p><p><strong>9. Be willing to do stuff which is not part of your responsibility</strong></p><p>As I said before, time is your most valuable asset. When something need to be done and you do not have a team member or resources to spend on it, learn how to do it by yourself. You might do it less better but it is better than waiting decades for someone else to do it. Of course it is important to make sure you have someone in your team you trust and can do it, but until then..leave what you do and put your resources there.</p><p><strong>10. Money from investors can buy you time but it is not a validation</strong></p><p>This is a very tricky one. When working as first timers on a startup we can believe that we get an investment, we are in the right direction and on the way to success. If you have an idea, first validate it! Make sure people are willing to pay on it, make sure companies are willing to co-operate and spend resources on that. The best option is an investment from a potential client as a partners if you can combine them. Make this process of validation with milestones. Every couple of months there is a goal. Didn’t achieve it? Think again if you do the right thing.</p><p><strong>11. Never stop speaking directly with your target audience</strong></p><p>Yeah, as I mentioned it can be you but it is not enough (: You have to speak to as many users as you can and learn from them how they use or expect to use your product. Do not guess what they want , ASK THEM! If you will do it politely they might tell you.</p><p><strong>12. Work with interns</strong></p><p>There are so many internship programs all over the globe. People from the US, China, Israel and so much more can do an internship in your startup. They will work and be part of the team for 2+ month and if you treat them well and really care about them, they even do a great job. This is an awesome resource specially for a bootstrapped startups..believe me..I know after working with almost ten (:</p><p><strong>13. Focus!</strong></p><p>Your number one enemy is being like a kid in a toy store who is excited from any toy and want to buy everything. Your time is valuable and you should focus on one thing that validate your product and takes it to the next level of validation and maybe even bring you some resources to work faster. If you will fall to the trap of doing many things but non of them is good enough, you can waste your time and maybe loose the chance to achieve your startup goals and validations</p><p><strong>14. Always give others more than what they asked</strong></p><p>Did customers asked you for a service you provide? Surprise them and give them a bonus which is not part of the service. Did investors asked for some data and plans? give them at least 2X than what they asked. Surprise people your interact with. Give an extra service whenever you can.</p><p>Thank you for reading, I will be happy to hear and learn more from your experience and hope you got some real advice!</p><p>Clap if you enjoyed (:</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d943ff612351" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to survive the fall when leaving a startup or a workplace]]></title>
            <link>https://medium.com/@chenfeldmn/how-to-survive-the-fall-when-leaving-a-startup-or-a-workplace-e6d742a8a8e0?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/e6d742a8a8e0</guid>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[freelancing]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Fri, 04 May 2018 09:32:54 GMT</pubDate>
            <atom:updated>2018-05-04T09:34:58.415Z</atom:updated>
            <content:encoded><![CDATA[<p>To continue my <a href="https://medium.com/@chenfeldmn/one-day-you-wake-up-and-realize-you-are-not-in-love-with-your-startup-and-partner-anymore-9f2313c6a5a9">previous post</a> about making the tough decision of leaving my startup I want to tell you about how I survived the fall.</p><p>Let me take you back, it started a couple of months before the decision.</p><p>I did not write about it in my previous post, but besides being open and hearing many opinions of smart people I really appreciate, I am part of an amazing group of 18 people participating in a long and personal mentoring program.</p><p>Each entrepreneur gets a personal mentor that has a lot of business experience.</p><p>I was very lucky to work with one who is an inspirational person that built more than 4 companies, some of which highly succeeded.</p><p>It’s challenging to express this through writing, but talking to someone who sees everything from a totally different angle than you, is a gift.</p><p>He can see things you don’t want to see or admit, and can ask you the questions you would never ask yourself, because the truth hurts sometimes.</p><p>When we met I soon realized that I’m falling into a bottomless pit, without knowing how to get out.</p><p>Doing such a thing without having a backup plan is very dangerous. (I love risks but… only up to a certain point)</p><p>I found myself in a situation of giving everything I have to this startup (as I said before, no income for 1.5 years until this time) and did some volunteering side projects I was passionate about.</p><p>Everything seemed great, every day I did something I love, I met new people and created deep relationships.</p><p>But what I did not realize was that I am like a kid in a toy shop who lights up from every cool toy that makes him happy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xxxONyLH-XMSQwMaqQMU-w.jpeg" /></figure><p>I had to focus myself! But how can I focus? I do not want to leave anything untouched, I like all the things I do!</p><p>So a good place to start is writing a <strong>long term plan</strong>.</p><p>It can be a 3 to 5 year plan and it contains EVERYTHING including your job, where you live, who your friends are, relationships.</p><p>At the start, I thought I would never be able to write only one option, I thought maybe 2 or 3 will be more reasonable.</p><p>But since it’s you who’s writing, asking yourself honestly what you want to do and where you want to be, you know it’s the truth because no one knows you better than you, right?</p><p>This document is kind of a secret that only my wife and mentor know about (and it can be updated in the future) but the point is very clear.</p><p>After you know where you see yourself a couple of years (which is a very hard thing for us in our generation), you can get back to the present and make better decisions.</p><p>So to make a long story short, I had to clean up and organize a lot of small exciting stuff I did and enjoyed so that I can focus on one thing, working on the startup and one more thing that will provide me some income in order to survive. Yeah it is hard to do “only” 2 things but it is critical.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NYE5eJLzDw-EvzsFHJiZdQ.jpeg" /></figure><p>Oh yes, we wanted to talk about how I survived the first fall of leaving.</p><p>I did not plan to leave in those months but I had to create a channel of income.</p><p>Let me explain in 3 steps!</p><p><strong>Step 1 — How?</strong></p><ol><li>Created google doc with all my skills that I can make an income from</li><li>For each skill I asked myself the following questions:</li><li>What do I need to do to get there? (for example: Do i need more knowledge for that? Do I have enough experience for that? Do I need to meet some people to learn from?)</li><li>What are the options for income there? (ways to use this skill for my purpose)</li><li>How much time and effort do I need to spend?</li><li>Income potential (per hour or a day)</li><li>Summarized for each skill in one line, what are the conclusions</li></ol><p>At this stage, if you really spent time and effort, you will see the result and a final 1–2 candidates to choose from and than just take one.</p><p><strong>Step 2 — Dig deeper</strong></p><ol><li>What kind of projects or jobs can you do with the skill you chose?</li><li>What are the most popular things people are looking in this field?</li><li>What are the ways to get to those people which are potential clients?</li></ol><p><strong>Step 3 — Tasks</strong></p><p>Those questions will result in a long list and now we are almost in the final step of this process — Choosing the most relevant stuff from the previous answers and creating actual tasks from them: what to do, how to do it, people who can help with it and a due date (priority is also a good extra but not a must).</p><p>So taking you back to my processes which involved 3+ pages of writing.</p><p>I saw 5 ways to generate income but the one with most potential was the do freelance programming projects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EPleGpMW8OGYVjRbUgyK0Q.jpeg" /></figure><p>To do it right I created a website (<a href="http://www.chenfeldman.com">www.chenfeldman.com</a>), a business card and wrote a personal post.</p><p>A very important point is that no matter what you chose, one of the best ways to start is to let people in your social environment (close friends, family, facebook friends..) know what you decided to do and how they can help you.</p><p>Don’t forget, your friends don’t want to laugh at you, they want to help you.</p><p>At their core people are good, and nothing makes them happier than knowing they helped a friend. (and also karma is a bitch).</p><p>I won’t say that I expected all the help and offers for projects I ended up getting. It really surprised me and gave me hope.</p><p>I took the chance and after meeting almost 10 potential clients I found the 2 clients I want to work with and I am really interested in their projects for the short and maybe long term. (in one of the next posts I might tell you about all the types of different clients I met and the different processes that each type expects)</p><p><strong>To summarize,</strong></p><p>This process was not easy, but looking back it was amazing and really helped me learn how to be more focused.</p><p>And as you know after I left the startup, suddenly I was not scared and did not feel pressure to execute some fast plan or find a job immediately.</p><p>I already had some solid ground to land on.</p><p>Keep in mind that I am not saying you need to do more things when you have startup. On the contrary, when you have a startup do ONLY that like a beast.</p><p>But, after you feel you are falling into a deep hole for a very long time, make a plan B to save yourself from being really hurt and traumatized.</p><p>You need more power for the next adventure, right? (:</p><p><strong>So what am I doing today?</strong></p><p>I am a proud freelance developer, developing mobile apps, website and recently also chatbots on facebook and telegram (which is awesome!) and even started to host a podcast for programmers (:</p><p>Do you want to meet for a coffee and hear more?</p><p>I’ll be more than happy to meet and speak almost about anything!</p><p><em>Thanks again to Yuval Margalit and Ardon Wesly the great for helping with editing!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e6d742a8a8e0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[One day you wake up and realize you are not in love with your startup and partner anymore]]></title>
            <link>https://medium.com/@chenfeldmn/one-day-you-wake-up-and-realize-you-are-not-in-love-with-your-startup-and-partner-anymore-9f2313c6a5a9?source=rss-7fd5ce501cbd------2</link>
            <guid isPermaLink="false">https://medium.com/p/9f2313c6a5a9</guid>
            <category><![CDATA[partnerships]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[failure-stories]]></category>
            <category><![CDATA[freelancing]]></category>
            <dc:creator><![CDATA[Chen Feldman]]></dc:creator>
            <pubDate>Fri, 27 Apr 2018 07:34:55 GMT</pubDate>
            <atom:updated>2018-04-28T14:20:36.062Z</atom:updated>
            <content:encoded><![CDATA[<p>One day I woke up and like any other morning, I started the walk to the innovation space I work at and bought myself coffee and something healthy to eat.</p><p>But something felt different that day, I still didn’t realize what that feeling was but I understood that my point of view on Guiderr (my startup) changed.</p><p>All the passion I went to sleep with every night and woke up with every morning, decreased significantly.</p><p>Suddenly, ideas and co-operations I worked on to take the startup forward seemed less relevant or less interesting.</p><p>Suddenly ,my partner impressed me less than before.</p><p>I tried to ignore that feeling because sometimes, after going to sleep and letting things settle down, they disappear or become less intense.</p><p>But I kept waking up that week with the same feeling. Nothing has changed.</p><p>On the contrary, the opposite happened and the feeling became sharper.</p><p>At that moment I understood that after 2 years of working around the clock with a lot of passion and effort, my love story with Guiderr and my partner, had ended.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BT6UY7QsdwGOezIPzI3ODQ.jpeg" /></figure><p>Usually I am the kind of person who makes a decision with a lot of logic and analyzing behind the scenes.</p><p>I think of the advantages and disadvantages of each parameter before making the decision.</p><p>But this time it was different, I just knew that this decision was right for me.</p><p>It was like things started to connect in my head slowly until they came out as one clear insight.</p><p><strong>Shit! What should I do now?</strong> We have just started a pivot to the chatbot field in the last two months! Potential investors and co-operations started to be more interested in us (even that is not enough) and it is even becoming more interesting from the technological and development side than before.</p><p>How will my partner and the team react? What will happen to all the code I wrote and the effort I spent?</p><p>What will my family and friends think? Did I fail? Did I waste all this time?</p><p>Those were only part of the thoughts that were running inside my head at that moment and I did not have an answer to all of them.</p><p>But, one thing was sure, I decided without wanting to decide, it was almost like someone else decided for me.</p><p>Maybe some of you know this, but when you have a startup and you meet some friends and family, they always ask : “How’s it going with your startup?”, so I couldn’t hide it too much time.</p><p>To some of them I said everything is as usual and to some that I’m considering leaving but haven’t decided yet (even though I knew i did).</p><p><strong>So what now? How do you notify your partner?</strong></p><p><strong>The short answer</strong>: During a calm moment of the day and in the most gentle way you can.</p><p><strong>The long answer</strong>: You think very well in advance how to phrase your decision in a way that will let him understand it without too many question marks. Being honest as you can be.</p><p>Try to show that you are still around and are not disappearing, you can still help, consult and even join some future meetings until things become more stable.</p><p>Break apart a partnership is a lot like a divorce (luckily enough I have no experience with that).</p><p>There are people who get hurt here and might change course due to your decision. There are kids (product, team and potential partners) who demand attention and want to keep growing in a smooth way without screwing their character after their parents broke up in a bad way.</p><p>Here, it is very important to avoid thinking only logically and technically, try to also think about what it’s like to be in your partner’s shoes at this moment. How would you react if you were in his position? What would you expect that would make you feel more calmer about the whole change?</p><p>Nothing is perfect but it is important to try.</p><p>At the end of the day, you do have appreciation for one another and a history of working together with common targets.</p><p>Another thing is that Israel is a small country where almost everyone knows everyone through 1–2 people and you really want to avoid bad mouthing each other and creating bad karma that will eventually reach different people.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*80czjJvydJvnpwpN4Q4NEQ.jpeg" /></figure><p>So here we are, I updated my partner and we started with all the technical stuff of what to do now. Will he continue with the company by himself? Do I get a share? What share? Do I continue being involved in some way?</p><p>Those and more are very sensitive issues which can explode and become trouble in a second if not handled delicately and correctly.</p><p>During this process it’s most important that everyone stay down to earth and not escalate disagreements irrationally.</p><p>* I won’t go deeper into these processes since they are still in process.</p><p><strong>Ok, so I made a decision, I gave notice to my partner… now what??</strong></p><p>When you build a startup and you don’t join one that already offers salaries and has raised funds, you are more involved and your decisions carry a lot more weight from day one.</p><p>But from the other side, when you build something from scratch you can find yourself without any income for a very long time and no one can guarantee that that will change in the near future. In my case we started with 2 steps, in the first 6 months I worked all weekends, woke up early each morning and worked until late at night. After that I decided to quit my job and worked full-time on Guiderr without a salary or guarantee of success.</p><p>The problem is that you always feel that the seed investment is right around the corner and after a couple of months it doesn’t happen. But after a couple of months you get that round around the corner feeling again.</p><p>I found myself in a situation that is called “The gambler fallacy”. In short, this details a situation in which you think that one more try and 17 red will land on the roulette and you’ll win! You feel you spent a lot of time until now and your chances have increased , but that’s not necessarily true.</p><p>At some point (two months ago) I realized that I have to find some source of income. I still believed in our product and the direction we were headed, but I needed some money in order to survive the next couple of months.</p><p><strong>The meaning of this decision is not simple, it means:</strong></p><ol><li>Less time to work on your startup</li><li>Investors and potential co-operations ask if you’re “All-In” and you’re faced with trying to explain to them that you took a step back in order to produce a bit of income since you cannot get it from them</li><li>A risk that might kill the startup</li></ol><p>In another post I might give more details on the deep and long process I did to figure out how I could quickly generate income from 2 work days a week that would be enough to cover my monthly expenses.</p><p>But in the meantime I will just tell about the final decision itself.</p><p>I realized that only through freelance programming jobs I’ll be able to succeed achieving my current financial goals and still spend at least 3 days a week on Guiderr and this is what I did!</p><p>I started by getting clients from my immediate circle, I created a new website, a business card and the offers started to come (luckily).</p><p>Pretty fast , I got my first paying customer and the second one while learning a lot on many types of clients (another idea for a future post).</p><p>Suddenly ,after a year and a half without an income, I got some money I could put in the bank. The pressure and the uncertainty of when money will come immediately decreased.</p><p>I even enjoyed it, first time I got a check that I earned totally independently, an interesting new feeling and achievement.</p><p>Let’s get back to the decision on leaving the startup. Suddenly ,due to the freelance jobs I had soft ground to land on. Not the safest one, but in my world, safe enough.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nSz04tiJWm0h-VONQz5UHQ.jpeg" /></figure><p>I have to stop for a moment and make one point very clear.</p><p><strong>If you decided to leave a startup or a company you have two options:</strong></p><ol><li>Just leave and do everything you can from that moment to make it work</li><li>Try to start preparing in advance for the transition, so that when you leave you’re better prepared and have more time and control to decide what to do next.</li></ol><p>With the second option, you have less pressure to make fast decisions with an hourglass in staring you in front of your face. You decide the rhythm of your life and you can go after what you want and not what others want you to do for them.</p><p>Good! So we hurdled over the initial blow of leaving, now what?</p><p>To tell the truth, It is just the beginning and writing here is part of the understanding of the processes and letting stuff sink in and learning from them.</p><p>These days, I’m doing a freelance project (together with a friend who joined me and also recently left a startup. Kind of a support group for freelancers), I do a software podcast every two weeks that will be launched very soon and really enjoy everything and loving it.</p><p>I realize that I have just gotten off a rapid train ride, and am not in a hurry to take a new ride on a new train.</p><p>I want to feel again what’s it’s like to earn a monthly salary, how it is to work on diverse projects with diverse and different clients.</p><p>But to the people who know me, it is very clear that I do not ignore new ideas or thoughts.</p><p>I just decided that for the next couple of months I want to mainly listen around, discover new fields and meet people that can expose me to new ideas.</p><p>When the thing that will light me up again will arrive, I will use the tools I got from the startup experience and my judgment abilities and decide what to do.</p><p><strong>To shortly summarize,</strong></p><p>As I see it, even though my mindset was that I was building a startup for the long term and gave all I could, I found out on one sunny day that this was only one more milestone in my path through the entrepreneurial world and independent life of creating new things.</p><p>A world I am really attracted to and definitely see myself staying in and spending most of my time on.</p><p>This is the first post as part of a series of posts I plan to write on the process I went through (and went through me) and the insights I learned in my first journey to build a startup.</p><p>In the next post I will write on issues that people do not always enjoy mentioning and admitting: Failures and Mistakes.</p><p>Part of the journey contains a lot of those and people tend to avoid them. I believe that the ability to accept them ,learn from them and pass over them next time to be better, is an important skill that can be taken from here.</p><p>I will tell about some major mistakes I and we did as part of the journey from my point of view with the hope it will help others and save you time in your personal journey.</p><p>Thanks to all the people who read until here I hope you learned something new and I did not waste your time (:</p><p>* <em>Special thanks to Yuval Margalit and Ardon Wesly for helping with the editing!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9f2313c6a5a9" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>