<?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: Rahul Varshneya</title>
    <description>The latest articles on DEV Community by Rahul Varshneya (@rahulvarshneya).</description>
    <link>https://dev.to/rahulvarshneya</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%2F100776%2Fc8a4cde9-e19b-4e3f-affb-0b6e8425154d.jpg</url>
      <title>DEV Community: Rahul Varshneya</title>
      <link>https://dev.to/rahulvarshneya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rahulvarshneya"/>
    <language>en</language>
    <item>
      <title>Commonly Asked DevOps Interview Questions (w/ Answers)</title>
      <dc:creator>Rahul Varshneya</dc:creator>
      <pubDate>Wed, 05 Jun 2019 12:18:52 +0000</pubDate>
      <link>https://dev.to/rahulvarshneya/commonly-asked-devops-interview-questions-w-answers-5b40</link>
      <guid>https://dev.to/rahulvarshneya/commonly-asked-devops-interview-questions-w-answers-5b40</guid>
      <description>&lt;p&gt;Most companies today, right from start-ups to Fortune 500 are adapting DevOps practices to increase the speed and quality of their software development and deployments. &lt;/p&gt;

&lt;p&gt;A review of DevOps job statistics shows that DevOps engineers will be in high demand in the next few years and the median salary offered is a whopping six figure ($122,969-$133,378 yearly, according to Indeed and Glassdoor surveys). &lt;/p&gt;

&lt;p&gt;Impressive isn’t it? However, to grab a DevOps role in IT industry will require extensive preparation in terms of job interview, apart from developing your real technical skills and writing that perfect &lt;a href="https://myresumeseed.com/devops-engineer-resume-templates/"&gt;DevOps resume&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a potential interviewee, you may be asked general as well as specific tools related questions. Let’s start with few general DevOps questions and then move on to specific tools:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why is DevOps gaining importance? What are the benefits of using DevOps?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; DevOps has gained importance due to the changing market trend where unlike the traditional practice of introducing large changes or features, companies are now trying to introduce small features with a series of frequent releases leading to improved quality and fast market response. &lt;/p&gt;

&lt;p&gt;The practice of DevOps helps the companies fulfilling these requirements in terms of more frequent deployments, less chances of failed releases, small bug fixing time between releases and quick recovery in case of crashed releases. &lt;/p&gt;

&lt;p&gt;In addition, companies like Netflix or Facebook have been practicing DevOps and are successful in scaling up their operations by implementing millions of lines of code on a frequent basis without compromising on quality or security. &lt;/p&gt;

&lt;h2&gt;
  
  
  2 Are DevOps and Agile different? If yes, how?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Yes. DevOps is a different approach from &lt;a href="https://arkenea.com/blog/agile-metrics/"&gt;Agile&lt;/a&gt;. While Agile is a software development methodology with emphasis on development of software, DevOps is a methodology dealing with both software development and deployment. &lt;/p&gt;

&lt;p&gt;Both these methodologies have been evolved due to changing business needs. In agile model, software development happens in short release cycles where changing business requirements are readily incorporated in new releases along with the bug fixing making the development Agile. &lt;/p&gt;

&lt;p&gt;However, operations are unable to keep pace with Agile development approach. And so, the DevOps approach goes one step further creating collaboration in development and operations making both Agile with the help of continuous development, continuous testing, continuous integration, continuous deployment and monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 Which popular DevOps tools do you know? Or have worked on?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Some of the widely used DevOps tools are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version control: Git,SVN&lt;/li&gt;
&lt;li&gt;Code building: Ant, Maven&lt;/li&gt;
&lt;li&gt;Continuous integration: Jenkins&lt;/li&gt;
&lt;li&gt;Continuous testing: Selenium, TestNG, JUnit&lt;/li&gt;
&lt;li&gt;Configuration management/deployment: Puppet, Chef, Ansible&lt;/li&gt;
&lt;li&gt;Continuous monitoring: Nagios, ELK Stalk&lt;/li&gt;
&lt;li&gt;Containerization: Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are a few popular &lt;a href="https://devops.com/9-open-source-devops-tools-love/"&gt;DevOps tools&lt;/a&gt;. Here, you should clearly mention which tools you have hands-on experience. For the remaining tools you can say that you have exposure only not hands-on experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 Can you explain how the above tools can be combined to get a seamless delivery?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; During the continuous development phase, software development is done in numerous sprints in short development cycles. Here different versions of code are maintained using version control tools like SVN or Git. Building tools like Ant or Maven are used to package the code for testing.&lt;/p&gt;

&lt;p&gt;In the continuous testing phase, automation testing tools like Selenium or Junit are used. Also, Docker containers can be used to simulate testing environment.&lt;br&gt;
Once tested, the new code can be integrated with the pre-existing code using a continuous integration tool like Jenkins. This will ensure smooth integration. Latest code version from Git can be used to build and then test or deploy in production using Jenkins.&lt;/p&gt;

&lt;p&gt;After this, the next stage is deployment in production server. Here you need to ensure that servers are scaled up in case you receive increased traffic. Here configuration management tools like Puppet, Ansible etc can be used.&lt;/p&gt;

&lt;p&gt;In the continuous monitoring stage, the performance of system is monitored in terms of any bugs or unusual system behaviour. In this stage, the tools like ELK Stack or Nagios can be used to monitor the system closely. You need to repeat these stages until you get the desired quality software.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 Can you provide few real-life use cases of DevOps from any industry?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; There can be numerous examples. You can give one or all of these-&lt;br&gt;
Facebook used DevOps principles and dark launching techniques for launching new features to a limited user before making it available to complete user community. Facebook resorted to this strategy as launching new features to everyone in one go had led server meltdown and inconclusive responses from users.&lt;/p&gt;

&lt;p&gt;Etsy, a vintage item selling e-commerce company struggled with slow website frequently going down causing huge business losses. Initially it transitioned from waterfall model to Agile model. Later it shifted to DevOps methodology having continuous delivery and many deployments everyday with few troubles.&lt;/p&gt;

&lt;h2&gt;
  
  
  6 Why do we use version control? Have you used any version control Tool?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; You can start with explaining what a version control is and ell that it’s a system that records changes (in code or file) such that later you can extract earlier versions if you need. It helps you take your file or project back to any earlier state. You can also do a comparison of changes introduced over a time. In case of any problem due to changes, it helps you know the person who has made those changes.&lt;/p&gt;

&lt;p&gt;A version control tool such as Git allows the team members to work on a file and later merge the changes creating a version.&lt;/p&gt;

&lt;h2&gt;
  
  
  7 What is Continuous Integration? Why do you need it?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Since development of software is done on a continuous basis, you also need to continuously integrate the updated code to the pre-existing code. This will ensure that code having new functionality is smoothly integrated continuously with already existing code making the changes available to end users.&lt;/p&gt;

&lt;h2&gt;
  
  
  8 Have you used any configuration Management Tool? If yes, can you explain how does it work?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Here you can explain the CM tool of your choice. For example if you used Puppet, you can say that the configuration management tool Puppet automates the administration tasks. Puppet has a Master-Slave architecture which requires the slave to send the request for signing of certificate to master. Once the master signs it, a secure connection is established between the two. Puppet slave has to send request to master after which puppet master pushes configuration on slave.  &lt;/p&gt;

</description>
      <category>devops</category>
    </item>
    <item>
      <title>12 Must-Have Soft Skills For Software Engineers</title>
      <dc:creator>Rahul Varshneya</dc:creator>
      <pubDate>Fri, 30 Nov 2018 16:22:22 +0000</pubDate>
      <link>https://dev.to/rahulvarshneya/12-must-have-soft-skills-for-software-engineers-4d89</link>
      <guid>https://dev.to/rahulvarshneya/12-must-have-soft-skills-for-software-engineers-4d89</guid>
      <description>

&lt;p&gt;The software development industry is highly volatile and dynamic where it's mandatory for engineers to have a blend of both technical and soft skills in order to let their career flourish. It's easy to acquire technical expertise by working hard in a professional setting.&lt;/p&gt;

&lt;p&gt;But, the real challenge for engineers is to inculcate essential soft skills that allow them to interact efficiently and harmoniously with other people, whether in their full-time roles or in &lt;a href="https://myresumeseed.com/remote-jobs/"&gt;remote jobs&lt;/a&gt;. As correctly quoted by an eminent American software engineer and author Tom DeMarco: "The business we're in is more sociological than technological, more dependent on workers' abilities to communicate with each other than their abilities to communicate with machines.”&lt;/p&gt;

&lt;p&gt;Considering the significance of soft skills, let's look at top twelve of them in detail which can make a programmer perfect fit for a software company.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Effective Writing Skills
&lt;/h2&gt;

&lt;p&gt;It's great that you can talk well and express your thoughts in a clear manner. But is disciplined environments it's also essential for the programmers to have the ability to put their thoughts in writing precisely. This helps them in raising their voice at the right time and in the right manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Good Drawing Skills
&lt;/h2&gt;

&lt;p&gt;In a software team, it becomes highly important for engineers have the potential to express their thoughts in the form of visually appealing diagrams. This gives you an edge over the others and the capability to express yourself in a unique way.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Excellent Reporting Skills
&lt;/h2&gt;

&lt;p&gt;The main task of a programmer is not only to develop code or fix a bug. But he should be well-versed with reporting the entire issue in an effective manner to the other team members or external staff.&lt;/p&gt;

&lt;p&gt;Great engineers have the potential to take up any complex technical problem and describe it is simple terms so that it becomes easy even for non-technical people to understand it properly. This is a crucial skills that can be beneficial in increasing your usefulness in the professional setting.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Volunteering &amp;amp; The Will To Contribute Back
&lt;/h2&gt;

&lt;p&gt;The majority of the software projects are open source where it is mandatory for the engineers to have the ability to work with an open community cohesively. They should be always willing to give something back to the community for the software they provide.&lt;/p&gt;

&lt;p&gt;Programmers can do this by performing tasks such as reporting problems, submitting pull requests, creating their own open source products, etc. For doing all these tasks efficiently engineers do need a lot of non-tech skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Asking &amp;amp; Participating In The Digital Resources
&lt;/h2&gt;

&lt;p&gt;This soft skill needs programmers to participate and take advantage of various digital communities and resources such as StackOverflow, GitHub, and many more. This is important because the software development domain is expanding globally and it's not enough to stay within your team and gain knowledge from their experience.&lt;/p&gt;

&lt;p&gt;This kind of online communities, platforms, and resources are there to help the programmers in solving their problems and enhancing their knowledge base. Also, they can get instant expert advice from some of the most renowned technical wizards which can prove to be a lifesaver for engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Testing Skills
&lt;/h2&gt;

&lt;p&gt;This skill is not limited to the technical ability to write and run automated tests. But it's also highly important for engineers to communicate effectively with the testers so that to get their honest feedback which could improve the overall performance and quality of the product under development.&lt;/p&gt;

&lt;p&gt;In addition, good programmers must know how to deal with the famous developer-tester conflict which has been in existence for a long time. Also, they should understand the worth of testers and treat them with respect and dignity.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Appropriate Charging Capability
&lt;/h2&gt;

&lt;p&gt;The prime source of income for engineers is to write code. But in rare situations development projects fail due to money conflicts between the programmer and the client. The major reason behind this is that the engineers are not familiar with the ways to manage their financial goals.&lt;/p&gt;

&lt;p&gt;They hesitate when asking for a raise or modifying the paying schedule. This makes it extremely important for the programmers master the art of managing financial relationships with their clients. Also, they should be loud and clear when negotiating financial matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Branching
&lt;/h2&gt;

&lt;p&gt;It's not good for programmers to keep working in a single master branch for a very long period of time. They should learn how to move gradually from the amateur category to the expert bandwagon.&lt;/p&gt;

&lt;p&gt;The engineers must know how to deal with multiple branches efficiently and resolve conflicts between them. For acquiring this trait, programmers need to have a soft skill that is not at all related to the quality of code they produce. But, this skill definitely has a positive impact on the professionalism of the software engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Relaxing
&lt;/h2&gt;

&lt;p&gt;The efficient programmers must have exceptional time management skills. They should be able to monitor their time spent on the work and take out some time to relax. This will encourage them to have a peaceful mindset where they can manage their time effectively and realize their full potential. Also, it will help them in enhancing their overall productivity and efficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Delivering
&lt;/h2&gt;

&lt;p&gt;Developers should have a comprehensive knowledge of the entire development process. They should be aware of the significance of delivery pipeline, continuous integration, staging, build automation, green/blue deployments, etc. All these concepts aren't relevant to the DevOps department only. &lt;/p&gt;

&lt;p&gt;Great programmers must have an idea of how their code reaches the users. They should also be well-versed with the pipeline and people involved with the project. This will help them in visualizing project as a whole and take it more seriously.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Big-Picture Thinking
&lt;/h2&gt;

&lt;p&gt;The engineers should be able to see the bigger picture and understand the product, people involved, and pipeline in a better manner. They can't afford to survive in isolation and considering writing code as their one and only job. They should have the ability to work in a team and understand the nuances of the project in detail irrespective of whether they fall under their niche expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Dealing With Failures
&lt;/h2&gt;

&lt;p&gt;It's quite obvious that many development projects fail. The reason behind this failure isn't always technical. But the majority of the projects fails due to incompetent management. Therefore, it's essential for the programmers know how to deal with such failures.&lt;/p&gt;

&lt;p&gt;They should have the capacity to discover the reason behind their failure and predicting potential risks. Also, they should be well-versed with managing these risks and stick to the spirit of never giving up.&lt;/p&gt;

&lt;p&gt;These are not the only soft skills required for programmers to excel in their career. But there are several other qualities which engineers should inculcate in order to deliver successful projects. Some of these skills are empathy, critical thinking, willing to learn, adaptability, attitude, etc.&lt;/p&gt;

&lt;p&gt;Software engineers can acquire these skills by paying attention to new opportunities and working with an attitude that motivates them to grasping new concepts and  accepting offered guidance optimistically.&lt;/p&gt;


</description>
      <category>softskills</category>
      <category>jobs</category>
      <category>careers</category>
    </item>
    <item>
      <title>When To Build Your Website Using Django Framework (And When Not To)</title>
      <dc:creator>Rahul Varshneya</dc:creator>
      <pubDate>Fri, 21 Sep 2018 21:49:47 +0000</pubDate>
      <link>https://dev.to/rahulvarshneya/when-to-build-your-website-using-django-framework-and-when-not-to-1204</link>
      <guid>https://dev.to/rahulvarshneya/when-to-build-your-website-using-django-framework-and-when-not-to-1204</guid>
      <description>&lt;p&gt;When you need to develop your website, Python/Django often comes to mind. This popular open-source framework is used by companies big and small thanks to its many benefits, such as its easy-to-use syntax and ability to scale. &lt;/p&gt;

&lt;p&gt;But there are times when using this Python-based framework is more ideal than in other situations. Follow this guide to discover the right time to build your website using Django and when to avoid it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Django When:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You Need Lots of Customization and Flexibility&lt;/strong&gt;. With Django, you can focus on user interaction. That's because Django enables you to focus on the parts of your web applications that are unique and require customization. &lt;/p&gt;

&lt;p&gt;Because Django includes the basics that you need with its fully-loaded, "batteries included" framework, you don't have to waste time on foundational components. Instead, you can focus on core parts that make your website or web app unique. &lt;/p&gt;

&lt;p&gt;You can also take advantage of Django and leverage its flexibility to make changes when the need arises. Django also offers flexibility to be used in multiple operating systems. For instance, you can use it in a Linux, Mac or Windows environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You Want Support&lt;/strong&gt;. Django has a strong community base that's active since it is open source. With an &lt;a href="https://www.djangoproject.com/community/"&gt;active community base&lt;/a&gt; that contributes to Django by updating its resources, you can count having support and referencing well-documented resources. &lt;/p&gt;

&lt;p&gt;You'll have several &lt;a href="https://arkenea.com/django-development-company/"&gt;Django development companies&lt;/a&gt; working on issues, coming across errors and solving development bugs or challenges that you may run into down the road. That means when you need help, you can ask a community of developers who can recommend or suggest how to solve an issue you may have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You Need Speed&lt;/strong&gt;. Django is known for its speed thanks to its ability to provide rapid deployment. Speed is built into this framework so you can create your website effectively. &lt;/p&gt;

&lt;p&gt;For example, you can use templates to speed up rendering time during the production phase of your site. This helps you to save on costs and time so you can meet your goals and deadlines for your site launch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You Need the Ability to Scale&lt;/strong&gt;. One of the best aspects of Django is that it has the ability to quickly scale. As a developer, being able to make your client's site scale quickly is essential if they anticipate growth. &lt;/p&gt;

&lt;p&gt;You can take advantage of Django's capability to scale quickly to ensure the website can accommodate growing traffic and site visitors once it becomes popular.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You Need The Best Security&lt;/strong&gt;. Whether you're building an e-commerce website or you're updating a client's blog site to include landing pages that have transaction buttons, it's important to have security built into the site from the start. &lt;/p&gt;

&lt;p&gt;The great part about using the Django framework is that it has a strong framework that prioritizes security. For example, Django has a user authentication model that is strong and allows you to configure various users. You also can expect the latest updates for patches and can rely on vulnerability detection and responses when using Django. &lt;/p&gt;

&lt;p&gt;This Python-based framework also defaults to hiding your source code so it protects your code. You can also expect a high level of security when using Django to prevent incidents against clickjacking, remote code execution and cross-site scripting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO is a Priority&lt;/strong&gt;. In order for your site to be discovered organically in Google and other search engines or directories, it needs to follow &lt;a href="https://moz.com/blog/rank-in-2018-seo-checklist"&gt;SEO best practices&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Django has SEO best practices built-into its framework. For instance, Django supports Human-Readable URLs (HURLs). That means you can automate the translation of dynamic links into ones that are short and easy to read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't Use Django When:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Just Because You're Familiar With It&lt;/strong&gt;. Using Django just because you have already worked with that framework isn't ideal when you're deciding on which framework to &lt;a href="https://arkenea.com/blog/website-builders/"&gt;build your website&lt;/a&gt;. You have to think beyond your comfort zone and think about whether or not the framework can achieve what you need it to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When You're Creating a Simple Website&lt;/strong&gt;. If your site doesn't need a database, customization, a whole host of libraries and templates, file operations or other complex requirements, then Django may not be for you. Django comes with several libraries and more, which makes it ideal for large web applications or web projects. &lt;/p&gt;

&lt;p&gt;So, if you're just starting out with your website or it's a small project, then Django may not be the right fit. Instead, consider microframeworks, such as Flask or Bottle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When You Don't Know Python&lt;/strong&gt;. Whether you're working on your own or working with a team of developers, it's essential to understand Python if you want to build a website using this framework. &lt;/p&gt;

&lt;p&gt;Django is entirely based on this popular programming language, and without it, you'll be facing a learning curve that won't be quick to understand if you have deadlines approaching for a big website project. &lt;/p&gt;

&lt;p&gt;When you use a team with expertise in Python and Django, you can rely on their knowledge and skills to help you create your website fast so you can save time, meet your deadlines and get your site up and running.&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
    </item>
  </channel>
</rss>
