Aidan Ha
Welcome To My Website!
Learn More About Me

About Me

Programmer By Day - Explorer By Night

  • Tech Enthusiast

    I find the world of technology amazingly fruitful and full of learning oppurtunities. Whether it's hacking with my friends, learning new frameworks, or participating in code challenges, I'm always down for a new challenge.

  • Prodigal Explorer

    I love the adrenaline of the city nightlife, and am always ready for a late-night adventure. Catch me at 2am photographing the beautiful urban sceneries of Toronto, or exploring the city's mysterious shadow realms.

  • Engineering Student

    I am part of the crazy Computer Engineering cult at the University of Waterloo. I am also a member of the University's Rocketry team, where I design electrical subsystems for our 17 feet rocket!

IBM

OMR JIT Compiler developer

Optimize

During my time at IBM, I worked on various compiler technologies. During this internship, I worked on IBM's OMR, a runtime toolkit implemented throughout various IBM products. Here, I developed mutiple runtime level features and optimizations on various parts of the tool kit.

Low-Level

I learned various compiler level concepts throughout my time at OMR. This includes compiler theory (tree evaluation optimization), assembly level machine code, as well as Elf data and LLVM/Clang familiarity. My experience in the OMR team will definately be an asset to my future employers!

P,X,Z

I also gained experience working with various computer architectures, including developing production level code on on PowerPC, Z, and x86 machines. In addtion, I've also programmed a port library function that determines processors specific features for each architecture.






IBM

OpenJ9 VM developer

JVM

I initially got onboard IBM as a softwarfed developer for their open source Java Virtual machine, OpenJ9. Here, I prototyped several new features as part of Project Valhalla, an OpenJDK project that encubates advanced Java VM and Language feature cadidates.

ValueTypes

One of trhe features that I worked on was array implementation of Valuetypes, a new object in Java13 that is optimized in space. Long story short, Value types are cool objects that can be treated as primitive types. Enabling Array compatibility with ValueTypes reduces the JVM's footprint upon startup, which behefits OpenJ9 in the long run!

Optimize

I also implemented new VM options that enables more flexibility within multiple internal functions and tools inside the JVM, including new options for Java dump agents, command line arguments, and macros. This helps other from the open source commmunity when they're developing or debugging new features.






Fidelity Investments

Automation Specialist

Automate

At Fidelity, I developed various automated tests using Java and the Selenium framework. These tests would verify funds information on Fidelity.ca and determine if the website was in accordance to the company's business standards.

Schedule

I would then add these test scripts into the company's main Jenkins production pipeline, and scheduled them to run on specific dates that corresponded with the Business Analytics team's timeline, and produced reports when required.

Optimize

I also created a Python script that remotely hosted a Selenium Grid on a Linux Virtual Box, and used Docker to containerize the grid so that it would not interfere with Fidelity's firewall settings. This improved the runtime of the company's Selenium scripts by 66%.

Projects

RoastMyResume.ca

Full Stack Website

FidApp

Investing App

Botaneer

Automatic Watering System

Contact Me

Aidan Ha

3a Computer Engineering, 2022

Software Developer seeking Summer 2020 opportunities