Senior Java Developer // Développeur Java principal

Technology/Engineering // Technologie / Ingénierie

Reporting to the Manager of Application Development, the Senior Java Developer is responsible for developing the strategy, architecture, design and execution plan for building next generation applications.

He/She will act as the lead contributor in designing, coding, testing, debugging, documenting and supporting several types of applications consistent with established specifications and business requirements to deliver business value. The ideal candidate is highly motivated and passionate about building the best quality product in the most efficient way by bringing changes and innovations to our applications and architectures.


RESPONSIBILITIES

  • Collaborate cross-functionally to implement the next generation of SSENSE products
  • Scope and refine specifications and requirements based on business and technical needs
  • Write testable, efficient, and reusable code suitable for continuous integration and deployment, respecting best practices and software development guidelines
  • Maintain back-end applications
  • Actively participate in design and code reviews  
  • Write and develop unit testing and functional testing
  • Research and stay abreast of emerging technologies

REQUIREMENTS

  • Bachelor’s degree in Computer Science, Engineering, or a related technical field
  • A minimum of 4 years experience in software development, in a Java 8/9 ecosystem
  • Experience working with database management systems (postgres, mysql, MongoDB)
  • Experience with computer science fundamentals in object-oriented design, data structures, algorithm design, problem solving and complexity analysis
  • Knowledge of professional software engineering practices and best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations
  • Experience defining system architectures and exploring technical feasibility trade-offs
  • Experience building complex software systems that have been successfully delivered to customers
  • Experience working with common Java frameworks/libraries/tools (Spring Boot 2, Hibernate, Maven, Intellij, Tomcat, Jetty)
  • Experience with test-driven development methodology and tools (JUnit, Mokito)
  • Experience with AWS (EC2, SNS, SQS, S3)
  • Experience with CI/CD systems (Jenkins, Travis)
  • Experience with Docker and related systems (Dockerhub, Kubernetes)
  • Experience with application monitoring and reporting systems (New Relic, Datadog, ElasticSearch, Kibana)
  • Experience building systems in a service oriented/microservices architecture
  • Experience working with/building event driven systems
  • Knowledge of caching solutions (Redis, Memcached, Varnish)

SKILLS

  • Ability to adapt quickly within the existing technical environment
  • Capacity to understand current and future business needs and identify opportunities
  • Ability to work with geographically dispersed team
  • Team player with natural ability to build relationships
  • Ability to work in a fast paced technology-driven environment dealing with change and shifting requirements

----------

Relevant du Gestionnaire du développement des applications, le Développeur Java principal est responsable de développer la stratégie, l’architecture, le design et le plan d‘exécution pour bâtir des applications de prochaine génération. Il/Elle agira à titre de contributeur senior dans le design, le codage, les essais, le débogage, la documentation et le soutien de divers types d’applications en conformité avec les spécifications établies et les exigences d’affaires afin de fournir une valeur commerciale. Le candidat idéal est hautement motivé et passionné par la création d’un produit de la meilleure qualité de la façon la plus efficace, tout en apportant des modifications et de l’innovation à nos applications et nos architectures.


RESPONSABILITÉS

  • Collaborer avec les différents départements pour mettre en oeuvre la prochaine génération de produits SSENSE
  • Évaluer et épurer les spécifications ainsi que les exigences selon les besoins techniques et d’affaires  
  • Écrire du code testable, efficace et réutilisable convenant à l’intégration et le déploiement continue qui respecte les meilleures pratiques ainsi que les directives de déploiement de logiciels  
  • Maintenir les applications back-end de SSENSE
  • Participer activement aux revues de code et de conception
  • Développer des tests unitaires et des tests fonctionnels
  • Rester à l'affût des dernières technologies et des tendances de l’industrie

EXIGENCES

  • Baccalauréat en en Informatique, Ingénierie, ou un domaine technique connexe
  • Un minimum de 4 années d’expérience en développement de logiciel, dans un écosystème Java 8/9
  • Expérience avec des systèmes de gestion de base de données (postgres, mysql, MongoDB)
  • Expérience avec les principes fondamentaux d’informatique en conception orientée objet, structures de données, conception d’algorithmes, résolution de problèmes et l’analyse de complexité
  • Connaissance des pratiques d'ingénierie logicielle professionnelles et des meilleures pratiques pour le cycle de vie complet de développement de logiciels, incluant les normes de codage, les révisions de code, la gestion du code source, les processus de construction, les tests et les opérations
  • Expérience en définition d’architectures de systèmes et en exploration des compromis en termes de faisabilité technique
  • Expérience en conception de logiciels complexes qui ont été livrés aux clients avec succès
  • Expérience avec les infrastructures/librairies/outils Java communs (Spring Boot 2, Hibernate, Maven, Intellij, Tomcat, Jetty)
  • Expérience avec la méthodologie et les outils de développement piloté par tests (JUnit, Mokito)
  • Expérience avec AWS (EC2, SNS, SQS, S3)
  • Expérience avec les systèmes d’intégration/livraison continue (Jenkins, Travis)
  • Expérience avec Docker et les systèmes connexes (Dockerhub, Kubernetes)
  • Expérience avec les systèmes de contrôle d’applications et de rapports (New Relic, Datadogs, ElasticSearch, Kibana)
  • Expérience avec les systèmes distribués et les architectures microservices
  • Expérience de travail/conception avec les systèmes orientés événements
  • Connaissance des solutions de cache (Redis, Memcached, Varnish)


COMPÉTENCES

  • Capacité à s’adapter rapidement au sein d’un environnement technique existant
  • Capacité à comprendre les besoins d’affaires présents et futurs et identifier des opportunités
  • Esprit d’équipe et fortes compétences relationnelles
  • Capacité à travailler avec une équipe géographiquement dispersée
  • Habileté à travailler dans un environnement axé sur la technologie au rythme rapide et à affronter des besoins changeants

Apply