My mission is to inspire other developers to bring their whole souls to their work, to build humane, impactful software systems that they can be confident in and proud of. I’m open to having a corporate partner in furthering this mission.
Ideally, I would like to work with an organization that finds mutual benefit in enabling me to be, well… me. Let’s talk about what that means, and why it might be worthwhile for both of us.
What’s my deal?
If code matters to your business, this is a guy who loves code, understands code, and inspires coders.
Hi, I’m Avdi Grimm. I have 20 years experience in software, working on everything from aerospace embedded systems to enterprise web applications. For the almost half that time I’ve focused on communicating with, educating, and inspiring other developers. Here are things that I like to do, and am good at:
- I love working closely with others on large, gnarly codebases. While my recent focus has been on the developer-education side of things, none of that teaching would be possible without the enduring satisfaction I find in working with others to cultivate value in established codebases.
- I am comfortable at all levels of project planning, execution and implementation from identifying a project vision, to working with stakeholders to map out essential workflows, to choosing technical infrastructure and architecture, to iterative object or functional design, to test-driven implementation, debugging, deployment, and improvement.
- I’m experienced at developer-focused media. As a technical screencaster, I founded and grew RubyTapas.com to thousands of subscribers, making it my full-time job for over five years. As a podcaster and panelist I’ve hosted hundreds of podcast episodes (and guested on many more). My books on Ruby and object-oriented design have sold over ten thousand copies. I’ve published innumerable blog articles. If you need help getting your message out to developers, I’m your guy.
- I reach developers with my unique voice. I’ve keynoted software conferences on four continents. My talk “The Soul of Software” was called “one of the most important talks in software development” by Dave “PragDave” Thomas. As a speaker, I take conference attendance very seriously. I’m not just there to drop in and give a talk. It’s equally important to me to stay present and available to every attendee for questions, advice, and encouragement. If you want someone to represent your company at developer events… well, you could do a lot worse.
- I coach and mentor. I’ve spent hundreds of hours doing remote pairing sessions, coaching and tutoring developers at all levels of proficiency. I’ve worked with developers on everything from programming basics, to object-oriented design principles, to refactoring massive legacy applications, to pragmatic testing practices, to architecture decisions, to career development choices. I’ve also co-taught object-oriented programming classes with Sandi Metz.
- I help developers communicate better. I’ve reviewed book drafts for Pearson, the Pragmatic Bookshelf and O’Reilly; helped numerous developers hone their conference talk abstracts and content; and helped dozens of guest screencasters convey their expertise to an audience of thousands.
- I have a business- and customer-oriented perspective. As a bootstrapped entrepreneur, I understand looking at customer needs first. I study and understand the language of marketing, and how to help people see if and why they need your product. I am a ruthless optimizer and delegator, never content to just “do the job” without improving the process at the same time. I am always looking for greater leverage and greater impact. I can help your developers learn and apply these same skills.
- I aim to inspire. As my Twitter audience knows, I believe in using my platform to inspire, affirm, to convey the joy of craft. While at the same time, being an intentional example of conscientious, empathetic, graceful software development.
You have an idea
You speak it
The words take life
And your idea walks out into the world
And talks to people
You've never even met
You don't have to imagine
You're a programmer
So basically a sorcerer
Put on a pointy hat
And make some magic
Happy hacking! pic.twitter.com/QuK8lsHcqn
— Avdi Grimm (@avdi) March 13, 2018
What would you get?
Applying my skills might mean different things to different organizations. Here are some of the things organizations ask me for help with:
- Collaboratively evolving code to meet customer needs. I believe that value and complexity often go hand-in-hand. I love diving into deep, rich existing codebases and drawing out even more value. And I prefer to work in a community of mutual learning rather than in isolation.
- Re-architecting and improving systems, especially technical infrastructure. Helping answer questions like: How can we bring our architecture in line with the workflows it supports? When/how do we break our monolith into services? Or vice-versa? How do the services communicate?
- Teaching, mentoring, and coaching individual developers, and in turn them developers to do the same.
- Coaching and facilitating teams, helping them to pair- or mob-program, communicate more effectively, and ask better questions for software design.
- Improving time-to-productivity and establishing a better internal development process for IC track developers (onboarding, training materials, consistent development environments, mentorship program, promotion ladder)
- Helping developers communicate more effectively with other teams and with the outside world. I have helped many, many developers draft articles, hone their tech talks, and create screencasts to get their ideas across to other developers.
- Representing your organization to the developer community. This could take the form of conference appearances, podcast hosting, writing, producing screencasts, or other formats.
- Showcasing the talent and expertise within your organization. You have smart people with unique experience and understanding. I can help them write articles, develop conference talks, construct courses, and produce videos that draw attention to your organization’s qualifications.
- Working with your developers to converge on and disseminate better practices for your organization. Helping them to get perspective on the bottlenecks and friction that slow down feature delivery in your unique context; to generate alternatives both in the small and in the large; to identify and document conventions and idioms that have worked well; and then to effectively advocate for the approaches they’ve discovered.
I want to keep being me, without looking over my shoulder at impending financial crunches. I want to be able to do the kind of developer education projects I love without worrying about the bottom line.
- I want to keep traveling to conferences and generally being a public person in the developer community.
- I want to get paid to do community stuff (like writing talks) that I currently have to treat as overhead.
- I want more resources at my disposal than I have solo. If I dream up a project that would empower developers while raising your profile, I want to have the money and person-power of a larger organization to draw upon.
- I want access to more developers with a wide array of competencies, to both teach and learn from.
- I want the opportunity to learn from senior people in areas where I’m weak, such as large-organization leadership.
- More pragmatically, I want health insurance for my kids and a salary that accommodates my substantial fixed costs and doesn’t require me to constantly scrabble for secondary sources of income. Or…
- …alternately to a direct employment relationship, I want a primary consulting client that provides gives me access to the kind of team environment I described above.
Why should you trust me?
Apart from teaching me a lot about Ruby & Rails, your work has made me a better programmer in general. Which obviously led to a better job at a great company, as well as a sense of confidence and happiness with my work. I'll be forever grateful for that.
You are someone that I think of when I try to figure out how to move myself forward. I know that your work will be empathetically considered and that it is of high quality. Although I expect these impacts to be greater in the future, I think the biggest impact on my life and work has been your impact on others. Others are more empathetic, confident, and write better code because of their interactions with you and your work and I benefit in a substantial way from their growth.
You help me think about code in an organized way, and you put a loving, human face on difficult and abstract technological issues. Your honesty and vulnerability make hard problems feel more solvable and success and fulfillment more reachable.
Your work and wisdom has been instrumental in my growth as a dev.
Your technical videos, etc have raised my game as a programmer. You have helped me understand various patterns and helped me improve my code.
I have learned several tidbits as well as full architecture lessons that made code for my projects and clients better. Saving me and my clients thousands of dollars and making me look like a hero.
You are able to communicate clearly and delightfully that software development is an elegant craftsmanship, especially with Ruby. Keep going with your "happy hacking!" 🙂
You've made a huge impact on the way that I think about what well-designed software looks like as well as helped me learn more about the Ruby language. Your communication skills and insight into the software development process have been instrumental to me!
You inspire me, I carry many of your teachings and thoughts and I frequently find myself using them.
I value your contributions to my life - I'm just a stranger from the internet - but I've followed your writings, talks, books etc. for a number of years. You've helped me in immeasurable ways - I recently got a job at [famous consultancy]; and a lot of the knowledge, points of view, etc. that got me here are thanks to what you have shared over the years.
I feel the biggest impact your work has had is the injection of new ideas and approaches. As a self-labelled, "insatiably curious" developer I'm always looking to learn from others. And while I can't quantify it, I find your screencasts, your approach, really connects with me. And it's the little things that, so far, has had the most impact... I write code that is easier to maintain and refactor.
@avdi is a great codesmith, but he really stands out by communicating difficult concepts in a way that just seems... inevitable.
I’m really thankful for your influence on the way I do my work and approach and solve problems.
The idea of confident code was a real paradigm shift for me. Trying to think in terms of patterns that avoid needless conditionals and null checks really upped my game.
You help me to improve as a developer and other aspects of my life, like thinking about life itself and all the little things surrounding us every day. The way you teach is specially simple and direct, the way everything should be.
Exposure to Avdi's work made me a better programmer, with wider knowledge and deeper understanding of tools and techniques used. It also made me more conscious about how I organize and design my code.
I am a much better programmer because of you, and those who work with me or after me are much better off dealing with the code I write now.
Your work has been absolutely foundational for me.
The number one thing that you helped me with is self-confidence. I feel more comfortable contributing to professional discussions and code reviews armed with the insights that you have helped me to gain. 🙂
News flash (for those that weren’t in the know already): @avdi is amazing. #seruby
Avdi with his incredible teaching abilities has truly pushed my development abilities and confidence to another level. Not only in the Ruby language but in many core programming concepts. If you're looking to break the barrier of being a mid level developer, Avdi's material is the BEST first step.
Avdi has made me a more confident coder, a better, more critical analyst of my work, an example of how to go about helping other people learn, and just a general interest in my questions and answers. His work has helped me to reduce the tech debt in my code, increase the confidence that it's bug-free and high quality, and to be able to point problems out in others' code during reviews. It's just a general joy and uplift to me when I get something from Avdi, whether it's a new RubyTapas episode (or an oldie but goodie!), or a question, or an answer to one of my many questions.
I can honestly say that your videos have helped me take my development abilities to the next level.
What are the constraints?
- I’m not looking to relocate. If I do, it’s going to be for personal reasons, not professional ones.
- Since I will probably be remote, regular travel to visit with elements of your team is not only OK, but expected.
- I will not answer to the title of “Evangelist”. Too proselytize-y for my tastes. “Pastor” or “Minister” are fine 🙂
- My role with your organization will be creative and connective. My role at home is as a single dad to four young children. The common element to both? I require extreme schedule flexibility. If I am scheduled to work with a developer or attend a meeting, I’ll be there. Otherwise, I want my value to be judged in impact, not in hours worked or what time I worked them.
- I expect and deserve to be in constant communication about whether our partnership is working. No yearly performance reviews, please.
- I have an established developer education business. While this would go into a lower-priority mode if you hire me, it’s not going away completely.
If you want to have a serious conversation about partnering to advance each other’s missions, contact me.