project lead
Consent Management System
- • Tealium
- • JavaScript
- • Tag development
- • API integration
- • Localization
- • Accessibility
Background: The Crocs consent
management system is a privacy governance frameworks
that undergirds all of Crocs' digital properties. It
builds upon Tealium's Consent Preferences Manager to
ensure that Crocs is in compliance with global and
regional privacy standards such as the GDPR and CCPA.
It does this by soliciting user consent and then
suppressing any tags or API connections from vendors
in consent categories that the user has opted out of.
Features: Last year, I led a
project in Tealium to implement a comprehensive
consent management system across our sites,
bringing Crocs into compliance with global and
regional privacy standards. This not only
protected our organization from potential
legal troubles such as from the GDPR and CCPA
data privacy frameworks, but also built trust
with our customers who are now fully in control
of and understand how we use their PI data to
better serve them.
Challenges: Implenting Tealium's
consent manager across our 12 different sites within
three different regional privacy frameworks required
a great deal of customization. Furthermore, working
with internal stateholders such as our legal and UX
teams challenged me to think about the project from
different perspectives. Through effective communication
and Agile iteration, I was able to deliver a product
that satisfied all our business needs.
full-stack webapp
VXX Journeys
- • Python
- • Django
- • Instagram API
- • Postgres
- • HTML
- • CSS
- • JavaScript
- • Leaflet.js
Background: VXX Journeys began
in 2018 during a Python independent study
conducted under Professor Nikjeh at Moorpark
College. My goals with the project were to
become competent in Django as well to build
something that brought value to my organization
that I would update, maintain, and use for years
to come. The main purpose of the webapp is to
document my non-profit organization's bicycle
expeditions through Vietnam, a country that I
lived in on and off from 2010 through 2020 first
as a teacher and then as a freelance programming
tutor. Recently, I overhauled the webapp to be
responsive, I refactored or removed bad code,
and I added routes from our most recent bicycle
trip in 2020.
Features: VXX Journeys has two
main features. First, it contains filterable
Instagram posts plotted onto a map of Vietnam.
It achieves this by using Python to query the
Instagram API for new posts from the VXX
Instagram account and the Leaflet.js library for
plotting the images on the map. Second, it
allows users to select an individual day from a
journey to have the route plotted onto the map.
The GPS data is passed asynchronously from the
server to the client on demand. An admin
dashboard is used to upload new GPS routes for
individual ride days as well as to edit any
erroneous data pulled from Instagram. The webapp
is fully responsive.
Challenges: Throughout the
project, there were several noteworthy
challenges I faced which turned me into a better
developer. When I began back in 2018, I knew
very little about database design. Learning my
way around the Django ORM taught me to think
about data through the lens of object-oriented
programming. I've since become much more
competent in database design and management.
While revamping VXX Journeys this year, I had to
convert the database from SQL to Postgres in
order to host the site on Heroku. Through this
process I learned the nuts and bolts of
exporting and loading data from DBMS. Another
challenge I faced was the ever-mutating
Instagram API. The webapp originally logged in
to my account using the Instaloader Python
package in order to download posts. However,
when ran from a server, this triggered a
suspicious login attempt check. To bypass this,
I wrote a Selenium script to retrieve the
Instagram security code from my Gmail account.
However, the API had several limitations such as
how it structured its data and what permissions
it required to access certain metadata.
Furthermore, the image URLs that I would pass to
the front-end to be displayed on the map expired
after only a few days requiring the script to
continuously check for dead links and redownload
post metadata. Simply put, it was
over-engineered. While the system I built
ensured data confidentiality and integrity, I
decided that relying on a third party for
availability was unacceptable. In order to
ensure the long-term stability of the webapp, I
decided to refactor my script to download and
store Instagram posts locally. Now I can be
positive the webapp will always function as
intended. This project taught me so much about
coding using web frameworks. While I'm not
partial to Django specifically, I certainly
appreciate the power and speed that comes from
leveraging it to quickly prototype project ideas
such as VXX Journeys.
Front-end Internship
Graphic and Multimedia Design Program Website
- • HTML
- • CSS
- • JavaScript
- • Wordpress
- • PHP
- • Hotjar
- • Google Analytics
Background: mc-dma is the
official website for the Moorpark College
Graphic and Multimedia Design Program. The main
purpose of the site is to serve as a student
resource as well as to attract potential
students to the program. My work on the website
began as a paid internship under Professor
Svetlana Kasalovic. My goals in undertaking the
internship were to gain professional experience
working under a talented project manager,
prepare myself for taking on freelance clients,
and improve my web design skills. My role was as
the primary front-end developer. I worked
closely with a graphic design intern to recreate
her design in a pixel-perfect, responsive
manner.
Features: mc-dma is a
Wordpress-based, multi-page static site. It
features a homepage, a student work gallery, and
several pages with pertinent information and
resources for students. The site runs on
Wordpress, allowing for school administrators to
add future content without the help of a
developer.
Challenges: mc-dma had many
developers working on it before me, so I had to
learn how to jump into older codebases rather
than starting fresh. This taught me to integrate
the logical thought processes of people I had
never met into my problem solving skills.
Another challenge I faced was conducting user
testing in order to optimize the site. First, I
developed and distributed surveys to current
stuents in the program to study what they wanted
out of the site. I later conducted end-user
testing through Hotjar and Google Analytic. This
gave me insight into how clients actually used
the site. I learned a great deal about UX during
this process. Finally, the greatest challenge
that I faced was when the site was infected with
malware. The previous developers had hosted
several of the school's websites on a single
server. The infected site, which was not being
maintained by a developer, then infected all the
sites. I had to go through every PHP file and
manually fix the problems. I also ensured that
each site had anti-malware protection going
forward. The process taught me to never go into
an existing project assuming that the previous
developers had secured it.
Other projects
retired showcase projects go here (section still
needs to be designed)
more