Senior Software Developer

Engineering Vancouver, British Columbia


Description

Position at j2 Cloud Services

FuseMail Senior Software Developer

Job Summary

Reporting to the Manager of Software Development, you are a seasoned developer involved in designing and developing service oriented software for the Cloud Security division of j2 Cloud Services. You have a proven track record developing robust distributed network services in a Unix environment, using the best practices in building software.

You will be working on a range of products that encompass anti-spam, anti-virus, advanced threat protection, mail delivery, encryption and large archived storage that are used by millions of users. Excellent communication skills, both spoken and written are a must, as you will be working closely with product management and key stakeholders to create technical requirements and design artifacts, and participating in design and code reviews. A keen focus on building quality software along with a DevOps mindset will help you achieve success in this role.

You are a self-motivated developer with proven experience and knowledge in a number of the following areas:

  • Java, C and/or Golang
  • RESTful APIs and micro services
  • TTD methodology
  • Security systems; encryption, web and spam filtering
  • MySQL, Redis, NSQ
  • Full-text search engines (Sphinx, Lucene, Solr)
  • Distributed and high availability systems
  • Container orchestration platforms (Docker, Nomad, Consul, Kubernetes)
Job Duties
  • Participate in an Agile development environment / Scrum team
  • Develop security and archiving services in Go, C and/or Java
  • Participate as lead developer on projects
  • Participate in product development meetings and design reviews
  • Participate in planning and estimation meetings
  • Perform per code reviews
  • Work to project schedules and commitments; track activities and progress using Jira
  • Engage in maintenance and support activities; debug and resolve defects, and deliver fixes
  • Work closely with Systems Operations to troubleshoot production issues and address scalability and performance concerns
  • Mentor and coach junior team members

Job Requirements and Experience

  • BSc or MSc in Computer Science, Computer Engineering or equivalent.
  • A minimum of 6 years of professional software development experience with increasing responsibility in technical leadership
  • Solid practitioner of software craftmanship; highly disciplined in OO design and coding, and unit testing
  • Proficient in Java, C and/or Golang
  • Proficient in Git and Unix systems
  • Proficient in SQL and relational databases such as MySQL
  • Team leading experience is a plus
  • Test automation experience is a plus
  • Experience on Python and Unix shell scripting is a plus
  • Experience with the Docker ecosystem is a plus
  • Experience with CI/CD tooling (Jenkins, Bamboo, Nomad, Consul, Kubernetes) is a plus
  • Experience in building dashboard monitoring of microservices is a plus
  • Self-starter with the ability to work both independently and as part of a team on multiple projects in a fast-paced development environment
  • Attention to detail and a passion for quality
  • Strong communication skills in English (oral, written and presentation).