Random Mumblings on Software Engineering

  • Created: 19 May 2020
  • Modified: 22 May 2020
  • Status: draft
  • Importance: 5

Table of Contents


    I remember going through secondary school never really getting exposed to the “software world”. At most, I was a consumer of early software.

    I had read a bunch of Quora posts around 2013-2015, so I knew there were people who were building towards something more progressive. I also attempted a few programming tutorials online, but it just wasn’t that sticky yet. That coupled with a computer science course where the teacher wasn’t sure of what he was teaching didn’t really help in increasing my interest.

    That changed in college. I had a roommate who helped expose me to thinking structures. From there, I saw that there was a lot of potential to build and create. It helps to have gone to a STEM school, but it must have been like a 180 turn. Everyone seemed to want to make things. After being in this environment for a while, I also got engrossed and found that I wanted to contribute with my own ideas to build things that can help people in the future.

    San Francisco

    Coming back after school and working on the other side of the Bay, I got to see the change in people’s perspectives. In various technology circles, there’s a sense of drive and action to help others. This seems to manifest itself in some rather positive spheres of progress. You can see enduring companies today that have impacted the world (debatable if it’s for the better though). We can look at some ideas that have come up in recent years like ride-share economies, sharing homes, online payments, and new conceptions of monetary exchange. What we find from this zeal of a startup-driven economy is the opportunity to challenge the status quo even if what we are doing is all wrong.

    It’s pretty awesome to be in this industry right now because there are so many ways to move things forward. However, it is necessary to point out that this area isn’t without its faults. In many circles, there seems to be a general arrogance where people are focused on their own benefit rather than on a larger, altruistic endeavor.

    I went to a college that had a 50/50 gender ratio in STEM, a diverse high school, and grew up in one of the most ethnically diverse cities in the United States (Oakland + San Leandro). It wasn’t until college that there was an apparent lack of diversity present outside of my home both in gender, ethnically, and in thought patterns. If we look at the lack of gender representation and ethnic representation, there’s a lot of progress that can be made in software engineering orgs. For instance, take a look at some stats for women in software engineering, where the author has been compiling information for the last 6 years. From these stats, it seems like we have only gotten marginally better in gender representation, which is kinda sad. There is hope though since there are groups addressing these inefficiencies like Project Include and Dev Color. Additionally, as more people step into these fields and notice inequities, we all can speak up and drive initiatives to make workspaces more inclusive. Ideas like Key Values seem to be pushing for transparency on this front as well. It would be cool to also have an anonymous or public list of companies where people can contribute how companies really are (take over glassdoor haha and make something more human).

    Recently, I talked to a friend about building community networks outside of traditional education and company pathways. We ended up coming up with the idea of bringing ambitious black software engineers together, especially at the college level to collectively share resources and get insights in the field from more seasoned folks. Since there doesn’t seem to be any large organizations on the tech side right now, this sounded like a great opportunity for my friend to take on.

    In the developer tools space, current trends suggest a lot of no-code solutions for more equitable access. What might be more interesting is really figuring out what things people frequently do and look for monotonous steps (there are a lot…). Ideas like Kite and the Language Server Protocol provide good examples of this. They improve autocompletion to decrease keystrokes and standardize editing modes across various editors respectively creating tooling that empowers developers.

    I think experimentation frameworks have gotten a lot better, and there is work to be done in general experimentation within software engineering teams. How can a team of engineers build more effectively and how can a team really assess new patterns of working together? On the teamwork front, I think there’s a set of problems related to feedback, especially in discovering quick, positive feedback loops. There are feedback and development cycles intended for this purpose, but I think there can be a quicker cadence of knowing when things are actually working outside of 1:1s.

    A lot of problems in software are large problems of human coordination. How can we bring each other to do things well and support each other to really allow each other to discover and explore what can do? Another question is, is this increase of accessibility of software engineering indicative of a digital Renaissance? Can each person help produce technical artifacts to progress society?