David Young
  • Home
  • About
  • Contact
  • Personal Projects
    • Computer Science >
      • Computer Vision >
        • 2016 - Homography w/ RANSAC
        • 2016 - Fundamental Matrix & Triangulation
        • 2016 - Laplacian Blob Detector
        • 2016 - Photometric Stereo: Shape From Shading
        • 2015 - Optical Character Recognition w/ OpenCV and Deep Learning
        • 2015 - Feature Detection
        • 2015 - Feature Description
        • 2015 - Feature Matching
        • 2015 - Panoramas (Alignment, Stitching, Blending)
        • 2015 - Facial Detection & Recognition
        • 2015 - Single View Modeling
      • Artificial Intelligence >
        • 2019 - Talk: How Neural Networks See the World
        • 2018 - Generating Text and Poetry
        • 2015 - Optical Character Recognition w/ OpenCV and Deep Learning
        • 2015 - Constraint Satisfaction Problems
        • 2015 - Adversarial Search
        • 2015 - Path Planning (Mazes + Pacman)
        • 2015 - Digit Classification (Bayes)
        • 2015 - Text Document Classification (Bayes)
        • 2015 - Multi-Class Perceptrons
        • 2015 - Markov Decision Processes & Reinforcement Q-Learning
        • 2015 - Simulating Neuronal Learning during Brain-Machine Interface
      • Machine Learning >
        • 2016 - Naive Bayes Classifiers in R
        • 2016 - Stochastic Gradient Descent (SVM in R)
        • 2016 - Comparing Classifiers in R
        • 2016 - Visualize High Dim Data: Blob Analysis + PCA
        • 2016 - Image Segmentation w/ EM
        • 2016 - Regression Kernel Smoothing
        • 2016 - Multinomial Regression on Wide Datasets
      • Robotics >
        • 2017 - 3dof Parallel Motion Simulator
        • 2015 - Designing a Hybrid Controller
        • 2015 - Controlling Pendubot with a Kinect
      • Computer Architecture >
        • 2016 - Architecture Support for Accelerator Rich CMPs
        • 2014 - Weighted Vector Addition with Cuda Framework
        • 2014 - Parallel Reduction with Cuda Framework
        • 2014 - Designing a Pipelined CPU
        • 2014 - Intel SSE Intrinsics Applications in Rudimetary Matrix Algorithms
        • 2014 - LIFC to MIPS Compiler and Assembler
      • Web Development >
        • 2014 - Javascript Calendar
        • 2014 - Multi-Room Chat Server
      • Graphics >
        • 2015 - Basic Animation w/ WebGL
        • 2015 - Diamond Square Terrain Generator
        • 2015 - Flight Simulator w/ WebGL
        • 2015 - Multi-Program Texture Mapping WebGL
      • Software >
        • 2015 - Consumer Grade Gaze Pattern Recognition Software
        • 2015 -Test History Jenkins Plugin
      • Other >
        • 2014 - Hashtable for Genomic DNA Sequences
        • 2014 - Closest Pair of Points
    • Virtual Reality, Game Design, & Animation >
      • 2019 - Interactive Music Visualization
      • 2016 - Visualizing Runtime Flowpath in VR
      • 2016 - Fiducial Marker Tracking for Augmented Reality
      • 2015 - Experimenting with PhysX & APEX Destruction
      • 2015 - Rigging Tank Treads using MEL in Maya
      • 2015 - Automated Simulation Teddy Bear Bin
      • 2014 - Networked Multiplayer Game of Set
      • 2014 - Asymmetrical Multiplayer Destruction
      • 2016 - Tracking & Depth Perception
      • 2014 - 8 Week Game Design (Cave Survival)
      • 2015 - Experimenting with Nvidia FLEX
    • Computers >
      • Custom and Watercooled PCs
      • Component Reviews
      • Installation Guides
    • Quantitative Physiology >
      • Computational >
        • 2015 - Modelling Neurons & Action Potentials
        • 2015 - Simulating Neuronal Learning during Brain-Machine Interface
        • 2014 - Imaging: Rabbit Optical Mapping
        • 2014 - Simulating Electrical Stimulation w/ Comsol
        • 2014 - Ion Channels
        • 2013 - Designing Filters to Simulate Olfactory Sensation
        • 2014 - CardioVascular Mechanics
        • 2014 - Renal
        • 2013 - Principal Component Analysis & Singlar Value Decomposition
        • 2013 - 3D Printed Frog Muscle Holder
      • Physical >
        • 2013 - Biomedical Signal Acquisition
        • 2013 - Electrooculogram
        • 2013 - Compound Action Potential in Frog Sciatic Nerve
        • 2013 - Contractile Properties of Frog Skeletal Muscle
        • 2013 - Locust Olfaction
        • 2014 - Voltage Clamp
        • 2013 - Dive Response
        • 2014 - Frog Heart Muscle
        • 2013 - Ultrasound
        • 2014 - Biological Signal Conditioning
        • 2014 - EKG, Vector Cardiograms & Pulse Wave Velocity
    • Electrical Projects >
      • Self Balancing Robot Pendulum
      • Custom Beer Pong Tables
      • 4-axis Robotic Arm
      • Modified Electric MiniBike
      • Secret Knock Detecting Automatic Door Opener
      • Car Audio
      • Tree-House Wiring
      • Laser Harp
    • Auto & Mechanical Projects >
      • Single Turbo Lexus SC300
      • Track Day Mx-5
      • Karting
      • Racing Simulator Rig
      • 50cc Barbie Jeep
    • Random Other Projects >
      • Talk: Embodied Cognition
      • Bathymetry Coffee Table
      • Not your average Tree House
      • Pneumatic Tennis Ball Cannon
  • Experience
    • Resume
    • Work Experience
    • Programming Experience
    • Research Experience
    • Service Work
  • Education
  • Hobbies
    • Motorsports
    • Art
    • Music
    • Gaming
    • Dancing

Programming Experience
( and Related )


In my experience, software engineers are often slave to muscle memory, both metaphorical and literal. Programming is a powerful skill, but it does not replace an understanding of customer need, a solid product design, or a high level plan for system architecture.

Before writing a line of code, I prefer to focus on communication, design, and architecture. With a strong plan, programming becomes a simple implementation detail.

That is not to say that I haven't gotten my hands dirty coding. I have a fair amount of programming experience, yielding some strengths:
  • I learn very quickly and adapt to new dev environments, code bases and projects.
  • I write extremely clean, organized and well documented code. I aim for legibility over cryptic optimizations.
  • I excel in technical documentation and communication.
  • I have a broad knowledge of many aspects of software engineering, hardware and computer science topics, and understand how they interrelate.

Languages

  • Python, C#, Javascript, Java, Matlab, C++, C, R, SAS, Go
  • Tensorflow, PyTorch
  • HTML, PHP, SQL
  • LaTex
  • MEL
  • Zero-MQ

Software Engineering

  • CI/CD: Github, Subversion, Jenkins, Travis, Azure, Argo, Github Actions
  • Microservice system design: Rest, GRPC, Docker, Helm, Kubernetes, Istio
  • Familiar and practiced in Agile software engineering methodologies

Computer Vision

  • Feature Detection, Description and Matching
  • ​Estimating Homography w/ RANSAC
  • Estimating Fundmanetal Matrix w/ RANSAC
  • ​Triangulation
  • Blob Detector
  • Image Warping, Alignment, Stitching and Blending (Panorama Generation)
  • Principal Component Analysis, and Singular Value Decomposition
  • Photometric Stereo (Shape from Shading), modelling faces from images
  • EigenFaces, Face Detection, Identification and Recognition
  • Optical Character Recognition with OpenCV and Deep Learning
  • Fiducial Marker Tracking for Augmented Reality

Artificial Intelligence,  Machine Learning  &  Data Visualization

  • ​Path Finding Algorithms
  • Constraint Satisfaction
  • Adversarial Search
  • Blob Analysis of High Dimensional Data
  • PCA
  • Gradient Descent
  • Implementing  Classifiers:
    • Naive Bayes
    • SVM
    • Perceptrons
    • Neural Network Classifiers
    • Nearest Neighbors
    • Random Forests
    • K-Means
    • Probabilistic Classifiers
  • Expectation Maximization (EM algorithm)
    • Probabilisitc Document Classification
    • Image Segmentation
    • Reinforcement (Q) Learning
  • Solving Markov Decision Processes
  • Regression
    • Multinomial Regression
    • Regularized Regression
    • Regression on wide datasets
  • Neural Networks
    • MatConvNet and Tensorflow
    • Convolutional Neural Networks for image classification
      • Digit Classification using MNIST dataset
      • Optical Character Recognition using SD-19 dataset
      • Image Classification using Cifar-10 and Cifar-100
    • Convolutional Neural Networks for Time Series classification of multi-sensor data
    • Recurrent Neural Networks for text generation

Systems & Computational Modeling

  • Solving Discrete and Continuous Time Systems with Matlab
  • Extensive experience modeling Physiological Control Systems with Matlab
  • Designing and Programming Computational Models to Represent and Analyze Physiological, Fluid, Robotic or Electrical Systems

Robotics

  • Implementation of identification and control algorithms
  • Input-output and state-space techniques
  • Identification of nonlinear models
  • Energy-based techniques
  • Model Validation and Simulation
  • Construction of Hybrid Controllers
  • Stabilization using linear and non-linear control techniques
  • Implementing Computer Vision in Controlling Robots

Algorithms & Data Structures

  • Implemented many basic algorithms including sorting, searching, path-finding, constraint satisfaction, adversarial searching, maximization, minimization, gradient descent, terrain generation etc.

Game Development

  • C++ for UE4, C# for Unity 
  • Useful understanding of concepts for game development
    • Quaternions
    • Linear Algebra
    • Hardware
  • PhysX and Apex Destruction in Ue4
  • Debugging integration of PhysX Vehicle SDK in Ue4 (Nvidia Summer Internship)
  • Generating a demo project to highlight capabilties of SDK (Nvidia Summer Internship)
  • Hobbyist gameplay programming
  • Hobbyist implementations of finite state machines, behavior trees, animation graphs etc.

Graphics

  • Useful understanding of concepts for graphics
    • Quaternions
    • Linear Algebra
    • Hardware
    • Vertex and Fragment Shading
    • Cohen Sutherland and Serial Clipping
    • Rasterization Techniques
    • Color Spaces
  • WebGL
    • Minor experience writing shaders in GLSL
    • Implementing Gouraud and Phong Shading, Reflectance Models (Phong, Blinn-Phong)
    • Computing and Transforming Surface Normals
    • Generating Tesselated Quads and Heightmaps (Diamond Square Algorithm)
    • Generating MipMaps
    • Implementing Cube Maps
    • Implementing Environmental Reflection Mapping
    • Basic Animation with WebGL
  • Particle Systems

Networking & Concurrency

  • Zero-MQ and messaging patterns
  • Open MP
  • Advanced I/O, Threading, Thread Safety and Deadlock Prevention
  • ​Basic Synchronous and Asynchronous Parallel Programming
  • Synchronization, Split Locks, Guarded Blocks, Reader/Writer Locks
  • Sockets, Servers, Streams
  • Basic Networking Protocols
  • Implemented a Networked Multiplayer Card Game​

Web Development

  • Amazon Web Services (Creating and Configuring EC2 Instances)
  • Apache
  •  jQuery, Node.js, Socket.IO, AngularJS, Express, MongoDB, CSS, Bootstrap
  • Web Application Security: FIEO,Formatted String Injection, Server Configurations, Password Encryption, Cross Site Request Forgery (tokens), SQL Injection, Cross Site Scripting, Session Hijacking, Packet Sniffing
  • mySQL Schema and State
  • Html + Javascript: Event Handling, Document Object Models (DOMs), AJAX and JSON
  • Static File Servers
  • MEAN Stack

Computer Architecture Familiarity

  • Number Representations
  • Memory Management and Usage
  • ISAs
  • Assembly Languages (MIPS and x86)
  • CALL
  • Memory Hierarchies, Cache Performance Analysis
  • Synchronous Digital Systems, Boolean Algebra, Finite State Machines
  • CPU datapath,control and pipelining
  • Virtual Memory
  • Raid, Parity and ECC

Other

  • Regular Expressions: Implemented in various use cases
  • ​CUDA Development:  Minor experience with Kernel Design for Basic Functions (lab work for Computer Architecture course)
  • Warehouse Scale Computing: Minor experience w/ Hadoop & MapReduce (course homeworks)
Proudly powered by Weebly