Dylan Weicker

Hello There!

My name is Dylan Weicker.

I'm an ambitious and optimistic year old software developer based in Vancouver, BC. My fields of interest are web development, UI Design, artificial intelligence, and game development. I love working in Typescript, C#, or SQL.

Beyond programming, I am passionate about education; I love learning and teaching (especially about math and science). Additionally, I love games. Playing board games with friends is my idea of an ideal time.

Recent Projects


Even in my spare time, I cannot stop coding. There is so much to create!

Web Development

GGI Platform Site

In the summer of 2018, I worked as a web developer. I worked with Goss Gilroy Inc (GGI) to set up a website to aid potential clients and associates learn about their new platform.

FWCO Management Consultant Site

In the summer of 2016, I volunteered to create a website for a management consultant firm to communicate the company's features and services to potential clients.

Pathfinder Character Generator

Creating a character can be one of the most arduous tasks for new players to the Pathfinder role playing game. To reduce the strain, I am creating this web app to streamline the process.

Game Development

Tower Building Game

Inspired by Santorini, I developed a strategy game using HTML5's canvas element and JavaScript. In this game, players build towers and compete to be the first to climb to the top of one.

Fantasy Clue Game

Using HTML5's canvas, I created a prototype of the classic boardgame Clue. The game includes 2 AI opponents who navigate the board and gain knowledge as the game progresses.

3D Coin Collecting Game

Going above and beyond in a creative school project, I developed a 3D coin collecting/bomb avoiding game. Use WASD to move. Click and drag and use arrow keys to adjust the camera.

Work Experience


Helping a company to succeed as I develop my skills is a highly rewarding experience!

Website and Software Developer

Goss Gillroy Inc.
May 2018 - Sept 2018

Responsibilities

  • Designed and implemented two responsive, mobile-friendly websites, using Twitter Bootstrap, Javascript, and PHP.
  • Improved efficiency of proposal writing by developing a Microsoft Office Word plug-in to automate much of the process.

Skills Developed


Javascript

Node.js

PHP

HTML

CSS

Bootstrap

Teaching Assistant

UBC
Sept 2017 - Dec 2017

Responsibilities

  • Aided the students of a software engineering course from start to finish in creating a full-stack TypeScript application which stored, retrieved and filtered data.
  • Facilitated discussion between project partners to assess student understanding and solve any partner conflicts.

Skills Developed


Teaching

Typescript

Node.js

REST

Github

HTML

Web App Developer

Mazdis Innovations
May 2016 - Aug 2017

Responsibilities

  • Implemented new features and components in an Angular2 web app that allows users to make reservations at an automated bike parking station.
  • Minimized bugs in this web app by creating a suite of Karma and Jasmine unit tests, manually debugging, refactoring code, eliminating code smells, and improving existing services.
  • Facilitated whiteboard meetings to collaboratively design our user interfaces and software architecture.
  • Performed management duties such as leading job interviews, training/on-boarding new employees, and creating tasks, goals and priorities for my team.

Skills Developed


Angular

HTML

CSS

Firebase

Karma

Jasmine

Software Engineer in Test

Vision Critical
Sept 2015 - Aug 2016

Responsibilities

  • Prevented code regressions and maintained over 90% code coverage on our REST APIs by implementing automated end-to end, integration, and unit tests.
  • Ensured user interfaces were reactive, consistent, accessible, and intuitive by manually testing them across different browsers and devices.
  • Improved efficiency of manual tests by developing a suite of visual tools in Windows Forms that allowed testers and developers to quickly make calls on our REST API.

Skills Developed


C#

SQL

REST

Visual Studio

Selenium

PowerShell

Education


University of British Columbia

Bachelor of Science - Computer Science Major
Sept 2013 - June 2018

Relevant Course Work: Software engineering, algorithms, databases, data structures, networking, artificial intelligence, cognitive systems, user experience, math, statistics, game theory, logic, philosophy

Courses

Software Development

CPSC 110

A

Introduction to Software Design

functional programming and good coding practices

CPSC 210

A+

Novice Software Construction

object oriented programming, design patterns, exceptions, data structures, refactoring, debugging, and testing

CPSC 310

A

Intermediate Software Engineering

specifying, designing and implementing multi-module software systems, asynchronous programming, and UI

CPSC 312

A-

Functional and Logic Progamming

Prolog, Haskell, principles of symbolic computing, applications to artificial intelligence

CPSC 221

B+

Basic Algorithms and Data Structures

design and analysis of algorithms and data structures, searching & sorting algorithms, graphs, concurrency

CPSC 320

A-

Intermediate Algorithms

design and analysis of algorithms, models of computation, choice of data structures, graph theory

CPSC 420

Advanced Algorithms

Artificial Intelligence

CPSC 322

A

Introduction to Artificial Intelligence

problem-solving, planning, state/action models, graph searching, natural language

CPSC 422

Advanced Artificial Intelligence

COGS 200

Introduction to Cognitive Systems

A-

cognitive psychology, linguistics, cognitive neuroscience, philosophy, artificial intelligence

COGS 300

Intermediate Cognitive Systems

Computer Infrastructure

CPSC 121

Models of Computation

A

binary, boolean algebra, logic circuits, proofs, sets & relations, finite state machines

CPSC 213

Introduction to Computer Systems

B

software achitecture, operating systems, I/O architectures, hardware, assembly code, multi-threading & asynchronous programming

CPSC 313

Computer Hardware and OS

B+

instruction sets, pipelining, code optimization, caching, disk storage, virtual memory, execution time of programs, operating systems

CPSC 317

Internet Computing

B+

computer networking, basic communication protocols, network infrastructure & routing, distributed applications

CPSC 304

Introduction to Relational Databases

CPSC 404

Advanced Relational Databases

Communications

ENGL 111

Non-Fictional Prose

A-

reading and analyzing non-fictional writing, including essays, reports, articles and memoirs

ENGL 112

Univeristy Writing

A-

study and practice of research based writing, including summaries, comparative essays, persuasive essays, and research papers

CRWR 200

Introduction to Creative Writing

A-

practice in multiple genres of writing, including fiction, nonfiction, poetry, lyrics, screenplay, and stageplay

CRWR 213

Writing for New Media

A+

practice in writing for new media, including podcasts, blogs, websites, games, and online environments

Life & Physical Sciences

BIOL 111

Introduction to Modern Biology

A-

scientific method, genetics, evolution, population growth, ecosystems, infectious diseases, cells, cancer

CHEM 121

Structure and Bonding in Chemistry

B

fundamentals of bonding theorieis and structural chemistry

PHYS 101

Energy and Waves

A+

fluids, harmonic oscillator, travelling waves, standing waves, sound, and interference of light waves

PHYS 102

Electricity, Light and Radiation

A-

optics, electricity & magnetism, electric circuits, radioactivity

Math & Statistics

MATH 100

Differential Calculus

B-

derivatives of elementary functions, applications and modeling: graphing, optimization

MATH 105

Integral Calculus

B

antiderivatives, infitite series, partial derivatives, maxima & minima, discrete and continuous random variables

MATH 200

Calculus

B

analytic geometry in multiple dimentions, partial and directional derivatives, chain rule, maxima & minima

MATH 221

Matrix Algebra

B+

systems of linear equations, operations on matrices, determinants, diagonalization of symmetric matrices

STAT 200

Matrix Algebra

A-

inferences about means, variances, and alysis of variance using computers, problem formulation, interpretation

STAT 302

Introduction to Probability

A-

basic notions of probability, random variables, expectation and conditional expectation, limit theorems

Interests


Web Development

When I was eight years old, I began creating my own websites. I was intensely passionate about web-development, and this passion is what drove me to pursue a career in computer science. Like most millennials, the internet sometimes feels like my whole world. And being able to shape the pages of the internet makes me feel like I am making a difference in the world.

In today's modern world of smartphones and tablets, the internet is always within our reach. Web development is more important now than ever before.

Web development has been a hobby of mine for years. I have created websites as well as web apps professionally, academically, and just for fun. I am proficient with using HTML5, CSS3, JavaScript, and jQuery to create websites. And I have used RESTful APIs, PHP, SQL, Oracle, Firebase, Typescript, Angular, and nodeJS to create web apps.

User Interface Design

My passion or website development naturally led into a passion for UI design. I find it fun to think about who my users are and what expectations they have of my interface. When I design a UI, I'm thinking about what experiences the user has with other digital interfaces and within the real world. Then, I see how I can adopt those experiences so that the transfer to my interface feels seamless.

UI design is one of the most important elements of a client-facing software product. A well-designed UI should be seemingly invisible but allow a user to intuitively know exactly what can be done with the software and how to do it. Without a well-designed user interface, even the best back-end code can fail to be used to its full potential.

I am experienced in creating user interfaces. In addition to my many years of web design, I took an upper-level course at UBC on user interface design. This course led me through the process of identifying probably users of the interface, understanding their tasks and problems, and iteratively producing and testing UI prototypes.

Artificial Intelligence

I think artificial intelligence is incredibly cool -- I very nearly majored in cognitive systems rather than computer science. The logic involved in programming a system to evaluate its experiences and knowledge to determine the best action to take to meet its goals is exciting to me. I could talk anyone's ear off about what it means for a machine to be intelligent. Does it need to "think" like a human, or merely act in a rational way? (I believe in the latter).

AI plays an integral role in today's society. Many people rely on natural language parsing AI, as seen in Google Home and Amazon's Alexa, to control their home. People also depend on AI to make product suggestions while shopping or search suggestions while browsing the web. While playing single-player games, people rely on AI to act as their ally's or opponents. Furthermore, I believe AI-driven cars will be the next revolutionary advancement for our society.

For a junior software developer, I am well-versed in AI. I have taken two AI courses as well as two cognitive systems courses. In my time at UBC I programmed several artificially intelligent agents: simple programs that could solve virtual mazes, sudoku puzzles, and the 3-SAT problem; a motorized robot that can traverse a physical maze; as well as three different versions of an artificially intelligent opponent who could solve a murder mystery and win a game of Clue.

Game Development

I have been in love with playing games from childhood until the present day. And my passion for creating games is just as great.

Millions of people around the world share my love of games. These people are on Steam, Amazon, and EB Games every day looking for new games to play.

I have been making small computer games since I was thirteen years old. It is something I have a bit of experience and a keen interest in. I hope to one day entertain the world with a large-scale game that I helped to create.

Values


Education

"Give a man [a vegetable] and he'll eat for a day, teach a man to [tend an vegetable garden] and he'll eat for the rest of the life."

In my opinion, education is the most important asset to humanity. It builds a person's knowledge of the world and empowers them to perform incredible tasks such as sharing insightful new philosophies or creating innovative technologies.

"To teach is to learn twice." That is why I love educating others. I like to create and post multimedia content online to share my knowledge with others. I discuss allyship with my peers to teach them how they can help people and animals who face oppression. And I am always willing to tutor others in fields where I excell, such as math and science.

I hope to use my skills as a software developer to work on a project which helps to educate others.

Entertainment

The best way to engage a person is to entertain them. People are more willing to listen to what you have to say and learn from you if they're having fun along the way.

There are many forms of entertainment that I appreciate. Theatre means a lot to me. I spent years volunteering my time as an actor and starred in three amatuer plays, including Shakespeare's Macbeth. I am obsessed with pop culture. Don't even get me started talking about pop music or the latest Netflix show, I'll never stop. And there's nothing I appreciate more than a dank meme. But the most rudimentary form of entertainment has to be games.

Game development has always been a huge passion of mine. It's what drove me to get started in computer science when I was 12; I wanted to make computer games.

It is my ambition to work as a professional game developer so that I can entertain a large audience.

Equality

In a world full of systemic injustices against marginalized groups, such as the gender wage gap (Canadian women on average earn a significant 13% less than their male counterparts), it's important that we come together to support one another. I believe that as a united society fighting against oppression, we will be less likely to face oppression ourselves. The more love we put out into the world, the more love we can expect the world to show to us.

I promote equality.

I want to work on a project which will provide me with a platform to promote equality.