Commitment to technology in Scuti

In this blog, I'd like to introduce the important value in our company to technology. I would be glad if you could imagine our working environment and directionality of our company.

Scuti is on a mission that we provide web services which can change lives of South East Asia.

Our slogan of this half year is "Vietnam National Team".

In order to provide the service to not only Vietnam but also the world, each member must be a top level of professional. In order to be top engineers, we cherish these value below.

In summary, our policy is
  • to automate the process as possible and focus on spending the time to develop software,
  • ensure software quality using tools,
  • never deploy the sh*t code to production server,
  • work for users.

Focus on Laravel

Our core technology is Laravel, which is one of the modern PHP framework.
Adopt Repository pattern on Laravel framework and increase the efficiency to develop CRUD functions with test codes with PHPUnit.

Choose modern technology

We have 2 main businesses, which are outsourcing and our products. These businesses compensate technically each other.
  • The technology we use depend on the customer in outsourcing business so technical region is wider than the business of our product.
  • We can choose the technology for our own product and we must keep enhancing so technical region is deeper than the outsourcing business.
Then we can realize wide and deep technical range to develop.

Because we develop our own product, we can choose the technology and tools by ourselves. I'd like to introduce part of our environment.

Build local environment with Vagrant

Every time we start a new project, a developer build the local environment with Vagrant and generate Vagrantfile. Then we share it with all developers. Using Vagrant, developers can build & share the completely same local environment at a moment.

Integrate Github, Trello, Jenkins with Slack

Everything is integrated with Slack and we can know any update on only Slack. We rarely use email and it realizes the quick communication. Then we can cut wasteful time for only communication and can focus on developing the application.

Build server network with AWS

We basically use AWS to build server network. It also enables us to build & share instances. Also, we don't need to spend much time to build redundant structure and so on.

Ensure the security using security tools such as vuls, VAddy

It's one of the important skills for engineers to ensure the security. In our company, we use vuls and VAddy to ensure security. Using these tools, we can run reproducible test cases.

Flexible Scrum process

In our company, we mainly adopt Scrum process. The purpose is to adjust the assignee for both our product projects and outsourcing projects. All members are required to adjust their tasks by themselves.

IMO, the benefits of Scrum process are:

  • to share who do what with all,
  • to detect the potential issues in advance,
  • to keep improve ourselves.

Hybrid (?) retrospective meeting

At the end of one sprint, we have the retrospective meetings. As a result that we have kept improving the way to have this meeting, now we use both a projector and stickers. Then always get lots of suggestion to improve our efficiency and productivity. We never compromise and we're never satisfied with ourselves.

Automated development process based on CI/CD

We have automated the software development as possible in order to focus on developing the applicant and ensure the software quality.

For example, we use framework on framework. This can produce basic test codes every time we add new controllers.

Then, every time we merge to branches, build scripts of Jenkins and run code fixer and static analysis such as duplication and cyclomatic complexity. If a merge doesn't pass any analysis, build script stops and shows the report on Slack. Then we prevent sh*t code from being deployed to production.

Ensure source code quality

Not only static analysis of source code, we have source code review in our process. In general companies, basically only leaders or managers review source code but all members must review code of the others. Of course the main purpose is to ensure the quality of source code. But this can enable us to "discover" how to write code.

Work for users

Our output must be for users because it's the identity that engineers develop products. We always must ask ourselves if it's really for users or not.

We're always looking for engineers!

If you are interested in our working environment, please do not hesitate to contact us! We'd like to work with engineers who have strong motivation to keep learning.

If you liked this article

Let's subscribe the updates of Scuti!
Share on Google Plus

About Tomohide Kakeya

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment


Post a Comment