Software Developer · Victoria, British Columbia

Mahd Shahzad.

Backend, web and mobile development.

I build enterprise applications, web interfaces and multiplayer Android software. I enjoy working through difficult technical problems and turning them into reliable, usable features.

About me.

I’m completing a BSc in Computer Science (Honours) at the University of Victoria. My first three co-op terms were entrepreneurial: I developed Trivia M, an Android trivia game, and continued working on it independently afterwards. That experience gave me responsibility for an application’s design, implementation, cloud integration, testing and ongoing improvement.

At the Insurance Corporation of British Columbia (ICBC), I have built on that foundation through Java/Spring Boot and Angular/TypeScript development for future driver’s licensing services. My experience now also includes database portability, application deployment, delivery automation and working with developers, analysts and architects.

Where I want to grow

I’m interested in backend and full-stack development roles where I can contribute to meaningful applications, take ownership of technically challenging work and continue developing my system-design and delivery skills.

How I work: I value clear requirements, focused investigation and feedback from people with different expertise. I aim to build software that other developers can understand, test and change. Security, documentation and maintainability are part of that process.

Strengths in practice.

Ownership from idea to implementation

Building Trivia M required me to connect interface design, game logic, authentication and cloud services. Working across those boundaries helped me understand how a decision in one component affects the rest of an application.

Investigating difficult failures

When platform changes disrupted Trivia M’s authentication, I investigated the cause and migrated to newer authentication APIs. The experience strengthened my persistence and taught me to question assumptions and seek feedback earlier.

Designing for change

My enterprise work has included separating service responsibilities and making persistence code work with both Oracle and PostgreSQL configurations. I consider how a design can accommodate future changes alongside its immediate requirements.

Independence and collaboration

Entrepreneurial development taught me to make progress independently. Working with an enterprise team has strengthened how I clarify requirements, communicate dependencies, document decisions and respond to review.

Technical background

Backend & data

Java · Spring Boot · REST APIs · SQL · Oracle · PostgreSQL · MySQL · JPA/Hibernate

Web & mobile

Angular · TypeScript · React/Redux · JavaScript · HTML · CSS/SCSS · Android · Firebase

Quality, security & delivery

JUnit · Integration & regression testing · OAuth 2.0/OIDC · Git/GitLab · Maven · npm · GitLab CI/CD · OpenShift

Academic foundations

C++ · Python · CUDA · OpenMP · SIMD · Machine learning · Optimization · Networking · Security engineering

Selected projects.

Four projects that connect practical software development with what I learned along the way. Open each case study for the contribution, outcome and reflection.

02 · Web-development learning project

FlashCards

A study application for creating topics and quizzes, navigating between them and reviewing cards by flipping them to reveal their content.

  • React
  • Redux
  • JavaScript
  • Routing
TopicsQuizzesCards
Contribution, outcome & learning

What I built

I worked with normalized state divided into topic, quiz and card slices, connecting the data relationships to a routed interface. The result is an application workflow that demonstrates how state organization supports several connected screens.

What I learned

I learned to think beyond individual components and consider how information is shared across an application. That foundation has remained useful in my later Angular work, particularly when separating interface behaviour from application state.

View FlashCards on GitHub
03 · University project

LP-Solver

A Python implementation of the Simplex method for linear programming: optimizing an objective subject to linear constraints.

  • Python
  • Algorithms
  • Mathematical optimization
ObjectiveConstraintsSolver
Contribution, outcome & learning

What I built

I formulated linear programs and translated the Simplex method into an executable Python solver. An early attempt at parallelization also prompted me to investigate the relationship between an algorithm, its runtime and how work is divided.

What I learned

The completed Python solver connected mathematical reasoning with implementation and debugging. Improving performance requires understanding both the work and its execution environment. In future optimization work, I would establish a clear baseline and measure proposed improvements before investing in a more complex implementation.

View LP-Solver on GitHub
04 · University networking project

Custom Transport-Layer Protocol

An educational transport-layer protocol and client/server file-transfer system using UDP. I implemented behaviour that applications normally obtain from an existing networking stack.

  • Python
  • UDP
  • Client/server
  • Flow & error control
Contribution, outcome & learning

What I built

The server supports flow control, timeout and duplicate-acknowledgement handling, multiple clients and multiple files. The project also includes pipelined and non-pipelined HTTP request behaviour over the custom connection.

What I learned

The client/server implementation connects application-level requests with lower-level transport behaviour. It helped me understand how buffering, retransmission and connection state interact, providing a useful foundation for later work involving real-time multiplayer interactions and connected applications.

View the protocol project on GitHub

More to explore: Java implementations of Nim and Tic-Tac-Toe modelled as game-playing graph-search problems.

Experience & education.

JAN 2026 — PRESENT
Victoria, BC

Developer Co-op · ICBC

I contribute to new applications for driver’s licensing modernization. My responsibilities span backend services, web interfaces, testing, shared libraries and technical documentation. I have also gained practical experience with Oracle-to-PostgreSQL migration, OpenShift deployment and GitLab CI/CD, collaborating with developers, business analysts and architects.

2025

Independent Android Development

I continued developing Trivia M after my entrepreneurial work terms, refined its features and completed Google Play closed testing. This extended my experience with troubleshooting, user feedback and improving an application over time.

MAY 2024 — APR 2025

Entrepreneurial Co-op · Android App Development

Across three consecutive work terms, I developed Trivia M’s gameplay, multiplayer interactions, authentication and cloud-backed features. These terms established the independent problem-solving skills I later brought into a larger development team.

Learning & achievements.

Kiro training

I completed training and applied specification-based development tools to requirements and documentation work, checking generated material against implementation and stakeholder expectations.

Database & deployment

I expanded my experience into database migration, OpenShift deployment and GitLab CI/CD. These workflows helped me understand how software moves beyond a local development environment.

Continued technical study

I have applied university learning in automated testing, security engineering, parallel programming, machine learning and networking across academic and practical development work.

Milestones and feedback

  • Completed three entrepreneurial co-op terms developing an Android application, followed by independent development and Google Play closed testing.
  • Contributed to a team proof of concept spanning application development, requirements validation, database migration and deployment.
  • Received positive feedback on an internal application demonstration, where an operations interface helped make the team’s work easier to understand.

I want to deepen my understanding of application architecture, deployment automation and reliable system integration while continuing to improve how I test, document and communicate technical decisions.

My resume.

Work experience, technical skills and academic background, including recent database, deployment and delivery experience.

Download resume

Outside software

I enjoy tennis, strength training and building custom PCs. My interest in computer hardware also connects with my curiosity about how software uses the machines it runs on.

Victoria, British Columbia, Canada

Let’s connect.

Interested in discussing a development opportunity or a project? Get in touch.

Send me an email