The first and most import thing to address is the icon choice here... it's really hard to find an icon that represents "freelance work" well, but I thought this was fitting because most of this work was probably done from the bed in my tiny NYC bedroom. Icon by Hea Poh Lin.
Anyway, here's a selection of recent and interesting freelance projects I've worked on, and some takeaways:
AIRPORT DATA MAPPING APPLICATION
Custom Mapbox and "news stream" implementation to match client's existing design specification. Effectively, this would showcase crowdsourced data on events occurring at airports internationally and allow users to easily find that data.
This was somewhat similar to the previous work I did with mapping.codes, but a bit more involved. Got some good exposure with search libraries and dealing with large datasets using Mapbox.
CUSTOM ZENDESK CHAT WIDGET
I built a custom Zendesk chat widget for a client managing two online shopping websites. Zendesk provides an SDK and sample application for this purpose, which I leveraged for these customizations. I didn't know any React prior to starting this project, but because I was working on top of a React based sample application I had to pick up some basics pretty quickly.
While Zendesk's chat SDK is very nimble and allows you to make a lot of customizations beyond the standard (and somewhat ugly) chat widget, the sample application itself hasn't doesn't seem to be incredibly well maintained, so much of my time was spent ensuring that basic functionality was implemented and operational.
UPCOMING EVENTS PAGE
A custom upcoming events list view and detail page for both mobile and desktop, built based on the client's existing design and leveraging their mobile app API. Developed in React and integrated with an existing Hubspot site setup.
This entire project was completed from scratch in under 12 hours to meet the client's deadline.
INTEGRATION BETWEEN WOOCOMMERCE, PARCELPRO (UPS/FEDEX SHIPPING API), AND FANCY
The client was using WooCommerce (with Wordpress) as their online shopping platform and manually entering order data into their shipping platform (ParcelPro, now owned by UPS Capital) in order to generate labels. I developed an application to link their WooCommerce orders and automatically generate labels via ParcelPro's API.
One of the most important things I gleaned from this job was that you shouldn't take on integration jobs for platforms you aren't familiar with. ParcelPro's API seems well documented enough if you take a look at the online documentation, but several issues quickly arose:
- While they claim that you can interact with the API via both XML and JSON, the truth is that certain endpoints only accept XML, and others only JSON. In fact, some even accept XML and return JSON.
- The test endpoint was down for maintenance during the entire project.
- Most legacy shipping APIs (such as this one) require anywhere in the range of 3-10 steps to actually generate a label. Having worked with an incredibly easy to use API in my time at Parcel, I incorrectly assumed this was the case with other shipping providers.
Later I worked with the same client on a project to synchronize their inventory between WooCommerce and Fancy. Fancy has an API that's in beta, but seemingly the person developing this has left the company? Any attempt to reach the company about issues here (over 30 emails) failed, and I received no response most of the time. The largest issue was that in attempting to post new products to the site, any image URLs provided would be processed incorrectly. What I think is happening is that on their backend, Fancy's AWS bucket URL is prepended to the image URLs you provide, which obviously results in the images not being found and your product submission being rejected. For this reason this project was incomplete.
I worked with the same client to optimize their eBay templates for mobile, and make them compliant with recent eBay guidelines.
CUSTOM ZAPIER APP
A custom Zapier application interfacing with the client's accounting software (Bexio). This allowed the client to create "Zaps" to automate tasks in their accounting software with triggers from Airtable.