Ever since I posted this tweet, friends, acquaintances, and random strangers have reached out to me asking some version of the same question: "How do I become a developer advocate?"
Unfortunately, although I'd love to answer everyone, I don't have the time. Instead of answering everyone individually, I decided to write a detailed breakdown of how I became a developer advocate.
To be clear, people take many different routes into Developer Relations, so my route is not the only way and not the best. My path to DevRel could've been shorter and more straightforward. Similar to those asking me, I was also dying to figure out how to get into Developer Relations. A year ago, I was also sliding into DMs asking the same question. Fortunately, I found plenty of informative content from DevRel leaders on how to break into this field. In summary, the general advice for those seeking to become developer advocates has been:
- Learn in public by creating content in the form of:
- Public Speaking
- Technical Blogging
- Youtube Videos
- Twitch Streams
- Develop Empathy
- By working as a software developer
- Through building and helping developer communities
- By contributing to open source
- As a teacher
- Build your developer brand
- Through social media (ex: Twitter)
- By publicly showcasing that you're doing the above items
Because there is already a lot of advice about becoming a developer advocate, and for me, some of the items above seemed unattainable and overwhelming, I'll take a different approach. Instead of creating similar content, in this post, I will evaluate how each of my professional experiences helped me gain the skills I needed to get an offer to work as a Developer Advocate at GitHub.
It's likely that you have already developed the requisite skills or are already doing the work, but you don't yet realize it. My daily work already incorporated many relevant experiences and transferable skills, so I didn't need to pick up new skills, start a podcast, stream on Twitch, or even contribute to open source before interviewing. I just needed to package my experiences into a story that demonstrated I was a good fit for the role.
First off, what is Developer Relations? π€·ββοΈ
Developer Relations is the team responsible for building developer communities. The team consists of Community Managers, Developer Advocates, Developer Experience Engineers, Developer Evangelists, Technical Writers, and more.
I specifically wanted to become a Developer Advocate. According to Mary Thengvall, Director of Developer Relations at Camunda, "a developer advocate is someone who's got a developer or coding background but also enjoys writing, speaking, and generally empowering the technical audience to better understand a product. They advocate internally for the technical audience's needs."
How did I get there? π€
Before Tech: Empathy for Customer π
Between 2014 and 2016, I worked multiple jobs: Planet Fitness, H&M, Let's Get Ready, Mass General Hospital. Some of them I worked at the same time. For example, after my shift at H&M, I would run over to Planet Fitness. After dropping out of college for financial reasons, I developed an unhealthy obsession with money.
What I learned: I developed customer service skills and empathy for the user in these roles. Even when the customers had disagreeable personalities, I learned to understand their frustration. I also learned that having this many jobs was ridiculous regardless of my monetary goals!
During this time, I also pursued my Associate's degree in Computer Information Systems.
What I learned: Through community college, I learned about the importance of internships and theoretical IT problem-solving skills.
IT Support Internships: Problem-Solving and Learning in Public π§
Federal Home Loan Bank of Boston: This was my first technical internship. I went in not knowing anything, and I made it clear that I didn't know things, but I wanted to learn. In addition to migrating employees from Windows 7 to Windows 10 and implementing two-factor authentication on their mobile devices, I mostly helped employees troubleshoot their technical issues, which forced me to break down technical concepts in a way they could understand. People genuinely embraced my journey, and it made me feel like I belonged in tech.
What I learned: Confidence, terminal/command line basics, willingness to learn in front of others, ability to explain technical concepts to less technical people, empathy, and patience.
HubSpot: I held two internships at HubSpot as a data analyst for the AV support team and a help desk technician. HubSpot was a goal for me because I wanted exposure to the latest technologies.
What I learned: I learned about APIs and bash scripting within my six months at HubSpot. I also learned more about coding and decided to pursue a career in software development.
Social and In-Person Networking π€
Twitter: In 2016, I made a Twitter account dedicated to connecting with people in the tech industry and documenting my journey. Although my follower count was low, I made a few friendships and felt like I gained insight into people's experiences in the tech industry.
In-person conferences: My internships, especially at the Federal Home Loan Bank of Boston, sponsored me to attend local conferences. I gained inspiration, observed well-delivered conference talks, and learned to network with industry leaders through conferences.
Coding Bootcamp: Learning to Code π©βπ»
Resilient Coders: In January 2018, I joined a non-profit coding bootcamp for people of color. People told me attending a bootcamp is hard, and I didn't believe them until I experienced it. Because so much work was due at once, I had to consume information and quickly produce solutions to problems, which mirrored my future experiences as a software engineer.
What I learned: Front-end development, backend development, building fast prototypes, quickly solving problems on a deadline, and reading and understanding copied code.
Skillist: While I completed my coding bootcamp, I worked as a Content Marketing intern at a startup called Skillist, which is now acquired. I mostly wrote career and interview prep tips.
What I learned: This experience reignited my love for writing and reminded me of my creative and content creation skills.
Software Engineering Internships: Production Code and Computer Science Theory π§
Formlabs: Before I completed my bootcamp, I landed a role at Formlabs, a 3D printing company based in Massachusetts. I sat on a newly formed Business Systems team where they tasked me with building two internal tools that would help them integrate their systems.
What I learned: Although I doubt they still use my web apps, the experience was invaluable because that was my first time using unfamiliar programming languages to build a full-stack web application from scratch.
Veson Nautical: Fortunately, at Veson Nautical, they used data tables, which coincidentally, I used to build my applications at Formlabs. During this time, I also enrolled in Boston University's Accelerated Degree Program for Computer Science. At the end of my internship, Veson offered me a full-time role.
What I learned: Version control, writing production code, React, and navigating complicated systems.
Boston University: As I mentioned, I enrolled in BU to earn my bachelor's degree in Computer Science. It was stressful to balance both school and my job. I would not do it again. After completing a bootcamp and experiencing culture shock at all my prior internships, I was beyond exhausted, and I didn't give myself a chance to absorb what I learned. However, I gained exposure to computer science theory, which helped me better discuss advanced technical topics with engineers.
What I learned: Data Structures and Algorithms, Computer Networking, Java, Operating Systems, Calculus, Data Management, and Computer Architecture
Full-time Software Engineering: System Design π
Hi Marley: In February of 2019, I wanted to push myself more, so I worked at a startup. This company moved quickly. In terms of my skills, I was behind the curve, so I tried to keep up. I'm still grateful for this experience because the features I built were impactful and complex, making for great conversation in interviews.
What I learned: How to solve coding problems quickly, thinking about system architecture, AWS (Cloudwatch, CloudFront, DynamoDB, S3, and Lambdas), Redux, Microservices, Git Workflow, and debugging.
Volunteering: Building Inclusive Developer Communities π
G{Code}: As I completed my degree and continued working at Hi Marley, I helped to build a non-profit organization alongside the founder Bridgette Wallace and my colleague Bailey Siber. At G{Code}, we teach women of color and non-binary people of color the fundamentals of web development. In addition to creating digestible educational content, I had to think about their overall wellbeing, like if they needed transportation or food. Today, about 70% of our alumni have continued their technical journeys. Some of them currently work as Software Engineers at Intuit and Vertex Pharmaceuticals.
What I learned: Inclusive and equitable community building, technical curriculum development, mentoring, instructing, cold calling, cold emailing, technical event planning, and career coaching.
Hack.Diversity: One of the ways that I landed new jobs like HubSpot was through Hack.Diversity. As an alumnus from their pilot cohort, I felt grateful for their opportunities, so I served on their Alumni Leadership Council. We held alumni tech talks, and I led a team of 8 in building the MVP of an alumni website. I used this as a space to practice my technical presentation skills.
What I learned: Speaking skills, management, and event planning
Mentorship: Get Someone to Help You Shine β¨
In 2020, I discovered Developer Advocacy, but people always told me to wait until I had at least five years of experience in software engineering, or they said I would lose my technical skills if I did.
I took the above advice sparingly because I saw people like Chloe Condon and Ceora Ford doing exceedingly well in their roles as Advocates but didn't have 5+ years of software engineering experience.
My mentor, Anita Patel, supported my dreams and encouraged me to blog about what I learned, so I wrote my first post in April 2020 about the command: git bisect.
Tech blogging: Building a Developer Brand βοΈ
Botany: After suffering from burnout and severe anxiety, I was just trying to regain my self-esteem and love for coding. At Botany, my manager made it easy to do that. He encouraged me to write a blog post after I merged a PR to reflect on my learnings. His advice aligned with my mentor's advice, so I started technical blogging in between tickets. Here's one of my first posts about GitHub Actions.
What I learned: Effectively communicating more advanced technical topics in written format, slowly regained my confidence, GitHub Actions, React Hooks, and TypeScript.
Interviewing: The Moment of Truth
By the time that I started interviewing, I was able to demonstrate that I:
- Could build developer communities and connect with members in various communities
- Had experience giving technical presentations (to small, local groups)
- Had strong writing skills
- Loved helping others
- Had varied experience with solving complex problems in web development with code
- Knew how to exercise empathy
- Had experience organizing events
While my interviews were not all successful, I went into the the interviews confidently because I knew I had strong examples to demonstrate my skillset.
Whether you have been a teacher, a waiter, or a marketer, your past professional experiences helped you develop relevant skills needed to work as a Developer Advocate. Start reflecting on your experiences, and don't sell yourself short!