DevOps At JOOR: "Whose Dev Environment Is It Anyway?"
Below is an article originally written by Katie McKew, a DevOps Engineer at PowerToFly Partner JOOR, and published on May 14, 2018. Go to JOOR's page on PowerToFly to see their open positions and learn more.
I'm Katie, a Software Engineer currently doing DevOps (and loving it!) at JOOR, the world's largest digital wholesale marketplace. As a developer and a member of the DevOps team, I've experienced first-hand the importance of knowledge sharing and collaboration between pods (backend, frontend, iOS, or DevOps) within the JOOR engineering team. In this post, I will discuss how we are are creating a healthy DevOps culture at JOOR, including the lessons and changes we have made along the way.
Pinning down the pain points
During one of our tech-team retrospectives, we uncovered that many developers were facing pervasive issues with their development environments, particularly related to the Docker containers we run locally for testing. Heads turned immediately to the DevOps engineers in the room: they architected the environment and, in many cases, devs were counting on their Docker expertise to get unblocked.
This sparked an important conversation — is the DevOps team really the only team responsible for fixing our dev environments? Our DevOps engineers made the architectural decisions (like using Docker) that went into creating the dev environment that developers use every day. To developers who aren't very familiar with Docker, errors can seem esoteric, and only solvable by those who set it up. From a practical perspective, though, there just aren't enough DevOps resources to help each individual developer on a daily basis.
By surfacing this knowledge silo, we were given the opportunity to brainstorm solutions! (Aren't retros great?!)
Communication & Documentation
As anyone who has used Stack Overflow knows, the ability to search for your error message proves extremely effective in resolving issues — as long as the resolutions are documented, too. Our first idea was to crowdsource a "troubleshooting" Confluence page that documents common errors and resolutions. This resource still proves useful today, especially for new devs trying to set up their environments.
For more day-to-day issues, we created a dedicated Slack channel for people to share errors and issues as they encounter them in their dev environment. In addition to providing searchability, Slack allows our team to quickly discover if: A) other people are experiencing the same problem, and it could be a broken master build; or B) the issue is isolated to the reporter's machine, but maybe someone else has seen this issue in the past and can point to a known solution.
Both Confluence and Slack also provide great opportunities for engineers to step up and contribute to the team outside of just coding: they can grow their expertise by researching an issue, and they can demonstrate leadership by sharing knowledge with others.
Breaking Down Knowledge Silos
In recent weeks, our tech team has made strides in our effort to level up the users of the dev environment on the tools and infrastructure used to set the environment up. Our DevOps engineers have held lunch-and-learns — open to the whole company, not just developers — on various concepts like Docker and Kubernetes. These sessions have been helpful not only for seeing how these tools are being used at JOOR, but also for filling in devs' knowledge gaps and providing an open environment to ask questions. Using feedback from developers, the DevOps pod also improved the automated tools that developers can use to diagnose common issues in the dev environment. Both developers and DevOps engineers contribute to the crowdsourced troubleshooting documentation on our shared knowledge-base, and continue to resolve issues in public Slack channels.
Here are some mutually beneficial strategies you can bring to your team to minimize throwing things over the wall, surface issues faster, and resolve blockers more effectively!
- Developers — Pair with a DevOps engineer on solving your problem instead of throwing it over the wall. DevOps can learn from your frustrations and you can document this resolution for other devs.
- Walk a mile in each other's shoes! At JOOR we have the awesome opportunity to do rotations on other teams, so developers can gain DevOps experience and vice versa.
- Read and contribute to each other's documentation. While the DevOps engineers may initially need to lay out the README for setting up the dev environment, they can't possibly know what issues users will encounter while following the instructions. Ask new team members to point out ways to improve the setup documentation after they use it.
- Hold lunch-and-learns and record them! These sessions can serve as valuable resources for new and existing employees.
- Create a tight feedback loop between developers and DevOps to ensure Ops are working on fixing the most pressing pain points. This can take place in a public Slack channel, a full team retro (including ops and devs), asking developers to write and prioritize dev env bug tickets on the ops board, or even sending out a survey to developers to gauge sentiment on their dev env experience.
By implementing these strategies with our engineering team, we have drastically improved communication between pods, which in turn, has improved collaboration and productivity. We've placed greater emphasis on documentation, which has long-term value for both existing engineers and new team members during onboarding. Most importantly, developers feel more informed and empowered to unblock themselves, without feeling like DevOps are the gatekeepers to the solutions. The team shares mutual ownership and responsibility over the dev environment, so issues get surfaced and resolved more efficiently. DevOps culture for the win!
Interested in learning more about working at JOOR? We're hiring! Check out our PowerToFly page.
For the boss you loved, the coworker you hated, and everyone in between
Two things are inevitable when someone leaves your team at work: there will be an abundance of sweet treats (I'm partial to those giant cookie cakes from the mall) and there will be a card passed around for everyone to scrawl the professional version of sweet nothings in. Depending on the "importance" of the person, you may get the bonus activities of farewell gifts and/or an all-team champagne toast.
If you are a New York based tech professional and you'd like to attend this event, please email your name and LinkedIn URL to firstname.lastname@example.org.
Whether you are a software engineer, fitness enthusiast or both, you won't want to miss PowerToFly's evening of product demos and networking with the women tech leaders and allies at Peloton.
Founded in 2012, Peloton brought top talent together in its Silicon Alley headquarters to create a new concept in fitness. In their words, "We loved cycling but had a hard time finding a workout that consistently fit our schedules, and our at-home workouts never felt quite up to par. So, we set out to create a world-class indoor cycling studio experience on your time, and in the comfort of your own home."
This event is your chance to hear directly from the women tech leaders and allies who make their revolutionary products like the Peloton Bike, Peloton Tread and Peloton App possible. We'll be devoting a large portion of the event to taking your questions and I know the Peloton team wants to hear from you!
The unique evening will take place on Wednesday, February 12th from 6pm to 8:30pm at 125 W 25th Street.
These Researchers Argue It Could Lead to Traditionally Female Jobs Becoming More Valued
Studies have found that as women take over male-dominated fields, the pay drops. So what happens when men start joining female-dominated fields?
There's a lot more to building an inclusive company than just hiring more people from diverse backgrounds. So, how can you build an inclusive culture that will help you attract and retain a diverse group of employees?
How This Sales Coach Found Success—And A Career Path—at the Intersection of Tech, Construction, & Sales
A few months ago, Lily Zintak found herself at a crossroads.
She'd been working as a Sales Development Representative in construction management software company Procore Technologies' Austin, Texas office for the better part of 18 months. She'd watched the office grow from less than 200 people to more than 400—and even cut the ribbon when they opened a new floor of offices. She'd made 50-plus sales calls a day, honed an approach to prospecting and connecting with clients that worked for her, and found success. It was at this point in her career, where she had to make a tough decision.