My Work at Networkr
Sample of problems faced and solutions architected during my time at Networkr
– App slow to load on startup
Fixed app errors that were blocking us from building the app in production mode.
Converted entire app to use Ionic’s lazy loading structure.
Took app load time on my Galaxy S7 from ~20 seconds down to ~5 seconds.
– Main seating algorithm didn’t always seat everybody at an event.
I was told that the proprietary seating algorithm, which was an extremely complex algorithm with a lot of nesting and conditional logic in it, was not working. Not everybody was getting a seat, and I was told to figure it out and fix it.
I was able to use some unit testing and console logs to first begin to understand the flow of the algorithm, and then was finally able to locate and fix a single if statement that was off by 1 number that resulted in a couple of people not getting seated every time.
– Main seating algorithm didn’t fit the flow of certain networking events.
Event managers didn’t like having to wait for everybody to show up before running our seating algorithm to assign everybody a seat.
I wrote a new ‘real time’ seating algorithm that would take people as they checked in, compare them to who was currently there, and assign them a seat within seconds of arriving at the event.
– App would become sluggish, slow down, and crash as you used it.
App on fresh start ran really smooth, but after using it for a while would begin to bog down and need to be reset.
Using the Chrome developer tools performance tab I troubleshooted the app until I found that while using virtual scroll, the memory usage would continually grow and never get dumped. I looked into the virtual scroll being the possible culprit, but discovered that wasn’t the case. Upon further investigation I was able to find that it was caused by using (tap) instead of (click). (Click) on mobile created an undesired delay and made app feel slow to respond, and I was finally able to resolve by using ‘tappable (click)’ for all of our click function calls.
– Needed to be able to show dynamic meta information for social sharing of events.
Created a prerender system in Firebase for our webapp that would check headers when you hit the site. If you’re a user it will render the site, and if you’re a social bot it will load the appropriate meta tag information for our events so that it properly populates out the social cards for sharing on social media.
– Needed to create table placement cards for events.
Created a pdf event table placement generator by using a Firebase cloud function that uses Puppeteer to load a website with dynamically populated data, screen capture it, convert it to pdf, and then export it out as a download in your browser.