Do you love frontend development and are you good at it? Would you like to build a large-scale & fast evolving app using Angular & TypeScript? Would you like to talk about why we might be the best team for you to join right now?? Curious? Read on!
(Your salary starts from 3300€ per month with restricted stock units and other benefits included. Working in one of our Central Europe offices or from home on a full-time basis.)
What tech stack do we have for you?
- Typescript and Javascript
- Angular
- SCSS/CSS
- NodeJS
- RxJS
- Karma/Jasmine/Cypress
- GIT
About your role and the team:
We are a team of thirteen people at the moment. We cooperate tightly as a single unit on a multitude of tasks and challenges in order to make our application the best to serve our customers’ needs. Since not all of us enjoy tasks with a focus on styling, a subteam of stylers has been formed that takes care of our UI library of low-level components.
We are facing a variety of tasks on our daily basis that fall mostly into three categories - designing and developing new features, maintaining existing features in the underlying codebase and sometimes prototyping new features as POCs.
What we expect of the candidate:
Must have
- advanced TypeScript (or JavaScript with a strong will to switch to TypeScript)
- advanced Angular (or similar component-based framework with a strong will to switch to Angular)
- experience with software design & architecture (be able to propose and implement an effective & efficient solution based on problem definition without detailed instructions)
- The ability to work in project teams effectively, being reliable and communicating clearly.
- A “can-do” attitude
Should have
- experience with developing bigger projects
- At least an intermediate skill with SCSS / CSS (be able to get things done in reasonable quality if your styler colleagues are busy)
Preferably have
- experience with testing (Karma, Jasmine, Cypress)
- experience with RxJS
Nice have
- experience with mentoring less experienced colleagues
How we work:
Our entire engineering team works in 6 week cycles. Each developer is assigned to one or more projects during this cycle and aims to deliver the project together with other project team members from various other teams. In addition to working on projects, we also focus on other tasks - not limited to working on our backlog, providing an L3 support to our client facing colleagues or making improvements to our product through an initiative called “Happy consultants”.
In order to keep our high quality standards, each change in code we do gets reviewed and our automated pipeline builds these changes, runs a series of tests, runs the linter, packages the outputs and deploys them onto a development environment.
We are a team of diverse skill sets - you will need to share your experience and knowledge (during code reviews and ideally also beyond) with other colleagues and help them grow just like we all will help and support you from the minute you join us.
Challenges:
Here are some of the challenges that kept us busy in the past:
- Micro frontend research
- Our application is split up into modules but we are experimenting with the idea of loosening up the coupling even a bit more and splitting our large application into a collection of smaller ones run under a single container application.
- Identify the pros and cons of this approach and what problems will it solve effectively and what other problems it might bring.
- Take into account how this switch potentially affects not the architecture alone but also the execution, deployment and DX.
- Optimizing build performance
- The larger an application gets, the more complex the build becomes. Our application consists of hundreds of components, directives, services, pipes and other functions.
- Find a way to optimise the build in order to make the DX and the pipeline build performance better.
- Optimizing change detection
- Our application aims to deliver a swift interaction experience to its users without the feeling that something is lagging.
- Identify components that are underperforming.
- Analyze their bottlenecks using the profiler.
- Optimize the runtime performance of the problematic code parts.
- Data visualisation
- Our real-time analyses like trends, funnels, reports, and segmentations allow users to gain insights about their data from multiple perspectives. We integrate with external data sources spanning multiple relational databases and big data storage systems.
- Build an interface for users to query data from data sources located outside of the Engagement to build the basis for our analyses and visualizations.
- Create complex data visualizations using the Highcharts library or similar suitable tool.
- Be proactive in proposing solutions which will help users to better understand their data.
- Improve test quality and extend test coverage.
- Extend UI library
- We have created a mature UI library with the goal in mind to unify the look, behavior, and the API of our reusable components. This library already consists of a solid foundation of components but the innovation in the Engagement goes hand in hand with the need to create new components and enhance existing ones.
- Create new reusable components while focusing on clear API, stability, best possible UX and modern browser support.
- Test your component well. Use unit tests to cover all thinkable and unthinkable scenarios your component may go through to make it robust.
- Other than that…
- We work hard to have sustainable code, but we still have some code in our codebase, especially from the early startup era, that was written in haste to keep the business running - you will need to be able to get around in complex code and help us refactor it.
- Automated testing of our code is important to us. You will need to cover your code, help us improve existing test quality and extend overall test coverage - spanning from unit tests, through integration tests to automated e2e tests.