I am going to be honest and state right up front that I did not spend 44 minutes reading through the introductions. I am sure that I will get to know active users over time and will refer to your introduction as needed so it's not a waste.
I have been developing software professionally since 1985. I have worked on everything from nuclear power plants to satellites. I have traveled completely around the globe for work and have programmed in a wide variety of languages for a wide variety of industries.
Early in 2016 the company that I had been working for relocated their US software jobs to Canada. I was retained on contract for several months. I am currently working on getting in some new contract work in the local area. During this time of underemployment I transitioned from a volunteer teacher at The League of Amazing Programmers to a part time paid teacher. I have been investing a lot of effort into improving how we deliver our curriculum.
Finding the education tools at github has been a godsend. We were basically building out tools to do these same jobs and we are now taking a step back to evaluate what mix of tools and techniques allow us to bring our program to the students most efficiently.
The League of Amazing Programmers is a non-profit school focused on Java programming with the mission of preparing kids for the science and technology jobs of the 21st century. We teach out of a classroom in Carmel Valley, San Diego, CA and we also offer classes and workshops at the downtown San Diego Library. Most of our students range from middle school to high school, though we have taught classes at the elementary level as well. My own son became involved with the school in 4th grade and went on to take the AP exam in 6th.
We are also associated with a local robotics competition IARoC.
Currently on the devops side I am excited to be figuring out how to use sandboxed repositories for assignments. We had been planning a complicated forking and cloning scheme that seemed overly complicated. I am also rewriting many of our lessons, currently stored as Google Docs into repositories with code skeletons and markdown instructions. The use of Google Docs resulted in context switching between the IDE and the browser and resultant distractions.
My biggest pain point right now is how to handle artifacts. We have a couple of jars that are used across a range of classes. Our current methodology is to have the students manually import those jars (synced to their machine through Google Drive) and add them to their Eclipse projects. This obviously causes problems for the students when they aren't in the classroom. I have set up a Nexus server in the classroom, however that doesn't address our remote needs.
Additionally I am working on attempting to change from and Eclipse project based setup to a maven project based setup. This will give us more flexibility in our tools, I myself prefer IntelliJ, but migrating to maven does add a level of complexity.
On the course development side I am trying to develop a plan that allows us to teach object oriented programming out of the starting gate. We currently teach programming in a way that develops a lot of poor habits straight out of the box and I think moving to a more object orient approach would eliminate that. Current thinking has this as too challenging for the age student we are teaching.
As a person who has done a lot of hiring in the past I love having our students tied into GitHub. I had so many prospects who had never worked on group projects and had never made commits on an open source project. As our student mature they are already familiar with the tools and able to find projects to contribute to in meaningful ways.
I look forward to interaction with this community and learn all of your secrets.