For those who don't know me, I'm autistic. Asperger's Syndrome to be precise. I've been a developer for the better part of a decade.
I didn't find out I was ASD until 19, and didn't really reconcile with that until likely years later. These posts will be a combination of advice I've given to those who are like me, as well as a letter of sorts to my past self who could have used a lot of it.
I write these posts in the hopes that someone like me will find value in knowing a very simple and very important truth about ASD:
You are not alone, and you are loved.
In my role at Square I've taken to mentoring several engineers, either directly or through one of several different classes I've been teaching or helping to charter. I give conference talks, speak at meetups, write prolifically on Ruby topics, and in general just tend to love teaching.
I've been asked a few times how I go about this, especially being on the spectrum, and it's a very fair question.
The very blunt answer is that I used to be absolutely horrible at it. This article is a look into how I got better at it, and how I grew from there to where we are today.
Now when I was younger I would talk your ear off for hours at a time on my personal obsession at the time, whatever that may be. Some tolerated this, others made sure to give me a wide berth to not get cornered into a long detailed rant on the latest subject-of-the-day.
These would become unidirectional information dumps on whoever happend to be in close proximity to me when the idea struck, and I had to reveal all the inner workings of the universe right there and then or my head would explode from the excitement of it.
Surely they would revel in all of my latest findings! Surely they would be equally enamored by these discoveries and be incredibly impressed by all of it.
Well, not really.
Most people just tolerated it, and a select few teachers and parents, bless them, would encourage some of the exploration.
Those few people were the ones that really got me started, and as trying as I could be in those times I have to thank them for acknowledging me and giving me confidence in what I was doing and being proud of me.
That makes a world of difference, so as a side note go tell your kid or any kid in your life you're proud of them and what they're doing, that stuff is huge.
Eventually I got to the point to where I would write down whatever my obsession was, and I'd fill notebooks worth of findings. I still have several of them and still find them as I clean up around my childhood home on occasion.
Some of this ended up being books, others of it eventually ended up finding its way onto the online world through Tumblr or whatever forums I happened to be frequenting at the time.
I'd just learned something incredible, and I suppose ironically due to my arrogance I wanted to share that to prove just how clever I was at the time. While my intentions were a tad less than noble it certainly did get me started on writing articles for others.
The problem here was that I was writing to share my own mind, and it was very unidirectional. I wasn't seeking feedback or trying to help people understand, I was more of showing off, and it resonated in my writing.
Now by this point I was notably still quite arrogant and loved to find all types of tips and tricks to prove how much more I knew than everyone else. I would explicitly learn something new just to show off and prove how much better I was.
Again, not healthy, but it did start a very interesting trend: I had to actually start listening to people when they asked questions.
This started to refine how I taught others by forcing me to step back and consider that my explanations weren't coming off as clearly as I had thought they were. What was obvious to me was absolutely opaque to others.
If I wanted to share things and have people appreciate just how clever I was I had to explain it more clearly.
Granted I'm exceptionally amused at past-me looking back at this, and would remind others this still wasn't a healthy way to be, but through some fluke I did start to develop more empathy during this time.
I was working at a Water and Electric company, and I was the only programmer on the team for quite a while with the exception of my manager who I'd spend hours chatting with about the latest idea I'd had. I'd fallen a bit back into the trap of ranting about for hours on end, and needed to step back and realize time is definitely a constraint.
Eventually a new intern started who was going to maintain some of the scripts I'd written. This gave me one of my first chances at direct mentorship, and again forced me to reevaluate how I taught things.
By this point I had lost a considerable amount of arrogance from other life issues, and it had become far more about sharing the joy of programming, in this case Ruby.
It became a far more bidirectional stream of information as my audience was now interested in what I was rambling on about. I began to want to teach more clearly to impart as much of that knowledge as I could as fast as I could to see them grow and to see what they could do with it.
This reframing was critical to me, and helped develop a lot of my sense of wonder and desire to share that. Granted it took a lot of practice to do that effectively, but I had started on a good path here.
In my second job I was still tutoring and mentoring on Ruby topics as I had time, and sharing with my coworkers all forms of fun tricks. Eventually it got to the point to where I was asked to do some presentations for engineering meetups at work, and it started me on speaking.
I wasn't very good at it, slides needed a lot of work, but the idea of sharing to a larger audience after seeing other tech speakers was exciting to me. Being able to get ideas to that many people at once was amazing!
This was also about the point where I started writing a lot of OSS and sharing more on blogs, and even got involved in the local Ruby community.
Towards the end of my tenure there I even had the chance to speak at the internal developers conference on Pry debugging.
The talk? Oh it crashed and burned in the most glorious fashion possible. My laptop wasn't working with the screen so I had to sit in front of the projector to present. My timer was my phone, which kept locking so I had no idea on pacing, and since my screen was mirrored I had no idea of timing either. I sprinted through that talk and awkwardly went to questions where some good friends bailed me out quick to fill up more time.
For as horribly as I thought that talk went though I had people coming up afterwards saying how much they appreciated it and how it was really awesome that I'd shared.
On that note, another aside: if you really loved a talk tell the speaker, because sometimes they're really beating themselves up over it.
I would write substantially more here and post all forms of tutorials and content. The problem was that I was one of maybe 4-5 Ruby people in the company and it really did wear on me to feel like I was kind of an outcast on my own little island.
I can't say this job was very good for my confidence there for a variety of reasons, but the team I did have around me certainly helped to develop my skills and boost confidence as I spent my years there.
My fourth and current job at Square is where things really started to take off, and there are several things here we'll be taking a look at.
I would spend a lot of time teaching engineers on my team, including a pair of support staff who would later go on to fill engineering roles themselves. This forced me to again refine my teaching to accomodate both junior engineers as well as those who spent very little if any time programming whatsoever.
It was an adjustment period, sure, but seeing them grow in their roles and improve was well worth all the effort to find new ways to explain things. Sometimes it took several different ways to get a concept to stick, and it really did force me to evaluate what was and wasn't common knowledge.
All those lessons were written down, and in some cases became classes and other content for the entire organization. A lot of them even ended up being published externally on blogs, which brings us to the next section.
By this point my writing had exploded into a truly prolific streak as my mentoring started to yield various topics that I thought could be explained a bit more clearly for those I was working with at the time.
These articles ended up being shared throughout the Ruby community and got a lot of attention, feedback, and discussion going. For someone like me who loved to be validated in what I shared this was a green light to gas-pedal as far as I could push it, and I certainly did.
That's a subject for another post on burnout though, but do note to be careful not to overdo it.
Point being all the time I'd spent mentoring uncovered all types of content that I'd have to find new and novel ways to explain, and I channeled all of that into writing so those lessons could be shared more widely.
It was about this point where my good friend Shannon had convinced me to start speaking at local meetups and sharing more of my ideas. He'd helped me build a lot of confidence in what I was writing on and introduced me to all the local Ruby meetups.
He was, in many ways, a hype man who really got me to start opening up on a wider scale. We'd talk for hours as far as ideas, potentials, careers, anything really. It likely helps that he's also likely autistic by his own admission, but that rapport was what gave me the confidence to try something completely insane:
I hadn't gotten selected for major conferences before and decided I needed to do something really out there. Being that _why the lucky stiff was a huge inspiration for the both of us we'd joked about cartoon animals teaching programming.
So I submitted a talk, and then something horrific happened:
It got accepted.
I was on the hook to deliver this hugely intricate illustrated talk to a Ruby conference in front of tons of people and I was danged terrified. So I took all my experience of writing small fiction stories, all my art, and spend hundreds of hours refining it into what became the first of many lemur talks.
This turned obscure topics from functional programming in Ruby into fun guides and adventures told with whimsical voices out of a storybook, and took all that experience I'd developed over the years and turned it into something really special.
Since that point I've spoken at several major and minor conferences like RubyConf, RailsConf, RubyConfAU, Southeast Ruby, Ruby Hack, and others.
It had taken me somewhere around 8 to 10 years to get to this point, so that wasn't fast nor easy.
That brings us to today where I'm teaching several different Ruby classes, developing frameworks for teaching classes at scale, training other teachers, and helping to raise the levels of engineers across the company.
It should again be mentioned that this took close to 10 years to get to in experience, and a lot of mentoring, teaching, speaking, writing, and hard work in the mean time to get there,
So much of teaching for me is listening to those who are learning, finding what they need to succeed, and finding ways to relay that information in a way that they can understand and internalize. Mind, that's real hard and I'm still not great at it, but I'm getting better.
Recently I've started to realize that I can't possibly teach all the classes I want to teach, so I'vev taken a bit of a meta approach of teaching others to teach, and making new mentors where possible from some already outstanding engineers we have here.
Most of it comes down to convincing them to take that first step, a lot like Shannon did for me when I really started, and going from there. It's not that I have some special power for creating teachers as much as I can see their passions and have learned over my years to help them share that and get their own stories out.
Thing is, every engineer has a story and a tale to tell, and one of the greatest things about mentoring I've found is helping them take steps to do exactly that.
I look forward to seeing where they all go from here, there's so much amazing talent in the world and such a beautiful tale to be told. Quite frankly several of them are substantially better engineers than me on some subjects and stories I could never hope to tell, and that's exciting to find them and hear those stories.
Mentoring is great, teaching is great, and seeing the potential of others is a very fulfilling thing for me.
While my path has led me to this destination, yours might do so a different way, and that's perfectly ok. So go out, take a chance, give a talk, write an article, and share your own story. I promise you have a beautiful perspective to share, and I look forward to reading them some day.
Now go out and be amazing, I believe in you.