In my time working as an Apigee intern so far, the thing that I have loved the most is the opportunity to work on a really cool engineering problem that:
1. Will very likely be used
2. My partner and I designed and built almost entirely ourselves
While I can’t explain too much about my project until we release and open source the code, we are working on a new method for rate limiting APIs (to protect them against spammers and bots). Our mentors gave us the general project overview and were around to support us if we needed it, but allowed us the freedom to complete this project ourselves.
A couple weeks into our project it became apparent that the base algorithm that we had originally selected was not going to work well. It did exactly what we wanted, but took an exceedingly variable and arbitrary amount of time (from .1 to 5 seconds). This led me to doing a lot of research, reading too many white papers, looking at many codebases, and finally settling on something which seemed promising as a replacement.
As far as I could tell, the algorithm I found had never been implemented before in the real world. I am not sure why, as it is brilliant and was exactly what we needed. I decided to implement it.
I reached out to the author of the algorithm, the person who had written the white paper. Within 24 hours, he got back to me! He seemed intrigued by my use, and even provided me with some of the code he wrote in C for the paper. Here is a snippet of our later conversation:
“Hmmm… Java is quite slow… Not sure how the hash computation performs.
Good luck with the implementation!”
I implemented the algorithm and it seems to work perfectly. I can’t wait to finish, release, and open source our project. It was such a unique opportunity to get a response from the person who created the algorithm that my partner and I used in a project that we created. I look forward to the rest of my time here, and am excited to show everyone what we have been doing!
Thank you for everything, Apigee