at the Green River College Foundation
Coast Guard Veteran and Green River College graduate Jonnathon McCoy has an impressive resume. McCoy completed his associate degree in IT at Green River in 2017, followed by his bachelor’s degree in software development in 2018. While a student, he maintained a near-perfect GPA and worked as a peer facilitator, tutoring and coaching other software development students. After earning his bachelor’s degree, McCoy was then accepted into the Microsoft-sponsored LEAP program, an immersive 16-week program that provides participants with real-world experience through software development and project management apprenticeships.
McCoy worked hard to be successful in LEAP and today is employed as a software engineer at Microsoft. In the long-form Q and A below, he provides a deep dive into his LEAP experience, reflects on his success, and offers practical tips to those who are interested in applying to LEAP.
Tell us about your experience in LEAP. What types of projects did you work on?
"I consider myself incredibly fortunate to have been chosen for LEAP. “This is my break, my foot in the door!” I would tell myself. From day one, I found myself among a lot of high performing, outgoing, wonderful people that came from many different walks of life. In fact, many in my cohort weren’t college graduates. Most came from coding boot camps."
Green River College + LEAP
For the first six weeks, I started with LEAP’s curriculum for what they felt was a necessary foundation for a candidate to work at Microsoft. I started with learning C#, Visual Studio Team Services (VSTS), and Agile. Considering many people in my cohort came from boot camps, it’s a fine line for the coordinators at LEAP to put together a curriculum to bring everyone up to speed. I found myself ahead of the curve as many of the concepts I encountered had already been explained in college over a greater period time, but that also gave me the opportunity to do another thing I love, which is to teach.
I would spend whatever extra time I had helping out anyone I could. It got to a point where one person in the Technical Program Manager (TPM) track felt it was necessary that I worked with every TPM’s team once per week so that I could share my knowledge. Especially important to them was my knowledge of Agile processes. The TPMs were grateful for my experience, and for my willingness to help them learn and guide their teams in the creation of weekly mock projects.
During those six weeks, I also found out which team I was going to (the teams choose you) which was to PlayFab in Microsoft Gaming. From there, I had the opportunity to meet with my Manager and my Mentor, two fabulous people, where they briefly explained what my project would be and some of the technologies I would be using.
My work related to General Data Privacy Regulations (GDPR) wasn’t anything flashy, but it was still impressive, or so my cohort-mates told me, as they were fascinated by the work I had done even though I felt it paled in comparison with the work that others presented during our Presentation Day.
Prior to LEAP, what lead you to Green River’s software development program?
I started out thinking I was going to go to transfer to the University of Washington. When I was about 14 or 15 years old, I started coding in Basic on a VTech Thinkpad. I enjoyed it then, but I had this misconception that debugging was a monotonous, boring, tedious task and didn’t pursue it even though I had always been curious. When I finally took my first Programming class in Python at Green River, I fell in love and my misconceptions were taken away. I found I had a knack for debugging and actually liked it!
From that point, I heard about Green River’s bachelor of applied science in software development. Green River was much closer than going to the University of Washington, and to be perfectly honest, I was also very satisfied with the education I was receiving from my instructors. They were knowledgeable, passionate about their subject and teaching, and human. Yes, human. The classes are small enough that they get to a point of knowing everyone’s name, a bit about your story, and would do whatever they could to ensure their students succeeded by offering of their own time or pointing them to other resources where they could receive the help they needed.
What key skills did you develop at Green River that prepared you for eventual success in LEAP?
Oh man, what didn’t help is a much smaller list! Here are my top 5 keys for success from Green River.
This was one of my best subjects, and one of the subjects that enjoyed the most while at Green River College. It was complicated, yes, but I loved the challenge. Coursework in Java taught me the foundations of programming such as encapsulation, inheritance, and polymorphism. In college, these cannot be mastered, but they can be understood and are the door to unlocking everything you can do as a programmer.
I cannot stress this one enough. Testing is a skill that can set you apart. It’s one thing to code something. Ok, now prove it works. Have you thought of how it can break? Can you mitigate what can break? Testing always seems to just “get in the way” of completing a project and many have this mentality of “just make it work, then we go back and test it.” In fact, I encounter this often in what I’m doing now. However, you must enter a project with a testing mindset. I would finish a project in college and then go back through and break it. This would reinforce what I was attempting to learn by doing the project; it would also help me think about what could go wrong, and take steps to mitigate those use cases. With my team at LEAP, I could not only code whatever it was they wanted done; I could also prove to them that what I created would work, and that I had accounted for a few edge cases. This gave them confidence in my ability.
Communication and working in teams
The incredible multitude of group projects at Green River seems daunting, but it was all for a good purpose. In LEAP you will be required to work on many teams. You can’t do everything by yourself (even though you may think you can), and it is imperative to work on many teams to be successful. “But I’ve already worked on a team. I know how to do it.” Sure, but what about in this particular environment as a software engineer? It is different. Being able to effectively communicate within a team environment is crucial to success.
most of the people in my cohort had taught in some fashion or another prior to LEAP as peer facilitators, tutors, teacher’s aids, etc. I asked my Program Manager if that was a skill they value and she said, “Well it wasn’t something we were particularly looking for and most likely was a matter of coincidence but there’s something to be said about those that can teach.” What she meant was, if you can successfully teach others about programming you show many desirable attributes as a candidate. You can speak effectively, you are able to understand complicated concepts in such a manner that you can communicate them effectively to others so that they can learn it, and you are a team player, and are willing to share your knowledge.
Thinking like a programmer
Anyone can code. Literally anyone! They can pick up a book or go online and do a couple tutorials. Congratulations, you’re a coder. But can you think like a programmer? How you approach a problem, how you assess the requirements, and how you implement your design to accomplish the most efficient and effective solution is what separates coders from programmers. Learn the best way to decouple code so that it is maintainable while still maintaining a degree of efficiency and effectiveness. It’s less about what you know (though knowing a lot is helpful) but how you leverage your experience and other’s work (design patterns) to recognize the problem and implement a useful solution.
Git gud at Git
Frustrating as it can be, get good at Git. It will save your sanity and is absolutely necessary in a team environment.
What application tips would you offer students who are interested in applying to LEAP?
First off, write your essays in a word document, review, and copy/paste them into your application. I ran into an issue when the online application didn’t submit and I lost my responses because I had started writing them within the text box and had to write it all over again.
Most important tip
Tell your story. LEAP is interested in how you got to where you are. What were the challenges you had to overcome? What are the challenges you still face? They want to know how you can bring your life experiences to Microsoft and enrich their teams with whatever makes you diverse. For me, it was my military background and the ability to prepare for the worst.
Also, demonstrate your knowledge
The two LEAP interviews are only 45 minutes long so there shouldn’t be any questions that are so terribly complicated that it would take 2 hours to demonstrate on a whiteboard. But be confident in what you know, and study up or teach others so it’s easier to recall. Make sure you ask clarifying questions before you start and while you’re solving the problem, and be sure to explain what you’re doing and why. They know how to solve the problem; they want to see and hear you do it.
What are your plans now?
Git gud: check!
Get hired at Microsoft as a software engineer: check!
Make money: check!
Continue to grow: always a work in progress! There’s always more to learn. Never stop learning.
Mentor others: new programmers need help! Be willing to take a chance on someone because someone took a chance on you.