I’ve not really been active in writing blog posts over the last couple of years. Looking here, the last time I wrote one was when I was a junior in college during the start of the pandemic, and even that post took a few months to write! I figured as a good way to get back into writing blog posts, I would talk about where I’ve been over the last couple of years; it’s almost 2023 after all!
In the year following the last post on Mersenne Twisters, I finished my degree at WPI. In that time, I did the usual “college-student-thing” of taking some interesting classes (included a pretty fun one on compilers!), but I also got to try my hand in the world of academia.
At WPI, every student takes part in a “major qualifying project,” or MQP, during their senior year, which is supposed to be a capstone project of sorts. Our project was a bit out there, but we wanted to try and find a way to make it cost-effective to train ML models from training data stored in S3 buckets. After months of hard work, including after we had graduated, we eventually got published in the proceedings of the IEEE International Conference on Cloud Computing (IC2E). If you’re at all curious, you can read the pre-print of the paper on ArXiv. There’s a lot of fun details in there that I won’t re-hash, but I do encourage you to check it out! I still check the email address in the paper if you have any questions!
The other highlight of that year was being awarded WPI’s Salisbury Prize, which is assigned to (usually) one student per department in a graduating class. Though my impostor syndrome certainly made this tough to believe, it was a huge honor to receive this award; I definitely spent way too much time on academics in school1, but it’s nice to have something to show for it 😅.
Entering the workforce
In the summer after my junior year, I took an internship at 128 Technology, a
small SD-WAN company in Burlington, MA. Though we were all struggling to
overcome the challenges of being full remote, I worked with some fantastic
people and made some contributions that had lasting impacts. Notably, during my
time as an intern, the company was just completing a re-architecture to use
REST APIs as an IPC mechanism. To help give some field-level debuggability, I
added a command to our CLI (the “pCLI”) that would trace command execution
through these HTTP servers. In this case, something like
Jaeger was just simply too heavy-weight for
the on-prem solution we were building, so instead, I implemented what was
effectively a distributed
grep; every request would have a request id header,
and we would search logs on all involved nodes for any relevant entries. This
command paid dividends it was deployed into the field.
Of course, a summer internship is too short to know how much my efforts paid off. After that summer, I was generously extended a return offer to 128T, and shortly after, Juniper Networks acquired the company. The following summer, I started at the same-old small company inside this much larger machine. During my tenure there, I got to work on quite a few things as a member of their Systems team2, but by far the most notable was jumpstarting the effort to cloud-ify the configuration engine.
One of Juniper’s goals during the acquisition was to integrate our platform with their Mist platform, which offers cloud managed wifi access points. As I’m sure the sales team will tell you if you talk to them, they wanted to provide an end-to-end managed experience between the WAN connection and the users' connection to the LAN. In the months following the acquisition, another one of our teams had been hard at work on getting analytics piped to the cloud. After that MVP had launched, I was given a unique opportunity to design, prototype, and take ownership of the pipeline that applied cloud configurations to the routers. Over the months, I not only worked very closely with the wonderful people on the 128T team, I spent countless hours working with the Mist team to find integration points and write the glue between our two systems. This sort of “cloud-to-edge” work was super fascinating, and I’m happy to have been given the opportunity to work on it.
Onwards and upwards
After about 15 months at Juniper, I made the difficult choice to leave the company; I worked with some truly incredible people there, and I miss them quite a bit. This wasn’t for naught, though; I now work on some fun new challenges at Cytracom, a small Unified Communications (UCaaS) provider based out of Texas. I’m having a great bit of fun there and things are only getting started.
I hope to spend some time revitalizing the blog soon; I’ve worked with some fun new technologies both in and out of work (most notably Elixir/Erlang and Rust) and plenty of old favorites (like Go and Python). There should be plenty to talk about!
As an aside, if any college students are reading this, please take the time to take care of yourself. I know first hand how easy it is to get caught up in feeling inadequate, and in my case, I think I coped with that by pouring myself into my work. Don’t get me wrong, some of it was very rewarding, but I don’t know that I would have done it the same way if I were to do it all over. I really hope no one takes this blog post as “I struggled through this, and it was all worth it.” Sometimes you really gotta prioritize your wellbeing. ↩︎
With a name generic as that, there’s gotta be a lot to do! ↩︎