A Software Engineer's Path: Week 12

Photo by Yancy Min on Unsplash

A Software Engineer's Path: Week 12

I'm 12 weeks into my current interest, which is studying to become a Full Stack Software Engineer. I wish I would've started writing weekly wrap articles from the first week, but hindsight is 20/20. The be honest truth is that I wasn't sure I was totally committed to the idea. I'll save that story of why I wasn't confident and how I came to the decision to pursue Software Engineering for another time.

My intention with these post is completely selfish. I need to get better at reflecting in a more systematic way about how I life my life. Doing it with this one sliver seems like a good start and hopefully isn't just of use to me. There are thousands, neigh hundreds of thousands of stories, tips & tricks, self improvement post out there from other Software Engineers, so what can I accomplish with mine? Probably not much, but my goal isn't to become a writer/influencer for the tech world. My goals are:

  1. Make it habit to reflect on my week, and use it as a feedback loop to course correct for my future.
  2. Feel like I have a little more of a handle on organizing my thoughts, todos, ideas and projects.
  3. Become confident in my ability to communicate complex topics with other.

I do have notes from the previous 11 weeks leading up to now so I hope to go back in time and retroactively publish those articles so that this may be a more complete look at my story. Let's not overwhelm ourselves with that now and focus on the previous week #12

Highlights

  • 107 kata completed to date on Codewars and a rank of 5kyu
  • Still struggling with keybr
    • Average speed of 34.2 wpm
    • Unlocked all lower case keys but Q & J
  • Met up with five other people from the 100Devs boot camp
  • Attended OpenSource101 conference.
  • Studied up on the different types of Open Source Licenses
  • Built a JavaScript Calculator
  • Started learning a bit about API's
  • Did some work on the Code for PDX website
  • Read javascript.info chapter on Objects
  • Learned some bash commands for creating/deleting files and folders
  • Attended Nick Dejesus's Discord talk, key takeaway: make sure your projects are dope AF

Open Source 101

I was able to attend three of the talks that I wanted to, but unfortunately due to some technical difficulties I missed out on a few more. The talk I enjoyed most was "Writing Commits for You, Your Friends, and Your Future Self" by Victoria Dye. She covered some excellent information, especially for someone new to open source such as myself. My main takeaways for writing commit messages were:

  • Outline the changes you've made as a narrative, essentially this is what I want to do and here's how I'm going to do it.
  • You can break up the commit message into four parts:
    1. Implementation (What did you change it?)
    2. Context (Why does it do what it does?)
    3. Justification (Why is the change being made?)
    4. Intent (What does this change accomplish?)

If this intrigues you, you can view the full talk here to get more in-depth info on the topic. Two other great talks from the conference are below that you should also checkout:

Open Source Licenses

One topic I've had on my mind recently, which was initially sparked while listening to The Stack Overflow Podcast #423, is generating revenue with open source work. How can you be radically transparent and permissive with the things you create, but still generate some money to pay for the time you've spent on the project? I have some future projects in mind that I would like to develop with a community, but I would love for the community to get paid for the time they put into the project. I'm sure if there were the incentive of money then more contributors could be lured to the project. After putting the question out on twitter I got a couple responses:

  • Use CC BY-NC2.0 (according to this article CC NC is not even Open Source)
  • Trying to limit use goes against the entire point of Open Source I can't help, but think there must be a other way. I don't think a non-profit or business making say <$500k revenue is the main concern. It's more the multi-million dollar corporations I'm worried about, but hey my lawyers probably won't stand a chance against them anyway. 🤷‍♂️

Code For PDX Website

Code for PDX is a Code for America Brigade. What is a Code for America Brigade? According to their website:

a national network of community organizers and technologists who are putting technology to work for the benefit of our local communities.

This seemed like an excellent opportunity to do three things:

  1. Meet people
  2. Get real world experience coding and working with a team
  3. Give back a little to the city that I love

I attended a meeting where they reviewed their current projects and lucky for me they are in the middle of revamp the website, so I offered to help. At this point I only had experience with HTML, CSS and vanilla JS, but figured the site didn't look too complex so I was sure I could provide value somewhere. After checking out the GitHub repo I found out the site runs on Jekyll which is a popular static site generator that was started to fall a bit out of fashion.

Three hours later and I had finally installed Ruby (which is required to run Jekyll), installed Jekyll, cloned the repo to my local machine and successfully served the site locally so I could see how my changes were affecting the site. The two GitHub issues I picked up primarily needed styling updates and the site uses SCSS which I wasn't incredibly familiar with. However I was able to wade my way though a make the requested changes.

Once I thought I was ready to submit my first ever PR another developer suggest that I merge other feature branches on my machine to test. I'd never heard of this! After some googling I figured out how to create a new test branch locally and merge all the feature branches into it to make sure I wasn't breaking anything. Man I love Git!

Now my first PR is submitted and I'm looking forward to the next one.

Last Words

A lot happened and I'm getting this blog post out 10 days later than I wanted. 😅 I'm learning a bunch every week and can't wait to share more about my journey so stay tuned!