Getting back into the workplace after (almost) 2 years of school and ??? years of pandemic this summer was surreal and satisfying. I joined the Infrastructure Automation team at Expedia for a 10 week software development internship. The team is primarily responsible for provisioning Virtual Machines and infrastructure assets via code and the main focus of the summer was getting ready to launch a new internal tool that would allow Expedians to spin up and manage their own VMs according to their specifications – OS, server location, server size.
For the tech-stack curious – the platform used Stackstorm (written in Python and YAQL), Java Spring, Mongo, and React. Using Stackstorm, in particular, was an interesting experience. Workflows are managed from a YAQL file that forces you to define inputs, global variables, and outputs at the top of the file and some. . . interesting handling of conditional branching. Unlike absolutely every other language in existence*, once a conditional block was hit, it would execute whatever it contained AND still check the state/variable/whatever against all the other following conditional statements.
The documentation for Stackstorm is quite good but this point wasn’t entirely clear (even for my teammates who had been using it for years). As with most things, once you know the quirk, the possibility of hitting multiple conditions can be helpful (even if those statements end up being a little Frankenstein’s monster-ish). I’m still not sure what’s happening under the hood with this branching – i.e. is it more of a JS promise situation or like child-processes. We (I) may never know.
Outside of syntax, Stackstorm comes with some nice unexpected features like automatic generation of workflow visualization – really helpful for wrapping your head around any spaghetti branching you may have created and great for communicating between team members.
4 out of 5 stars, would use Stackstorm again (1 star taken off for triggering memories of using Assembly).
Tech aside, the team was amazing – friendly, funny, and helpful. I don’t think I’ve ever seen a dev team with this strong of communication skills. The overall company culture at Expedia seems great, too. My view was short and full of intern hand-holding but the desire for inclusivity seems sincere and the work/life balance appears to be great for most people there.
*Please don’t factcheck this