F# Foundation Mentorship Program

Posted by Alan Barr on Tue 20 February 2018

FSharp Mentorship Program

Ever since I began learning FSharp I wanted to take part in the community and learn more about functional practices. I signed up for the slack community and found many helpful resources for learning the language, tooling, and idiomatic practices. After learning about the FSharp mentorship program I signed up as a mentee but to my horror there were not enough mentors to give to everyone. I resolved to take part in the next session as a mentor. I definitely had concerns about being a mentor during this time. I do not write only FSharp for my personal projects and I have not applied it to a wide group of applications just various utilities that I use to carry out my job and personal concerns. I just hoped I had something to offer for my mentee.

Starting the mentorship relationship

I signed up on the mentorship form some time in early February and waited patiently. I received a pair of emails on the how the mentorship would work and the information on my mentee. The first email explained in detail the mechanism of the mentorship process, the guidelines of the process, what to do to start the relationship, the mentee information, and what to do if schedules or other issues prohibited the relationship. The second email that went out introduced the pair and carbon copied the foundation. I enthusiastically responded to the email introducing myself and what type of projects I wanted to work on. I waited patiently for a response. Unfortunately my mentee took a while to respond and the FSharp Foundation followed up with me and reached out to the mentee to see if things were ok. This worked perfectly because my mentee soon responded with information about himself and his interests.

Setting up the framework

The first step that we settled on was what feature we wanted to add to an existing open source project. We had many options available to us to work on for various FSharp systems. My main goal was to work on something that would be impactful to users while not requiring a significant amount of work. The mentoring relationship is officially only for six weeks. We want something that can last during the time and be instructive enough for the pair. I skimmed through the various repositories on GitHub filtering by issues with the "Up-For-Grabs" label and similar ones. Finally I settled on the ionide fsharp ide plugin and in particular a wonderful feature suggestion to build in a way to search by type signatures. The first step involved coaching the mentee on setting up our forked github project. He forked the project, added the ability to include issues in our project, and added me as a collaborator. I broke down our feature into a few different issues so we could tackle them in smaller pieces.

Next Steps

We will be meeting up soon to screen share and pair program on where we want to start with our feature. We'll discuss what features we have available to work on and add functionality piece by piece.