About the job
We are looking for someone to work closely with our product owners to help shape and build the future of our tools and products.
You'd spend your time developing new and improving existing projects, for example
- Building a new backoffice applications from scratch
- Implementing different strategies for existing products and tools based on requirements
We'd also do a ton of work together like:
- Architecting and developing new features
- Prototyping and evaluating potential implementations
You would spend a lot of time programming, brainstorming on hard problems, and prototyping different ideas. You wouldn't be just churning through tickets in the backlog — you'd be helping to design entirely new products, figuring out what exactly we're even building and why.
While being a somewhat big company, we're split into small teams which means that even though we each have our areas of expertise, we all wear many hats. We're looking for a programmer, but you'd also help out with things like:
- Managing Git VCS issues and fixing bugs
- Writing and improving the documentation for the products and tools we make
- Helping customer support answer customer questions
- Troubleshooting problems during live communication with other teams
If you've ever maintained a large project, working with us carries a lot of the same responsibilities.
Here are a few recent projects you might have worked on if you were already part of the team:
- Building next version of our products from scratch with latest technologies
- Building a performance testing architecture and laying the groundwork that will be used company‐wide
- Refactoring the actual production application to simplify and speed up performance without any down‐time
About you
We're looking for someone with very strong front‐end skills who is familiar with a modern component framework like NextJS, React or Vue, with experience in a back‐end framework like Express being a big plus. More important than specific technical skills though is that you're a strong problem solver who loves to learn — we're not experts in everything and we don't expect you to be either.
You know great architecture and design when you see it and you know when something isn't up to par. Details matter to you, and if something is off — you will go to the end of the universe to figure out why.
We just care about what you can do and how you do it. We're all just makers and tinkerers, so as long as you love to build awesome stuff, you'll fit right in.
Here are some of the technologies we work with day‐to‐day right now:
- Our main project that we just starting will be written in NextJS and running on NodeJS
- We will use TailWindCSS to make our UI look nice and easy to build
- Redis is powering our cache, but it is also used as a "database" for some projects.
Some of the challenges that we expect to face on that project include:
- Designing user‐facing APIs for client‐facing applications that are extremely flexible, powerful, and performant, but also easy to get started with and to maintain
- Coming up with a flexible approach that supports integration with multiple external services, while still being strict enough to reduce the developer (almost human) error
- Building the interactive components with simplicity in mind, including correct use of SOLID and other core development principles
- Connecting to various restful APIs
List of skills we think you need
- Strong knowledge of JavaScript
- Typescript
- OOP and design patterns, separation of concerns - controller, services, repository patterns
- Microservices architecture
- Good knowledge of HTTP and REST
- Bash and Linux in general, SSH
- Git
- Markdown (for documentation)
- Core frontend technologies:
- Next.js, React, hooks
- Redux
- styled components
- npm (npm install or test is NOT enough)
- babel
- eslint
- Bundlers (we use Webpack)
- TailWindCSS
- Core backend technologies:
- Node.js / Express
- Redis
- OpenAPI
- Varnish or HTTP accelerators in general
List of skills we'd love you to have
- Redis sentinel
- CICD with Gitlab or Jenkins
- TDD
- Docker & docker compose knowledge, Kubernetes
- Caching: cache replication, ttl, poisoning, hit and miss, debugging
- Domain Driven Design
- Experience with Kibana and Grafana
Can't wait to hear from you!