Hi, I'm

Cedric Hansen.

Software Engineer

Welcome to my personal web page. Here, you’ll find all things related to my work, experience, and a touch of my personal life. My contact details can be found below

About Me

I am a software developer with a passion for designing server side software that is fault tolerant, and fast.

I am currently working as a software developer at Square.

At Square, I am part of the Risk Engineering team - focused on ensuring that bad actors are preventing from causing harm, and good actors are met with a frictionless risk experience to get seamless access to the products that help them run their business.

I am currently working on a project that is centered around increasing the fault tolerance of payment review and approval systems.

Here are a few technologies I enjoy using
  • Java
  • Guice
  • Bazel
  • Github
  • Bash
  • Apache Kafka
  • Golang
  • Dart/Flutter
  • SQL
  • C/C++
  • AWS (SQS, S3, DynamoDB)

Experience

Senior Software Developer - Square
October 2021 - present

I have been working with the Risk team since joining Square. My main focus has been creating automated solutions to minimize risk loss, while providing a pleasant experience to good sellers inadvertently caught up in risk controls. This involves design, and implementation, as well as lots of collaboration with other engineers, data scientists, and Product Managers.

A few projects that I am particularly proud of:

  • Designing, and implementing risk controls for Unlinked refunds for both API and retail
  • Integrated various third party vendors into payment onboarding process, leading to a reduction in over $10 Million in Risk losses.
  • Restructured payment activation risk controls, leading to a 70% decrease in latency (4s p99 -> 1.6s p99)
  • Restructured payments risk review flow, to allow continued remediation of payments, even during outages
  • Created Third Party data framework to signalize feature data into ML platform, reducing integration time for new data sources by ~20%.
Software Developer - IBM
May 2019 - October 2021

I worked at IBM, on the Runtime Technologies team, working on the Garbage Collection component of OpenJ9, a JVM effort primarily led by IBM, with a focus on small memory footprint and fast startup. This role was an incredible opportunity to learn the in’s and outs of the JVM, from industry leaders.

During my time at IBM, I worked on a few features to improve the performance of various GC components, including:

Software Engineer - Routemate
December 2019 - October 2021

Routemate was a web application that I was commissioned to build for Hansen Lawn&Gardens. This application facilitated the creation, distribution, and optimization of routes, along with a notification system to alert clients when their properties had been visited. The application also had a forms feature, which enabled the creation, and completion of custom forms.

This application was used by ~40 users for 4 years, and helped Hansen Lawn&Gardens operate efficiently throughout COVID-19 pandemic.

The software owned by Hansen Lawn&Gardens, was eventually spun off into EXT.tech in 2023, which built off of Routemates success.

Some sample videos of Routemate are included in the Projects section

Automation Engineer - Novelis
May 2018 - December 2018

I worked as an Automation Engineering intern at Novelis, one of the largest alluminium manufacturing companies in the world.

  • Developed a plant wide QR system for maintenance forms, including daily report dashboards, which reduced time taken to process forms by 50%.
  • Independently created an application to generate QR codes for future forms.

Projects

DataMea
Java SQL javafx
DataMea
This group project was the main outcome of my cscs480 course. It is an email analysis desktop app, which pulls interesting statstics from your Gmail account
Open J9 Balanced GC Target Pause time
C++ Java
Open J9 Balanced GC Target Pause time
While working on the Runtime technologies team at IBM, I implmented a set of enhancements to OpenJ9 JVM's Balanced GC policy. The set of changes allowed applications to run, with significantly smaller heap, at equal or better performance, by improving heap region sizes. This set of changes also introduced a "Soft Target GC Pause" feature, which allows application owners to set a soft upper bound target to their GC pause times. This project involved significant collaboration with GC, and JVM team tech leads.
Routemate
Flutter Dart AWS MongoDB Golang
Routemate
This web application allows landscaping, and other service companies, to optimize their daily operations. This application provides clarify into which properties have been visited, route optimization, forms, and a wealth of other features to help snow removal, lawn care, and other services. This software was commisioned by Hansen Ottawa, and later acquired by EXT.tech
Cahoots
Flutter Dart AWS MongoDB Golang
Cahoots
Cahoots is a mobile application built in Flutter, aimed at helping gym-goers find gym partners at their local gym. This app was created using Flutter, as part of my software engineering capstone, alongside Douglas Myrdek.
SquashOttawa.ca
HTML CSS JS
SquashOttawa.ca
SquashOttawa is a site I volunteered to develop for the Squash organization that I am a part of - Barrhaven Squash Club. I provide regular updates to this site, and collaborate with others to make updates.
Encrypted Streaming Service
Java Webcam Capture API Cryptography
Encrypted Streaming Service
This project is a streaming service, which used AES encryption, and multicast sockets to securely stream the hosts webcam view, to clients with the correct room password. Used the webcam capture API to connect to get images from our webcam.
File Transfer Program
Java Computer Networking
File Transfer Program
This project is a file transfer program which is built using UDP datagram packets. The program is modeled after TFTP, and supports both Stop and Wait style acknowledgements, along with a TCP style sliding windows protocol for significant transfer rate improvements
Anki Car Intersection Handler
Java Computer Networking
Anki Car Intersection Handler
This project was the culmination of my software requirements engineering course. The goal was to create a serverless program, that successfully allow vehicles to navigate through the intersection without a collision (reload page to replay gif)
Custom Concurrent Hashtable
Java JMH
Custom Concurrent Hashtable
This project is my custom implementation of a concurrent hashtable, and using JMH benchmark framework, was compared against the jdk concurrentHashmap (which happened to have been created by my professor, Doug Lea)
Yelp Closest Businesses
Java
Yelp Closest Businesses
This is one of my projects from my csc365 course. This is a persistent, weighted graph algorithm, which shortest path finding capabilities, between business listed by yelp
Questionaires
Java
Questionaires
This game is a desktop version of, cards against humanity mixed with Quiplash, with a twist. Playable with multiple players across a wifi network. Includes a built in chat application. Built alongside a few SUNY Oswego classmates
Flood-it Parallel Solver
Java Computer Networking
Flood-it Parallel Solver
This project is a parallel move evaluator, which finds a winning list of moves to beat the game "Flood-it". Solutioning is sharded out to several helper servers to maximize throughput.
Parallel Genetic Algorithm
Java
Parallel Genetic Algorithm
This project is an implementation of a parallel genetic algorithm which finds the most effective layout of squares in the grid
Cube Runner
Java
Cube Runner
This is a game I made called asteroids. In this game, the user navigates a ship, and must dodge the asteroids that fly onto the screen. This is an omage to "Cube Runner" game