Java
CSS
Github
Project Date: 2021-04-15
I SPY EFFECTIVE FRAGMENT POTENTIAL (ISPIEFP)
Good news. If you don’t know what Chemical Effective Fragment Potential is, you’re in good company. I just helped make the GUI. This was my first experience working in a team setting with a large code-base, CI/CD, tests, weekly meetings, git issues, etc.
I include this project because it shows my ability to work in a team and production setting.
My main role in the group had been refactoring the repo to upgrade from Java 7 to Java 8. This was certainly the single biggest upgrade to the language since its conception. So this led to dependency compatibility issues, build-time difficulties, etc.
Goal
My goal when starting this job was to help the team meet their grant deadlines. My brother had long been one of the main members of the team and he had mentioned that they could use some help.
I had taken Java programming in high school (a skill that I didn’t want to atrophy). I joined the team as a marketing major among computer scientists. Because of that, I tended to take fewer computation-specific issues. And that had been enough for me to stretch my software engineering limits.
Project Features
Large Codebase
Team Setting
CI/CD
Version Control & Branching
Outcome
I was able to get experience on a large code base, in a team setting, with version control, branching, and issues--all while being just out of my comfort zone. Thankfully, had I taken it upon myself to create meeting notes for the team every week. (Without them, I wouldn't have been able to provide as much detail here).
To hit our build deadline, we needed to produce an executable .JAR file that chemists could download to run the software. At the time, we weren’t able to do that because of dependency version compatibility issues.
Since this wasn't a computational issue, I took it. Reading as many Java dependency docs as I did, I felt like a lawyer scanning through generations of case law. Eventually, I was able to come up with a solution that involved refactoring our code base to work with Maven. From there, I could use tools like Jdeps and Jlink to fix splits and reflections and to handle non-modularized dependencies. Ultimately, we were able to create the automatic snapshots that we were hoping for.
Nearing graduation, I left the team in search of other opportunities more related to my Marketing major at the time.