COLUMNS
Tech stack explanation
Front end developers
FlagshipLLC has 2 types of front end development:
- Theme development
- Apps front end development
Theme development:
Our theme developers must know Javascript, Jquery, HTML, CSS/SCSS (responsive design) and Liquid, which is a Shopify rendering language, as a basic. More advanced developers recognize performance issues, analyze them and improve them, always keeping in mind that the theme is the main face of a site, so it is quite important to keep things simple but nice for the customers. They also understand how to configure Webpack for bundling performance and Buddy, to be able to build pipelines for our Continuous Integration and Deployment system.
Apps front end development:
Our apps front end developers must know Javascript, React, HTML and CSS/SCSS. In most of the cases we use Polaris as our React components library which also provides us with Shopify like styling. I18n is a plus too, as many of our apps have an English/Japanese version, some others we are extending them to Italian/French/Spanish too.
Overall, front end developers need to develop bulletproof code against the different actions the customers can take, think about the performance, and provide a good interface to make the user experience nice and clean. Japan is a fast market, so we need to be continuously improving our techniques.
Back end developers
Our tech stack in back end development is broader than front end, a bit more complex but also interesting, it includes batch scripts, AWS services development, AWS services configuration and Shopify apps development.
Flagship’s older tech stack was based on Ruby and RoR, but currently we are focusing more on NodeJS. Why are we changing the main backend language? So it is easier for people to be “full stack developers”, meaning, we can use the same language for front end development and back end development.
Between the NodeJS web development frameworks, we chose NestJS, really loved the architecture NestJS provides along with the full Typescript support. So far it has proved us that we can create complex Shopify apps with no problems.
Our back end developers have been working a lot with AWS services in the last couple of years. Using services like Lambda and Cloudfront, we could improve the development speed and reduce the maintenance needed for our Shopify services. Another example, even though Heroku is our main PaaS to host web apps, when we need more complex infrastructure or lower latency (speed is critical), we prefer AWS Elastic Beanstalk or EC2, as these services have regions in Tokyo and they provide a better flexibility. So it’s important that our developers know in which cases they should use each service and why?