<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alexander</title>
    <description>The latest articles on DEV Community by Alexander (@roundedbread).</description>
    <link>https://dev.to/roundedbread</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F420952%2F067005d0-d5af-4119-93e9-ce54086703a4.jpg</url>
      <title>DEV Community: Alexander</title>
      <link>https://dev.to/roundedbread</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/roundedbread"/>
    <language>en</language>
    <item>
      <title>12 questions to Angular developer test experience (not only knowledge)</title>
      <dc:creator>Alexander</dc:creator>
      <pubDate>Thu, 11 Mar 2021 09:52:21 +0000</pubDate>
      <link>https://dev.to/roundedbread/12-questions-to-angular-developer-test-experience-not-only-knowledge-283</link>
      <guid>https://dev.to/roundedbread/12-questions-to-angular-developer-test-experience-not-only-knowledge-283</guid>
      <description>&lt;p&gt;&lt;strong&gt;Pay attention:&lt;/strong&gt; all these questions don't assume accurate answers, which means the most important part to hear how the candidate did it or will do it if didn't have experience with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. How to create an Angular project from scratch?
&lt;/h2&gt;

&lt;p&gt;There are two suitable answers, first CLI and how to use it and second more interesting how to do it manually: root module, AppComponent, bootstrap (what usually it is in main.ts file), WebPack and etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. How to pass data from one component to another (parent to child, child to parent,  parent to twice nested child)?
&lt;/h2&gt;

&lt;p&gt;Here is quite simply, something about @Input @Output, through the service and state management &lt;/p&gt;

&lt;h2&gt;
  
  
  3. How to manipulate DOM inside template from component class?
&lt;/h2&gt;

&lt;p&gt;First of all, I want to hear about ViewChild/ViewChildren, but there is more than one method like Render2, inject link to "document"&lt;/p&gt;

&lt;h2&gt;
  
  
  4. You need to create a form with dynamic validation, two text fields "first" and "second" if you put in "first" number "second" should be validated by number, if you put in "first" string "second" should validate by a string, how will you do it?
&lt;/h2&gt;

&lt;p&gt;Just explaining how to use ReactiveForms, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;take the links to inputs&lt;/li&gt;
&lt;li&gt;update validation rules use the setValidators/setAsyncValidators&lt;/li&gt;
&lt;li&gt;and call updateValueAndValidity&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Can you tell at least three approaches to optimize the Angular app?
&lt;/h2&gt;

&lt;p&gt;Something about trackBy, LazyLoading, PreloadingStrategy, ChangeDetectionStrategy &lt;/p&gt;

&lt;h2&gt;
  
  
  6. You need to change CSS styles according to the CSS class on the component. How you will do it?
&lt;/h2&gt;

&lt;p&gt;for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;my&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="na"&gt;component&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"red"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;my&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// text inside should be red&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;my&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="na"&gt;component&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"green"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;my&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// text inside should be green&lt;/span&gt;

&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;host&lt;/span&gt;&lt;span class="p"&gt;(.&lt;/span&gt;&lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;host&lt;/span&gt;&lt;span class="p"&gt;(.&lt;/span&gt;&lt;span class="nx"&gt;green&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7.  You need to assign the browser event to the whole component but work with this event inside a component, how will you do it?
&lt;/h2&gt;

&lt;p&gt;This's all about HostListener, of course, we can come up with a couple more variants, but a good way for that is HostListener.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;HostListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;$event.target&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="c1"&gt;// code ...&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Can you describe the pros and cons of the OnPush strategy?
&lt;/h2&gt;

&lt;p&gt;Сons: need to keep in mind 'markForCheck' function, or use streams as much as possible also changes inside objects which we get as inputs don't detect&lt;/p&gt;

&lt;p&gt;Pros: performance&lt;/p&gt;

&lt;h2&gt;
  
  
  9.  Can you describe two situations, you need a global scope for service and you need a local scope for service?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;providedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="c1"&gt;// global for app&lt;/span&gt;

&lt;span class="o"&gt;---------------------------------------------------&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nx"&gt;and&lt;/span&gt; 
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;here&lt;/span&gt; &lt;span class="nx"&gt;inject&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;service&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;local&lt;/span&gt; &lt;span class="nx"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. You need to preload some data before loading the route, how to solve this issue?
&lt;/h2&gt;

&lt;p&gt;It is about Resolve&lt;/p&gt;

&lt;h2&gt;
  
  
  11. You need to add the token to all requests to a server, how to solve it?
&lt;/h2&gt;

&lt;p&gt;It's about HttpInterceptor&lt;/p&gt;

&lt;h2&gt;
  
  
  12.  Can you describe the cases when you need to create your own directives?
&lt;/h2&gt;

&lt;p&gt;Here the candidate should explain and give some examples what for we need to create directives&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to change/add behaviors of html element&lt;/li&gt;
&lt;li&gt;patch some functionality in third part lib through the directive&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;These questions push candidates to think through the experience and allow us to get more information about their experience.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>frontend</category>
      <category>interview</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Who are you "Strong Senior Frontend Developer" (My point of view)?</title>
      <dc:creator>Alexander</dc:creator>
      <pubDate>Sun, 10 Jan 2021 18:56:40 +0000</pubDate>
      <link>https://dev.to/roundedbread/who-are-you-strong-senior-frontend-developer-my-point-of-view-2bpk</link>
      <guid>https://dev.to/roundedbread/who-are-you-strong-senior-frontend-developer-my-point-of-view-2bpk</guid>
      <description>&lt;p&gt;First of all, here I want to share with my point of view on job position, it can be called different ways "Senior Frontend Developer, "Strong Senior Frontend Developer", "Frontend ninja", "Frontend Jedi" and etc but this one means - a person with huge experience and knowledge in frontend development.&lt;br&gt;
I'm going to share the topics list which I think this person should know, I'll also mark how deep this person needs to know this topic. It looks like "deep: 100%" and it is just my point of view on section knowledge. Sure, it does not mean that it is a constant, there are many things which will impact on it, for example: your company can produce web sites or online games and potentially you will have a different level of many sections but on average I see it this way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Base of everything JavaScript, HTML, CSS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 100%&lt;/strong&gt;&lt;br&gt;
This is foundation of everything in frontend world. So, I guess, everyone understand how important they are, without it you cannot understand many of frontend technologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your favourite framework (React, Angular, Vue, Svelte and etc)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 100%&lt;/strong&gt;&lt;br&gt;
Every developer has a favourite framework and every developer has to know it well, not only framework but ecosystem as well, the most popular libs, cli, the best patterns and approaches, and even time to time look into source code of it (I heard opinion from guys "if you didn't read the source code of framework you don't really know it" but, as for me, I don't follow that rule).&lt;/p&gt;

&lt;h2&gt;
  
  
  Your second favourite framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 70%&lt;/strong&gt;&lt;br&gt;
The frontend world is too big and to know only one framework means to build walls around yourself. If you know one more framework on a good level, this is a big plus to you. When I say "good level" I mean you can take a part in project with this framework without problem. Yes, maybe you don't know some aspects about it, that's ok. &lt;br&gt;
New framework is a new vision of resolution for the issues. It's useful to know two frameworks on good level and several on idea level (when you know ideas which stay behind the frameworks, for example virtual DOM, two way data binding).&lt;/p&gt;

&lt;h2&gt;
  
  
  Common architecture approaches and design patterns
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 80%&lt;/strong&gt;&lt;br&gt;
This is another base of everything. If you know how to write a code but don't know how to design it for the best using, your knowledge is not very valuable. I understand there are many patterns and design approaches but we really need to know main of them. &lt;/p&gt;

&lt;h2&gt;
  
  
  Security Approaches and Security Risks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 50%&lt;/strong&gt;&lt;br&gt;
Ok, guys, some frontend developers think they don't need to know anything about security because all security should be on backend side. &lt;br&gt;
But no, we can do a lot of security on frontend side. And if you know top 10 of OWASP you are good and if you know how to protect from them you are the best.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Computer Science
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 50%&lt;/strong&gt;&lt;br&gt;
Computer science is a language for all developers and it is a basic of our profession. It can be seems that frontend work is not about difficult algorithms and data structures but it's totally depends where do you work and what do you code. Frontend side becomes more and more complicated, we work with games in browser, graphics, complicated data from backend also we shouldn't forget that top of IT companies demand knowledge of algorithms and data structures on interview.&lt;/p&gt;

&lt;h2&gt;
  
  
  Animations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 80%&lt;/strong&gt;&lt;br&gt;
Hey, it is very simple, animation is our daily work part. People admire the awesome animation in their devices. Even harsh enterprise projects start to include more and more animations to their interfaces. &lt;/p&gt;

&lt;h2&gt;
  
  
  Accessibility
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 100%&lt;/strong&gt;&lt;br&gt;
Every time when you do accessibility in your website you get one point to your karma. All jokes aside the accessibility very important thing, because it's about people. Imagine the situation, you go to the shop to buy some food but you can't because you are too big and door is too small and you can't go inside, it's insulting, isn't it? Keep this feeling in your mind every time when you don't want to spend time for &lt;br&gt;
accessibility.&lt;br&gt;
Besides a lot of countries have a law about web sites accessibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  UI/UX
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 25%&lt;/strong&gt;&lt;br&gt;
First of all you, as developer, need to speak with UI/UX specialist and you both have to understand each other, secondly you, as developer, work with design and you can see some details and advise how to make it better. &lt;/p&gt;

&lt;h2&gt;
  
  
  TypeScript
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;deep: 80%&lt;/strong&gt;&lt;br&gt;
So, TypeScript becomes popular and the case that you will get next project with typescript inside highly likely. Or you will be a person who inject it to the next project. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;All this is exclusively my point of view according my experience and acquired knowledge. I work in a service (outsourcing and outstaffing) company and, of course, my experience connected this direction, your point of view may differ if you work in product company or some where else.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>developer</category>
      <category>senior</category>
      <category>career</category>
    </item>
  </channel>
</rss>
