該職缺目前已經停止招募。

Fullstack Engineer (Tokyo Office)

新購買體驗時尚app

日本 東京都 東京都渋谷区道玄坂1-19-9 第一暁ビル6F

工作內容

Styler is looking for a full-stack engineer in a truly international team. Since our business is growing rapidly, we need your help.

This description is not only about what we need, but a description of our daily life, something that you will also face by joining our company. So, what do we do in our daily work?

Most of all we maintain a legacy Ruby on Rails codebase (in the sense of `codebase without tests`) written under pressure and deployed in a monolith. Yes, we know that this is not sexy, but this application is fundamental in our life. It has served us well so far, even though it shows it’s deficiencies. Therefore we see the maintenance of this application as a challenge not as a hindrance. If you think about it this way, that’s great! Then please join us to break it up into microservices, and remove rigidity, fragility, viscosity and immobility in the code.

This doesn’t mean that you will never write new code. E-commerce and social media are fast moving targets especially in Japan so you will always have new ways to interact with the latest technology let it be payments or building and reaching out to an audience. You can help us to integrate QR payment, konbini payment, or AliPay, among other payment options. Or you can help our business partners by integrating with new delivery APIs offered by Yamato Delivery.

But there are plenty other much bigger ideas on our roadmap already.

So in this context what would really help us if you could write unit and integration tests in rspec. So you could help us to tame this codebase and move forward quickly. We are already working on this front, but more help is needed.

So now that you know what we are doing let’s talk a bit about the underlying technology too: how is this showing up in your browser?

We containerize everything so you can set up your working environment in a matter of minutes. We build docker images out of all our important services to make them run locally and in the cloud too. We use docker-compose locally and Kubernetes in the cloud. By the cloud we mean the Google Cloud Platform. So our engineers frequently interact with YAML files, environment variables and we frequently drop in the command line too. You can expect the same in your daily life: we frequently log into the cloud console to monitor, manage, maintain and adjust our cloud services. And by services we mean: GKE / Cloud Storage / Cloud Armor / StackDriver / Logging / Cloud Functions / etc

Yet the story doesn’t end there: we mentioned this is a legacy application, right? We hope to improve that in multiple fronts. While we will move the backend to a microservice direction we also plan to improve the services along the way. We frequently face the consequences of hastily made decisions: we encounter infamous problems like the N+1 problem, tightly coupled code and missing safety precautions. So we put these on the backlog and iterate through them over time.

At the same time, we keep tabs on frontend technology trends and are developing a new SPA in Vue.js. We work with Javascript a lot. We use vue templates, promises, SASS, and webpack all the time and by extension node.js (at least npm) too.
Here are some examples: it really helps if you can make a static import in Javascript but you can quickly change it to a dynamic import. Or if you can set up a proxy in your local environment to prevent CORS restrictions. Or if you understand how a modern web-app is built and deployed into the cloud. But if you have experience in React, Angular or Vue.js, this will not be new for you. Also, we frequently open our browsers to inspect the network communication, to find bottlenecks, slow responses, or check security.

Additionally, we spend significant time improving our PageSpeed score. So, sometimes we have to really understand which part of the CSS codebase needs rendering and which part does not.

By the way, did we mention that we maintain a legacy Rails application? We have jQuery and erb files too. Sometimes we have to fix those too.

But the list doesn’t stop there: let’s talk a bit about our WordPress application. Yes, we know how that sounds. But WordPress is actually our workhorse to write and publish articles on our platform. From time to time we need to go there and make changes in that codebase. It’s smooth sailing though since, like everything else WordPress is also containerized. Although it also helps if you are not afraid of PHP.

This list is getting long by now, but let’s talk a bit more about the infrastructure. We mentioned that you need to drop to the command line from time to time and there is a reason for that. We frequently list and configure nodes, pods, containers, deployments, services from the command line, configure file system permissions, install packages in different operating systems, create new users, drop into the REPL of Rails or something else, push code into remote repositories, deploy services into different cloud environments and monitor those services. We import and export databases and run SQL queries when it’s needed. It helps if you understand how to monitor open ports, configure ip tables or have heard about NAT routing. There are other concepts too, such as SSL/TLS and network security, in which it would be beneficial in being familiar with.

The list still doesn’t end there. There are many things on the roadmap: gRPC, golang, service mesh and others. So, join us; let's embark on learning these news things together.

So, in short, you’ll pitch in on securing our apps, help make them scalable to reach their defined metrics and continuously improve their robustness end to end.

條件要求

This is not simple, we understand that. To help with focusing on the task at hand, we give our engineers the flexibility of choice in whether to work remotely or at the office. While we do accommodate for remote work, we also don’t mind if you come to the office: our location is in the bustling center of Shibuya, by the way. If you like the energy around the office, you will love our location.

These are the facts, but we also have goals of course: we want to provide the best shopping experience to our users. To reach this there is a bumpy road ahead. Our goal is to let other engineers, teams and companies know what the road was like behind us, and in which direction we will head next.. Our goal is to hold study sessions and blog about our daily engineering life and/or organize workshops. If you can help us with that, it will be great!

We are a new team. We try to build an inclusive environment for every person, even when they come from different cultural backgrounds. This is difficult and challenging, but we believe that inclusiveness will make our team’s culture more open minded. There are many cliches that everyone tells. Say what you mean, mean what you say. Listen twice as much as you talk. Follow through and follow up. Promise made, promise delivered. Be a master at your craft. Treat others with respect. There is a reason that these cliches are told so often. If you find these ideas similar to what you hold, then you will find a happy working place in Styler.

公司福利

・優於勞基法的給假,滿半年休5天,滿一年休10天,滿二年休12天,滿三年休14天,之後每年加計1天(限正職)
・不定期會冒出來的零食
・員工進修補助(限正職,試用期過後可使用)

薪資範圍

面議(經常性薪資達4萬元)