<?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"><channel><title><![CDATA[The Nomad's Cruise]]></title><description><![CDATA[Andrey Teologov's Home Page]]></description><link>https://teologov.com</link><generator>RSS for Node</generator><lastBuildDate>Thu, 28 Mar 2019 19:56:02 GMT</lastBuildDate><item><title><![CDATA[Efficient delivery of large product features]]></title><link>https://teologov.com/blog/efficient-delivery-of-large-features/</link><guid isPermaLink="false">https://teologov.com/blog/efficient-delivery-of-large-features/</guid><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Every engineer faces the complexity of development and delivery of large
projects or features. Through the learning process and experience gaining, we find ways how to tackle those problems.&lt;br&gt;
In this post, I’ll share with you my own experience on this question. Get ready, we are starting now!🔥&lt;/p&gt;
&lt;p&gt;
  &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/1ca4c/jon-tyson-420512-unsplash.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
  
  &lt;span
    class=&quot;gatsby-resp-image-wrapper&quot;
    style=&quot;position: relative; display: block;  max-width: 740px; margin-left: auto; margin-right: auto;&quot;
  &gt;
    &lt;span
      class=&quot;gatsby-resp-image-background-image&quot;
      style=&quot;padding-bottom: 133.33333333333331%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgT/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/2gAMAwEAAhADEAAAAemC54qYhVPCxokJ/8QAHBAAAgICAwAAAAAAAAAAAAAAAAECEQMSICEx/9oACAEBAAEFAoeZbHKi+lIchyNmXw//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAaEAABBQEAAAAAAAAAAAAAAAAhAAEQETAx/9oACAEBAAY/Ai6Fz3D/xAAbEAEAAwADAQAAAAAAAAAAAAABABEhEDFBUf/aAAgBAQABPyEpjY0/CMqRjrvkqvTnsS4qSztjrl7n/9oADAMBAAIAAwAAABBoHs3/xAAYEQADAQEAAAAAAAAAAAAAAAAAESEBEP/aAAgBAwEBPxDLR8Z//8QAFxEBAQEBAAAAAAAAAAAAAAAAEQABEP/aAAgBAgEBPxANjhf/xAAdEAADAAICAwAAAAAAAAAAAAAAAREhMRBBUWFx/9oACAEBAAE/EJZ71geEkIvj2IbBysi5xlM+iR1To1hRyPTuzW1eCouBvg//2Q==&apos;); background-size: cover; display: block;&quot;
    &gt;
      &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        style=&quot;width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;&quot;
        alt=&quot;jon tyson 420512 unsplash&quot;
        title=&quot;&quot;
        src=&quot;https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/83ce8/jon-tyson-420512-unsplash.jpg&quot;
        srcset=&quot;https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/14b6a/jon-tyson-420512-unsplash.jpg 185w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/ba333/jon-tyson-420512-unsplash.jpg 370w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/83ce8/jon-tyson-420512-unsplash.jpg 740w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/ce974/jon-tyson-420512-unsplash.jpg 1110w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/bfd67/jon-tyson-420512-unsplash.jpg 1480w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/86300/jon-tyson-420512-unsplash.jpg 2220w,https://teologov.com/static/15b1ebdf83e06a75fe15e8ec168e4d83/1ca4c/jon-tyson-420512-unsplash.jpg 3024w&quot;
        sizes=&quot;(max-width: 740px) 100vw, 740px&quot;
      /&gt;
    &lt;/span&gt;
  &lt;/span&gt;
  
  &lt;/a&gt;
     &lt;em&gt;Photo by
&lt;a href=&quot;https://unsplash.com/@jontyson&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Jon Tyson&lt;/a&gt; via
&lt;a href=&quot;https://unsplash.com/photos/82ZEOTntP8g&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;no-understanding--no-happiness&quot;&gt;&lt;a href=&quot;#no-understanding--no-happiness&quot; aria-label=&quot;no understanding  no happiness permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;No understanding — no happiness&lt;/h2&gt;
&lt;p&gt;Before I will start the development I have to understand the project. Engineer can’t
solve a problem if there is no understanding of it. This is why it’s crucial to
understand what problem are we solving. Sometimes it takes some time, and that’s fine.&lt;/p&gt;
&lt;p&gt;Once I do understand it, I can make the next step, and start the planning process.
This is a perfect time to start the implementation details discussions and do the
initial estimation of the required amount of work.&lt;/p&gt;
&lt;p&gt;Usually, complex features require both frontend and backend work. This is why we should
avoid the situations when frontend development is blocked due to not ready API.&lt;br&gt;
To solve this problem engineers should start the API design process as soon as possible,
however, the backend can be implemented any time in the future without blocking the frontend. And here is how.&lt;/p&gt;
&lt;p&gt;The API can be designed and documented without immediate implementation. I recommend using the &lt;a href=&quot;https://apiblueprint.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;API Blueprint Format&lt;/a&gt; for it.&lt;br&gt;
In this case, once we have a ready-to-go
API documentation, the FE can easily implement this API using a mock web server which
responses with mock data, but with correct response format. In this way the frontend
development is completely unblocked from the backend and can be implemented even in front of
backend.&lt;/p&gt;
&lt;h2 id=&quot;smart-delivery-process&quot;&gt;&lt;a href=&quot;#smart-delivery-process&quot; aria-label=&quot;smart delivery process permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Smart delivery process&lt;/h2&gt;
&lt;p&gt;The next pillar is a &lt;em&gt;delivery&lt;/em&gt; process.&lt;/p&gt;
&lt;p&gt;Imagine you are working on the large project. The estimation is around a month of full-time work.
Typically, people do not release anything until it’s &lt;em&gt;done&lt;/em&gt;. And &lt;em&gt;done&lt;/em&gt; usually is far beyond the original estimation. This situation is very bad, and this is why. The company (team) spent a huge amount of
time and money for a project and they don’t even know yet if customers will use it!&lt;br&gt;
Receiving feedback is essential. The sooner project can be shown to others is better.  &lt;/p&gt;
&lt;p&gt;How can we avoid this situation? The answer is very easy. Validate your ideas as
soon as possible. Get the feedback from users on early stages. Build the MVP
and show them what are you working on.&lt;/p&gt;
&lt;h2 id=&quot;what-about-engineers&quot;&gt;&lt;a href=&quot;#what-about-engineers&quot; aria-label=&quot;what about engineers permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;What about engineers?&lt;/h2&gt;
&lt;p&gt;Through the developer’s prism, this approach can be applied as &lt;strong&gt;delivery of the feature by chunks&lt;/strong&gt;.
Avoiding super large and stale PRs will help you better structure your code and organize your job. But it will also simplify PR reviews for your colleagues. Just think through the feature, and split it into several development phases.&lt;br&gt;
This is a win-win approach because you’ll deliver something working much faster, your product team
and customers will be able to give you instant feedback.&lt;/p&gt;
&lt;p&gt;Quick validation of product features is a vital process which helps the company to stay ahead of
competitors. This is why it is related to everyone involved in product development.&lt;/p&gt;
                &lt;div style=&quot;margin-top=55px; font-style: italic;&quot;&gt;(This is an article posted to my blog at teologov.com. You can read it online by &lt;a href=&quot;https://teologov.com/blog/efficient-delivery-of-large-features/&quot;&gt;clicking here&lt;/a&gt;.)&lt;/div&gt;
              </content:encoded></item><item><title><![CDATA[Greetings!]]></title><link>https://teologov.com/blog/greetings/</link><guid isPermaLink="false">https://teologov.com/blog/greetings/</guid><pubDate>Sun, 24 Feb 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Dear reader, in this post I’d like to introduce myself to you, and share some
thoughts about this new project of mine - The Nomad’s Cruise.&lt;/p&gt;
&lt;p&gt;I want to tell you a bit about myself, about what exactly I am going to write here, and things I will cover in my blog.&lt;/p&gt;
&lt;p&gt;My name is Andrey Teologov. I am a full-stack software engineer. The last couple of years
I am focusing on the Front-end development. Through my career, I worked as a full-time
employee in multiple startups and product companies.&lt;br&gt;
During the last two years, I am building a rocket ship 🚀at &lt;a href=&quot;https://people.ai&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;People.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Last year I’ve started my path as an indie maker. As result, last September I shipped
my first big app - &lt;a href=&quot;https://snipper.app&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Snipper App&lt;/a&gt;.&lt;br&gt;
It took me 9 months of constant development in my spare time. So it’s time to share my experience with you 🙂&lt;br&gt;
With the launching of my blog, I will take part in the Open Startup Initiative. I will share monthly metrics including revenue, and users count here and in my &lt;a href=&quot;https://twitter.com/ateologov&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Besides engineering, I am a big fan of blues, and guitar playing. Last two years
I am playing the electric guitar 🎸 and learning blues. So I’ll touch some music-related themes in my posts too.&lt;/p&gt;
&lt;p&gt;Thanks for your time, and see you in the next posts! ✌&lt;/p&gt;
                &lt;div style=&quot;margin-top=55px; font-style: italic;&quot;&gt;(This is an article posted to my blog at teologov.com. You can read it online by &lt;a href=&quot;https://teologov.com/blog/greetings/&quot;&gt;clicking here&lt;/a&gt;.)&lt;/div&gt;
              </content:encoded></item></channel></rss>