<?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: Nyasha Karata </title>
    <description>The latest articles on DEV Community by Nyasha Karata  (@nyashakarata).</description>
    <link>https://dev.to/nyashakarata</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%2F757882%2Ff0285d50-579d-492d-9c8c-9e7f525e4902.jpg</url>
      <title>DEV Community: Nyasha Karata </title>
      <link>https://dev.to/nyashakarata</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nyashakarata"/>
    <language>en</language>
    <item>
      <title>How to effectively learn new stuff as a software engineer?</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Sat, 15 Oct 2022 09:37:20 +0000</pubDate>
      <link>https://dev.to/nyashakarata/how-to-effectively-learn-new-stuff-as-a-software-engineer-h8b</link>
      <guid>https://dev.to/nyashakarata/how-to-effectively-learn-new-stuff-as-a-software-engineer-h8b</guid>
      <description>&lt;p&gt;Have you been trying to learn new things like watching lots of tutorials and after that you feel like you know nothing? Yes you actually know nothing because you have been doing it the wrong way. Are you are a victim of tutorial hell? Let me give you some cure.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you go about learning new stuff and never forget it?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Research about the technology that you want to learn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s say you want to learn Angular, search about something like what’s needed for an Angular app to be up and running (stuff like components, dependency injection, routing, state management, etc). Make a task list listing each and every concept.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now it is time to learn the new stuff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some devs prefer to follow official documentation, some prefer following blog tutorials, while some prefer following video tutorials. The approach that you will use here is the same. Search for something like “Angular crash course for beginners”. Don’t just pick a random tutorial. Choose something that is going to teach you the fundamentals through building a project and that is what project based learning looks like. &lt;/p&gt;

&lt;p&gt;The best way of learning is by doing, so follow along your tutor, as he does X you also do X. Grab the concepts and try to understand how he is doing it. After you finish building your project from the  tutorial give your time some rest. &lt;/p&gt;

&lt;p&gt;After some time maybe 24 hrs, get your hands on the keyboard. Now you have to build something on you own. Try building something similar from the tutorial. Implement the concepts that you learnt from the previous tutorial. I know it’s your first time doing it so it’s going to be hard but don’t worry, stackoverflow is your best friend.&lt;/p&gt;

&lt;p&gt;After building your project revisit your task list. Check if you managed to understand the concepts that you listed. If yes make some notes describing how you implemented each topic and after that, you are good to go, start building projects.&lt;/p&gt;

&lt;p&gt;This is the exact strategy that I use whenever I want to learn anything new. I hope this was helpful. If you have any additions let me know in the comments.  &lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>software</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What I learned after failing a technical interview at Microsoft</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Sun, 02 Oct 2022 09:54:51 +0000</pubDate>
      <link>https://dev.to/nyashakarata/what-i-learned-after-failing-a-technical-interview-at-microsoft-2fe</link>
      <guid>https://dev.to/nyashakarata/what-i-learned-after-failing-a-technical-interview-at-microsoft-2fe</guid>
      <description>&lt;p&gt;It was June 2022 when I managed to get a phone interview with a recruiter at Microsoft. I was being interviewed for the Software Development Engineer II role. Even though I managed to come up with optimal solutions for the given problems, I later realized that the whole interview process was a failure. I’m sharing this because I don’t want you to do the same mistake I did. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavioral Interview Process&lt;/strong&gt;&lt;br&gt;
We did the interview through Microsoft Teams which were 3 rounds, 1 behavioral and 2 coding rounds. The behavioral interview went well from my point of view. The recruiter asked questions like my past work experience, other technical related questions and walked through my resume. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coding Interview Process&lt;/strong&gt;&lt;br&gt;
This process wasn’t difficult I had to solve 2 LeetCode medium problems which are: “Kth Largest Element in an Array” and “Longest substring with no repeating characters”. When I saw these questions, I was very happy because I had seen them before onAlgoExpert, thanks to Clement Mihailescu. I quickly worked out the solutions, wrote the code and everything went good including space and time complexity. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistakes that I made&lt;/strong&gt;&lt;br&gt;
This is the most important part of the post, if you made through it congrats – let’s get into it&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;I didn’t ask clarification question to the interviewer&lt;/strong&gt;&lt;br&gt;
   As soon as I got the first question,I quickly solved it without asking any clarifications. Always seek clarification about the question upon hearing it.You might discover that you have missed something else. It also lets the interviewer know that you are attentive to details. Consider asking questions how big is the size of input,what kind of values are there (negative numbers, floating points).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;I didn’t make suggestions for alternatives&lt;/strong&gt;&lt;br&gt;
    As soon as I got the problem, I quickly went with the optimal solution. If you want to go above and beyond the bare requirements, you should propose various solutions to your problem. You should also compare your options and choose the best one based on your limits. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the mistakes that I made during the interview, I focused more on the coding part other than communicating with the interviewer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other interview mistakes to avoid&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Working through problems in your head&lt;/li&gt;
&lt;li&gt;  Not testing your solution&lt;/li&gt;
&lt;li&gt;  Coding without planning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more interview tips, you can visit Clement Mihailescu’s  YouTube channel&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Should you choose Backend as a Service or Custom Backend for your app?</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Fri, 30 Sep 2022 14:28:32 +0000</pubDate>
      <link>https://dev.to/nyashakarata/should-you-choose-backend-as-a-service-or-custom-backend-for-your-app-32a3</link>
      <guid>https://dev.to/nyashakarata/should-you-choose-backend-as-a-service-or-custom-backend-for-your-app-32a3</guid>
      <description>&lt;p&gt;Most of the time, you get to choose between two completely different approaches when building an application’s server side: Backend as a Service (BaaS) or custom backend. What are the differences? What are the advantages of both approaches? Let’s figure it out together.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Backend as a Service&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Backend-as-a-Service or (BaaS) is a subscription-based cloud solution for a large number of business companies. It facilitates building web and mobile applications by enabling developers to link their digital product to a cloud-stored backend via application programming interfaces (APIs) and software development kits (SDKs), examples include Google Firebase and Appwrite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of BaaS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Speed of Development&lt;/strong&gt;&lt;br&gt;
Businesses that are on a deadline appreciate backend as a service solutions. BaaS is a ready backend. Once you connect it with your frontend, the app is ready to go live. Such a service can save you weeks or even months of active development. BaaS solutions are preferred for MVP development when it is crucial to cut the time-to-market.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimized cost and development effort&lt;/strong&gt;&lt;br&gt;
To build a functional solution, you need not only enough time but also a significant amount of money. While you can reduce the development expenses by outsourcing development services, you need to remember that a high-quality code comes at a price, even when it’s written by a team for a lower living cost country.&lt;/p&gt;

&lt;p&gt;BaaS ensures that you’re not making developers reinvent the wheel. At the end of the day, there's no point in coding elements such as social integration or native notification from scratch if they’re provided by Backend as a Service, is there? Instead, developers can devote their full attention to writing high-quality code accounting for custom modifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wide range of functionalities&lt;/strong&gt;&lt;br&gt;
The second major advantage of Backend as a Service is that it frees you from the burden of having to look for ways to integrate your app with third-party services. As some of the most common features offered by BaaS providers we could name user authentication (for increased security), social integration (for easy access to third-party apps such as Facebook or LinkedIn), push notifications, or data storage. However, if you take a glance at any of the major BaaS providers’ offerings, such as CloudKit, Kinvey, or Firebase, you’ll notice that they offer much more in a single bundle.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Custom Backend&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As you have already guessed, is an app backend created from scratch that focuses on specific product needs. In this case, the developer does not have a set of ready-made functions and develops software from scratch based on the customer’s requirements using technologies like Node.js, Ruby on Rails, SpringBoot, etc. Despite all its advantages, custom backend can’t fit every application because of its more complicated development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of Custom Backend
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Customization and flexibility&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The aim of Backend as a Service platform is to work for many different web and mobile applications. This means that while companies like Firebase offer a wide range of functionalities, they won’t allow you to build a truly unique solution that will make your product stand out from the digital crowd. &lt;/p&gt;

&lt;p&gt;In fact, any app that will go beyond the basic CRUD functions will require customization. Just think about an online store. Initially, it may seem like a simple project with no twisted logic added to it. However, if you wish to supplement, let’s say, a platform with a chatbot, customized in-app payment module with subscriptions and views mixing many types of data, you’ll probably need to go beyond the standard BaaS offering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When going for Backend as a Service, you are bound to stick to the API scheme introduced by its provider. Because the price of the BaaS option of your choice is usually structured around the volume of API requests or volume of data transferred, so once you reach the quota limits, you can expect a performance drop to happen.&lt;/p&gt;

&lt;p&gt;Custom backend, on the other hand, entails no limitations on the number of database operations. Developers can tailor API to your product’s needs, thus eliminating the problem of the increased number of API calls. The result? Improved response time, performance, and… you guessed it right, the greater control over costs you bear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your backend is yours alone, and it doesn’t depend on any service providers. It will work until you decide to shut it down. This is an extreme advantage over BaaS, which requires you to completely rely on a foreign service that can disappear at any time.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;When is custom backend better than backend as a service?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Although it’s a more complicated and expensive way to create application logic, custom backend has strong advantages over BaaS solutions. That’s why it is preferred in many situations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apps with specific features or unique logic&lt;/strong&gt;
Backend as a Service includes an average set of functionality. 
If your application goes beyond that – custom backend should be 
your choice, since it allows you to implement any feature you 
can think of.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- Apps with scalability potential&lt;/strong&gt;&lt;br&gt;
    If your app has the potential to grow, extend functionality and &lt;br&gt;
    attract new customers, it is important to have the app backend &lt;br&gt;
    that can cope with these challenges. With the right support, &lt;br&gt;
    custom backend can keep pace at any scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Apps that process confidential information&lt;/strong&gt;&lt;br&gt;
    Keeping customer data secure is a high priority for every type &lt;br&gt;
    of the application, especially when it comes to personal &lt;br&gt;
    information or payment data. If this is your case – choose &lt;br&gt;
    custom backend. It’s the optimal solution of security-dependent &lt;br&gt;
    applications.&lt;/p&gt;

&lt;p&gt;In conclusion, both solutions are optimal under certain conditions. If a company doesn’t have extensive internal processes, a BaaS solution will suit it. It is a quickly-implemented set of core backend components. If the enterprise is large and the existing BaaS solutions do not cover its needs, it can choose custom development. The last one takes time, but the personalized results and long-term usage are worth it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I became a software engineer at 16 without a CS degree</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Thu, 29 Sep 2022 11:43:22 +0000</pubDate>
      <link>https://dev.to/nyashakarata/how-i-became-a-software-engineer-at-16-without-a-cs-degree-1imd</link>
      <guid>https://dev.to/nyashakarata/how-i-became-a-software-engineer-at-16-without-a-cs-degree-1imd</guid>
      <description>&lt;p&gt;When I was growing up, I was someone who was interested in gaming, I was a big time gamer and I could even spend 4 hours playing games. In January 2019, I reached to an extent when I wanted to see what really happens behind the scenes of game, that’s when I started to hear stuff like coding, programming, development and I was like “Yes I’m in”. Long story short I googled the how tos and the number 1 option was to learn C++.&lt;/p&gt;

&lt;p&gt;I downloaded some e-books, development tools and started learning. To be honest with you it was a nightmare learning C++, I didn’t have a mentor and I only managed to grasp the very basics like decision making, conditionals, file system, etc. As I had no idea on how to build projects, I ended up learning HTML, CSS &amp;amp; Javascript. Thanks to Rafeh Qazi from &lt;a href="https://cleverprogrammer.com"&gt;Clever Programmer&lt;/a&gt;, he really made my coding life easier and I started to build static websites. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 2019&lt;/strong&gt;&lt;br&gt;
I came across a certain software engineering course on Udacity and quickly enrolled. It was C++ again backed with C#. I learnt many concepts in software engineering like the complete SDLC, distributed systems design, databases, design patterns, building web applications from start to finish using ASP.NET Core, etc. I finished the course in 4 months and by that time I was feeling it in my veins that I’m now a software engineer. I started to build my own projects and experimenting with other technologies like Node.js, Django, React.js, Angular, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May 2020&lt;/strong&gt;&lt;br&gt;
I started freelancing. I learnt how to communicate with my clients and deliver projects on time. I built web applications, desktop applications and websites. I didn’t make that much from freelancing as I was still in school so most probably I worked on weekends and holidays.     &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;September 2021&lt;/strong&gt;&lt;br&gt;
I got hired by an Indian company called &lt;a href="https://pabbly.com"&gt;Pabbly&lt;/a&gt; which  provides a subscription billing software. To be honest with you, the interview was tough, it was just like a normal Google coding interview so had to solve 4 coding problems, 35 minutes each and passed 3 out of 4 questions. I worked with other software engineers to implement the affiliate management system. Though I was working remotely, I had a lot of fun interacting with Indian developers through live video calls. I worked there for almost 10 months. Other than writing code, I did technical documentation writing and code reviews. &lt;/p&gt;

&lt;p&gt;Right now I’m currently 19 years old, only left with 2 months to finish my final high school exams and I can’t wait to work physically for a tech company you know I wanna experience those stand-up meetings, the corporate culture,  interact with other developers physically, etc. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Blockchain in Healthcare💉🚑</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Mon, 26 Sep 2022 22:47:00 +0000</pubDate>
      <link>https://dev.to/nyashakarata/blockchain-in-healthcare-1nap</link>
      <guid>https://dev.to/nyashakarata/blockchain-in-healthcare-1nap</guid>
      <description>&lt;p&gt;Blockchain technology has the potential to improve health care by putting the patient at the center of the system and improving health data security, privacy, and interoperability. There's a valid explanation behind this. Simply said, blockchain can transform the healthcare industry.&lt;/p&gt;

&lt;p&gt;One of the biggest challenges around blockchain is distinguishing between the real blockchain-based applications and the hype. This is hard to do because there are still only a few large-scale, real-world implementations of blockchain beyond Bitcoin. &lt;/p&gt;

&lt;p&gt;You might immediately think of cryptocurrencies when the topic of blockchains comes up. But blockchains aren't limited to only supporting digital currencies. They're now being used in multiple sectors, including healthcare.&lt;/p&gt;

&lt;p&gt;Blockchain is a distributed, immutable record of peer-to-peer transactions that are created from connected transaction blocks and kept in a digital ledger. Blockchain uses well-established cryptographic techniques to allow each network participant to communicate (e.g., store, exchange, and view information) without the need for prior trust. There is no central authority in a blockchain system; instead, transaction records are maintained and dispersed among all network participants. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can blockchain optimize healthcare?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Blockchain technology can be transformative in healthcare. It can help achieve security, privacy and the integration of health data. &lt;/p&gt;

&lt;p&gt;Blockchain offers the opportunity for a new technological model in an HIE(Health Information Exchange) that makes electronic medical records more efficient and secure. It can also reduce or eliminate the friction and costs of current intermediaries.&lt;/p&gt;

&lt;p&gt;HIE data is used to improve the quality of healthcare, prevent errors, and increase the efficiency of administration. It includes Electronic health records, Data collected from Internet of Things (IoT) devices or monitoring systems, Medical insurance claims, E-prescribing, Secure messaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s take a look at the use cases&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;IoT security for remote monitoring&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the biggest trends in digital health is the adoption of remote monitoring solutions, where all kinds of sensors measuring patients’ vital signs are being used to help give healthcare practitioners more visibility into patients’ health, enabling more proactive and preventative care. &lt;/p&gt;

&lt;p&gt;However, security is a huge issue in health IoT, both in terms of ensuring that patient data is private and secure and that it is not tampered with to create false information. In some cases, where a connected device may be depended on in emergency situations, e.g. alerting an elderly person’s carer that they have suffered a fall or a heart attack, it is also crucial that the supporting systems are very resilient to DDoS or other attacks disrupting service.&lt;/p&gt;

&lt;p&gt;Blockchain cryptography ensures that only permitted parties can gain access to personal data, which is stored on the blockchain as a unique hash function (any change in the source data will create a different hash function, and a user must have a specific set of cryptographic keys to decode the hash function into the source data).&lt;/p&gt;

&lt;p&gt;The decentralised nature of blockchain means that IoT devices can interact directly with each other, without going through a centralised server (as most IoT connections do today), making it very difficult to launch DDoS and man in the middle attacks.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Genomic Data Protection&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Genomic data theft has become a big issue as more companies deliver DNA sequencing to the individual. This can be avoided using blockchain, and it can even be used to create an online marketplace where scientists can acquire genomic data for research reasons. This could encourage secure selling while obviating the need for costly middlemen.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Medical staff credential verification&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Similar to tracking the provenance of a medical good, blockchain technology can be used to    track the experience of medical professionals, where trusted medical institutions and healthcare organisations can log the credentials of their staff, in turn helping to streamline the hiring process for healthcare organisations. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Supply chain transparency&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A major challenge across the healthcare sector, as in many others, is ensuring the provenance of medical goods to confirm their authenticity. Using a blockchain-based system to track items from the manufacturing point and at each stage through the supply chain enables customers to have full visibility and transparency of the goods they are buying.&lt;/p&gt;

&lt;p&gt;This is a top priority for the industry, especially in developing markets where counterfeit prescription medicines cause tens of thousands of deaths annually. &lt;/p&gt;

&lt;p&gt;While there are tremendous applications of Blockchain technology in health care, it is not yet fully mature or a panacea that can be used instantly. Before a healthcare blockchain can be embraced by companies across the country, a number of technical, organizational, and behavioral economics difficulties must be overcome.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>You are a software engineer too😯😯😯?</title>
      <dc:creator>Nyasha Karata </dc:creator>
      <pubDate>Sat, 20 Aug 2022 12:24:17 +0000</pubDate>
      <link>https://dev.to/nyashakarata/you-are-a-software-engineer-too-1ah5</link>
      <guid>https://dev.to/nyashakarata/you-are-a-software-engineer-too-1ah5</guid>
      <description>&lt;p&gt;Hello and welcome to my blog, my name is Nyasha Karata and I am a freelance software engineer with over 3 years of experience. I created this blog for those who have passion in tech and who are &lt;br&gt;
currently in tech. I will be posting stuff about software engineering (how to become one, how to make money with it, do’s and don’ts) and will be tackling both the technical and business part of the &lt;br&gt;
job. If wanna learn more about this, follow me and stay tuned coz I will be dropping some dope content here……………………stay tuned.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
