Max Van de Wille

(630) 418-3364 · [email protected] · Washington, DC

Incoming Software Engineer at Capital One.

Iowa State University Software Engineering graduate with academic and work experience in full stack development, large-scale data processing, embedded robotics solutions, computer vision, and machine learning.


Experience

Capital One

Technology Intern Program
  • Developed an address‑correcting endpoint using Java, Springboot, and Apache OpenNLP natural language processing to filter and re‑order components of unstandardized customer addresses.
  • Deployed application on AWS EC2 using Capital One deployment pipelines.
  • Worked within a team of interns to train robust custom NLP models and evaluate their performance on a variety of addresses.
  • Aided in development of a web application using Express used to showcase the results of our API.
  • June 2021 - August 2021

    Curiosity Labs Inc

    Software Engineering Intern
  • Integrated robotics components and neural networks in Python to create a fully automated laboratory instruments used for parasite detection.
  • Trained real-time object detection models for microscopy applications yielding over 95% accuracy in soil sample analysis on edge devices.
  • Designed and implemented automated security features on embedded devices running Linux.
  • Built a web image labeling application using React frontend and Express backend hosted through AWS EC2.
  • May 2020 - January 2021

    J5 Marketing, All Around Creative

    Software & Web Development Intern
  • Designed and developed client sites using WordPress, JavaScript, and PHP according to given wireframes and customer input.
  • Audited, evaluated, and corrected company and client sites for digital accessibility and search engine optimization issues, leading to an average 40% increase in compliance with ADA standards.
  • July 2019 - February 2020

    Education

    Iowa State University

    Bachelor of Science - Software Engineering

    Coursework: Object-Oriented Programming, Data Structures, Digital Logic, Database Management Systems, User Interfaces, Algorithms

    GPA: 3.38

    Campus Organizations:

    MADS-B – A Collins Aerospace sponsored student organization dedicated to creating ADS-B solutions for drones and other small unmanned aerial systems. Project focus included creating a transmitter and receiver able to correctly encode and decode ADS-B messages, and using those decoded messages to determine if a collision is imminent to calculate evasive maneuvers. Served as Project Member, Team Lead, Project Lead, and Undergraduate Advisor over a span of six semesters.

    Engineering Career Fair Executive Team – A student-led organization working alongside Engineering Career Services to plan and execute one of the largest engineering-focused career fairs in the nation. Served as a member of the Personnel Subcommittee for two semesters, overseeing recruitment, training, and development of over 300 volunteers to provide service rated 9.36/10.

    August 2017 - December 2021

    Skills

    Programming Languages
    Frameworks & Tools
    Spoken Languages
    • English - Fluent
    • French - Proficient

    Projects

    FoodBuddy



    Description: A mobile application (iOS) where you can create a user, track your nutrition by scanning nutrition labels on food, and connect with other users through a global chat and status feed. Uses optical character recognition and custom string parsing to locate and track statistics like calories, protein, and more. User data is hashed using SHA512 and stored in a Mongo database on a server hosted by the Computer Science department at ISU.

    Currently being developed is the global chat using websockets to connect users to one or many chat-rooms where they can instantly message other users in the room. Also in development is the OCR scanning, currently the application has full access to the camera and can save images but we have not completed OCR scanning and are at work on an algorithm to process the OCR's output. Finally, some UI alterations will be made for a more cohesive experience.

    Part of a collaboration with Maxwell Wilson, Sam Massey, and Tyler Johnson for COM S 309. My role in the team was developing the entire iOS front-end portion of the app, including requests to and from the server and processing data. All text recognition performed front-end using existing OCR frameworks.

    Primary Languages: Swift, Objective-C

    Frameworks/Libraries: SwiftOCR, TesseractOCR, Swift UIKit

    MADS-B Autopilot & Transmitter



    Description: MADS-B, a student organization sponsored by Collins Aerospace, was created in 2017 with the goal to create a low-cost, miniaturized transmitter and receiver adhering to Federal Aviation Administration (FAA) regulations that could be mounted on a drone or small unmanned aerial system and allow for seamless integration into the new standard of aircraft communication, ADS-B. When I took over as Project Manager in Fall 2018 I added an additional team focused around the development of an ADS-B based collision avoidance system, where our device could receive messages from nearby aircraft, calculate if they were on a collision course with our aircraft, and execute an evasive maneuver accordingly.

    As Team Lead and later Project Manager, I took an active role in development focused heavily towards the collision avoidance software and managed to create a Python script intended to run on a Raspberry Pi that successfully received and decoded messages from other aicrafts, calculated heading vectors to determine if a collision course existed, and output directions for an evasive maneuver based on existing FAA guidelines called TCAS.

    Primary Languages: Python, C

    Frameworks/Libraries: GNU Radio, dump1090, Geodesic (Python Lat/Long calculations)

    Maze Runner



    Description: A web-based application that generates a maze grid and allows visualization of different pathfinding algorithms like A*, Sample, and Djikstra's. The maze grid can be manipulated by the user to create fully customized mazes, or the user can select to generate a new randomized maze created based on a modified Prim's algorithm. Then, the user may place a start point and an end point, select a pathfinding algorithm, and run the simulation.

    Part of a collaboration with Benjamin Bradley for our SE 319 Final Project. My role in the team was developing the backend logic for maze generation and pathfinding using a 2D array of custom Cell objects synchronized in real time with a grid of clickable HTML divs acting as cells for the user to place walls, start, and end points.

    Primary Languages: JavaScript, HTML

    Frameworks/Libraries: None

    USE THE APP HERE (Interface not optimzed for all screen sizes)

    A* Pathfinding Algorithm
    Visualization of the A* pathfinding algorithm using Maze Runner

    User placed wall demonstration
    Demonstration of user-placed walls and the Sample pathfinding algorithm

    Tiny Encryption Algorithm Encoder/Decoder



    Description: This project was chosen from a selection of choices for CPR E 281 (Digital Logic) final project. The project requirements were to create a program capable of encrypting a 16-bit value (16-long string of 0s and 1s) based on a 32-bit key, resulting in the encrypted 16-bit value. Alternatively, the encrypted value could be passed with the same key and the program, when set to decrypt, would output the original 16-bit value.

    The program was created in Altera Quartus Prime software using logic circuits, or circuits that consist of only wires and logic gates such as AND, OR, and NOT gates. The project stipulated that the circuit must contain a register file capable of storing ten 8-bit values and a "magic value" necessary for the tiny encryption algorithm. Additionally, this register file should only have two read ports, which can be used to access two registers at one time, limiting how many values can be used in one calculation. Rather than use an additional register file, I opted to create an arithmetic and logic unit (ALU) that broke down the tiny encryption algorithm into single steps and would use registers 7-10 as temporary registers to cycle result values for later processing. For example, the ALU would take registers 1 and 2 and multiply their values, storing the result into register 7. Register 7 would then be used during the next step, and so on.

    The program would be operated using the switches on the FPGA board, which would allow the user to load 8 bits at a time of either the 32-bit key or the 16-bit value using switches 0-7. Switch 8 acted as a toggle, dictating whether or not the bits were key or value bits, and switch 9 acted as a toggle to dictate whether the program would encode or decode. Not picture in the below images is a button that would be used to "Enter" the bits currently turned on by the switches.

    Primary Languages: Verilog

    Frameworks/Libraries: None

    Additional detail can be found in the PDF Report

    Overhead view of FPGA circuit board mid-encryption
    Demonstration showing decoding of hexadecimal value 2810 (or 0010 1000 0001 0000 in binary) with hexadecimal key B3BEEF75. Expected encrypted value is 4C37, displayed here two bytes at a time, i.e. 4C will display first, then 37 will display after a press of a button.

    Circuit diagrams for final assembly
    Overhead view of complete assembly with the exception of the control circuit

    Circuit diagrams of arithmetic and logic unit
    Overhead view of the arithmetic and logic unit (ALU)

    Interests

    My programming interests include autonomous vehicles, computer vision tasks, small-scale robotics, and apps to autonomize everyday life

    Outside of programming, I am a huge ice hockey fan and player and love to take part in intramurals and adult leagues.


    Hockey player
    Me in 2013 playing defense for the San Diego Ice Arena Oilers

    Broomball players
    Some friends and me winning ISU's broomball intramural in Fall 2018. I'm on the right, wearing #14