Michael 'dnsmichi' Friedrich README (Principal Developer Advocate)
This page is intended to help everyone to understand how I work, how to find me, my strengths and weaknesses, and my expertise and background. I’m intentionally vulnerable and open to feedback.
Please feel free to contribute to this page by opening a merge request.
Transparency note: This README was collaboratively edited with GitLab Duo Agentic Chat to improve readability and structure while maintaining my authentic voice.
About me
Growing up in Linz, Austria, I wanted to understand how a computer works. A 486 PC turbo-boost button that wasn’t enabled by default inspired me to study Hardware/Software Systems Engineering, leading to circuit design, hardware and software programming languages, and adventures with NFC and multimedia streaming in 2005.
A student’s dorm network project in Vienna, Austria, allowed me to dive into spanning trees (and loops!) and routing, which I expanded on with DNS and monitoring at the University of Vienna, Computer Center. Maintaining an open-source monitoring project for 11 years taught me how software is used in production, how CVEs impact security, and the importance of engaging with global events and community meetups. This journey helped me understand the evolving roles in modern DevSecOps and cloud-native workflows.
Outside of work, you’ll find me building LEGO models, combining embedded hardware with home automation, exploring nature, and travelling. You can learn more on my personal website: https://dnsmichi.at/about/
My passion for open-source communities inspired me to move to Nuremberg, Germany, in 2012, where I live today in the countryside. In March 2020, I started my all-remote adventure at GitLab. Today, I’m a Principal Developer Advocate focusing on AI, DevSecOps, and helping customers adopt GitLab Duo Agent Platform. Read on to learn how we can work together.
Biography and headshots
A detailed biography and CV available in different text lengths and languages, as well as professional headshot photos, are available in this public document. This gets typically requested by event organizers.
My work values
I follow GitLab’s values and specifically embrace these:
- I always assume positive intent and encourage others to do the same.
- I love transparency, and keeping everyone SAFE. I work in public by default, with a low level of shame. You can expect me to document my work, share updates, and engage in important discussions to help achieve company goals.
- We are managers of one. I will go with a bias for action and not ask for permission to propose an idea, MR, or action. If you want me to prioritize a request, please ask me directly by tagging me in an issue. You do not need to ask my manager to ask me.
- Say why, not just what. Understanding the why behind decisions helps me validate approaches and make better proposals. I always try to provide context so others can understand my reasoning and contribute more effectively.
- Handbook first. Everything needs to be documented in the handbook so that everyone can learn async. If something is wrong or not documented in the handbook, it is a bug, and we need to create an issue or a merge request to fix it. There is only one Single Source of Truth, and it is discoverable by all team members.
- I believe in “Everyone can contribute”. Technical problems/blockers/barriers, product features, handbook updates, etc. need to be broken down and explained at everyone’s knowledge level. I love honest and actionable feedback – please use a private message or schedule a coffee chat to help me grow.
- I follow disagree, commit, advocate and trust that decisions can be changed.
- Family and friends first, work second. While I am passionate about my work, I enjoy the freedom of flexible work hours and PTO, and working remotely, allowing me to put family and friends first.
How I apply these values
- I document everything. You’ll find me creating handbook merge requests and GitLab issues to track work transparently. I often identify feature proposals through dogfooding.
- I automate manual work. I automate repetitive tasks to stay efficient and love sharing those solutions with others. Whether it’s GitLab API scripts, quick actions, or leveraging GitLab Duo, I’m always looking for ways to eliminate toil.
- I work cross-functional. My role requires cross-functional knowledge. Learning and discussing outside my comfort zone and expertise keeps me challenged, and requires a safe environment where short toes are the default.
- I build trust through consistent action. I work hard to earn your trust by being reliable, transparent, and following through on commitments.
I bring my authentic-self to work every day – can you spot all easter eggs in my remote workspace?
Working with me
- I prefer asynchronous written communication over synchronous calls.
- I love low-context communication, providing all necessary context so that everyone can continue when I’m offline or focused on other tasks.
- I encourage everyone to be respectful of each others time, and avoid
@here/@channelmentions in Slack.
- Ask questions in public Slack channels, so that everyone can contribute.
- This helps loop in more team members, subject matter experts, and those responsible for specific areas (DRIs).
- Please avoid direct messages (DMs) unless it’s private or confidential information. I might ask you to move to a public channel after you’ve shared your question.
- I enjoy helping in public, and sometimes work evening hours to assist with incidents or timezone aligned tasks (after 10 AM PT, which is 7 PM CET).
- If I need to leave during a planned task, I will communicate the sign-off time and provide a handover summary.
- My calendar invites are editable by guests (team members).
- Feel free to adjust the time to fit everyone’s schedule.
- No worries about short-notice reschedules. I always have a task or project to work on, or appreciate the short break.
- My default Zoom URL has a waiting room set up for external guests. If I don’t show up in Zoom on time and let you in, ping me on Slack.
- No agenda, no attenda. If a calendar invite doesn’t include an agenda or attached Google document, I won’t attend. This helps ensure meetings are productive and respectful of everyone’s time.
- If you think a recurring coffee chat or a topic-specific 1:1 would be beneficial, propose a new calendar event and include an agenda document.
- My work hours cover mostly AMER and EMEA time zones.
- Meetings can be scheduled in my afternoon (4:30 AM to 09:30 AM PT, 1:30 PM CET to 6:30 PM CET). My mornings are reserved for focused work or errands/lunch with friends.
- Ask when scheduling during my focus time blocks (customer calls, EMEA syncs, etc.).
- Team members can always schedule a coffee chat with me. I’d love to learn about you, your background, life stories, experiences, and interests.
- Wider community members can ask for my Calendly link.
How to Reach Me
I go by dnsmichi everywhere: Slack, GitLab.com profile, GitLab forum, social media, and my personal website. However, for email and calendar, you need to find my full name Michael Friedrich or the short form mfriedrich.
I enjoy connecting with team members on LinkedIn, and amplifying your voice into my network (hiring, product/engineering insights, marketing, etc.). Tips for social media messaging are documented in the Developer Advocacy on Social Media handbook. I’m active on social media, but I have push notifications disabled on my mobile devices. I’m not good at responding to many private messages or connection requests, so using a different platform is more efficient.
My private contact details are available internally to team members. Please do not share them externally. If a web form asks for a phone number, use the company phone number instead. You can reach me via WhatsApp, Telegram, or Signal for location sharing, dinner coordination, and private pictures. If an incident becomes urgent and I do not respond in Slack, text me on my private mobile.
Strengths and weaknesses
Strengths
- I’m a fast learner. I’m always eager to expand my knowledge and skills, whether it’s learning a new programming language, framework, or technology. I enjoy tackling challenges and finding creative solutions.
- I’m adaptable. I’m comfortable working in various environments and can quickly adjust to changing priorities or requirements. I’m able to pivot and find new ways to contribute when needed.
- I document everything. You’ll find me creating handbook merge requests and updating GitLab issues and epics to track work transparently.
- I love connecting people. I actively engage in cross-functional discussions across key Slack channels, epics, working groups, and field syncs. I’m happy to make introductions within my network.
- I’m a team player and prioritize helping others achieve their results. I take the time to unblock processes and results (content reviews, feature and setup debugging, Duo adoption, etc.) or contribute ideas to iterate faster.
- I have a broad knowledge base across technical topics, open-source collaboration, content creation, and event strategy. My career has touched on many areas, and I’m here to share my knowledge and help you advance your goals and career.
Weaknesses
- I’m passionate about my work, and sometimes push my opinion. When I think my solution has the most impact, I push for it even when I’m not the DRI. I can also be direct, which can come across as overbearing. I’m working on balancing my passion with consideration for others’ perspectives.
- I say yes too often. I sometimes overload myself with tasks and need to reprioritize. The Eisenhower Matrix on my desk helps me manage this. Please track requests in an issue with a due date and assign them to me, or create Developer Advocacy requests.
- My native language is German, not English, sometimes leading to misunderstandings. I’m learning through coffee chats and using Grammarly to improve. When I share efficiency tips, I’m looking to help others benefit from what I’ve discovered, not implying you’re inefficient.
- I’m not good at email communication. If I need to follow up on an external email, please remind me or create a tracking issue.
- I occasionally fall into old habits and aim for perfection. Minimal valuable changes, boring solutions, and iteration are challenging for me. If you see me writing a long tutorial or capture-everything issue, remind me to break it down.
Experience and engagements
I’ve built my career across hardware/software engineering, network debugging, DNS, and monitoring systems. I enjoy debugging and troubleshooting in production, so I run cloud VMs, containers, Kubernetes, Raspberry Pi, and Arduino boards to keep learning and building in public. I share these experiences through GitLab blog posts and my personal blog.
I love creating tutorials, workshops, and trainings about GitLab use cases and new technologies - the 5-minute success moment is key for me. At my previous company, I authored their GitLab and Git training from scratch, and continued building workshops in my role as Developer Advocate at GitLab.
My learning approach:
I try to understand the big picture and always want to look behind the curtain. I’m interested in many cloud-native and DevSecOps technologies, but often reduce my scope after understanding the basics, blockers, and challenges.
For example, I was fascinated by Chaos Engineering and WebAssembly in FY23 but found it hard to build a business case after creating talks and workshops, like at KubeCon EU 2022. I also invested in learning eBPF in FY24 and created workshops for GitLab Summit 2024 to share the knowledge with team members, but did not identify an immediate business impact for the Observability group, and paused the efforts.
Current focus - AI and Embedded DevSecOps:
GitLab Duo and AI required me to learn everything from scratch in Summer 2023. How do Code Suggestions work, what are the best Chat prompts for quality output and efficient use? Do I really need to understand how an LLM works to use it? RAG, tool calls, Agents, MCP – I asked lots of questions, experimented, researched, and shared my learnings. Grateful for many team members breaking things down for me to understand.
Peeking into Embedded DevSecOps in early FY26 allowed me to build my homelab with Arduino, Raspberry Pi 5, and NVIDIA Jetson and Ansible automation for GitLab Runners - to solve the burning questions whether LLMs can run on Embedded hardware, and how AI can help with development.
The results were shared in the Learning AI 101 talk at Open Source @ Siemens 2025, and later at Container Days 2025, Evolving the Edge: AI, CI and Hardware-in-the-loop for Embedded. For FY27, I plan to leverage this environment to run Agents/Flows in a self-managed GitLab Duo Agent Platform use case.
After the successful GitLab DACH Roadshow 2024 AI use cases talk, I went all-in for 2025 with a talk story that develops as fast as GitLab R&D releases new Duo Agent Platform features from September to December 2025 - and live demos with an attached Arduino hardware board for real data collection.
How I learn best:
I thrive in areas where I am not an expert, and someone has asked for help, providing a real problem to solve. For example, customers asking about COBOL code modernization inspired me to leverage GitLab Duo Agent Platform to learn COBOL and identify migration strategies.
I also love live demos where unexpected things can happen, requiring me to leverage my experience to debug and move forward - just like developers do on a daily basis. This creates authenticity and trust, and I learn a lot about the problems that users might face. It inspires many content ideas, too.
My knowledge about GitLab features continuously sources from helping users on the GitLab Community Forum and field team members in Slack as AI SME. I also help maintain the GitLab handbook backend, adding a production environment that needs to run stable.
Cross-functional engagement:
My role as Developer Advocate enables me to take different hats: provide product feedback from different user personas’ views, evaluate marketing messaging, or generally brainstorm about product feature ideas and architecture.
Feel free to loop me into UX workflows, architecture proposals, product roadmaps, or website design for different target personas. Examples of my cross-functional engagements are competitive research, AI SME (#sme-ai in Slack), launch support for GitLab Duo Agent Platform, FY27 event strategy for DevRel, and use case adoption for GitLab Duo and CI/CD.
I’m a leader within GitLab, and happy to share my knowledge, expertise, and connections with everyone. I’m an ally in the Global Voices TMRG, and support underrepresented groups, for example in the Women TMRG Mentorship program.
Content & Resources
You can find my maintained talks in Developer Advocacy content library.
All-remote experience
Read about my all-remote journey at GitLab:
- Work setup
- GitLab profile
- Social profiles
- Blog: My 5th Year at GitLab: Developer Advocate Journey, AI Adventures, and Finding Balance
- Blog: Michi, Limited Edition - 4 years all-remote at GitLab
- Blog: Three years all-remote at GitLab: Know the unknown unknowns (growth, life, and work)
- Blog: 2 years all-remote and my 2022 vision
- Blog: My 1st year all-remote at GitLab
Thanks for reading
I hope you’ve learned a lot about me in this README. If you want to know more, or peek into my remote workspace background, schedule a coffee chat.
2717bc48)
