Page MenuHomePhabricator

Proposal: Improving Top 50 API documentation & creating demo to help users of MediaWiki learn how to use our APIs
Closed, DuplicatePublic

Description

Profile Information

Name: Marty Hernandez Avedon
IRC nickname on Freenode: N/A
Web Profile: https://martyav.github.io/about-me/
Resume (optional): https://www.linkedin.com/in/marty-hernandez-avedon/
Location (country or state): New York, USA
Typical working hours (include your timezone): EST (UTC -5:00), 10:30 am to 7pm (not necessarily working through all that time, but active and responsive to emails, etc)

Synopsis

Summary

I am currently working on improving articles in the Microtask, "Pick a MediaWiki Action API page to review and improve" (https://phabricator.wikimedia.org/T205199). I would like to continue working on improvements to these articles, as well as work on a Python-based app demonstrating two or more APIs, so users of MediaWiki have a practical, working example of how to utilize our software. I have prior experience creating web and mobile apps, which are listed below, under the Past Experience section.

Possible Mentor(s)

Sarah Rodlund and Srishti Sethi

Have you contacted your mentors already?

I have been in touch with Rodlund and Sethi since Outreachy approved me for contributing, in early October

Deliverables

I could contribute to 2 articles per week, over the course of 10 weeks, for a total of approximately 20 completed articles. Concurrent with this, I would study and practice Python and the Flask framework, which Sethi used in her demo app on her sample code repo. I would also spend 3 weeks towards the end of the 12 week long program working on a demo that utilizes multiple APIs, and create tests to ensure code quality and effectiveness.

Participation

I would continue to communicate with Sethi on Phabricator and Zulip, and Rodlund via email. I would host my demo and any sample code on Github, in a fork of Sethi's sample code repo.

About Me

Education

I studied graphic design at a city college in New York (Kingsborough). After graduating with an Associates in 2010, I started on my Bachelor's in Media, but had to leave school before I could complete it. At that time, I was dealing with some heavy personal issues, such as the death of my father, and starting my medical transition as a trans person.

I spent several years (2010 to 2016) writing for OneSpace, a company that provides web articles for sites such as AskJeeves. I wrote on a variety of topics for several years, including computer science subjects ("What's a delimiter?") aimed at a middle school reading level.

I started teaching myself how to code in 2015. My first language was Python. In 2016, I began to move on to modern frontend web design (HTML5, CSS3, ES6). That same year, I was accepted into a tech bootcamp called Coalition for Queens (C4Q), which placed me in their Swft/iOS cohort. C4Q also introduced me to using Github for collaborative projects. I graduated in 2017.

In early 2018, I refocused on C# in preparation for an apprenticeship with Microsoft. I worked there in the spring and early summer.

With the apprenticeship over, I have been studying and practicing web design again.

How did you hear about this program?

I learned about it on a tech Slack for LGBT people.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

I like to tutor at my former bootcamp, but I can participate in helping students in other ways if I fall short of my timeline.

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

I'm not eligible for Summer of Code

What does making this project happen mean to you?

I like educating others. I want to make the API documentation easier to use in part because it is already being used by people like me -- students or alumni from bootcamps -- but sometimes it is confusing, and that hinders people from diverse backgrounds from learning and gaining tech skills.

I also enjoy writing, breaking down technical topics, and creating sample code. It makes me feel helpful to create resources that make it easier for people to understand tough or complicated subjects.

In addition, I want to improve my Python skills. I like Python, but I've never used it in a large project or app. I'd like to challenge myself by working on a demo app.

On a more personal level: I've been having a hard time finding mentorship in the tech community. I know it's really important to network and learn from more experienced developers, but I've been struggling to find that. Most of the people who have helped me along the way have come from similar backgrounds as I do, and don't have much more experience than I do myself. I'm interested in Outreachy because I want to grow and learn from others with much more experience, and from different backgrounds, in a welcoming environment.

Past Experience

MediaWiki Related

https://github.com/srish/MediaWiki-Action-API-Code-Samples/pull/9
Pull request for sample code on the API:Images page. Merged.

https://www.mediawiki.org/wiki/User:Martyav/Sandbox/API:Images
Sandbox for drafting improvements to API:Images page. Approved by Srishti Sethi and contents added to live API:Images page (https://www.mediawiki.org/wiki/API:Images)

https://github.com/srish/MediaWiki-Action-API-Code-Samples/pull/17
Pull request for sample code on API:Redirects. Still pending.

https://www.mediawiki.org/wiki/User:Martyav/Sandbox/API:Redirects
Sandbox for drafting improvements to API:Redirects page.

https://www.mediawiki.org/wiki/User:Martyav/Sandbox/API:Lists
Sandbox for drafting improvements to API:Lists page

Other Projects

https://github.com/martyav/sample-programs
The above repo was my first time participating in a large project with strangers, for reasons other than work. I created a code sample for reversing a string in Swift, and also made a thorough article describing Swift's unique language features (https://therenegadecoder.com/code/reverse-a-string-in-swift/). I more recently submitted a code sample for Fizzbuzz in Swift, and am working on a draft for the accompanying article. I think this project is the one most similar to MediaWiki's doc project, even if it is in another language, because it involves writing sample code and explaining it to an audience that may or may not have a lot of background knowledge.

https://github.com/martyav/drawing-pad
A web app for drawing, using HTML5 canvas. My most recent project. It's taught me a lot about the DOM, and how to create a web app, without being dependent on a framework such as jQuery or React. I think any web apps submitted should rely very little on dependencies, to keep them small and evergreen.

https://github.com/martyav/git-CLI-cheat-sheet
Repo describing Git vocabulary and commands in plain language. I created this for students at my bootcamp. I tutored at my bootcamp last year, and many people had trouble understanding Git. I recently updated it with corrections, for the current class.

https://github.com/martyav/nibPractice
Repo with demo teaching an iOS concept. I created this repo while still a student at my bootcamp. A lot of people were having trouble with .nibs (a kind of visual layout file for iOS apps), so I took some screenshots and created a repo with a sample project inside, demonstrating how to successfully use them. I was very careful to describe any pitfalls they might run into while navigating the GUI to wire up their layout.

https://github.com/martyav/swiftBasics
A Swift playground (kind of like a repl) I created for students at my bootcamp, to teach basic programming concepts in Swift.

https://github.com/martyav/ticTacToeHomework
A repo containing a Tic-Tac-Toe demo for students at my bootcamp, with numerous comments describing why things were done a particular way. Intended to teach how to create an iOS app.

https://github.com/martyav/AC3.2-weLearn
A learning management system for iOS. It was my capstone project at my bootcamp. It was the longest collaboration I had participated in up until that point. It taught me a lot about project management and working on a team, refactoring, and updating projects to keep them current.

https://github.com/martyav/algoReview/tree/master/pythonSolutions
This is really the only example I have of working with Python. Python was my intro to programming...but I didn't get active on Github until after I started learning Swift, and by then I was no longer working with Python.

Any Other Info

I've got a blog describing my path forward in tech: https://martyav.github.io/blog-posts/

Event Timeline

Martyav renamed this task from Improving Top 50 API documentation & creating demo to help users of MediaWiki learn how to use our APIs to Proposal: Improving Top 50 API documentation & creating demo to help users of MediaWiki learn how to use our APIs.Oct 30 2018, 5:37 AM
Martyav triaged this task as Lowest priority.Oct 30 2018, 5:42 AM
Martyav removed a project: Outreachy (Round 17).
Martyav updated the task description. (Show Details)
Martyav removed subscribers: Aklapper, srishakatux, Martyav.