<?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>Forem: Omar</title>
    <description>The latest articles on Forem by Omar (@ommyjay).</description>
    <link>https://forem.com/ommyjay</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%2F244703%2F6f0c5476-c84d-45ca-b493-fd981346d82f.jpeg</url>
      <title>Forem: Omar</title>
      <link>https://forem.com/ommyjay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ommyjay"/>
    <language>en</language>
    <item>
      <title>You don’t really need external testers</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Mon, 08 May 2023 06:47:59 +0000</pubDate>
      <link>https://forem.com/clickpesa/you-dont-really-need-external-testers-1k18</link>
      <guid>https://forem.com/clickpesa/you-dont-really-need-external-testers-1k18</guid>
      <description>&lt;p&gt;Or rather, before hiring one..&lt;br&gt;
Consider unlocking the potential of developers to become effective testers.&lt;/p&gt;

&lt;p&gt;Developers already possess half the skills of effective testers; Technical understanding.&lt;/p&gt;

&lt;p&gt;In this article, we will explore other practices and strategies that can enhance developers testing skills to help them transition seamlessly to become effective testers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Give testing the attention it deserves&lt;/strong&gt;&lt;br&gt;
To excel in testing, it is essential to approach this job with the same level of dedication as any other job in your daily work. Allocate sufficient time specifically for testing to ensure thoroughness and accuracy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Understand product requirements&lt;/strong&gt;&lt;br&gt;
A strong understanding of product requirements allows developers to create test cases that accurately reflect the expected behavior of the software. As requirements are subject to change, clear communication and documentation paired with prototypes and demos, while breaking down complex requirements into smaller tasks will improve developers’ understanding of requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Work with testing plans&lt;/strong&gt;&lt;br&gt;
A testing plan is crucial for setting clear objectives, defining test coverage, allocating resources, managing risks and facilitating communication in the testing process. It ensures that the testing effort is well-structured, coordinated, and aligned with the project’s goals. Proper documentation is the key here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Increase end-user interactions&lt;/strong&gt;&lt;br&gt;
​​By actively involving end-users during the testing process, developers gain valuable insights into real-world scenarios and user workflows.Ultimately, this collaborative approach enhances the effectiveness and relevance of testing, resulting in a higher quality and more user-centric software product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Implement automated testing&lt;/strong&gt;&lt;br&gt;
Automated tests can be executed much faster than manual tests, allowing developers to quickly validate their code changes. Automated tests can be seamlessly integrated into continuous integration and deployment (CI/CD) pipelines, enabling frequent and reliable testing as part of the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Participate in code reviews&lt;/strong&gt;&lt;br&gt;
During code reviews, developers have the opportunity to review and understand code written by their peers. This helps in knowledge sharing, exposing developers to different coding techniques, best practices, and design patterns. By learning from others’ code, developers can expand their understanding of software development and gain insights into effective testing strategies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Increase Interaction with dedicated testers&lt;/strong&gt;&lt;br&gt;
Dedicated testers specialize in testing methodologies, techniques, and tools. By collaborating closely with them, developers can leverage their expertise to ensure comprehensive test coverage. Testers can identify areas that may have been overlooked and provide valuable insights on testing strategies and scenarios that developers may not have considered.&lt;/p&gt;

&lt;p&gt;In conclusion, unlocking the potential of developers to become effective testers can lead to significant benefits for software development teams. By involving developers in testing, teams can reduce the time and cost associated with traditional testing methods, as well as improve the overall quality of their software.&lt;/p&gt;

&lt;p&gt;However, it is important to recognize that this approach requires a cultural shift within the organization, as well as investment in training and resources to enable developers to acquire the necessary testing skills. With the right support and mindset, developers can become an invaluable asset to testing efforts, ultimately helping teams to deliver better software faster.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://clickpesa.com"&gt;ClickPesa&lt;/a&gt;, we are passionate about building products that help people and businesses succeed in today’s digital economy. If you’re interested in learning more about our products and services, be sure to visit our website and follow us on social media.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>software</category>
      <category>testdev</category>
    </item>
    <item>
      <title>Add Quotes to your Unquoted JSON Objects</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Mon, 19 Dec 2022 10:09:26 +0000</pubDate>
      <link>https://forem.com/clickpesa/add-quotes-to-your-unquoted-json-objects-3clc</link>
      <guid>https://forem.com/clickpesa/add-quotes-to-your-unquoted-json-objects-3clc</guid>
      <description>&lt;p&gt;In this article, we will not discuss what JSON or Javascript objects are; or their differences in syntax or usage, many articles have already covered them.&lt;/p&gt;

&lt;p&gt;One thing to keep in mind is that, according to specification JSON property names must be double-quoted.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Example: JavaScript Object
{
    id: "TF_CE8TUEPX2LA",
    status: "PENDING",
    failureReason: null,
    language: "en",
    createdAt: 1669797871000,
    updatedAt: 1669797872000,
    completedAt: null,
    depositInitiatedAt: null,
    cancelledAt: null,
    ...
}

// Example: JSON Object
{
    "id": "TF_CE8TUEPX2LA",
    "status": "PENDING",
    "failureReason": null,
    "language": "en",
    "createdAt": 1669797871000,
    "updatedAt": 1669797872000,
    "completedAt": null,
    "depositInitiatedAt": null,
    "cancelledAt": null,
    ...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The requirement to convert a JavaScript object into a JSON object frequently arises while developing web applications. Often one needs to utilize a valid JSON object, for instance, when testing an endpoint with a JSON payload over an HTTP client like Postman or Insomnia.&lt;/p&gt;

&lt;p&gt;There is no doubt that your IDE allows you to pick numerous keys and add double quotes to the beginning and end of each key, but imagine if you had 200~300 keys! 🤯&lt;/p&gt;

&lt;p&gt;Additionally, you could perform the conversion using the &lt;code&gt;JSON.stringify()&lt;/code&gt; method, but who wants that? Right?🥱&lt;/p&gt;

&lt;p&gt;I'm not sure if you know this, but &lt;strong&gt;you can use the Console tool from Google Chrome DevTools to quickly convert Javascript Object to JSON Object&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here are the steps..&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy Unquoted JSON Object on clipboard&lt;/li&gt;
&lt;li&gt;Navigate to Chrome Console Tab&lt;/li&gt;
&lt;li&gt;Paste Unquoted JSON Object on console&lt;/li&gt;
&lt;li&gt;Hit Enter&lt;/li&gt;
&lt;li&gt;Right-Click on the result object to see options&lt;/li&gt;
&lt;li&gt;Use Copy object option to copy your valid JSON Object and go break the internet!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fax3uhch4o0isyfg8pcqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fax3uhch4o0isyfg8pcqz.png" alt="Copy Object on Chrome Console" width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More tips such as this one that helps you move quickly are shared every month on our &lt;a href="https://dev.to/clickpesa"&gt;Blog&lt;/a&gt;. Make sure you take a look at them.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Why default values for environment variables should be avoided</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Fri, 25 Nov 2022 01:44:25 +0000</pubDate>
      <link>https://forem.com/clickpesa/why-default-values-for-environment-variables-should-be-avoided-1n1i</link>
      <guid>https://forem.com/clickpesa/why-default-values-for-environment-variables-should-be-avoided-1n1i</guid>
      <description>&lt;p&gt;Assuming you expect a particular variable to be present, what should you do if it is not present? I say stop the application immediately.&lt;/p&gt;

&lt;p&gt;Based on my experience, default values are the root of almost all evil in development. If you provide default values, means you do not care about the supplied value because you can at any time substitute it with something else.&lt;/p&gt;

&lt;p&gt;It means you do not care about the supplied value because you can at any time substitute it with something else.&lt;/p&gt;




&lt;p&gt;It is also a good practice to always split configuration from code.&lt;/p&gt;




&lt;p&gt;Default values can make debugging a misconfigured application more difficult, as the final config values will likely be a combination of hard-coded default values and environment variables.&lt;/p&gt;

&lt;p&gt;Relying purely on environment variables (or as much as possible) means you have a single source of truth for how your application was configured, making troubleshooting easier.&lt;/p&gt;

&lt;p&gt;If you enjoyed this story, our blogs have more like it. Checkout &lt;a href="//dev.to/clickpesa"&gt;dev.to/clickpesa&lt;/a&gt;, &lt;a href="//medium.com/clickpesa-engineering-blog"&gt;medium.com/clickpesa-engineering-blog&lt;/a&gt; or &lt;a href="//clickpesa.hashnode.dev"&gt;clickpesa.hashnode.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>configurations</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Receive TZS asset into your Stellar account via LOBSTR wallet</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Mon, 10 Oct 2022 18:09:21 +0000</pubDate>
      <link>https://forem.com/clickpesa/receive-tzs-asset-into-your-stellar-account-via-lobstr-wallet-42n4</link>
      <guid>https://forem.com/clickpesa/receive-tzs-asset-into-your-stellar-account-via-lobstr-wallet-42n4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qa65a6708r4vxbmcurc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qa65a6708r4vxbmcurc.gif" alt="TZS deposit via Lobstr" width="300" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TZS asset is a crypto stable coin issued by ClickPesa on the Stellar blockchain network.&lt;/p&gt;

&lt;p&gt;TZS asset is tradable with XLM, USDC, Bitcoin, ETH, NGNT and any other asset on the Stellar Decentralized Exchange (SDEX) and other crypto exchanges/wallets.&lt;/p&gt;

&lt;p&gt;TZS is one-to-one backed in an independent audited bank account; This is to say 2000 TZS assets in Stellar have the same value as TZS in real life.&lt;/p&gt;




&lt;p&gt;ClickPesa provides a getaway from the traditional (fiat) financial world to the crypto one for traders and crypto enthusiasts in the region.&lt;/p&gt;

&lt;p&gt;ClickPesa provides infrastructure for on-ramp and off-ramp of the TZS asset.&lt;/p&gt;

&lt;p&gt;Which basically means it facilitates the buying /deposit/receive and selling/withdrawal/send of TZS assets on the Stellar blockchain network.&lt;/p&gt;

&lt;p&gt;ClickPesa has exposed Stellar Ecosystem Protocols (SEP) standard API’s that allows users of different wallets to make deposits and withdraws of TZS assets without leaving their wallets' environment.&lt;/p&gt;




&lt;p&gt;LOBSTR is one of the most popular and trusted wallets for Stellar Lumens and other assets issued on Stellar network.&lt;/p&gt;

&lt;p&gt;You can use LOBSTR to easily send, receive and trade TZS assets on the Stellar network.&lt;br&gt;
&lt;a href="https://lobstr.co/" rel="noopener noreferrer"&gt;Lobstr Wallet&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;For following up, assume you already downloaded the &lt;a href="https://lobstr.co/" rel="noopener noreferrer"&gt;LOBSTR&lt;/a&gt; app on your phone and have completed the registration process. Which is fairly straightforward. &lt;/p&gt;

&lt;p&gt;On your first logon LOBSTR will prompt you to add a Stellar account, in which there are two options; &lt;/p&gt;

&lt;p&gt; — We can create a new Stellar account &lt;/p&gt;

&lt;p&gt; — We can connect an existing Stellar account&lt;/p&gt;

&lt;p&gt;For this walk-through we’ll select creating a new Stellar account option. We’ll also break this walk-through into essential 3 steps;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Activate new account&lt;/li&gt;
&lt;li&gt;Add TZS asset into account &lt;/li&gt;
&lt;li&gt;Making a first TZS deposit &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Activating new Stellar account&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Back to the LOBSTR app, after selecting the create new account option, you’ll be prompted to “Backup you account” by storing &amp;amp; verifying a random created recovery Phrase. To make sure you don’t lose access to your assets. (Recommended)&lt;/li&gt;
&lt;li&gt;You’ll then be prompted to send at least 5 XLM into the account to activate it; which basically means registering the account with Stellar network.&lt;/li&gt;
&lt;li&gt;LOBSTR provides 2 options; “Buy Lumens” with VISA/Mastercard and “Receive Tokens”, i.e sending XLM from existing account into a new account. Choose any option and follow instructions to send 5 XLM into your new account.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;NB: On some wallets, you don’t have to do this, as when initiating a first deposit of the TZS asset for an inactive account, ClickPesa sends the required XLM into your account for activation and TZS trustline establishment.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Adding TZS asset into Stellar account&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; When the account is activated, open the menu and select Asset. A page will open then click on Add Asset&lt;/li&gt;
&lt;li&gt; Search for TZS, they might be few TZS asset on the result as anyone on the stellar asset can issue an asset and call it _TZS; _to make sure we’re adding the right asset we have to confirm the issuer domain, for ClickPesa TZS asset the domain is connect.clickpesa.com&lt;/li&gt;
&lt;li&gt;Click Add button on the asset listed as “Tanzania Shilling” with a domain “connect.clickpesa.com” and…voila, now your account can hold TZS assets.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Making a TZS deposit&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Reopen the LOBSTR menu and select Asset item, you should see TZS asset listed alongside XLM&lt;/li&gt;
&lt;li&gt; Select TZS asset to open the TZS asset details page. \
In here you can see all the information about the TZS asset and all available operations applicable for the asset. &lt;/li&gt;
&lt;li&gt;We want to deposit asset into our wallet, so select Deposit TZS option to begin the deposit process&lt;/li&gt;
&lt;li&gt; A form will open where you’ll be required to provide you personal information for KYC purpose, then enter the amount and select your payment method. ClickPesa offers direct bank deposit (OTC) and mobile money payment options for deposit.&lt;/li&gt;
&lt;li&gt;Select “TigoPesa Tanzania”, a mobile money option and follow the instructions to complete the payment via TigoPesa bill pay using the provided reference number.&lt;/li&gt;
&lt;li&gt;When payment is received, you’ll receive confirmation and notification via your LOBSTR app and email address, notifying you of the successfully TZS deposited into your account.&lt;/li&gt;
&lt;li&gt; You can then close the confirmation page and go back to the LOBSTR homepage to see the reflected TZS asset balance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s pretty much it, by now you should have the TZS in your Stellar account of your LOBSTR wallet. Now you can swap and exchange the TZS in LOBSTR or send it to external exchanges like Binance, or as for its intended use…make a payment to a business in Tanzania, who can cash-out into TZS fiat via ClickPesa at any time.&lt;/p&gt;

&lt;p&gt;For more on this and other stories on Stellar blockchain, Other blockchain or cryptos, checkout the ClickPesa blogs. Cheers!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/clickpesa-engineering-blog" rel="noopener noreferrer"&gt;ClickPesa Engineering Blog&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/clickpesa" rel="noopener noreferrer"&gt;ClickPesa Blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>clickpesa</category>
      <category>stellar</category>
      <category>tanzania</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Meet the ClickPesa Team: Justine Mahinyila</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Mon, 10 Oct 2022 09:21:19 +0000</pubDate>
      <link>https://forem.com/clickpesa/meet-the-clickpesa-team-justine-mahinyila-4m4c</link>
      <guid>https://forem.com/clickpesa/meet-the-clickpesa-team-justine-mahinyila-4m4c</guid>
      <description>&lt;h3&gt;
  
  
  Who are you and what’s your role at  ClickPesa?
&lt;/h3&gt;

&lt;p&gt;Hi, My name is Justine Mahinyila I am a Business Development and Growth Lead here at ClickPesa, the role that gives makes me were many and different hats often depending on the situation that needs resolve on the business side, from working with email campaign automations, digital marketing strategies to sometimes writing some codes.&lt;/p&gt;

&lt;h3&gt;
  
  
  When did you join the team?
&lt;/h3&gt;

&lt;p&gt;I join ClickPesa on July 2021&lt;/p&gt;

&lt;h3&gt;
  
  
  Where are you working from?
&lt;/h3&gt;

&lt;p&gt;Since January 2022 I moved to Dar es Salaam, I have been working from here since then.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a regular day at ClickPesa look like for you?
&lt;/h3&gt;

&lt;p&gt;My regular day starts at 08:00Am I wake up check my email, and then move to slack check messages on DM, Mentions and check new updates on slack channel, from their I look at my todo list for the day and see which tasks should be done first depending on the level of priority. Also In the morning I check if there is any scheduled call with any of my team members or stakeholders, then business of the day starts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who do you primarily work with on the team?
&lt;/h3&gt;

&lt;p&gt;Due to the nature of my job, I work with different people at different time, when it comes to anything that has to do with the product I primary work with the Product Manager , on compliance I work with  Richard Lema, on Community I work with our community Manager Vee, and on Marketing I work with our Marketing agency. At times I work with the technical team especially if there is a need for a business perspective or input from me on a matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do you enjoy working at ClickPesa?
&lt;/h3&gt;

&lt;p&gt;There are a lot I enjoy from working with ClickPesa first the work flexibility we are a remote company so I do not have to community to work every morning, when I am tired working from home I often go to coffee shops, the other thing is the challenges, there are a lot of challenges working at a fast growing fintech startup like ClickPesa and my role being a Business developer pushes me to work on different fields which gives me the opportunity to to explore new areas and learn a lot.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is your favorite thing you worked on at ClickPesa?
&lt;/h3&gt;

&lt;p&gt;My favorite thingI worked on at ClickPesa is the GetPaid.Africa product, a platform which allows freelancers and creators in Africa to grow everyday.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are you working on now?
&lt;/h3&gt;

&lt;p&gt;Now I am working on On boarding as many freelancers as possible on the GetPaid.Africa community. My next goal is to help these freelancers get as much value as possible from the community.&lt;/p&gt;

&lt;h3&gt;
  
  
  What tools do you use?
&lt;/h3&gt;

&lt;p&gt;I am using a lot of tools, from Google Business suit tools like google sheets, google docs to mailing tools like Snov.io&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you like to listen to while you work?
&lt;/h3&gt;

&lt;p&gt;I do listen to podcast while working, I like listening to business podcasts like &lt;a href="https://podcasts.apple.com/us/podcast/vt-podcast-ideas-that-matter/id1540543705" rel="noopener noreferrer"&gt;Business Wars&lt;/a&gt; by Wondery and the &lt;a href="https://podcasts.apple.com/us/podcast/vt-podcast-ideas-that-matter/id1540543705" rel="noopener noreferrer"&gt;VT Podcast by Vusi Thembekwayo &lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Favorite working snack?
&lt;/h3&gt;

&lt;p&gt;A cup of coffee with chocolate bars&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you do when not working on ClickPesa?
&lt;/h3&gt;

&lt;p&gt;I am a community guy, when not working on ClickPesa it is either planning going to Church for a service or a Youth Business Meetup or organizing a tech community event in Dar es salaam and sometimes I do host Twitter spaces on different topics around technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  Describe yourself using 3 emojis
&lt;/h3&gt;

&lt;p&gt;😋 🚀 👨‍💻&lt;/p&gt;

&lt;h3&gt;
  
  
  Where can people find you?
&lt;/h3&gt;

&lt;p&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/justinecodez/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/justinecodez/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://www.twitter.com/justinecodez" rel="noopener noreferrer"&gt;https://www.twitter.com/justinecodez&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blog: &lt;a href="https://www.justinecodez.com" rel="noopener noreferrer"&gt;https://www.justinecodez.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Meet the ClickPesa Team: Neema Adam</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Fri, 05 Aug 2022 12:38:27 +0000</pubDate>
      <link>https://forem.com/clickpesa/meet-the-clickpesa-team-neema-adam-m1j</link>
      <guid>https://forem.com/clickpesa/meet-the-clickpesa-team-neema-adam-m1j</guid>
      <description>&lt;h3&gt;
  
  
  Who are you and what’s your role at  ClickPesa?
&lt;/h3&gt;

&lt;p&gt;My name is Neema Adam but I like to go with my nickname Neicore. I work as a UI/UX designer at &lt;a href="https://clickpesa.com/" rel="noopener noreferrer"&gt;ClickPesa &lt;/a&gt;helping design the three products that we have which are ClickPesa merchant dashboard, ClickPesa sender portal, and GetPaid Africa.&lt;/p&gt;

&lt;h3&gt;
  
  
  When did you join the team?
&lt;/h3&gt;

&lt;p&gt;I joined the team on January 6, 2022.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where are you working from?
&lt;/h3&gt;

&lt;p&gt;I am currently based in Arusha.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a regular day at ClickPesa look like for you?
&lt;/h3&gt;

&lt;p&gt;It looks like morning meetings(10am) and sometimes very early morning meetings(8am), some slack messages mostly with the product manager, and lots of Figma frames. &lt;/p&gt;

&lt;h3&gt;
  
  
  Who do you primarily work with on the team?
&lt;/h3&gt;

&lt;p&gt;Mostly the product manager &lt;a href="https://www.linkedin.com/in/rick-groothuizen/" rel="noopener noreferrer"&gt;Rick&lt;/a&gt;, the frontend team &lt;a href="https://github.com/PeterShekiondo" rel="noopener noreferrer"&gt;Peter&lt;/a&gt; and &lt;a href="https://github.com/bmsteven" rel="noopener noreferrer"&gt;Ben&lt;/a&gt;, and tech lead &lt;a href="https://www.linkedin.com/in/ommyjay/" rel="noopener noreferrer"&gt;Omar&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do you enjoy working at ClickPesa?
&lt;/h3&gt;

&lt;p&gt;It's a great work environment. Team members are approachable and I am learning a lot from the team and from the work that I do.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is your favorite thing you worked on at ClickPesa?
&lt;/h3&gt;

&lt;p&gt;The new design improvements in the GetPaid UI. It’s pretty dope, can’t wait for it to be pushed to prod!&lt;/p&gt;

&lt;h3&gt;
  
  
  What are you working on now?
&lt;/h3&gt;

&lt;p&gt;We are currently working on the administrators dashboard so the admins can manage the ClickPesa products easily and I have been working on designing the UIs of those dashboards. Next week the development team will start working on the designs that are ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  What tools do you use?
&lt;/h3&gt;

&lt;p&gt;Short answer, I use Figma. Long answer, read my article here.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you like to listen to while you work?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://open.spotify.com/playlist/4S4QhUA5SHKLis00vnci73?si=746c1e6d4b3640bb" rel="noopener noreferrer"&gt;My amapiano playlist&lt;/a&gt; always gets me in focus mode but I sometimes switch it up to some HipHop, Pop, or Soul. Here is my &lt;a href="https://open.spotify.com/user/31cuin5etfk52dqmkthabserskhq?si=ac309ebd9f4a4f92" rel="noopener noreferrer"&gt;spotify profile&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Favorite working snack?
&lt;/h3&gt;

&lt;p&gt;Banana and potato crisps are my favorite.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you do when not working on ClickPesa?
&lt;/h3&gt;

&lt;p&gt;It has been an aspiration of mine to become a web developer so on weekends I do some coding, whether it is working on a side project or visiting the tutorial hell. &lt;/p&gt;

&lt;h3&gt;
  
  
  Describe yourself using 3 emojis
&lt;/h3&gt;

&lt;p&gt;🤓🥱🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  Where can people find you?
&lt;/h3&gt;

&lt;p&gt;I shit post on twitter &lt;a href="https://twitter.com/neicoree" rel="noopener noreferrer"&gt;@neicoree,&lt;/a&gt; I have mediocre to unfinished projects on github &lt;a href="https://github.com/neicore" rel="noopener noreferrer"&gt;@neicore&lt;/a&gt;, I might start sharing some dope UI kits on &lt;a href="https://www.figma.com/@neicore" rel="noopener noreferrer"&gt;figma community&lt;/a&gt; so checkout if you are interested, and lastly, some narcissism on IG &lt;a href="https://www.instagram.com/findingneicore" rel="noopener noreferrer"&gt;@findingneicore&lt;/a&gt;, &lt;/p&gt;

</description>
      <category>clickpesa</category>
      <category>meettheteam</category>
      <category>getpaid</category>
    </item>
    <item>
      <title>Everyone wants to work with this developer.</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Wed, 13 Jul 2022 09:35:34 +0000</pubDate>
      <link>https://forem.com/clickpesa/everyone-wants-to-work-with-this-developer-4gb4</link>
      <guid>https://forem.com/clickpesa/everyone-wants-to-work-with-this-developer-4gb4</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Strategist&lt;br&gt;
— solution oriented not code oriented&lt;br&gt;
— understands that planning is more important than execution&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gives reasons not excuses&lt;br&gt;
— excuse: “I tried Q, it didn’t work!”&lt;br&gt;
— reason: “I tried Q, didn’t work because we don’t have X in place. We can either do Y or Z.”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use tools, not letting tools use them&lt;br&gt;
— tools are not suppose to be cool, they can be; Some are…but yeah, the shiniest tool might not be for you&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Embrace challenges&lt;br&gt;
— see obstacles as opportunities rather than barriers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eager to act on new information&lt;br&gt;
— not to serve a master, just excited to put fresh information to use&lt;br&gt;
—are the first in line to accept a task when it is presented on a subject they are unfamiliar with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Who understand there is no one’s code…it’s everyone’s&lt;br&gt;
— by allowing a piece of code to exists in the codebase (ownership by endorsement)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Professional&lt;br&gt;
— do what they promised to do&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Follow our tech blogs for more articles like this one and others from the ClickPesa development team as they discuss, among other things, their efforts to enhance the development process.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__5308"&gt;
  &lt;a href="/clickpesa" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zLKpaamj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--z9vTY_yi--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/5308/13a0af00-4127-4744-9bbc-53c93c961c49.png" alt="clickpesa image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/clickpesa" class="ltag__user__link"&gt;ClickPesa&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/clickpesa" class="ltag__user__link"&gt;
        Stories on technology from ninjas building @ClickPesa and @GetpaidAfrica
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://clickpesa.hashnode.dev/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s---27Zozu2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://hashnode.com/utility/r%3Furl%3Dhttps%253A%252F%252Fcdn.hashnode.com%252Fres%252Fhashnode%252Fimage%252Fupload%252Fv1559814205701%252Fek9fO-yT0.jpeg%253Fw%253D800%2526bm%253Dnormal%2526balph%253D100%2526txt64%253DQ2xpY2tQZXNhIFRlY2g%2526txtsize%253D42%2526txtfit%253Dmax%2526txtalign%253Dmiddle%252Ccenter%2526txtfont%253DHelvetica%2520Neue%252CBold%2526txtclr%253D000000%2526blend%253Dfbde28" height="" class="m-0" width=""&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://clickpesa.hashnode.dev/" rel="noopener noreferrer" class="c-link"&gt;
          ClickPesa Tech
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Articles on technology from ninjas building @ClickPesa and @GetpaidAfrica

        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cn-N9-Ny--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611242173172/AOX1gE2jc.png" width="32" height="32"&gt;
        clickpesa.hashnode.dev
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>devops</category>
      <category>softskills</category>
      <category>devtools</category>
    </item>
    <item>
      <title>13 signs of a well oiled development team</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Mon, 30 May 2022 13:21:43 +0000</pubDate>
      <link>https://forem.com/clickpesa/13-signs-of-a-well-oiled-development-team-78m</link>
      <guid>https://forem.com/clickpesa/13-signs-of-a-well-oiled-development-team-78m</guid>
      <description>&lt;h3&gt;
  
  
  Important software development issues that we no longer discuss at ClickPesa
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Working with Issues and Issues tracker&lt;/li&gt;
&lt;li&gt;Working with separate Git branches for every Issue &lt;/li&gt;
&lt;li&gt;Breaking Issues to a smaller Issues &lt;/li&gt;
&lt;li&gt;Meaningful variables and configurations names&lt;/li&gt;
&lt;li&gt;Meaningful project and repositories names&lt;/li&gt;
&lt;li&gt;Working with tools that serves you&lt;/li&gt;
&lt;li&gt;Meaningful and defined process &lt;/li&gt;
&lt;li&gt;Speaking-out and asking for help ASAP&lt;/li&gt;
&lt;li&gt;Meaningful commit messages &lt;/li&gt;
&lt;li&gt;A well detailed Issue description&lt;/li&gt;
&lt;li&gt;Tests&lt;/li&gt;
&lt;li&gt;Code reviews &lt;/li&gt;
&lt;li&gt;Code implementations is after a well documented research
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OKAY! So… It's not that we aren't talking about these issues, but the context has shifted. Improvements, simplification, automation, and the creation of our own custom templates to manage these things within development workflows are now the focus of discussion.&lt;/p&gt;

&lt;p&gt;Follow our tech blog, where the team shares stories about our development process improvement journey, among other things&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__5308"&gt;
  &lt;a href="/clickpesa" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zLKpaamj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--z9vTY_yi--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/5308/13a0af00-4127-4744-9bbc-53c93c961c49.png" alt="clickpesa image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/clickpesa" class="ltag__user__link"&gt;ClickPesa&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/clickpesa" class="ltag__user__link"&gt;
        Stories on technology from ninjas building @ClickPesa and @GetpaidAfrica
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>workflow</category>
      <category>automations</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Using JS Functions Properties in Real Life</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Wed, 27 Apr 2022 10:28:15 +0000</pubDate>
      <link>https://forem.com/clickpesa/using-js-functions-properties-in-real-life-lcg</link>
      <guid>https://forem.com/clickpesa/using-js-functions-properties-in-real-life-lcg</guid>
      <description>&lt;p&gt;In JavaScript, functions are first-class objects, because they can have properties and methods just like any other object. What distinguishes them from other objects is that functions can be called.&lt;/p&gt;

&lt;p&gt;Consider the following logging function below...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;level&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;just logging...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "just logging..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use function property to avoid global variables for conditional checking&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;level&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backup&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;//set function property&lt;/span&gt;
&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;backing it up...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "backing it up..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>functions</category>
    </item>
    <item>
      <title>Function Arguments Object in JS and how to use it</title>
      <dc:creator>Omar</dc:creator>
      <pubDate>Wed, 09 Feb 2022 14:14:50 +0000</pubDate>
      <link>https://forem.com/ommyjay/function-arguments-object-in-js-and-how-to-use-it-3lpc</link>
      <guid>https://forem.com/ommyjay/function-arguments-object-in-js-and-how-to-use-it-3lpc</guid>
      <description>&lt;p&gt;Assuming we all know what arguments are in JS functions&lt;/p&gt;

&lt;h2&gt;
  
  
  Function.arguments
&lt;/h2&gt;

&lt;p&gt;The arguments object is a local variable available within all non-arrow functions.You can refer to a function's arguments inside that function by using its arguments object.&lt;br&gt;
It has entries for each argument the function was called with, with the first entry's index at 0.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exampleFunction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Arguments {0: 1, 1: 2}&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Invalid amount of arguments. Must be 3 and was &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&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;exampleFunction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Error: Invalid amount of arguments. Must be 3 and was 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>fn</category>
    </item>
  </channel>
</rss>
