The following publications are fictional, and are only intended for this job market website demo.
Research
Publications
BP-01
Blog Posts
BP-01
- Open source is source code that is free and open for the public to copy, distribute, and alter with permissions.
- Google, IBM, Microsoft, Meta (Facebook), and Unitree Robotics all use open source. These well-known companies use open source, therefore showing how relevant and important open source is.
- One surprising aspect of open source is big companies use open source software and allow public access to this code.
Firsts
- First time using markdown and it seems straight forward and intuitive.
- Meet new peers
BP-02
This is Zach
Blog Post
BP-02
Learnings
- I have learned some of the basic features and practices of Git and GitHub for the first time.
- Some of the features I learned are how to make a new repository, a new branch, and add files.
- I also learned the proffesionally recognized way of adding to an existing repository.
- First, make a new branch, then add a file or make a change, commit the changes, and merge with the main branch.
- The similarities of Git and windows shell were surprising, and the power and simplicity of markdown was as well.
Applications
- This knowledge can help me to use the correct and professional procedure when contributing to open source repositories.
- I also learned the importance of proffesional documentation and how to better describe the changes or actions.
BP-03
This is Zach
Blog Post
BP-03
Learnings
- I choose a 4-wheeled line-folling repository to explore becuase it is Arduino-based program and I am familiar with arduino. Also, I did a similar project in the MCTR 210 class final project, so it was interesting to see the differences. The repository has a good structure that is also explained in the README file. There is not much of a community with zero issues posted and only a few pull requests by the owner of the repository. There is a contribution process outlined on the README file as well. Overall, the repository seems to not have much traffic or recency besides the one commit a few days ago. Otherwise the only activity was a pull request from two years ago.
- I learned about the importance of commit messages and the range of repositories available.
New Findings
- I learned about all of the options open source has. In class I was exposed to different people’s interests and the open source options for those interests and my own.
- I also learned there are many repositories that give many different ways to use some simple and complex ideas.
BP-04.5
This is Zach
Blog Post
BP-04.5
Learnings
- I learned about the projects tab in Github and how it can be used to monitor progress of multiple projects and teams.
- I also learned about how to better search in the issues and pull requests tabs to more easily find desired posts using the search bar for that tab. This way of filtering the issues and pull requests gives more filtering options than just using the drop down menus at the top of the tabs and better results while searching.
- I learned how to create a pull request, review a pull request, and make suggestions for a pull request.
New Findings
- I just learned about using the projects tab and how to more effectively search for issues and pull requests in Github.
- I also was able to find multiple ROS2 Humble open source repositories, some of which could be directly used with the Unitree GO2 EDU quadruped my research group recently recieved. We are actively trying to better understand the connectivity and control of the robot, and these open source repositories can give much needed information on how to best utilize, connect to, and control our four-legged robots.
BP-04
This is Zach
Blog Post
BP-04
Learnings
- I learned about the existance of Reveal.js and what it is. Reveal.js is structured with one owner and a bunch of other contributers. Reveal.js is an open source project that uses HTML framework for presentaions. This project gives a lot of features and flexibility for customizing slide themes, text, and animations to personalize presentations. In, addition, Markdown can also be used for text configuration and structuring.
- I do not think I would contribute to Reveal.js because it is not overly interesting to me right now. Personally, I would use google sides, but I am not familiar with Reveal.js, its range of features, or how to use them effectively.
- I also learned about GitHub pages and how to make one for a repository.
Revel.js structure and maintainance
- The repository seems well structured with an example folder, easy-to-follow README file, license, and well-established contribution guide.
- The documentation was done well, and I found the support idea interesting to subscribe to a similar, paid project. Also, it’s cool to see over 300 contributors, over 780,000 users, over 15,000 forks, and all of the other ways people have added, used, and improved this open source project.
New Findings
- I just learned about Reveal.js and its range of uses.
- I also learned about GitHub pages and how to make one.
BP-05
This is Zach
Blog Post
BP-05
Learnings
- I learned about how Tetris came to be outside of Russia and the licensing issues that came with it.
- I also learned about some of the licensing rights of NIU.
Licensing
- I learned about some of the slight differences between different open-source licenses. For example, the MIT license is slightly different from BSD 3.0 license in the sense that the BSD license has a “no endorsement” clause.
- Tetris helped to shape my understanding of software ownership and distribution from all of the misunderstandings and bad communication leading to the improper use and selling of goods that are not legally owned.
- Who owns the rights to intellectual property surprised me about NIU’s approach to IP, patents, and tech transfer. Only if the idea or product was made in an NIU lab or NIU employee could NIU have the rights.
- I think that licensing can complicate open innovation that utilizes existing licensed ideas and products, but it also rewards those who can innovate new, self-sufficient ideas and products who can benefit from the protection and earnings of licensing.
- ros2_learners has an MIT license that the software is free of charge to use there just needs to be copyright notice and permission notice in all copies. The software is “AS IS” and has no warranty on the use or application of the software.
New Findings
- I did not know about the history of Tetris or its implications on the licensing world. I enjoy playing Tetris, but now I will also think about the history and impact it had on the current licensing process.
- I am looking forward to the Global Hack Week event where I can learn some new skills and applications.
BP-06
This is Zach
Blog Post
BP-06
Learnings
- On the third day, I attended the ROS2 workshop where I was able to learn about the basics of ROS2. For example, I learned some new terms, tips, and tricks about the structuring, installing, and utilizing of ROS2 Humble. Because I have dealt a little bit with ROS2 Humble for a senior design robot for research and had learned some things, I was also able to reinforce some of that previous knowledge and gain some new insights and guidance.
- On the fifth day, I attended the IOT and MQTT workshop where I was able to learn about MQTT and its interaction with IOT. I knew of Internet Of Things before but not much more than that, whereas after the workshop I know more about IOT and how I can use it for tasks. I was able to learn the architecture of MQTT and how to use it in conjunction with IOT to create a network of publishers, subscribers, and a mix of both.
- On the last day, I attended the YOLO and DeepSort workshop where I was able to learn about learning machines, data sets, and parameters for YOLO and DeepSort. I also learned how to implement YOLO as an ‘input’ to DeepSort in order to track the objects that YOLO finds each with their own object IDs and how to fine tune YOLO to improve object recognition without changing the whole algorithm.
- Overall, I was able to learn a lot more about two areas of valuable information that are highly related to my major. ROS2 is a commonly used architecture for robotic systems these days, the four-legged Unitree robot and others use MQTT and IOT to become more advanced, and vision-based robots are gaining momentum and therefore object tracking is becoming increasingly important. I was also able to meet new people and have more resources at my disposal such as Charbel Breydy Torres who taught at the IOT and MQTT workshop and the YOLO and DeepSort workshop.
New Findings
- I was hoping to learn more about creating ROS2 Humble code to run on a robot or simulate one through a demo, but unfortunately there was not a demo for this ROS2 workshop.
- I had heard about YOLO and IOT before but not MQTT or DeepSort before Global Hack Week. I was able to pick up on the key ideas and how to implement them with demos and other resources thanks to the MLH and its teachers.
BP-07
This is Zach
Blog Post
BP-07
Learnings
- In open source, a contribution is an addition of materials or ideas to a repository or project.
- Code and non-code contributions are both extremely helpful for a repository. The code contributions are the main contributions for a working project to complete a goal, but the non-code contributions are what make the repository easy to follow, repeatable, and understandable. Without non-code contributions, visitors would have to know the whole repository, how it works, and where everything is at in order to understand the project, let alone contribute to the repository. One way of describing the connection between code and non-code contributions would be the code contributions are the main character in a movie, and the non-code contributions are all of the supporting roles.
-
Diagrams greatly help to show the workflow. For example, in ROS2 there is the rqt_graph function that is a graphical display that shows the nodes or main code pieces and where variables come from and where they go afterward. In other words, it shows the flow of information which can help with troubleshooting, explanations, and understanding the different pieces of the code individually and as a whole.
- Communication helps to keep everyone on the same page, and collaboration helps to come up with better and better ideas. Together, they can enable productive, efficient, and thoughtful groups. This is great with non-code contributions because it allows people to share their struggles and where clarity can be added through diagrams, word documents, or other non-code resources and collaboration allows for differing views and compounding of ideas for better understanding.
- I was able to find one non-code contribution opportunity at Weblate where implementing documentation in version control is an existing issue.
- Bonus: One non-code contribution in a project I could be interested in contributing to is Weblate.
New Findings
- I just learned about Mermaid, and my first thought was about its similarities to rqt_graph in ROS2. I remember first seeing a rqt_graph for a project, and it greatly helped me to understand the basics of both ROS2 and the project. I could see how the flow of information went from one node to another in order to move a knee servo of the quadruped which had a feedback loop to verify the servo moved to the correct angle to move the robot.
BP-08
This is Zach
Blog Post
BP-08
Mock Interview Analysis
- To prepare for the interviews, I thought back to some interview questions I have heard and the responses. Mainly, I tried to stay calm and relaxed to avoid being overly anxious and scatter-brained.
- I tried to focus on my experiences, because I want to show my previous experiences and at least most engineering companies want to see some experience before hiring for additional experiences. I would first talk about my extracurricular commitments and my leadership positions in those student organizations to show my commitment and leadership skills, then I would talk about my internships to show my on-the-job skills and experiences.
- One question I got asked a few times that stood out to me was something along the lines of “Where might you need extra support” or “What type of situation would make you uneasy?” This question made me think of a trait or skill that I could improve on, and it was a question that I did not foresee that made me a bit unsure of how to best respond.
- I felt a bit nervous during the interview, but I was able to talk about my experiences naturally because I am passionate about them. Some of the questions really made me think, but I was told that I answered them pretty well such as the one above.
- Some feedback I got from the quests was that I could be more relaxed during the interview, add some more specific details and example scenarios, explain what I have learned from my experiences, and that I am in a pretty good position moving forward.
- Being more relaxed during the interview, explaining what I have learned from my experiences, and that I am in a pretty good position moving forward were all some unexpected insights and critiques that I got.
- The feedback that I got definitely is helpful as I know some of those areas are not my strong suits. For example, I could work on being more relaxed, adding more specific details, and explaining what I have learned from my experiences for future interviews.
- This experience helped expose me to more interview questions and knowing how to respond, as well as getting feedback on how the questions can expose who I am and how my answers can be interpreted to best show myself.
New Findings
- I was able to learn a lot about how to answer some of the typical questions an interviewer may ask and how to answer them to get a good response.
- I was surprised by some of the responses to my answers and some of the feedback about how I am in a good position with my experiences, interviewing responses, and job skills.
- Going forward I hope to use the Quincia resume reviewer to improve the content and ATS readability of my resume in order to improve my chances of getting interviews.
BP-09
This is Zach
Blog Post
BP-09
Learnings
- Throughout taking HON 310 – H1 Honors Seminar I was able to see more and more the importance and scale of open-source projects.
- Some of the most valuable things I learned were how to navigate GitHub repositories, how to professionally contribute to existing repositories, and finding open-source repositories to learn from and apply to future projects.
- One obstacle I had was trying to find a good repository that I was interested in to contribute to. Since I wanted something related to my major, I was looking for robotics projects and ROS2 Humble projects, but many of the repositories were either individuals just uploading code without any explanations or did not respond after the project was completed. I was lucky enough to find an ongoing ROS2 project with maintainers the responded in a timely manner with non-code-related, open issue that I was able to eventually contribute to the repository.
-
One time something “clicked” for me was while learning about Mermaid, I could directly see the purpose and use of it with ROS2. The whole point of ROS2 is to create a structured framework for a robot that can be manipulated for different applications and systems. There is already a similar type of flow chart that comes with ROS2 Humble called rqt_graph, but Mermaid could help show the general structure, use, and implementation of ROS2.
- Participating in MLH Global Hack Week helped me to learn about some new things that are very relevant to my major and useful to me. I was able to learn some new skills and how to apply them to accomplish certain goals.
- I was able to learn some ways to make things easier from maintainers, contributors, and peers by example. For example, while I was working on my contribution to add dependencies’ licenses to the repository’s README, I came across multiple places where commits had sample code from other repositories that already completed one step of this repository’s goal. Therefore, this repository utilized the resources it had to make things easier and more streamlined by using other repositories’ existing code.
- I would like to look at some of the ROS2 repositories in more depth to learn more about ROS2 and how to apply it and understand how to modify the code for different systems and applications.
- I would like to tell others that many projects can at least be made easier through the use of other open-source projects.