Front-end Developer (Micro-services)
- Full-time
Company Description
Arηs is a fully independent group of companies specialized in managing complex IT projects and systems for large organisations, focusing on state-of-the-art software development, digital trust, cloud, data science, mobile development, machine learning and infrastructure services.
We are composed of 16 entities across 8 countries worldwide that are unified by the Arηs Group, with more than 2500 consultants. This corporate structure enables us to respond quickly to market changes and customer requests, and to communicate and make decisions without layers of bureaucracy.
Established in 2016, the Greek entity Arηs Developments Hellas aims to extend Arηs Group activities dedicated to the European market providing high-quality services in Software Development, covering the entire application development lifecycle.
Job Description
- Identifying requirements for micro frontends: Collaborate with business stakeholders to determine the necessary functional and non-functional requirements for each micro frontend component and required services.
- Documenting requirements for micro frontends: Create detailed documentation for each
identified micro frontend, including functional descriptions, expected behaviours, and
dependencies. - Designing micro frontend solutions: Assist the architecture team in designing the architecture of
the micro frontends, including integration with backend services (microservices architecture),
APIs (SAO architecture), and databases. - Creation and maintenance of documentation: Ensure that documentation is created for every
micro frontend, including design, API specifications, deployment guidelines, and scalability
considerations. This documentation will be updated throughout the project lifecycle. - Identifying risks and issues: Proactively identify potential risks related to micro frontend
solutions, integration, performance, scalability, and security, document them and work on mitigation strategies. - Creating a list of micro frontends: Define which parts of the monolithic frontend should be
converted into independent micro frontends. - Breaking down development tasks: Prioritize and allocate development tasks for the creation of
micro frontends, ensuring they align with business needs. - Identifying shared data: Ensure that the frontend is designed to work with shared data, while
maintaining separation between microservices. - Creating documentation: Prepare or support the preparation of HLA, HLD and development of
LLD Documentation, or equivalent Agile documentation (e.g., user stories) following client's
templates. - Analyzing current performance: Use performance measurement tools to assess the performance
of the current monolithic application. - Identifying optimization opportunities: Examine the codebase, network requests, and server
usage to identify bottlenecks. Collaborate with backend teams to address potential server-side
performance issues. - Implementing optimizations: Apply solutions such as lazy loading, caching, code splitting, and
other techniques to improve performance. - Testing performance: Conduct pre- and post-optimization tests to measure improvements.
- Ensuring security: Implement security best practices to mitigate performance risks related to
security issues, such as preventing denial of service (DoS) attacks, ensuring secure APIs, and
following OWASP TOP 10 standards for secure coding. - Creating technical documentation: Provide clear and comprehensive documentation on the
architecture, setup, and usage of micro frontends. - Conducting code reviews: Ensure that the development team follows coding standards, best
practices, and performs adequate testing. - Continuous feedback: Provide ongoing feedback during code reviews and ensure continuous
improvement in the code quality. - Maintaining documentation: Ensure that documentation is maintained throughout the project
lifecycle. - Supporting requirement analysis: Assist the business and architecture teams in analyzing
frontend requirements from a technical perspective. - Providing UI/UX guidance: Offer suggestions and feedback on UI/UX design and usability-based
on the technical implementation. - Ensuring alignment between frontend solutions and business requirements: Support the
architecture and development teams to ensure the frontend solutions meet business objectives
while maintaining adherence to technical standards and design patterns. - Assisting in identifying technical challenges: Work with the development team to identify and
address any technical challenges that arise during the integration of UI components into the
frontend. - Documentation of business requirements: Ensure that the business needs are fully understood
and translated into functional UI/UX requirements. - Coordinating with backend developers: Work closely with backend developers to define API
endpoints and shared data structures. - Ensuring frontend functionality: Ensure that the frontend receives the necessary data and
functionality from backend services, displaying it correctly to the end-users. - Aligning on response format and structure: Align with backend teams on the format and
structure of service responses to ensure consistency across both frontend and backend. - Collaborating on integration points: Collaborate with backend teams on integration points to
ensure smooth and efficient data exchange between frontend and backend. - Conducting joint testing sessions: Participate in joint testing sessions to validate frontend backend
integration and address any issues.
Qualifications
- Bachelor's degree plus at least 5 years of professional experience in software development.
- Minimum 5 years of experience, including the responsibility to build complex SPA’s for large organizations.
- Deep knowledge of building Web components (HTML5/generic APIs) based applications.
- Practical knowledge of micro frontend architecture and SPA.
- Deep knowledge of JavaScript, including frameworks such as React/Angular
- Knowledge of working with GraphQL, WebSockets and TypeScript Experience with lazy loading and RWD.
- Knowledge of Git Workflows.
- Experience in building offline (mobile) applications with local base synchronization and conflict resolution support.
- Experience as a Senior Lead Developer or equivalent.
- Knowledge of immutable state management (e.g. Redux library)
- Knowledge (preferred experience) in migrating from monoliths to micro frontend architectures (horizontal & vertical patterns)
- Practical knowledge of working in a CI / CD environment based on Azure DevOps.
- Knowledge of Domain Driven Design.
- Ability to create automated, unit and integration tests.
- Experience in building observability features for micro frontends.
- Secure code development aligned with secure code development best practices e.g. OWASP TOP 10.
- Works independently and guides junior staff
- Writes specifications, concept documents, end user and technical documentation;
- communicates effectively with stakeholders regarding technical and user requirements topics
- Well-developed interpersonal skills.
- Ability to work in a team, demonstrating strong communication skills and a willingness to share knowledge.
- Previous experience working in an Agile team (SCRUM).
- SOLID understanding of best practices, processes and patterns in software development
- Designing and implementing solutions based on micro frontend architecture
- Creating technical documentation and conducting code reviews.
- Working with backend and frontend teams to deliver consistent solutions.
- Optimizing applications for performance and scalability.