User Interfaces

Client-side development
The criteria of evaluation for the front-end technology stack for projects done by SFL can vary greatly. Factors that matter are foremost the type of the project we are working on, whether it is an ecommerce website or a back office admin panel, the redundancy and stability of operation requirements, the presence of various UI animations and transformations and more. Depending on all these factors we will pick the best suitable technology stack for a given project. In addition to this we constantly adjust our development process and methodologies to fit the rapidly changing internet user profile. As part of that, we’ve adapted a number of technologies and practices including progressive web apps and accelerated mobile pages.

As part of an ecosystem that dynamically undergoes serious improvements, we have to constantly adjust our technology stack and expertise to guarantee the right balance between bleeding edge technology and long term maintainability in our projects. With a number of long term projects on React, and Angular/Typescript stacks, we simultaneously experiment with new frameworks/libraries in search for better tools for the job we’re doing.
  • HTML 5 API
  • CSS with SASS/LESS/ BEM
  • Webpack, SystemJS, Gulp
  • ECMAScript
  • React/Angular
  • Node.JS

User Interfaces

Client-side development
The criteria of evaluation for the front-end technology stack for projects done by SFL can vary greatly. Factors that matter are foremost the type of the project we are working on, whether it is an ecommerce website or a back office admin panel, the redundancy and stability of operation requirements, the presence of various UI animations and transformations and more. Depending on all these factors we will pick the best suitable technology stack for a given project. In addition to this we constantly adjust our development process and methodologies to fit the rapidly changing internet user profile. As part of that, we’ve adapted a number of technologies and practices including progressive web apps and accelerated mobile pages.

As part of an ecosystem that dynamically undergoes serious improvements, we have to constantly adjust our technology stack and expertise to guarantee the right balance between bleeding edge technology and long term maintainability in our projects. With a number of long term projects on React, and Angular/Typescript stacks, we simultaneously experiment with new frameworks/libraries in search for better tools for the job we’re doing.
  • HTML 5 API
  • CSS with SASS/LESS/ BEM
  • Webpack, SystemJS, Gulp
  • ECMAScript
  • React/Angular
  • Node.JS

Backend Applications

Server Side Development
At SFL we collaborate with many different companies which include both big enterprises with hundreds of employees and small startups with only a small team of 2-3 founders. As such the projects themselves also vary greatly in size and technical requirements. Based on the type of the project we’re working on, the choice of Backend technology may vary greatly. For small startups or idea validation projects that have to be iterated quickly we mainly lean towards flexibility and speed of development, while in mid to large scale projects we stick to solutions which have proven themselves and provide better maintainability in the long run. The main technology stack for mid to large scale projects at SFL is Java. We encourage the use of modern frameworks and libraries in our projects and always allocate time for the maintenance of legacy code to bring it in line with the current requirements. We are also always searching for ways to improve by evaluating new technology stacks, frameworks and more. We’ve adopted the microservice architecture which enables us to pick the best technology for each of the microservices, we do use NodeJs and Python alongside Java, Kotlin and Scala.

We highly emphasize the role of automation in the company. All routine tasks and processes are considered for automation via CI or similar approaches. This both speeds up delivery and minimizes the human factor. In all our projects we have CI/CD setup, automated code analysis for bugs and vulnerabilities integrated with code repositories and the product management toolset.

Ultimately, the most important link of the whole software engineering process are the engineers themselves. We strive to enable our engineers to learn as much as possible via on-site presentations of different technologies by people who have expertise in the field, participation in both local and international conferences, trainings and many other activities. Another vital factor in our day-to-day work is communication between team members, including but not limited to peer code review and discussions that take place during it and the fact that critical technical decisions are taken in meetings with the participation of the whole development team of the project.

Backend Applications

Server Side Development
At SFL we collaborate with many different companies which include both big enterprises with hundreds of employees and small startups with only a small team of 2-3 founders. As such the projects themselves also vary greatly in size and technical requirements. Based on the type of the project we’re working on, the choice of Backend technology may vary greatly. For small startups or idea validation projects that have to be iterated quickly we mainly lean towards flexibility and speed of development, while in mid to large scale projects we stick to solutions which have proven themselves and provide better maintainability in the long run. The main technology stack for mid to large scale projects at SFL is Java. We encourage the use of modern frameworks and libraries in our projects and always allocate time for the maintenance of legacy code to bring it in line with the current requirements. We are also always searching for ways to improve by evaluating new technology stacks, frameworks and more. We’ve adopted the microservice architecture which enables us to pick the best technology for each of the microservices, we do use NodeJs and Python alongside Java, Kotlin and Scala.

We highly emphasize the role of automation in the company. All routine tasks and processes are considered for automation via CI or similar approaches. This both speeds up delivery and minimizes the human factor. In all our projects we have CI/CD setup, automated code analysis for bugs and vulnerabilities integrated with code repositories and the product management toolset.

Ultimately, the most important link of the whole software engineering process are the engineers themselves. We strive to enable our engineers to learn as much as possible via on-site presentations of different technologies by people who have expertise in the field, participation in both local and international conferences, trainings and many other activities. Another vital factor in our day-to-day work is communication between team members, including but not limited to peer code review and discussions that take place during it and the fact that critical technical decisions are taken in meetings with the participation of the whole development team of the project.

Databases

Data Storage & Management
Every application has its own unique requirements to data storage and management and trying to fit a single DB engine for everything will never work. Therefore, we carefully choose an approach for every specific project based on its nature and requirements. SFL has experience with a number of relational database management systems(RDBMS), BI solutions, NoSQL databases, queueing systems and we’re currently actively experimenting with Hadoop-based big data solutions. There’s a lot of hype surrounding NoSQL and big-data, which are indeed groundbreaking, but the SQL databases are not going anywhere and in many projects they are by far the right tool to use. That said, of course, some technology gets used more often, and currently at SFL the trending technology is PostgreSQL and Elasticsearch of which we are one of the early adopters (since 2010).

Databases

Data Storage & Management
Every application has its own unique requirements to data storage and management and trying to fit a single DB engine for everything will never work. Therefore, we carefully choose an approach for every specific project based on its nature and requirements. SFL has experience with a number of relational database management systems(RDBMS), BI solutions, NoSQL databases, queueing systems and we’re currently actively experimenting with Hadoop-based big data solutions. There’s a lot of hype surrounding NoSQL and big-data, which are indeed groundbreaking, but the SQL databases are not going anywhere and in many projects they are by far the right tool to use. That said, of course, some technology gets used more often, and currently at SFL the trending technology is PostgreSQL and Elasticsearch of which we are one of the early adopters (since 2010).

Devops and Infrastructure

Cloud Networks
At SFL we have experience with all major cloud platforms as well as with co-location and on-premises environments. This enables us to provide the best fitting platform and infrastructure software stack based on project requirements and financial considerations. We have dedicated devops and operations teams who are responsible for everything operations and CI related. As the field is constantly changing we invest heavily to stay up to date with all modern tools and practices. We also highly value monitoring and automation and the majority of time spent by a member of the devops team is here. As for the curious developers we highly encourage them to be aware and involved in the operations as this results in better designed products and easier life for both devops and development.

Devops and Infrastructure

Cloud Networks
At SFL we have experience with all major cloud platforms as well as with co-location and on-premises environments. This enables us to provide the best fitting platform and infrastructure software stack based on project requirements and financial considerations. We have dedicated devops and operations teams who are responsible for everything operations and CI related. As the field is constantly changing we invest heavily to stay up to date with all modern tools and practices. We also highly value monitoring and automation and the majority of time spent by a member of the devops team is here. As for the curious developers we highly encourage them to be aware and involved in the operations as this results in better designed products and easier life for both devops and development.