Software Engineering Project Blog

Mike Zeng.

Blog for 2025 Software Engineering Project @UIowa.


Note: This blog hour count excludes all the meeting time count. The meeting minutes baseline is about:

15 * 5 (75 min) for daily standup, 60 minutes for whiteboarding + retrospective, so add 1.2h per week.



[Friday, Jan 24 | 0.5h]

  • Discussed with prof about value from course.
  • My thoughts are that "you get out what you put in". I think if I make a long commitment and work hard over the sprints, I can get as much value as everyone else. If I have to make the jump from "only being ready for interns" -> "ready for FTE", I'm williing to make the leap since I have to do it sometime in the future anyways.
  • Recruited for team for DevOps tasks such as CI/CD, Kubernetes deployment, Django work. Someone reached out to me within 5 minutes, so I must have been somewhat marketable.

[Sunday, Jan 26 | 2h]

  • Team member is not fully certain about requirements, but the deployment is simple with a backend, frontend, and database.
  • PM specified to deploy on kubernetes, but I'm not fully sure if we need to scale such a huge deployment
  • Waiting on Github before jumping to setup CI/CD.
  • Waiting on platforms for database.
  • Building together proposal for monitoring systems (such as sentry + grafana or newrelic).
  • Playing around with some Angular
  • Building some deployment diagrams for deployment proposal.

[Monday, Jan 27 | 2h]

  • Discussed about project scope & requirements.
  • Consulted with team on application testing (Django unit tests, jasmine, postman)
  • Reviewed whiteboard for application flowchart
  • CI/CD Task with PM
  • Awaiting repository to be created.

[Tuesday, Jan 28 | 1h]

  • Finished CI/CD diagram, approved by PM.
  • Self-assigned wiki task.
  • Reviewed team's ER diagram
  • Studied Django unit tests & code coverage.
  • Preparing PR templates for the repository. Approved by team.
  • Waiting for repository to be created.

[Wednesday, Jan 29 | 2h]

  • Preparing integrations with Github
  • Discussed PR requirements with PM.
  • Made a PR for contributing documentation as well as PR templates.
  • Ran the initial instance and got it up, as well as passing the tests.
  • Waiting for admin approval on some connector apps (Jira & Teams)

[Thursday, Jan 30 | 4h]

  • Merged PR template after approval
  • Played around with dockerfiles, docker compose, as well as pre-scripting in case CI/CD happens.
  • Scheduled a Sunday meet up with PM for CI/CD implementation.
  • Played with terraform via docker to get a good understanding of how CD is going to work.

[Monday, Feb 3 | 2h]

  • Meetup to discuss deployment strategies
  • Deployed K3 and Postgres on PM's sever.
  • Setting up docker images for a combined django angular.

[Tuesday, Feb 4 | 2h]

  • Setup MVC for Django, getting ready PR for tommorow
  • Ran through with team on slides for presentation tommorow. Practiced speaking about deployment technologies listed.
  • Finalized pipeline for serving compiled HTML + JS with Django.

[Wednesday, Feb 5 | 1h]

  • Merged the PR.
  • Did code review for Alex's CSRF fix for Django
  • Finalized combined docker image
  • Presented project to class. Feedback on justification of Azure + AWS; can't just be for learning.

[Thursday, Feb 6 | 1h]

  • Made a PR with the docker image.
  • Code review Alex's login frontend code.
  • Testing methods to auto push to cluster.

[Monday, Feb 10 | 1h]

  • Wrote terraform file, testing terraform apply + terraform init.
  • Pushed the file to a new branch, waiting for testing.

[Tuesday, Feb 11 | 3h]

  • Discovered issue with deploying K3S on a VM.
  • A long time playing with network configurations to solve it. 
  • Taking track of notes on what/why the issue was occuring.

[Wednesday, Feb 12 | 4h]

  • Finally fixed issue with a K3S + Proxmox.
  • Issue: K3s Flannel was causing problems with the IP pool of main device; this resulted in loss of connectivity between nodes.
  • This was resolved by creating another network interface and setting Flannel to tha that interface, as described by [https://github.com/ehlesp/smallab-k8s-pve-guide/blob/main/G025 - K3s cluster setup 08 ~ K3s Kubernetes cluster setup.md]
  • Kubectl on remote hosts now work.
  • terraform apply + terraform init now works.
  • Waiting for tommorow for PR finalization.

[Thursday, Feb 13 | 3h]

  • Testing on Linode to ensure it works in a cloud environment. Test kubectl and web applications, recorded demo for PR.
  • Setting up connections to dockerhub + helmcharts.
  • Finalized PR, sending it in tommorow.
  • Reflection: Automated deployment was challenging + long hours of debugging, since I had to make a lot of inferences about the infrastructure of the team. There was a lot of learning I had to do since I don't have full control of the infrastructure as I do in my projects so I have to learn to actually fix issues with terraform instead of just switching providers or technology.

[Friday, Feb 14 | 3h]

  • Put together services for K8 to expose ports to global public IP. Implemented secrets in terraform file to send to containerd.
  • Implemented pipeline for direct docker2containerd transfer without the use of a public service such as dockerhub.
  • During testing, it was noted that rollouts go awfully due to django containers not shutting down properly. More research will be done to figure out a way around this.
  • Committed template & static folders to make sure django serves them properly; previous streamline.sh file that moved compiled angular would silently fail if the folders didn't exist.

[Tuesday, Feb 18 | 2h]

  • Wire pipeline docker2containerd transfer inside terraform to manage auto-deps.
  • Implemented lifecycle create-delete resources to recreate resources.
  • Finally achieved a relatively stable deployment process with TF; waiting to see how long before it breaks.
  • Looked at issues to add on since deployment is taking so long.

[Monday, Feb 24 | 1h]

  • Reviewed some more pull requests.
  • Talked with team about retrospectives.
  • Super busy for today-tommorow due to being at Iowa State for JSHS, as well as long hours for tutoring.

[Tuesday, Feb 25 | 2h]

  • Initiated azure devops pipeline file
  • Setup environment inside devops with secret kube config, environment variables.
  • Basic sketch of the pipeline file.

[Wednesday, Feb 26 | 4h]

  • Pull request regarding deployment, awaiting approval.
  • Patched & bugfixed all sketches of stage; all ready for production now
  • Testing of the pipeline against deployment
  • Seperated kube config to a secret file inside pipeline
  • Custom domain + SSL termination

[Thursday, Feb 27 | 2h]

  • Didn't do too much. Was really busy for tutoring.
  • Thought more about domain+SSL, as well as looked over issues to see.

[Friday, Feb 28 | 1h]

  • Implement domain + SSL through cloudflare tunnel.
  • Met with Stewart to support dev environment deployment.
  • Working on finalizing deployment.

[March 3 | 4h]

  • Reading + QA about backend to understand the Django
  • Review the deployment, get ready for finalization.
  • Started making slides for book report.
  • A lot of reading on error tracking + review of older projects.

[March 4 | 3h]

  • Finished sildes for book report.
  • Practice run-through of slide with WC3 (West Computing Club).
  • Reading more on backend, started playing around with database.

[March 7 | 3h]

  • Review Alex's PR and added approval.
  • Fixing security issue with pipeline by removing terraform, SSH, and utilizing dockerhub.
  • Learning how to use postman and swagger UI testing on django.

[March 13 | 3h]

  • Learning how to use angular on frontend. Playing around with components to understand what needs to get done.
  • Started work on quotes API backend.
  • Didn't get as much done this week due to a lot of midterms and book reports.
  • Spring break is next week, and our team decided to leave it be.

[Saturday, March 22 | 2h]

  • More throughout Postman testing, found issue on Tans' PR component.
  • Wrote the Create API for subscriptions.

[Monday, March 24 | 4h]

  • Discussed with Tan about Quotes and Job relationship.
  • Completed the organization API + tests.
  • Helped Alex fix regression issue from changing of config.
  • Planned out features for MVP demo.
  • Assigned subscriptions + quotes tasks; TBD before MVP.
  • Started working on frontend for organizations

[Tuesday, March 25 | 2h]

  • Reviewed and approved Tan's jobs pull request.
  • Alex had an issue due to Stewart force-pushing without approval to main branch. This took quite a lot of time to fix, but we ended up finding the issue and resolving it. Seems pretty concerned with how Stewart does things.
  • Won't be available for the rest of this week due to high school competition (State Science and Technology Fair of Iowa).
  • Waiting for T10 university decisions, so probably not much work for the next week or so.

[Wednesday, April 1 | 1h]

  • So currently, there is a large roadblock because we met with the customer, and the customer informed us that a lot of the way the application was currently working was not what he wanted.
  • This is extremely problematic as it is blocking the entire team from working on features as the backend needs to rewrite.
  • Also happening to be crashing out from college decisions (waitlisted/rejected from everything regular decision), so my work will probably be tanked for the next week or so.
  • Another contest coming up this weekend, so availability will suffer.

[Tuesday, April 7 | 2h]

  • Didn't do much since last follow up due to contest + crashout. Though it seems I'm fine now, so I can go back to doing work.
  • Team discussed about new changes about the model. I think its somewhat finalized?
  • We had the live demo yesterday, but for some reason Stewart pushed a unstable build and broke the devserver. I suggested to use the main server, but I don't know why we didn't.
  • There's a new 2K LoC PR patch from Stewart.... and Alex and I seem particularly concerned why there is such an enourmous PR. We decided to work on a seperate branch, and then merge it later.

[Thursday, April 10 | 3h]

  • Met with Joslin about current team progress. Overall, seems like we are fine; just need keep in check and work through project + commit more hours.
  • We finalized the ER diagrams, and I started working on the quotes PDF generation, a new feature suggested by customer.
  • I think Alex is worried about completion of the project. Stewart doesn't seem to realize how far it is lacking behind, Tan seems to think that we can complete it in time as long as we don't implement all the features.
  • Personally, I think we can implement everything. I feel like I just haven't been performing as well as I do on my personal projects, because I know I'm capable of dropping 3+ features over a single night, let alone 3 weeks. If I can lock in, I think our project can not only just easily finish on time, but also achieve an extremely nice feature set that no other team can really match.
  • Again though, it is a bit problematic as the process for that isn't really good. But as long as the tests are written, as long as the PRs are approved, I think we can get a good demo in the future.

[Thursday, April 17 | 5h]

  • Wrote frontend tests for quote PDF and submitted that PR. Recorded demo of that feature.
  • Met with Stewart to discuss about state of migrations: he admits that it is blocking and said it was going to be done before daily standup, but it wasn't; he said that it was going to be done... weeks ago.
  • Ran through a fake alpha demo; on his site the jobs onboarding is broken. However, I tested the dev branch state and it currently works fine.
  • About Stewart; I think it is a pretty large issue at this point. I don't get a lot of his decisions (the team doesn't either), but he goes ahead without asking for feedback and makes huge changes.
  • What I think might have happened was that he just didn't ever care about the codebase back then when he was working on CICD. But now that he has to work on the code, he suddenly dislikes how things are being coded and the team coding style; he should've brought this issue up when like... February. 
  • Alex is out, he is stressed out about the management and has "given up". I think it's fine given how much work he has put in to the project over the past few months. His ideal is for someone else to "take lead" over Stewart.
  • I think our project is still very doable. We have 6 features left, 3 weeks before modern marvels. Assuming 3 people take about 4 days to complete a feature, we would be able to complete 9 features, which is well over whats left (leaves us room to write more interesting features).
  • The problem is with Stewart; the migrations he made 

[Sunday, April 20 | 3h]