DEV Community

Cover image for Quick Summary - The Technologies That Tech Corporates Use To Build Software (For Beginners)
Mohmed Ishak
Mohmed Ishak

Posted on • Edited on

Quick Summary - The Technologies That Tech Corporates Use To Build Software (For Beginners)

function introduction() {
  if (you've already been working in a large tech team) {
    console.log("This article is probably not for you.");
  } else if (you're a curious guy on the topic) {
    console.log("This article is for you.");
  }
}

introduction().then(() => likeThisPost() && shareThisPost());
Enter fullscreen mode Exit fullscreen mode

Anyway, how does a large team work together to build a software product?

[1] Communication Channel

To communicate, there are a whole lot of options. Some prefer to use internal tools, while others prefer software like Discord or Slack. Videoconferencing? You guessed it - Google Meet, Microsoft Teams, or Zoom.

[2] Code Collaboration

GitHub or GitLab. I see that newer companies start to transition to GitLab because it's offers more convenience when dealing with CI/CD pipeline. Nonetheless, they're both good.

[3] Documentation

For every software, there's gonna be a documentation so it's easier for anyone in the team or future engineers to test and work on it. One popular tool is Atlassian Confluence which lets you to write amazing documentations and collaborate with your team members.

[4] Frontend, Backend, & Other Tools

For web frontend, it really is up to the company, but React.js + Next.js seems to be very popular. Angular is popular too but it just stresses out the developers a bit. For backend, currently Node.js is popular, but a lot of companies are transitioning to Go because it's faster, more secure, and costs less in the cloud generally. For mobile app development, although Flutter seems to be slightly more popular among individual developers, large tech corporates and startups prefer to use React Native because it works so well. On top of that, it is super similar to React, so a web dev can in a company can transition to mobile app dev easily and vice versa. For database, most of them use both relational (MySQL/PostgreSQL) & non-relational (MongoDB & Redis). There is much more to this, but this is a pretty good overview in my opinion.

[5] Project Management & Testing

To manage project, usually Jira is used where the project manager would divide a project to specific tasks and assign them to developers. After development & testing, the devs can mark each task as done and so on. Jira is much more complex, but this is the essence of it. Anyway, to test apps, they'd use a lot of tech for load testing and so on, but one example I wanna tell you is Appium & Selenium, which allow you make automated testing. This means that once the test is run, the testing program would click buttons, fill up forms, and perform any task that a human could do in an app automatically (of course, you have to program the workflow). Encountered bugs will be reported to senior quality assurance engineer, usually.

That's it guys. Leave a like before you go. ;)

Top comments (0)