teleren/devto huggingface dataset:
Good Software Engineers are Business Analysts Too
Published: 2023-04-21 00:45:21

---
title: Good Software Engineers are Business Analysts Too
published: true
date: 2023-01-20 18:31:35 UTC
tags: 
canonical_url: 
---

Good software engineers have to understand the business they're working in.

If they don't, they're at the mercy of business analysts and project managers to explain what to do.

Some of my most successful moments in my career have been when I've taken on a role of business analyst and gone directly to the source for information on what needs to be built for the business.

In other words:

 ![specifications](https://danschnau.com/img/specifications.png)

You gotta write code, and be this person too.
LeetCode #509 Fibonacci Number with JavaScript
Tags: javascript, algorithms, leetcode
Published: 2023-01-20 18:31:29

Solutions to LeetCode's [509. Fibonacci Number] (https://leetcode.com/problems/fibonacci-number) with JavaScript.

## Solution 1: Recursive
```js
/**
 * @param {number} n
 * @return {number}
 */
const fib = (n) => {
  if (n === 0) return 0;
  if (n === 1) return 1;
  return fib(n - 1) + fib(n - 2);
};
```

- Time complexity: O(2^n)
- Space complexity: O(n)

This code is simple and easy to read, but it is not suitable for cases where the argument n has a large value because the time complexity is O(2^n).

## Solution 2: Iterative

```js
/**
 * @param {number} n
 * @return {number}
 */
const fib = (n) => {
  let fibSequence = [0, 1];
  for (let i = 2; i <= n; i++) {
    fibSequence.push(fibSequence[i - 1] + fibSequence[i - 2]);
  }
  return fibSequence[n];
};
```
- Time complexity: O(n)
- Space complexity: O(n)

It is less readable than recursive, but the time complexity is O(n), so if there is a possibility of large values in the argument n, this is better.
snap-on smile
Published: 2023-01-20 17:39:00

<a href="https://www.dimadental.com.sa/%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%A7%D9%84%D8%A3%D8%B3%D9%86%D8%A7%D9%86/">مركز تقويم اسنان </a>
<a href="https://www.dimadental.com.sa/%D8%AF%D9%8A%D9%85%D8%A9-%D8%AF%D9%86%D8%AA%D8%A7%D9%84-%D8%A7%D9%81%D8%B6%D9%84-%D8%B9%D9%8A%D8%A7%D8%AF%D8%A7%D8%AA-%D9%84%D8%B7%D8%A8-%D8%A7%D9%84%D8%A7%D8%B3%D9%86%D8%A7%D9%86-%D8%A8%D8%A7%D9%84/">افضل عيادة اسنان الرياض </a>
<a href="https://www.dimadental.com.sa/">مركز اسنان الرياض</a>
<a href="https://www.dimadental.com.sa/%D8%AF%D9%8A%D9%85%D8%A9-%D8%AF%D9%86%D8%AA%D8%A7%D9%84-%D8%A7%D9%81%D8%B6%D9%84-%D8%B9%D9%8A%D8%A7%D8%AF%D8%A7%D8%AA-%D9%84%D8%B7%D8%A8-%D8%A7%D9%84%D8%A7%D8%B3%D9%86%D8%A7%D9%86-%D8%A8%D8%A7%D9%84/">عروض اسنان الرياض</a>
<a href="https://www.dimadental.com.sa/%D8%AD%D8%AC%D8%B2-%D9%85%D9%88%D8%B9%D8%AF-%D8%AF%D9%83%D8%AA%D9%88%D8%B1-%D8%A7%D8%B3%D9%86%D8%A7%D9%86-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/">حجز موعد دكتور اسنان</a>
<a href="https://www.dimadental.com.sa/%D8%AD%D8%AC%D8%B2-%D9%85%D9%88%D8%B9%D8%AF-%D8%AF%D9%83%D8%AA%D9%88%D8%B1-%D8%A7%D8%B3%D9%86%D8%A7%D9%86-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/">حجز موعد اسنان</a>
<a href="https://www.dimadental.com.sa/%D8%B7%D8%A8%D9%8A%D8%A8-%D8%AA%D9%82%D9%88%D9%8A%D9%85-%D8%A3%D8%B3%D9%86%D8%A7%D9%86-%D8%A7%D9%84%D8%A3%D8%B7%D9%81%D8%A7%D9%84/">تقويم أسنان الأطفال</a>
<a href="https://www.dimadental.com.sa/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%87%D9%88%D9%84%D9%8A%D9%88%D8%AF-%D8%B3%D9%85%D8%A7%D9%8A%D9%84/">ابتسامة هوليود </a>
<a href="https://www.dimadental.com.sa/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%87%D9%88%D9%84%D9%8A%D9%88%D8%AF-%D8%B3%D9%85%D8%A7%D9%8A%D9%84/">هوليود سمايل</a>
<a href="https://www.dimadental.com.sa/%D8%B2%D8%B1%D8%A7%D8%B9%D8%A9-%D8%A7%D9%84%D8%A7%D8%B3%D9%86%D8%A7%D9%86-%D8%A7%D9%84%D9%81%D9%88%D8%B1%D9%8A%D8%A9/">زراعة الاسنان الفورية</a>
<a href="https://www.dimadental.com.sa/">مستوصف اسنان </a>
<a href="https://www.dimadental.com.sa/%d8%aa%d9%82%d9%86%d9%8a%d8%a9-%d8%a7%d9%84%d8%ba%d8%a7%d8%b2-%d8%a7%d9%84%d8%b6%d8%a7%d8%ad%d9%83-%d9%88%d8%af%d8%a7%d8%b9%d8%a7%d9%8b-%d9%84%d8%ae%d9%88%d9%81-%d8%a7%d9%84%d8%a3%d8%b7%d9%81%d8%a7/">الغاز الضاحك للاطفال</a>
<a href="https://www.dimadental.com.sa/%d8%b3%d9%86%d8%a7%d8%a8-%d8%a7%d9%88%d9%86-%d8%b3%d9%85%d8%a7%d9%8a%d9%84/">سناب اون سمايل </a>
5 Common Software Architecture Patterns. When Should You Apply Them?
Tags: architecture, programming, computerscience, performance
Published: 2023-01-20 18:23:55

### Join Me

Follow me on [Twitter](https://twitter.com/alexrashkov) and [Linkedin](https://www.linkedin.com/in/alexrashkov) for more Career, Leadership and Growth advice. 

### Intro

Software architecture patterns are a set of design principles and practices that help developers create efficient, scalable, and maintainable software systems. Before writing any software we should ask ourselves what are the outcomes we want to achieve, what are some of the constraints and how to mitigate them.

There are several different types of architecture patterns, each with their own unique set of benefits and trade-offs.

1. Layered Architecture
2. Event-driven Architecture
3. Microservices Architecture
4. Command Query Segregation Architecture
5. Space-based Architecture

Choosing the right one requires understanding of their pros/cons, limitations and application. 

In the following posts I will share details regarding each of these solutions and where to apply them.

### Join Me

Follow me on [Twitter](https://twitter.com/alexrashkov) and [Linkedin](https://www.linkedin.com/in/alexrashkov) for more Career, Leadership and Growth advice. 

<a href="https://engineeringbolt.substack.com/embed" target="_blank" title="Subscribe to Engineering Bolt ⚡ Newsletter">![Subscribe to Engineering Bolt ⚡ Newsletter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3u2srkrj6arwrs0nclfs.png)</a>

Let's jump into it!
14. Longest Common Prefix - JavaScript Solution - by Abu Saleh Faysal
Tags: javascript, programming, leetcode
Published: 2023-01-20 18:23:30

After seeing the problem, I determined that iterating the first element of the array and iterating the whole array could be a straightforward approach to solving this problem.

## Solution:
**Step 01:** declare a variable named "prefix" and set the initial value as an empty string("").
**Step 02:** Check if the given array length is 0 or if the given array is null. If it meets this condition, return the prefix which is an empty string.
**Step 03:** If the given array does not meet the previous condition, iterate the first element of the array using a for loop and store the elements in the "char" variable.
**Step 04:** Using another for loop, iterate the given array and this time start the iteration from the second index of the array.
**Step 05:** If the char and the second element of the given array's char is not equal, then return the prefix.
**Step 06:** After the second iteration, add the char with the prefix.
**Step 07:** Return the prefix.

**Runtime:** 93 ms
**Memory:** 42.9 MB

```
/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    let prefix = "";

    if(strs.length === 0 || strs === null) return prefix;

    for(let i = 0; i < strs[0].length; i++) {
        let char = strs[0][i];
        for(let j = 1; j < strs.length; j++) {
            if(char !== strs[j][i]) {
                return prefix;
            }
        }
        prefix += char;
    }

    return prefix;
};
```

👉 Support me: https://www.buymeacoffee.com/abusalehfaysal

👉 YouTube Channel: https://www.youtube.com/channel/UCW_09Nbobf4URLkAlEo84sw

👉 PlayList Link: https://youtube.com/playlist?list=PLUnklBXn8NSefCpBaLe39mds6dQx-tDDD

👉 Connect with me (LinkedIn): https://www.linkedin.com/in/abusalehfaysal

👉 Follow our LinkedIn Page: https://www.linkedin.com/company/thebacklogprogrammer/

👉 Like our Facebook page: https://www.facebook.com/thebacklogprogrammer/

👉 Join our community (Facebook group): https://www.facebook.com/groups/5500588936676942/

👉 Follow me at: https://www.facebook.com/AbuSalehFaysal10

👉 Twitter: https://twitter.com/AbuSalehFaysal

👉 Abu Saleh Faysal’s Blog: https://abusalehfaysal.hashnode.dev/

👉 Hasnode: https://hashnode.com/@AbuSalehFaysal

👉 Dev Community: https://dev.to/abusalehfaysal

👉 freeCodeCamp: https://www.freecodecamp.org/abusalehfaysal

👉 Medium: https://abusalehfaysal.medium.com/

👉 GitHub: https://github.com/AbuSalehFaysal
👉 GitLab: https://gitlab.com/AbuSalehFaysal
Go Unit Test Coverage
Tags: testing, go
Published: 2023-01-20 18:21:05

Go has really good support for unit testing out of the box. With the `go test` CLI and the `testing` std library you can do almost *everything.

One of the niceties it provides is code coverage. You can run your tests with a flag `-cover` or you can even have to collect the coverprofile and spin up an interactive UI and check your code and what branches are covered with 

```sh
# run tests and create a coverprofile
go test ./... -coverprofile=cover.out
# open the interactive UI to check the Coverage Repor
go tool cover -html=cover.out
```

You should see something similar to this for your code

![Coverage Report UI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w8262u1j1ky8k401203r.png)

The red colour indicates that those branches are not covered at all by your unit tests and then with shades of green, you can see how much your code is covered.

---

## What is this post about then

All this is good, what Go provides right away is at least amazing. But what I have found missing, is coverage threshold.

### What is coverage threshold?

If you are coming from js ecosystem you might have encountered this in jest. With a coverage threshold, if your tests are less than a specified percentage, even if they are successful they will fail.

> There is a long debate about whether high code coverage or what percentage of code coverage is the best. This post is not covering this debate. If you are interested I could do it in a separate post and share my thoughts.

Code coverage "tracking" can be useful, in many different scenarios. Adding a new feature, you write your unit tests but you miss covering some branches. If your coverage goes below the acceptable threshold you will be notified right away when running your tests. If someone is contributing to your team's project, it can show that you are expecting at least some basic unit tests for the code he wrote.

### Coverage

So I took the opportunity and wrote a small util library, that does exactly that.

Given a threshold number if your package is below that, then it will fail your tests

You can find the code and the library in [coverage](https://github.com/gkampitakis/coverage). Have a look and tell me what you think.

\* _Of course some useful libraries can help you with boilerplate code like [testify](https://github.com/stretchr/testify) or [go-snaps](https://github.com/gkampitakis/go-snaps) (shameless plug 😅)_

--- 

Thanks for reading ❤️
How to use ChatGPT for development work?
Tags: ai, machinelearning, productivity, tutorial
Published: 2023-01-20 18:11:00

ChatGPT is a variant of the GPT (Generative Pre-trained Transformer) model, which is trained on conversational data and can be used to generate human-like text. Here are a few ways that ChatGPT can be used in development work:

1. Content generation: ChatGPT can be used to generate human-like text for a variety of content types, such as articles, blog posts, product descriptions, and more. This can save time and effort for content creators.

2. Chatbot development: ChatGPT can be used to generate responses for a chatbot. By training ChatGPT on a dataset of conversational data, you can create a chatbot that can understand and respond to a wide range of user input.

3. Text completion: ChatGPT can be used to complete text based on a given prompt. This can be useful for a variety of tasks such as code completion, automated writing and more.

4. Text summarization: ChatGPT can be used to generate a summary of a given text. This can be useful for tasks such as news summarization, email summarization, and more.

5. Language Translation: ChatGPT can be fine-tuned on a specific language dataset to act as a language translator, this can be useful in case you don't have a specific language model.
A Rant
Tags: rant
Published: 2023-01-20 17:54:56

How the _hell_, given these interests:

![My tags, which don't contain any web stuff](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9460vhaynhf7g9bxzr8t.png)

is this post in any way relevant and deserving of being promoted to me on the front page of this site?

![A post tagged with "css", "webdev", and "html"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bhkk899spc5yj1thz0ev.png)

And no, negative weights being treated as "anti-follows" isn't enough. There are so many topics I'm not interested in that configuring them all is just too much work.
How to become a self-taught software engineer in 2023?
Tags: software, engineer, beginners
Published: 2023-01-20 17:41:25

Self-taught software engineering has become increasingly popular in recent years, and for a good reason. With the right resources and dedication, anyone can learn the skills necessary to become a software engineer in today's tech-driven world. Here are some tips to help you on your journey to becoming a self-taught software engineer in 2023:

1) Start with the basics: Learn programming fundamentals, such as data structures, algorithms, and programming languages like Python or JavaScript. You can find many resources online for learning these basics, such as Codecademy or FreeCodeCamp.


2) Build your own projects: As you learn the basics, start building your own projects to apply what you've learned. This will help you gain practical experience and give you a portfolio to showcase to potential employers.

3) Learn from experienced engineers: Reach out to professional software engineers and ask for advice or mentorship. You can also learn from their experiences by reading their blogs or watching their videos on YouTube.

4) Stay up-to-date with new technologies: The technology industry is constantly evolving, so it's important to stay up-to-date with the latest developments. Follow industry leaders and read tech news to stay informed.

5) Network: Join online communities, attend meetups, and participate in hackathons to meet other software engineers and learn from them.

Remember that becoming a software engineer takes time, effort, and dedication. But with the right mindset and the resources available, anyone can become a self-taught software engineer in 2023.
17 Most Common interview Questions Which Every interviewer Asks?
Tags: interview, software, beginners
Published: 2023-01-20 17:38:04

Level up your Job search game by practicing answering these most-asked interview questions.

[1] Tell me about yourself.
[2] How would you describe yourself?
[3] What makes you unique?
[4] Why do you want to work here?
[5] How did you get to know about this role?
[6] What interests you about this role?
[7] What motivates you?
[8] What are you passionate about?


[9] Why are you leaving your current job?
[10] What are your greatest strengths?
[11] What are your greatest weaknesses?
[12] What are your goals for the future?
[13] Where do you see yourself in five years?
[14] Can you tell me about a difficult work situation and how you overcame it?
[15] What is your salary range expectation?
[16] Why should we hire you?
Descriptive Statistics in Data Science
Tags: descriptive, statistics, data, science
Published: 2023-01-20 17:37:37

The structure, synthesis, and interpretation of data are the focus of descriptive statistics, a subfield of data science. It is employed to clarify and appreciate a dataset’s essential properties, including its distribution, dispersion, and central tendency. Using descriptive statistics to prepare the data for inferential statistics-based analysis is a critical stage in the data analysis process. Data scientists may find patterns, trends, and insights using various tools and methods.

To read more visit
https://hecodesit.com/descriptive-statistics-in-data-science/
What are the basics for Spring Boot?
Tags: spring, boot, engineering
Published: 2023-01-20 17:35:43


❄️ What is Spring framework❓
✅ Spring Framework (Spring) is an open-source application framework that provides infrastructure support for developing Java applications. One of the most popular Java Enterprise Edition (Java EE) frameworks, Spring helps developers create high-performing


applications using plain old Java objects (POJOs).

❄️ And why use Spring?
1️⃣ It manages all the dependencies you need.
2️⃣ It handles Autowiring really well.
3️⃣ It uses various design patterns to create objects if Java Beans including Singleton, Proxy and Factory.
4️⃣ It provides easy ways to handle different things like Forms, Logins, DB connections and queries.

💡To summarize, Spring offers Inversion of Control and Dependency injection in the most efficient and easy thus making development faster.
Recent situation of layoffs?
Tags: layoffs, beginners, programming, software
Published: 2023-01-20 17:32:23

Given the recent situation of layoffs! 🥲
Don't limit your search only to MAANGA (Meta, Amazon, Apple, Netflix, Google, and Microsoft) companies. ❌

There are many fantastic companies out there in terms of:
Pay
Work-life balance
Work culture
Career growth
and a lot more things.


Here is a list of 115+ such companies on the basis of their marketplace/field.
Hoping this will be helpful

Mobility Companies:
- Ola
- Uber
- Bluesmart
- Meru
- Zoomcar
- Rapido

E-commerce
- Walmart
- Flipkart
- Myntra
- Tesco
- Target
- Shopsy
- Bloomreach
- Udaan
- Cult.fit
- Urban company
- Ajio
- PharmaEasy
- Meesho
- Lowe's Companies, Inc.

CRM/Workflow Management
- Zoho
- Salesforce
- EngageBay
- ServiceNow

Recruitment/ Hiring platform
- LinkedIn
- Indeed
- Uplers
- Naukri.com (Infoedge)

Collaboration tools
- Atlassian
- Asana
- Zoom
- Slack

Cloud services/Saas
- Oracle Cloud Infrastructure (OCI)
- VMware
- Redhat
- SAP Labs
- Hewlett Packard Enterprise (HPE)
- IBM
- BrowserStack
- Nutanix
- NetApp
- Tekion Corp
- Cohesity
- Rubrik

Communication
- Slack
- Zoom
- Twilio
- Twitter
- Airtel X labs

Advertisement
- media.net
- Adpushup
- Kevel

Payments / Fintech
- Paypal
- Visa
- Phonepe
- Paytm
- Bhartpe
- Cred
- Jupiter
- Slice
- Razorpay
- Zeta
- Rupeek
- ClearTax

Trading
- Tower research capital
- Upstox
- Groww
- Zerodha

Investment Banks/ Hedge funds and others
- De Shaw
- Goldman Sachs
- World quant
- Arcesium
- Intuit
- JP Morgan
- Morgan Stanley
- Wells Fargo
- Druva

Travel
- Airbnb
- OYO rooms
- MakeMyTrip
- Bookmytrip
- Expedia
- Groupon
- Booking.com
- Agoda

Network/Hardware
- Directi
- Qualcomm
- Dell
- VMware
- Nvidia
- Arista Networks
- Palo Alto Networks

Gaming Industry
- Dream 11
- Cricbuzz
- MPL
- Zynga
- Bluestacks
- Hike
- Games24x7

Entertainment
- Hotstar
- Flock
- Inmobi
- Sharechat

Food delivery
- Swiggy
- Zomato
- Dunzo

Logistics
- Rivigo
- Delhivery
- Pickrr
- Turvo
- Porter
- Vahak

Analytics
- Fractal
- Tredence
- Tiger Analytics
- Latentview
- MuSigma

Telecom
- Ericsson
- Nokia
- Tejas networks
- NEC
- Radisys
Why React.js is the Future of Web Development?
Tags: react, reactnative, webdev, web3
Published: 2023-01-20 17:27:51

React.js is a JavaScript library for building user interfaces. It was developed by Facebook in 2011 and has since become one of the most popular tools for building web and mobile applications.

One of the key features of React.js is its ability to efficiently update the user interface (UI) in response to changes in the data. This is achieved through a technique called "virtual DOM" which allows React to keep track of changes to the data and only update the parts of the UI that need to be changed. This results in a faster and more efficient user experience.


Another important aspect of React.js is its component-based architecture. Components are reusable pieces of code that can be used to build the UI. This allows for easy maintenance and scalability of the application.

React.js also has a large and active community that provides a wealth of resources and support for developers. This includes a wide range of third-party libraries and tools that can be easily integrated into React applications. React.js is also very flexible.

In summary, React.js is an efficient, flexible, and widely used JavaScript library for building user interfaces. Its ability to efficiently update the UI, component-based architecture and large community makes it an excellent choice for developing web and mobile applications.
How to boost Your Data Science and Analytics skills?
Tags: database, datascience, analytics, analyst
Published: 2023-01-20 17:25:09

Learn How to Write Efficient Python with This Series of Articles

1. How To Write Python Clean Code

Link: Write Python Clean Code Using These 3 Principles

2. Write Efficient Python Code: Defining & Measuring Code Efficiency

Link: Write Efficient Python Code for Data Scientists: Defining & Measuring Code Efficiency

3. Write Efficient Python Code: Optimizing Your Code

Link: Write Efficient Python Code for Data Scientists: Optimizing Your Code


4. How To Eliminate Loops From Your Python Code

Link: How To Eliminate Loops From Your Python Code

5. Best Practices To Use Pandas Efficiently As A Data Scientist

Link: Best Practices To Use Pandas Efficiently As A Data Scientist

6. Stop Looping Through Pandas DataFrames & Do This Instead

Link: Stop Looping Through Pandas DataFrames & Do This Instead

7. Selecting & Replacing Values In Pandas DataFrame Effectively

Link: Selecting & Replacing Values In Pandas DataFrame Effectively

8. How To Use .groupby() Effectively For Data Transformation As A Data Scientist

Link: How To Use .groupby() Effectively As A Data Scientist

You can find all of the codes in the following GitHub Repository: GitHub - youssefHosni/Efficient-Python-for-Data-Scientists
webMethods.io Integration Developer Guidelines
Tags: ipaas, webmethodsiointegration, softwareag, webmethod
Published: 2023-01-20 17:15:30

If you are a developer on projects using the Software AG iPaaS product **webMethods.io Integration**, you can find a comprehensive list of guidelines, recommendations, best practices in GitHub.
I suggest you start at the following article in the Software AG Tech Community [here](https://tech.forums.softwareag.com/t/webmethods-io-integration-developer-guidelines/266286)

Of course, if you are new to webMethods.io Integration, you can find plenty of free training available
What are effective ways to expand your LinkedIn network?
Tags: linkedin, beginners, productivity
Published: 2023-01-20 17:13:00

🎯Enhance your profile by making sure it is up-to-date, highlights your skills and experience, and includes relevant keywords for your industry.

🎯Connect with familiar individuals, including current and past colleagues, friends, and family members.

🎯Participate in groups on LinkedIn that align with your interests and industry. Engage in discussions to make new connections.


🎯Attend virtual events on LinkedIn to meet new people and grow your network.

🎯Interact with other's content by liking, commenting, and sharing their posts and articles to increase your visibility and start conversations.

🎯Utilize LinkedIn's advanced search feature to find and connect with potential contacts within your target industry or with specific job titles or skills.

🎯Follow industry influencers and companies to stay current on trends and connect with those who work at those companies.

🎯Share your own content and demonstrate your expertise in your field.

🎯Remember to personalize your connection requests and messages, and to be genuine in building relationships.