Engineers at Medium are not solely relegated to the process of building features – we’re actively included at all stages of product development.
Every employee at Medium is encouraged to share product ideas during team meetings, brainstorms, and in more thorough write-ups on our internal blogging tool, Hatch. These ideas often become actual projects on a team roadmap, or are built out during one of our quarterly full-team hack-weeks (for instance, our Android audio player began as a hackweek project). Engineers, designers, and product managers work in tight collaboration throughout sprint cycles, by participating in user research studies, providing feedback on designs and product briefs, and soliciting feedback as features iteratively come to life.
We deploy code to production continuously Monday through Thursday, 9:30 am to 4 pm.
Once tests pass (which usually takes about 20 minutes total) on an engineer’s approved pull request, it is deployed to our staging environment, where it runs for 45 minutes before getting deployed to production. We currently use Jenkins to run our deployment scripts for the web application and our Android app, and we use CircleCI to deploy our iOS app. Our iOS and Android apps are released a minimum of once a week, and often more often than that.
We value continuous delivery (and testing our code) because working iteratively gives us the ability to move faster by not bundling too much functionality together at once. It reduces the risk of rolling out many changes, finding an issue, and needing to roll back a lot of work. It is also good for engineers to have the ability to test their changes locally, on staging, and on production quickly, to make decisions for the next iterations. Our ability to ramp code from an admin dashboard also allows us to turn off a feature instantly if there is an issue, without requiring a deploy.
All of these practices (thorough testing, continuous deployment, and utilization of the ramp dashboard) make the basic practice of deploying code less risky, which allows us to make more interesting and experimental choices in how we problem solve in code.
Transparency builds trust, which is critical for us to work together effectively and work as fast as we can towards our common goal.
We have an internal version of Medium for all employees to write about any topic, whether it’s technical specs, brainstorms for a product, or even personal stories (that are both goofy and serious). It’s a medium for executives to share their decision-making process and allows employees at all levels to suggest ideas and spark conversation.
We have a company all-hands every friday (“FAM” = Friday Afternoon Meeting) where teams and individuals present what they’ve been working on, events and initiatives, or anything they want to share with the company. There is an “Ask Anyone” Q&A period at the end where anyone from the organization can ask questions of anyone else in the organization. This is a nice way to open up conversation with the entire team, and to hear from leadership and members of different teams about topics that may affect the entire company.
Finally, we at Medium believe in open communication with our community! We publicly share many of our internal documents, and openly discuss how we operate internally. So, if you’re curious about how engineers get promoted at Medium, or how we conduct technical interviews, free of unconscious bias, it’s no secret. If you have more questions for us, we welcome you to reach out and ask!
We believe in providing feedback in a way that illuminates an employee’s strengths and also identifies opportunities for growth.
Everyone in the engineering organization participates in 360 feedback twice a year where each person requests feedback from a set of peers, their manager, and anyone that they manage. Before doing so, employees can participate in in-house training sessions designed to teach them how to separate feelings from facts in the workplace, to help remove any emotional bias and ensure feedback is as objective and actionable as possible.
In addition to our 360s, we also have retrospective meetings weekly on many teams, as well as after the completion of large projects and at the end of each quarter. We take this time to appreciate what went well during the week, project, or quarter, and to discuss what we can improve upon moving forward. These meetings reflect the team as a whole and never place blame on any one individual, and they give us the opportunity to continuously iterate on and improve our processes.
Committed to Personal Growth
We recognize that roles are not static and aim to help engineers evolve professionally.
We run internal workshops at Medium ranging between technical classes and brown bags (so that engineers can learn and contribute to different parts of our stack) to leadership training for those who are interested in pursuing a management career path. If employees have interests beyond what we offer in-house, they can take advantage of our education budget to further their career development via online courses, conferences, or books. We also offer guided in-office meditation and yoga classes as well as a fitness reimbursement to support mental and physical growth. We’re serious about personal development, which is why we published our engineering growth framework in full.
Team is Diverse
As a company, we believe that diverse perspectives deepen our understanding of complex issues, and great ideas can change the world when you create a welcoming space.
Diversity and inclusion are critical parts of this mission. To this end we have a Diversity and Inclusion Committee (composed of a diverse set of individuals from different functions in the company) that’s dedicated to improving the diversity of our team both through hiring and promoting within. Other ongoing projects include: improving the accessibility of Medium, supporting employee resource groups (our [email protected] ERG was formed last year), and organizing fireside chats with leaders from different backgrounds.
We also partner with Code2040 for our internship program. Code2040 is a program for Black and Latinx students to find internships at tech companies. We’ve been partnering with them since 2015, and we have hired many of our interns full-time from that program!
Actively Practices Inclusion
We aim to empower all employees to be heard and respected and have several processes that we practice day-to-day to promote an inclusive culture.
Inclusion starts at the very first interaction: hiring. Our interview process is designed to mitigate bias. We explicitly do not screen for school, previous companies, or open source contributions. As a full-time employee at Medium, you’ll also find that meetings begin with a check-in round, where everyone has an opportunity to share where they are at and what they’re bringing to the meeting with them. Similarly, everyone has the opportunity to add items to the agenda, so that different personality types can contribute to the conversation. Finally, our team events and offsites rotate (previous ones have included a ropes course, pottery making, and trapeze), so that no one feels excluded. We know that not everyone wants to or enjoys drinking, which is why none of our event revolve around it. However, chocolate making, woodworking, and museum visits are in the rotation.
Fosters Psychological Safety
The engineering culture at Medium is very focused on trust and respectful communication.
Even when things are breaking and not going as planned, the team is committed to remaining calm and problem solving together. We don’t place blame or speak aggressively at each other. We publish posts on our internal version of Medium to address any severe technical issues that arise, solutions, and learnings from those things, and it creates a culture where it is safe to fail, learn, grow, and share that with each other.
On a more personal level, Medium supports employees’ preferences when it comes to how they identify or choose to present themselves, and protects their privacy if, for instance, they do not want to be externally identified as employees. Medium has done a great job creating an open and supportive environment that allows everyone to be their true selves at work.