V

3D Software Developer

VRIFY
Full-time
Remote
Canada, Canada
$120,000 - $150,000 USD yearly

About Us:

VRIFY is positioned at the forefront of the mining industry's transformation, leveraging cutting-edge AI to revolutionize mineral exploration. With a focus on AI drill targeting, VRIFY is expanding its capabilities by synthesizing vast amounts of geological information. This integration enhances the precision and efficiency of exploration strategies, offering our clients innovative solutions that depart from traditional methods.

Our mission extends beyond technological advancement. We are committed to transforming how mining companies engage with investors, aiming to foster a more transparent and accountable mining investment ecosystem. VRIFY's technology enables immersive 3D and 360° presentations that provide investors with a vivid and detailed visual context, making complex geological data accessible and engaging.

 

As we continue to refine our AI-driven solutions, VRIFY remains dedicated to driving innovation and excellence in the mining sector, ensuring our clients and investors are well-equipped to succeed in a rapidly evolving market.


Role Overview

The 3D Team's 3D Software Developer II is a key contributor responsible for developing and delivering high-quality 3D applications. By applying their in-depth knowledge of 3D development principles and best practices, 3D Software Developer IIs play a pivotal role in building innovative features, ensuring code quality through effective testing and code reviews, and fostering a collaborative and knowledge-sharing environment within the team.


Career ladder: Senior Software Developer

Business Title: 3D Software Developer II

Department: Development

Team: 3D

Level: IC3- Intermediate Level


Role Profile:

Primary Responsibilities and Duties:

  • Work closely with 3D Technology Lead to understand and participate in architectural decisions.
  • Collaborate with team members, including mentoring junior developers, to foster a collaborative and knowledge-sharing environment.
  • Participate actively in requirements gathering, translating user needs into clear technical specifications.
  • Implement clean, efficient, well-documented, and maintainable code, utilizing appropriate data structures and algorithms.
  • Design, implement, and automate various testing strategies (unit & integration) to ensure comprehensive test coverage.
  • Analyze test results, identify areas for improvement, and suggest enhancements to testing processes.
  • Actively participate in code reviews, providing insightful feedback and promoting code quality.
  • Take ownership of bug fixes and maintenance tasks for assigned features, collaborating with QA teams when required.
  • Champion secure coding practices and stay updated on emerging threats to mitigate security vulnerabilities.
  • Continuously learn and explore new unity technologies and best practices, sharing knowledge with the team.
  • Effectively communicate technical concepts to both technical and non-technical audiences.
  • Manage time effectively, prioritize tasks, and meet project deadlines while maintaining focus.
  • Demonstrate a positive attitude, professionalism, and dedication to achieving team and company goals.


Education/Work Experience

  • Bachelor's degree in Computer Science or related field (or equivalent experience).
  • 4-6 years of relevant experience.


You should have:

  • Expert understanding of fundamental computer science concepts (data structures, algorithms, object-oriented programming).
  • Expertise in Unity
  • Ability to design and implement responsive and real time graphics.
  • Experience with performance optimization techniques and accessibility considerations.
  • Working knowledge of the software development lifecycle (SDLC) including requirements gathering, design, coding, testing, deployment, and maintenance.
  • Solid understanding of different testing methodologies (unit & integration).
  • Deep understanding of WebGPU/Direct3D/Metal technologies and their interaction with the GPU.
  • Advanced understanding of clean code principles and optimization techniques
  • Expert in core Git functionalities with advanced troubleshooting skills
  • Champions secure coding practices and stays updated on emerging threats
  • Applies unit testing principles and best practices to write comprehensive tests
  • Leads code reviews, providing insightful feedback to improve code quality
  • Familiarity with Agile methodologies (Kanban, Scrum).
  • Communication (written & verbal), teamwork & collaboration (including mentoring), productivity, learning, time management, and positive attitude/work ethic.


Core Competencies

Academic:

  • Understanding of fundamental computer science concepts: Data structures, algorithms, algorithms analysis, object-oriented programming, operating systems, computer architecture, networking.
  • Familiarity with Agile methodologies: Kanban, Scrum.
  • Basic understanding of deeper GPU foundational concepts.


Practical:

  • Working knowledge of the software development lifecycle (SDLC):
    • Actively participates in requirements gathering, understanding user needs and translating them into technical specifications.
    • Independently develops designs for assigned features, adhering to architectural guidelines.
    • Writes clean, efficient, and well-documented code.
    • Designs and executes comprehensive unit and integration tests.
    • Participates in code reviews and contributes to improving code quality.
    • Understands deployment processes and participates in deployments with minimal supervision.
    • Takes ownership of bug fixes and maintenance tasks for assigned features.
  • Advanced experience of working in a collaborative environment:
    • Demonstrates strong collaboration skills and actively facilitates teamwork within the group.
    • Effectively mentors junior developers and guides them on collaborative practices.
    • Takes initiative to resolve conflicts and build consensus within the team.
    • Proactively identifies opportunities for improved collaboration and communication within the team and across departments.
  • Solid understanding of different testing methodologies:
    • Solid understanding of unit and integration testing principles and application.
    • Designs and implements various testing strategies for assigned features.
    • Automates test cases using relevant frameworks and tools.
    • Collaborates with QA teams to ensure comprehensive test coverage.
    • Analyzes test results and suggests improvements to testing processes.
  • Problem-solving:
    • Thinks creatively and explores multiple solutions for complex problems.
    • Designs and implements solutions for advanced coding challenges, demonstrating efficiency and best practices.
    • Mentors junior developers on effective problem-solving approaches.
    • Collaborates with 3D Technology Lead to solve complex problems, effectively integrating different perspectives.


Technical Skills

  • Deep understanding of Unity and it’s interaction with the GPU:
    • Expertise in UI toolkit and other libraries.
    • Ability to design and implement responsive and user-friendly UIs.
    • Experience with performance optimization techniques and accessibility considerations.
    • Collaboration with backend developers to ensure seamless integration.
  • Advanced understanding of clean code principles and various optimization techniques:
    • Writing highly readable and maintainable code, effectively utilizing appropriate data structures and algorithms.
    • Documenting code thoroughly using comments and other best practices.
    • Analyzing code complexity and proactively identifying and implementing optimizations for performance and resource usage.
    • Mentoring junior developers on writing clean and efficient code.
  • Solid understanding of core Git functionalities like branching, merging, and conflict resolution:
    • Grasping core Git functionalities like branching, merging, and conflict resolution.
    • Managing tasks independently, utilizing branching strategies and resolving basic conflicts.
    • Collaboration with team members and seeking guidance for advanced features and troubleshooting.
  • Solid understanding of common security vulnerabilities and their mitigation strategies:
    • Grasping common security vulnerabilities and their mitigation strategies.
    • Implementing secure coding practices to prevent common vulnerabilities and staying updated on emerging threats.
    • Participating in security discussions and collaborating with the rest of team to address concerns.
  • Solid understanding of unit testing principles and best practices:
    • Grasping unit testing principles, best practices, and different assertion types.
    • Independently writing comprehensive unit tests covering various functionalities.
    • Collaboration with QA teams and mentoring junior developers on effective unit testing practices.
  • Solid understanding of code review principles and their importance for code quality:
    • Grasping key code review principles and their impact on code quality.
    • Providing well-rounded feedback on code logic, readability, maintainability, and potential issues.
    • Respectfully expressing opinions and considering alternative perspectives, fostering a collaborative review environment.


Professional Skills:

Communication:

  • Grasps the importance of tailoring communication to different audiences and purposes.
  • Effectively communicates technical concepts to both technical and non-technical audiences, adjusting language and level of detail as needed.
  • Clearly articulates work progress, challenges, and solutions during team meetings and discussions.
  • Asks insightful questions that demonstrate a good understanding of the project and technical concepts.
  • Confidently presents technical information in written reports and documentation.

Teamwork and Collaboration:

  • Seeks diverse perspectives.
  • Fixes issues within own team and functional area.
  • Communicates work effectively.
  • Collaborates with project teammates and drives results.

Productivity:

  • Can define and take ambiguous problems and form logical solutions quickly.

Learning:

  • Actively seeks opportunities to expand knowledge and improve technical skills.
  • Independently researches and learns new technologies relevant to assigned tasks and projects.
  • Proactively identifies areas for personal and professional development.
  • Effectively utilizes learning resources like online courses, documentation, and mentorship opportunities.

Time Management:

  • Prioritizes tasks and manages time effectively to meet deadlines.
  • Minimizes distractions and maintains focus during work periods.

Positive attitude and work ethic:

  • Demonstrates enthusiasm, professionalism, and dedication to the team and company.


What We Offer:

  • Health Benefits: Extensive coverage, medical, dental, and vision plans.
  • Paid Time Off (PTO): Including vacation days, sick days, personal days, public holidays plus extra time during holiday season.
  • Work-Life Balance: Flexible work hours, remote work options plus option to use work space in Downtown Vancouver (free snacks & gym).
  • Professional Development: Career growth program to help our team unlock their potential and advance their career.
  • Performance Bonuses
  • Wellness Programs: Fitness allowance, work from home allowance, mental health support.
  • Retirement Plan (RRSP/DPSP)


This job description has been written to provide an accurate reflection of the current job and to include the general nature of work performed. It is not designed to contain a comprehensive detailed inventory of all duties, responsibilities, and qualifications required of the employees assigned to the job. Management reserves the right to revise the job or require that other or different tasks be performed when circumstances change. 


Please note that the successful candidate for this role will be subject to a background check.


We strive to create an environment where every employee feels valued, respected, and empowered regardless of their race, gender, age, religion, identity, or experience. We understand that unique perspectives and backgrounds bring invaluable insights and contribute to the richness of our culture and the effectiveness of our solutions. If you have a disability or any special needs that we might need to accommodate, please let us know.