Roles and responsibilities
We are seeking an experienced Senior Full Stack Developer to join our team. The ideal candidate will possess strong technical skills and be passionate about delivering high-quality software solutions in an agile environment. You will be working on both frontend and backend technologies, ensuring a seamless user experience, high performance, and system scalability.
Key Responsibilities
- Develop and maintain responsive, dynamic web applications with a focus on performance and user experience.
- Collaborate with design teams to integrate user interfaces with backend services using industry-standard tools.
- Design and implement backend services using modern frameworks and architectures.
- Ensure the scalability, maintainability, and security of applications.
- Participate in agile project delivery, including sprint planning, daily stand-ups, and retrospectives to ensure timely and efficient delivery of features.
- Collaborate with cross-functional teams to meet business requirements and deliver high-quality solutions in alignment with the product roadmap.
Frontend
Skills and Qualifications:
- Proficiency in Angular 14+ for dynamic web applications.
- Experience with Tailwind CSS or PrimeNG for responsive and modern design.
- Strong understanding of Bootstrap, JavaScript, and jQuery.
Backend
- Expertise in developing APIs with ASP.NET Core Web API and implementing Clean Architecture.
- Proficient in Entity Framework, SQL Server, and CQRS with the Mediator pattern.
- Experience with JWT Authentication and Redis for caching.
Design Collaboration
- Familiarity with design handoff tools such as Figma, Sketch, or Adobe XD to seamlessly integrate frontend and backend components.
Performance & Responsiveness
- Demonstrate a strong commitment to optimizing the performance, responsiveness, and overall user experience of web applications.
Recommended Skills
- DevOps and CI/CD:
- Proficiency in Azure DevOps, Jenkins, GitLab CI/CD, and GitHub Actions for continuous integration and delivery.
- Experience with Docker and Kubernetes for containerization and orchestration.
- Familiarity with Terraform or Ansible for infrastructure as code (IaC).
- Microservices:
- Expertise in gRPC for efficient inter-service communication.
- Experience with RabbitMQ for event-driven architectures and messaging.
- Authentication and Authorization:
- Strong knowledge of OAuth 2.0, OpenID Connect (OIDC), Keycloak, and SAML.
- Experience with IdentityServer for secure authentication and authorization.
- Familiarity with Auth0 for managing authentication processes.
- Logging and Monitoring:
- Experience with the ELK Stack (Elasticsearch, Logstash, Kibana) and monitoring tools such as Prometheus or Grafana.
- Databases:
- Expertise in MongoDB as a NoSQL solution and PostgreSQL for relational database management.
- Real-Time Communication:
- Experience with SignalR for implementing real-time data updates, collaborative applications, and streaming features.
- Agile Project Delivery:
- Proven experience working in agile environments, particularly with Scrum or Kanban frameworks.
- Actively participate in sprint planning, daily stand-ups, sprint reviews, and retrospectives.
- Collaborate closely with product owners, designers, and team members to ensure high-quality, iterative software development.
Desired candidate profile
1. Front-End Development
- UI/UX Design Collaboration: Work closely with UI/UX designers to build user-friendly, responsive, and visually appealing interfaces.
- Responsive Design: Ensure the application works seamlessly on various devices, including desktops, tablets, and mobile phones.
- Frontend Technologies: Mastery of frontend technologies like:
- HTML5/CSS3: For structuring and styling web pages.
- JavaScript: Proficient in writing interactive, client-side logic.
- React.js/Angular/Vue.js: Experience with modern frontend frameworks for building dynamic web applications.
- TypeScript: Knowledge of TypeScript for type safety and enhanced JavaScript development.
- SASS/LESS: Preprocessors to write more maintainable and efficient CSS.
- Webpack/Babel: Familiarity with bundlers and compilers for optimizing front-end assets.
2. Back-End Development
- Server-Side Logic: Develop the core logic that handles data processing, authentication, API calls, and integrations.
- Back-End Languages: Proficient in one or more server-side programming languages like:
- Node.js (JavaScript/TypeScript)
- Java (Spring Boot)
- Python (Django, Flask)
- Ruby (Rails)
- PHP (Laravel, Symfony)
- C# (.NET)
- API Development: Build and maintain RESTful APIs and GraphQL APIs for communication between the front-end and back-end.
- Authentication & Authorization: Implement secure user authentication (OAuth2, JWT) and authorization mechanisms.
3. Database Management
- SQL Databases: Experience with relational databases like MySQL, PostgreSQL, and SQL Server.
- NoSQL Databases: Familiarity with NoSQL databases such as MongoDB, Cassandra, or Redis.
- ORMs: Use Object-Relational Mappers (e.g., Sequelize for Node.js, Hibernate for Java) to interact with databases more efficiently.
- Database Design: Ability to design schemas and optimize complex queries for performance.
4. Cloud & Deployment
- Cloud Platforms: Experience with cloud platforms such as AWS, Azure, Google Cloud, and using their services like EC2, Lambda, S3, RDS, etc.
- CI/CD Pipelines: Design and implement Continuous Integration/Continuous Deployment (CI/CD) pipelines for automated testing and deployment (using tools like Jenkins, GitLab CI, CircleCI).
- Containerization: Proficient with Docker and container orchestration tools like Kubernetes for building scalable and maintainable applications.
- DevOps Practices: Collaborate with DevOps teams for infrastructure management, including configuration management tools like Terraform and Ansible.
5. Version Control and Collaboration
- Git: Mastery of Git for version control, including branching, merging, and working with collaborative code repositories on platforms like GitHub, GitLab, or Bitbucket.
- Agile Methodologies: Experience working in Agile teams, contributing to sprint planning, daily stand-ups, and code reviews.
6. Performance Optimization
- Front-End Optimization: Use techniques like lazy loading, minification, and code splitting to optimize front-end performance.
- Back-End Optimization: Optimize server performance through load balancing, caching strategies (e.g., Redis, Varnish), and efficient database queries.
- Profiling & Debugging: Ability to use performance profiling tools to identify bottlenecks and optimize the application (e.g., Chrome DevTools, New Relic).