Closed listing
Concurrency and Parallel Processing Instructor (Sessional Faculty)
- Vancouver, BC, Canada
Full-time
This opening has closed.
The original listing is kept below for reference.
Job details
- Job type
- Full-time
- Closing date
- Experience
- 3+ years of professional experience in software development involving concurrency, multi-threading, or parallel processing
- Posting language
- English
- Posted
Similar jobs hiring now
No close matches right now. Try another title or a wider area.
Search current openingsOriginal job description
Archived listing. The details below describe a past opening.
LaSalle College Vancouver offers a variety of design-based programs that respond to professional demands. Thanks to our reputation and continuous industry involvement, our experienced and dynamic teachers are passionate about providing world class instruction – both theoretical and practical – to our students.
Position Summary
LaSalle College Vancouver is seeking a Concurrency and Parallel Processing Instructor with strong technical and professional experience in multi-threaded, concurrent, and parallel software development. The ideal candidate brings a solid understanding of modern multi-core architectures, concurrency paradigms, and performance-oriented software design, along with the ability to mentor students through complex technical concepts in an accessible and practical way.
The successful candidate thrives in a dynamic, fast-paced academic environment, enjoys solving technical challenges, and works collaboratively with students and faculty. They possess an instinctive understanding of Media Arts and Game Programming learners and are able to communicate abstract concurrency concepts clearly through hands-on demonstrations, assignments, and projects.
Skills
Reporting to the Program Director of Media Arts, the instructor will teach Concurrency and Parallel Processing, where students develop skills in:
- Multi-threaded programming and synchronization techniques
- Concurrency vs. parallelism concepts
- Threading, locks, race conditions, and deadlock prevention
- Parallel algorithm design patterns and data pipelines
- Asynchronous vs. synchronous programming models
- Performance optimization for multi-core systems
- Concurrency considerations in game engines and real-time applications
- Teaching & Curriculum
- Teach a minimum of one and a maximum of five sections* per term, as assigned by the Program Director and/or Chief Academic Officer (Sections are subject to change)
- Teach assigned Concurrency and Parallel Processing courses following established outlines, learning outcomes, and curriculum standards
- Plan, prepare, and deliver lectures, labs, and project-based learning activities on schedule
- Create a student-centered, inclusive, and engaging learning environment that supports diverse learning styles
- Guide students through hands-on implementation of:
- Multi-threaded programs
- Synchronization mechanisms (locks, mutexes, condition variables)
- Parallel algorithms and design patterns
- Concurrent systems used in game and real-time software development
- Demonstrate best practices for:
- Thread-safe code design
- Debugging race conditions and deadlocks
- Performance profiling and optimization
- Cross-platform concurrency considerations
- Provide structured, constructive feedback on assignments, midterm projects, and final projects
- Model professional software development practices, including:
- Code organization and documentation
- Version control workflows
- Maintainable and scalable system design
- Uphold academic and attendance policies, including timely grading and accurate record keeping
- Communicate effectively with students using approved communication platforms and provide timely academic support
- Demonstrate an ongoing commitment to teaching excellence, reflective practice, and continuous professional development
- Student Mentorship
- Support students in developing a strong conceptual and practical understanding of concurrency and parallel processing
- Encourage analytical thinking, problem decomposition, and performance-aware design
- Mentor students through complex technical challenges, including debugging and optimization of concurrent systems
- Support students in building portfolio-ready technical projects, including parallel game engine modules
- Chief Academic Officer
- Program Director / Program Lead / Program Coordinator
- Academic Advisors
- Faculty
- Students
- Master’s degree in computer science, Software Engineering, Game Programming, or a related field, or equivalent industry experience
- 3+ years of professional experience in software development involving concurrency, multi-threading, or parallel processing
- Strong knowledge of:
- Concurrency and parallel programming concepts
- Multi-core an d multi-processor architectures
- Threading models and synchronization mechanisms
- Proficiency in C++ and experience with concurrency libraries and tools
- Experience developing or optimizing performance-critical or real-time systems (games, simulations, engines, or similar)
- Ability to clearly communicate complex technical concepts to learners new to concurrency programming
Preferred Qualifications
- Experience with:
- Game engines or real-time systems
- Parallel algorithm design patterns
- Asynchronous programming models
- Cross-platform development
- Prior teaching, mentoring, or technical training experience
Equity and diversity are vital to achieving academic excellence. A welcoming and inclusive community helps amplify voices that have historically been underrepresented or silenced. We actively encourage applications from individuals belonging to groups that have experienced marginalization, as outlined in the B.C. Human Rights Code. This includes, but is not limited to, individuals based on sex, sexual orientation, gender identity or expression, racialization, disability, political belief, religion, marital or family status, age, and/or identity as a First Nations, Métis, Inuit, or other Indigenous person.
If you, or someone in your network, is interested in pursuing these exciting career opportunities, please submit a PDF compatible resume along with a cover letter that contains the expectations.
We would like to take this opportunity to thank all applicants in advance but only those applicants who meet the specific job requirements will be contacted.
More about this job
Responsibilities
The instructor will teach Concurrency and Parallel Processing courses, guiding students through hands-on implementation of multi-threaded programs and parallel algorithms. They will create an engaging learning environment and provide structured feedback on student projects.
Requirements
Candidates must have a Master's degree in a relevant field or equivalent industry experience, along with at least 3 years of professional experience in software development involving concurrency. Strong knowledge of concurrency concepts and proficiency in C++ are required.
Skills
- Concurrency
- Parallel Processing
- Multi-threaded Programming
- Synchronization Techniques
- Performance Optimization
- C++
- Game Programming
- Real-time Systems
- Debugging
- Asynchronous Programming
- Threading Models
- Locks
- Race Conditions
- Deadlock Prevention
- Cross-platform Development
- Mentoring
Visa sponsorship
Not detected in the job text
Categories
- Education
- Technology
- Creative & Media
- Software
Keywords
- Concurrency
- Parallel Processing
- Multi-threaded Programming
- Synchronization
- Performance Optimization
- C++
- Game Programming
- Real-time Systems
- Debugging
- Asynchronous Programming
- Threading Models
- Locks
- Race Conditions
- Deadlock Prevention
- Cross-platform Development
- Mentoring
- Software Development
- Technical Training
- Portfolio Development
- Algorithm Design
- Data Pipelines
- Performance Profiling
- Software Design
- Learning Outcomes
- Curriculum Standards
- Student Engagement
- Academic Support
- Professional Development
- Teaching Excellence
- Inclusive Learning