For 6-7 years I worked at a public sector arts venue (since I was a student - my undergraduate degree was in English). My final role was negotiating, booking, and marketing a program of arts performances, classes, and events, as well as supervising the daily operation of the licensed community space, budgeting, and carrying out performance measurement. 🎭🎨🎤
After leaving the arts centre I did a load of short-term jobs (in a bookshop, as an office temp, etc etc).
In a desperate attempt to retrain and improve my career prospects, I went back to Glasgow uni. At almost 30 😱 I knew virtually nothing about computers, but discovered to my surprise that I loved programming. This intense course equipped me with a foundation in software development - we learned Java to an advanced level and some practical basics on a load of other languages and technologies. This intense course was a huge challenge, but in the end I was awarded a distinction and the class prize.. 😉
The Computing Science dept asked me back to tutor and facilitate lab sessions on the course I had just completed - the students came from very varied backgrounds, with many speaking English as a second language, making completing this course a huge achievement 🏆 (it was incredibly tough in a first language). This was a great introduction to helping people learn programming skills.
📌 Sidebar: One of my biggest takeaways from this course was that it's much harder to do "well enough" in the subjects you don't have an aptitude for than to do really well in the areas you take to more easily - in other words my proudest marks were not necessarily 'A's. Encouraging people to commit in spite of that horrible uncomfortable feeling is key to learning, particularly when it comes to coding, where it's essential to accept that mistakes are simply part of the process. ¯\_(ツ)_/¯
For several years I worked as a freelance web / multimedia developer and technical writer, going on to specialise in creating written material on coding topics.
Development projects included websites and multimedia applications for a range of clients, including an online graffiti drawing app and web-to-print software, as well as a long-term engagement with a local authority building games and other interactive components targeting child protection and health education issues. 🖼️
Over the years I authored hundreds of web development articles, always including fully functional sample code learners could remix and extend. I worked on product documentation from time to time too, including an extensive project producing help material for an XML IDE. 🌐
When Android came along I focused on it for a while, creating tutorials, courses, and videos on coding various aspects of the platform. My own apps included nonsense sentence generators and a madlibs-inspired grammar learning game. 📱
Some of my writing work:
What I loved most about tech writing was learning how to do something new with code, then synthesising what I had learned to create resources that would help others acquire the same skill. I also enjoyed making tech accessible to people of varying backgrounds.
I worked as a contract tech writer with the Mozilla Foundation over a couple of years, authoring API documentation and tutorials on the Open Badges project, then assisting with supporting material for community contributors to the Hive Learning Network. For Open Badges, I documented several APIs, creating reference docs and tutorials on complete client app implementations.
In addition to the instructional docs, I authored conceptual material and standards specifications. All of the content for Mozilla was published via GitHub - in repo markdown files, project wikis, and static GitHub Pages sites.
Some of the work I did at Mozilla:
• Badgekit Web app wiki
• Badgekit Client documentation
• Badgekit Displayer wiki
• Open Badges specifications
• Hive Learning Networks contributor guide
• Hive NYC blog posts
• WordPress theme documentation
I learned a huge amount about open practice during my time at Mozilla, and developed my understanding of how participatory learning projects function. This inspired me to co-found Hack Aye, an organisation here in Scotland.
With Hack Aye I led a series of participatory learning sessions for young people in association with local partners. These workshops and events were aimed at helping participants to adopt the tech, organising, and collaboration skills in open source software development to drive their own creative and activist projects. We connected to Mozilla's education networks in a number of ways during this time, including leading a session at the Mozilla Festival. 🤖✊
Some highlights from Hack Aye:
This combination of experiences led me to see myself as most useful when positioned at the intersection of tech, education, and community.
I started as Developer Educator at mobile app development platform Dropsource and transitioned to Developer Advocate from 2018.
In my time at Dropsource I designed and implemented an education strategy, owning documentation 📝, leading live learning experiences such as webinars 🎒, and producing videos 📽️. I managed the Dropsource community from its inception, and led the company's initial support effort, eventually creating a new role for a dedicated support person who I onboarded and mentored on an ongoing basis. As my responsibility within the company grew and I learned more about developer relations, I also advocated for the user perspective during product planning, as well as contributing onboarding, copy, and UX input within the product.
Having attended DevRelCon in 2017 and 2018, I formalised my findings 🤔, shared and put what I’d learned into practice, for example adopting a “docs like code” approach to bring engineering productivity and efficiency gains to our help center (e.g. via dynamic / interactive content and developing an open source Jekyll / GitHub pages implementation of the documentation).
Having consistently evangelised for more meaningful user contribution channels and open communication internally, I started to build the infrastructure for a range of new pathways to help community members achieve their goals within the platform ecosystem and have an impact on product direction.
It being a startup, my Dropsource role involved wearing multiple “hats” 🎩👒👷, for example extending the help center with a load of custom code. The nature of the software is that users integrate their mobile app with an external REST API using an OpenAPI/Swagger spec, so much of the guidance and support I delivered was focused on API and Swagger troubleshooting. I also developed various demo APIs for example apps, using a range of backend platforms, particularly node.js on Heroku. Some of the documentation was delivered inside the product, contributed via the version control / code review process for the plugin system codebase.
One of my proudest achievements was advocating for our own developers internally when the company went through some changes that risked marginalising the engineering team. During this time I volunteered to lead some challenging conversations and liase between product management and engineering while we worked through these issues.
The company became more distributed / remote-friendly over the time I worked there - I tried to help encourage and smooth this transition by introducing and demonstrating open, asynchronous communication practices.
I also connected to external partner networks and contributed to enterprise customer development by creating demo backend APIs and apps, developing training programs, and leading support planning.
Some highlights from my time at Dropsource:
Authoring almost every word in the help center (and iterating on user feedback), like these guides:
Managing the community:
Creating shareable resources:
Developing an implementation for a community hub:
Sharing internal learnings including via blog posts:
I always look for opportunities to empower and enable developers within the context of a software project. I try to represent / support users via whatever channels work best for them, and believe maintaining a productive dialogue that puts developers and their projects at center stage - seeing your product as a tool in their process - creates a win-win situation that highlights opportunities for everyone involved. 📣🤓🚀
Who knows? I'm open to opportunities to contribute to education and community around software projects, especially if they involve open source, whether on a full or part-time, contract or consultancy basis.
At DevRelCon in November 2018 I got actively involved in the discussion sessions at the unconference, including one I proposed on internal advocacy - I've been pleased to see devrel start to shift away from "broadcast mode" and towards dialogue, empowerment, and openness. We could do a lot more to get new people involved in tech imo, for example by framing open source contribution as a learning pathway for coding skills.
To me an educator is someone who creates the conditions for learning, supporting the learner as they direct themselves through that process, within their own context and the wider ecosystem - this is why I've gravitated towards community and advocacy. My passion is to facilitate learning that enables people to achieve their goals with technology - I'm a "Developer Developer". 🚧