Author Archives: gonzalezwsu22

Retro #3

With this being our last Sprint for the semester, it couldn’t have ended on a better note. Cooperation between the team members and communication continued to be effective. Everyone seemed stepped up and the work ethic was beyond that I could imagine. Comparing to other team/group projects I have been on in the past.

During this sprint, I worked on creating a key for the endpoint authentication. We were still waiting on the actual key from the IAM team so in the meantime, I created a code that will give authorized individuals in the LibreFoodPantry access to their sites. Such has if a guest has access to the LibreFoodPantry portal, once they put in their login credentials, they will either be authorized or unauthorized. This was by request of the client.

Some of the issues that we faced was the getRange API calls. This method required additional coding to the NestTester, API and the backend. Once that was completed, we were able to move on from this project.

I think over the past two sprints, our usage and knowledge of GitLab Epics and Issues board just continued to improve. One issue we faced in the beginning was apply the proper weight to each ticket. As the sprints continued, our distribution of the weight continued to get better. We ended having a better workflow and a more balanced and shared workload.

With a good portion of our task completed, we mostly spent this sprint communication with the IAM team to get a better understanding of when they need to integrate security mechanisms into our remote function calls. We concluded that this will not be complete this semester and will have to be pushed to next years Capstone class.

We were giving the option to continue to work on this the rest of the summer to better improve the progress that we have. This is not a bad option since technically this is for a real work client that is expecting some type of prototype. Joe has decided to stay on and continue to work on this while myself, I have opted not to. With this being my last year, I have other opportunities that I will be pursuing to better myself in this field.

As the conclusion to this spring, the group decided that each member will record a portion of the project and prepare a video presentation. I’m overseeing the consolidation all the recordings and preparing a video presentation for Dr. Wurst. We broke down what needs to be discussed and each member will pick what they would like to talk about. I will take what’s left over to check off all the topics that we would like to discuss/present.

The capstone was a good experience and helped be become a better team member. Being able to see each member grow from the first sprint till now is always something that I am proud of because I know they each learned and took something away from this class. Not all was smooth, and we definitely had some bumps along the way but in a real world scenario, that is what happens and you have to learn how to adjust and get over those bumps. Theirs always a solution to any problem, isn’t that was coding is, solving problems.

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Retro #2

For the end of Sprint 2, I would say the team really came together to help each other out. We were able to see each other’s skills and start coding. The communication seemed to improve throughout, and the group decided to let Joe continue to be the scrum master for the rest of the semester since the first Sprint he couldn’t really apply scrum master duties. This time around we were more focused and ready to tackle this sprint and give our best work. For this sprint, we assigned fewer task to people with higher weights because we knew it was going to take up some time to build the backend. We were able to produce an OpenAPI for the requested endpoints. We used the yaml file provided that helped us write, build and then test the endpoints in our backend. Then these methods were tested using Visual Code Studio to launch the HTTP request from the guest.http and the qs.http.

During this sprint, while building the backend, we ran into some issues on how to get the calls. http POST, GET, PUT to work for our guest information code. First, we assigned each call to a member in the group. I oversaw creating the get DELETE which was giving us some issues. The error ended up being just minor coding grammar on my end that was easily fixed. Unfortunately, I was operating under a different branch so every code that I sent or corrections to the code that I made, was being pushed to another section of the LibreFoodPantry. Once that was corrected, I was able to continue to help my team. Another issue that we ran into was our Questionnaire call. The reason we were having issues is because Mongold gets created and returned on a post. Any record access after that must pass with a key for that item. Another issue we faced were that the Android app was producing a Timeout Error which we sought counsel from Dr. Wurst on how to correct that in the next sprint.

Overall, I was really impressed with my team since we accomplished two of the major goals that we had. First, was to improve the skill-set of the team members. The first sprint was all copy and pasting documentations. This sprint we all had to show our coding abilities and was able to learn from one another if was lost. Second, was that we were able to help the general progression of the LibreFoodPantry.

For the next sprint, I believe we are starting off on a good start. We were able to fix all the errors that had with our backend, all of our calls are now working with no errors and has a team we have better communication and organization. Joe has really stepped up and lead us to a good position.

Links to my tickets:

API: add endpoint to return current version (#21) · Issues · LibreFoodPantry / Client Solutions / NEST / Guest Information System / API · GitLab

HTTP Get Range of Questionaire Submissions (#19) · Issues · LibreFoodPantry / Client Solutions / NEST / Guest Information System / API · GitLab

backend: set up devcontainer.json for extra tools needed (#2) · Issues · LibreFoodPantry / Client Solutions / NEST / Guest Information System / Backend · GitLab

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Concrete Skills

In concrete skills, the main topic discussed is establishing discrete, provable skills with specific technology. By developing concrete talents, this elevates your values as a potential member of the team, increasing your chances of receiving an offer. The patterns explains, to obtain an offer, developers should showcase their specific skills such as certain languages.

This pattern is a great tool to develop. My personal skills (besides languages) are vast but I would say for me personally I still have the fear that my skill level is still not up to par with some of my fellow competitors. Constantly comparing myself to them when I should be focused on my own skill set and become the best at those skills while then taking on other areas that I may be weak in or want to learn more of in the future. Being able to scale each company on what they are looking for is what concrete skills have helped me understand.

Each semester I would take on a new language of skill framework to become better in that area to be able to have a variety of skills to bring to the table. I’ve become skilled at languages such as JAVA, Python, C+, MySQL and many others. Using tools such as Android Studio to create applications, GIT and AWS. By concentrating on become proficient or even an expert level at these skills, I will be able to showcase my skills to any professional team if such skills are required. This is better than reaching at skills that you haven’t gotten a clue on where to begin.

To better sell yourself, utilize the Breakable Toys pattern. The developer exhibits their talents in a distinct, particular and demonstrable context by creating personal, low-stakes projects. This shows the employer what your skill level is and what you can offer to the company.

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Unleash your Enthusiasm

Will you let your voice be silenced?

As a software developer, you will almost certainly be working as part of a team. The majority of teams are not overly enthusiastic about technology. There are risks in unleashing your enthusiasm on a well-established team. If you find yourself on a team that does not accept your enthusiasm, you must find ways to nurture it. You may not bring deep knowledge or hyper-productivity, but it is your responsibility to energize your team and challenge everything.

When I was an intern at PCI, I had very little knowledge on how to develop apps or create a backend or frontend. I was coming in green as they come. The company took a chance on me and challenged me by assigning me task that were out of my specs. So instead of feeling defeated and craving to become a better programmer, I took on those tasks and began to seek assistance and help from outside sources because the team I was assigned to was more of an individual tasked team. It was like being thrown into the lion’s den as many tasks that I was given were for real life clients and not a class assignment or project.

There were also times where I had great ideas and felt like my thoughts were not heard. That can be expected when an intern since technically I am just a student, however the idea that I had would have made their system more manageable. I was suggesting creating a database that will hold all their financial and student records based on the classes they teach to different organizations. I created a mockup using MySQL database and created a backend code to follow. I presented it during one of our standup meetings and at first was ignored and pushed to the side. I later went ahead and waited till the end and presented my database again and this time, my scrum master saw how beneficial and time effective this will be along with organizing the records they have since they were currently spread everywhere.

The next challenge was creating an app that will be functional. I spent the rest of my internship working on the app, something that I was not familiar with at the time. Constantly growing my knowledge in the computer science world.

This is the time in your career when taking risks and speaking up makes the most sense. Your ideas and passions will enrich and diversify your team. Even a master craftsman can be made more productive by a well-chosen apprentice.

This internship helped me this past year especially last semester where we learned about creating backends and frontends. Then with this semester with creating functions apps along with the backend and frontend. Having an idea allowed me to become more proficient in that field, making me a more diverse engineer. The moment you stop wanting to learn or express your ideas, that’s the moment that you find yourself limited. With groups or any situation you can find yourself feeling muted out but speak up and voice your ideas because at the end of the day, we are all software engineers

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

The White Belt

A sample is essentially a way to “attack” a trouble in a recursive way. It is at its strongest when its utilized productively repeatedly. You need to pick out a sample you use so you can talk about it barring repeating.

One sample that I located fascinating and had continually desired to practice however in no way may want to be “Rubbing Elbows”. It essentially talks about discovering any one type of like a mentor. I can align that to me working at Dynamic and having Javier and my coworker with me. Talking about fascinating stuff, studying from them, etc., being an apprentice. I have discovered that being an apprentice can lead you to locate new human beings and new approaches to examine stuff in a better, faster, and smarter way. Being humble and leaving your satisfaction apart is an ought to on this sample as you´ll be possibly getting to know that what you knew is wrong, or you´ll on occasion research from anyone youthful than you, as are my case. But at the end, the intention is to turn out to be a grasp and this may also take time. All this can relate to some other sample known as “The White Belt”, which essentially says that you must hold a beginner’s thinking regardless of your expertise. Wearing the white belt is essential as it will “foster a mindset of recognize and curiosity that opens up unexpected chances and solutions”.

Wearing the White Belt will maximize if you Unleash Your Enthusiasm. This sample talks about having keen human beings studying what they are involved in, in this case software program craftsmanship. It urges to ask the dumb questions. This is now not solely essential for the apprentice however for the group as it will supply curious surroundings stuffed with questions, discussions, etc. Again, this sample is intently intertwined with Expose Your Ignorance. This sample is unsafe in isolation as if you are afraid to make the dumb questions, it will generate a way of life the place mastering and failure are unacceptable.

Overall, if you can break this pattern down into 6 easy steps. We don’t realize it, but we tend to do these habits day to day without knowing:

  • Pattern: The White Belt
  • Context: You have competences in a programming language, have recognition and are competent in it.
  • Problem: Acquiring new skills seems harder. You stopped growing.
  • Solution: Wear your black belt-go back to not knowing anything and start over. Get a not knowing stance, unlearn what you learn, and you will open the door to more knowledge.
  • Action: Unlearn something-pick up a new paradigm, programming language, technology you’re not familiar with.
  • Connected Pattern: Breakable Toys Practice, Practice, Practice Reflect as you work

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Sprint Retro 1

With the end of our groups first Sprint, overall, I would say we did well as a team. This being the first time any of us were in a group, scrum team, working with Kanban boards, etc. With my group I gave them some reading material on roles/responsibilities of a scrum teams and scrum master. I figured with extra material; we will be able to create a solid plan for this Sprint. For this Sprint, I think we were a little everywhere in the beginning but were able to finally divide the tickets in the backlog with each member taking on 5 per sprint. We were able to get many of the tickets done and then go over what we had done or any impediments that we me have.

I was responsible for the following task:

Create “General” repository: The General repository needed the .gitattributes, CODE_OF_CONDUCT.md, DCO.txt, LICENSE.md, LICENSE_FOR_CONTENT.md, and README.md filles needed to be added. I went ahead and transfer all files over to the Guest Information Systems.

Create “Documentation” repository: The Documentation repository needed the .gitattributes, CODE_OF_CONDUCT.md, DCO.txt, LICENSE.md, LICENSE_FOR_CONTENT.md, and README.md filles needed to be added. I went ahead and transfer all files over to the Guest Information Systems.

check the database format to create our schema: Upon reviewing this task both my teammate Joe and I found that this task was completed before we realized that it wasn’t necessary. The correct tables that we needed are now documented in the documentation repository.

Contact the IAM team to determine security key format: This task was a joint task between myself and Jefferson. We contacted the IAM team, and we are currently waiting on the security key. We will keep open communication with IAM to further pursue future task. We met with Dr. Burdge and determined the two (2) tables and eight (8) API calls we will need for building the API yaml bundle. Currently, that is the only impediment that we are facing.

Study Nest api calls to define our own: RestAPI contained the tables that FoodKeeper needs to implement. After further investigation and the completion of the previous task of contacting IAM team, we were able to determine the correct tables needed. We also developed a plantuml file showing the 8 tables, and created a yaml bundle for the product table, but are now deprecated.

During this Sprint, we really were trying to get to know one another to get a feel of each other’s work ethic. However, we still were not able to showcase each other’s skills or strengths. A good majority of the tickets we had were coping and pasting things over or information gathering. Now, these tickets were and are essential for our next Sprint where we will be able to do actual coding. I think there we will be able to see our strengths and weakness as an individual and as a group to then grow from there.

I think going forward to the next Sprint, we will need more leadership and what we need to get done and keeping a timeframe on that. This past Sprint just felt unorganized, not everyone was being heard and just not as conducive as it should have been. Also, I think clarity from all members of the group is also helpful. Having some members not knowing what is going on can lead to the team not completing their task.

As for personal improvement, I think for me I need to give more input on what we should do as a team. I also think I will take on harder task to help the team move along, with assistance from other members as well. I think working more in a team dynamic to help each other out and complete task in a more sufficient and timely manner. 

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Your First Language

For the following few years this could be the principal language if you`re requested to remedy a hassle and it dictates a programming language, permit the force closer to. If you`re pursuing a process that calls for a selected language, construct a toy software for the use of that language, ideally an open supply undertaking so it is straightforward for the distinction among a hassle taking mins or days of your time.  This enables to floor your studying in fact and offers essential manner to enhance this revel in is to are seeking for out possibilities to create comments languages have higher gear for comments than others, however no matter the language, you may take a few steps to installation a studying sandbox to test in.  Many languages offer equal empty Java elegance open in his IDE while he wishes to mess around with an unexpected API or language function: Once you`ve found out sufficient to in reality begin writing code, test-pushed improvement strategies to the recognition of test-pushed improvement, you`ll be hard-pressed to discover a language that don`t hesitate to put in writing easy assessments to test your information of the language, or simply to make yourself familiar with the checking out framework.  Eventually, you’ll move from simply writing studying assessments to writing assessments that look at your real code in place of your information of language constructs and APIs.

Over time, you’ll discover that there are numerous different strategies past easy unit checking out that use the pc to the following is a dialogue of studying to assume in a different way through studying a brand-new language, by the way the quality manner analyzes a language is to paintings with a professional in it.

I fully agree with Your first Language pattern. Especially with creating feedback loops to help gauge your progress. I know for myself personally; I like to look back at code that I may have changed to see where I improved on and where I need to improve. Also, by reaching out to a team member that may be stronger in set language is also a good resource to utilize. However, as stated in the text, I agree that as a programmer, you do not want to make it a habit. Although seeking help is a great tool to learn, being dependent on that resource will hinder your ability to grow as a programmer and understand the material at hand.

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns

“I guess it basically means having the attitude that there’s always a better/smarter/faster way to do what you just did and what you’re currently doing. Apprenticeship is the state/process of evolving and looking for better ways and finding people, companies and situations that force you to learn those better/smarter/faster ways.” – Marten Gustafson

This quote by Marten Gustafson pretty much sums up the introduction to this material but also the intros to chapters of 2-6. As software developers, technology is forever growing and changing. If a developer chooses to remain plateaued, then just like in the book, you will get a sense of resentment and want to exit the field due to being dissatisfied. That dissatisfaction is due to our own faults. We should continue to learn and grow as developers.

What I liked about this book is that in the beginning of every chapter, there was a real-life story of someone that relates to the material. Not only you can understand how it connects but you are also able to relate to the situation. For example, in Chapter 3 when Dave felt discouraged due to not being on the same level as some of the hackers. Instead of letting that defeat him, he dived in learned the material, watched the other hackers, and learned. Dave put in the work with the result being that they are all walking the same road, and no one is left behind.

So far, the reading is aligning with my ideologies when it comes to apprenticeship. I do think as software developers we should take on internships to become that apprentice to learn different ways of coding and applications of it. With internships your able to pick the minds of the team that you assigned to and tackle challenging real world problems in a team. Being able to pick a mentor’s brain on topics that you are not strong in or will like to improve on. Apprenticeship to me is something that a developer should always be. Meaning a software developer should always welcome new ways to applying code or applications.

Just like in Chapter 4 states, “you must be willing to let go of your perceived competence and allow yourself to recognize that you have traveled only a short distance on The Long Road. Your goal isn’t to become better than the “average developer.” Your goal is to measure your abilities and find ways to be better than you were yesterday.”

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry

The section that I choose to focus on is Thea’s Pantry Workflow. The workflow is an important part of this application because the workflow facilitates the flow of information, tasks, and events. A workflow is a blueprint for developers to follow on how to use git. Everyone on the team has access to the information that’s needed to complete the required actions. In Thea’s Pantry, the blueprint is easily readable and understandable on how to use git for this application. Any developer looking at the workflow or any new developers added to the team will be able to follow this process easily. The workflow also lets developers know if any push/commits that failed is explained as to why when using commitlint.

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry

The section that I choose to focus on is the Code of Conduct. While reading through each section from the LibreFoodPantry website, what stook out to me which sometimes is not clear on most apps, is the Guidelines section. The apps policies, if violated one of the community standards, will be temporarily ban the user allowing them to correct their actions. If the user continues to violate the community standards they will then be permanently banned. What I found interesting or rather curious about was whether the app notifies the user of the violation they made? And if so, how many violations are there before permanently banned? I think adding that additional information leaves little wiggle room for the user to claim they were not notified.

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.