- I am the development team lead on the team that supports MROWS, MCPDT, and MCSOR. (Mcsor hasn’t had any actual content changes since 2018, other than a log4j update). I have been the team lead since the fall of 2019.
- Our team is made up of 5 developers, 1 scrum master, 2 product owners and 2 help desk individuals for MROWS, and 1 product owner and 1 help desk individual for MCPDT.
- We operate in 3-week sprints, typically 15 working days. Our sprints start with a sprint planning, usually have 2 backlog refinements throughout the sprint, and end with a sprint review and retrospective. We are an agile development team, as agile as federal policy allows anyway.
- My day-to-day tech stack contains Java 8, Oracle SQL, HTML, CSS, JavaScript, Jquery, Spring 5+, Struts 1 and Fortify.
- My day-to-day work has me using IntelliJ, Pl/Sql, Tortoise SVN, Maven, Jenkins, Atlassian JIRA, and Weblogic.
-
- As team lead I:
- am the first one contacted should there be any potential production issues.
- am also the one contacted should any new users require access to MCPDT. New user’s for MCDPT require having there info added into the database via a one time script before they can actually access the app.
- handle all final builds using Jenkins, and I am on all release calls to ensure our database changes are properly deployed to production. Our organization has its own branch that handles doing deployments, so I am not hands-on in that regard.
- am the one that is on the audit calls whenever we have audit meetings. I also handle any audit requests for queries from the database or screenshots of the code.
- mentor young developers from different backgrounds to get them up to speed on the applications. I also work closely with them individually to ensure that they are progressing there development skill set.
- do final code reviews and fortify scans before the final production build. I do this to ensure that we are following best coding practices and to ensure we are not adding fortify findings.
- I strive to have no production issues for all the applications my team supports. I take it as a personal failure when one of our applications has to have an emergency release to fix a production issue, regardless of who committed the change. As team lead I expect to catch any issues that my less experienced developers might miss.
- All the developers on my team are full stack Java developers. Each of us is expected to work on both front-end and back-end parts of the applications.
- We use Jira’s X-Ray for manual testing and use Confluence for our design documents and any other important documents.
My current role
- Tech stack used
- Java 8
- Struts 1
- Spring 5+
- Oracle SQL
- JSP, HTML, CSS
- JavaScript (Jquery)
- Hp Fortify (MicroFocus)
- Weblogic
- Jenkins
- Soap Web services
Personal MROWS accomplishments (June 2015 - Present)
- Reserve Travel Module
- Working with another dev team we created a Soap web service between MROWS and DTMS. This web service allowed Marines to complete and submit a travel claim electronically after finishing their orders. This resulted in the Marine getting paid in hours instead of weeks. I worked closely with my team lead to design the database structure for the travel claims. We also created the Soap web service call to DTMS, and created two web services in MROWS that allowed DTMS to send us either reject or recon claim information.
- DAI Initiative
- The DAI initiative was the USMC wide transition from the SABRS accounting system to the DAI accounting system. This involved determining which orders in MROWS needed to go to DAI, populating the newly created DAI tables, and building the process to create the XML file that was sent to DAI. The team also created a process to receive and parse DAI acknowledgement files so that we could track the status of the orders we had sent to DAI.
- HP Fortify
- Our team was one of the first teams to get HP fortify setup. As a result, we lead the charge in creating common solutions for the rest of our division to use to remove findings across the division. Over the span of about 3 months we worked to remove almost 5000 security findings that existed in MROWS and other applications within the division.
- Hudson to Jenkins
- I worked closely with an experienced engineer to get the MROWS build process moved over to Jenkins. This involved creating a JenkinsFile and setting up the different jobs for test and production builds. The result was a faster build process that is now 100% auditable. The Jenkins process does the entire production build process. It merges the release branch into trunk, creates a tag, does the fortify scan, and creates and stages the MROWS war to that is to be deployed.
- Spring Migration
- In 2018 the team began the long process of learning to use Spring MVC and migrating MROWS from Struts 1 to Spring 5 using the MVC architecture. I took the lead on this project and created the blueprint for converting two of the bigger areas of the application. This process involved converting our old action classes to Spring controllers and services. We also had to remove the old struts html tags and replace them with JSTL tags.
- iReport Migration
- When the DoD purchased iText 7 licenses for all applications, we were forced to add it to our application. That way any new PDFs that we create will be created using the newest version of iText. This caused us to have to migrate all of our old reports off of iReport and recreate them using Jasper Soft Studio. I took the lead on this project to transfer all of our reports. To date I have about 20 of the 107 reports moved over.
- Other
-
- Creating numerous admin pieces to allow specific changes to be handled by application administrators. This alters the way specific parts of the app work.
- JQuery UI migration was migrating a small part of the application to test using JQuery as the new UI of the application. This has been put on hold as the division decides what UI tools it wants all applications to use.
- Reporting Endorsement module, was a new piece that was created to give order writers the ability to create an endorsement on any order. I created the initial inbox and helped with database design work, but was mainly a tester on this project.
- Updates to numerous logic pieces throughout the application. Over the years I have altered many different parts of the applications business logic.
- Mentoring young developers. Since the end of 2019 I have been the team lead. This has seen me mentor numerous young developers on my team. The young developers I have helped have had different backgrounds.
- Tech stack used
- Java 8
- Struts 1
- Oracle SQL
- Hp Fortify (MicroFocus)
- Weblogic
- Jenkins
- Soap Web services
Personal MCPDT accomplishments (July 2022 - Present)
- End Of Year Processes
- Our team took over the MCPDT code base in June 2022. The fy closeout in September 2022 was the first time that we had to handle the numerous database scripts to set up the 2023 funding lines. MCPDT is a funding application that calculates travel and per diem funding for different types of orders. Since it deals with funding it is paramount that this application works properly. As the team lead, I took on this responsibility to work closely with the product owner to ensure that all the scripts were put together correctly and ran without issue. This lead to a successful start to the 2023 funding year, with MCPDT continuing to create funding lines for all the different services that call it.
- April 2023 changes
- The April 2023 release saw numerous changes to the data that MCPDT received from MCTFS on its nightly feed. These changes required updating the type files that read the feed files in every night to ensure they could handle the new file layouts. We also had to pick up a new file as well as there was new data being passed the MCPDT needed for future projects.
- SLOA
- As part of the DAI transition, all applications are required to change from the LOA to the SLOA by October 1, 2024. MCPDT intends to be ahead of the ball on this deadline, as we are working on getting the SLOA fully implemented into our system by October 1, 2023. I worked closely with the product owner to get the proper table structure created. I then updated the business logic to ensure that both the LOA and SLOA are attached to a given order. This way all of our connecting applications can still use the LOA for now, but when they decide to switch to the SLOA we just have to send that info back to them. This also acts as a test as MROWS will have to change to the SLOA as well, but has more projects in front of SLOA.
- DTMS Web Service
- As part of the September release, we are creating a new web service between MCPDT and DTMS. This web service will allow DTMS to send travel claim information to MCPDT, we will update the funding amount on the order, and send the updated amount on to DAI. I created the WSDL, XSD, and all backing objects needed to allow DTMS to connect to MCPDT and send the necessary data. I have also added in the necessary business logic to ensure that the orders pay amount gets updated and sent to DAI.
Commonly asked questions
- Biggest Strength?
- Overall Java experience and being detail oriented in all phases of development work. I strive to be detail oriented when refining stories, writing and reviewing code, and when testing changes.
- Biggest Weakness?
- My two main weaknesses I believe are that my experience is very narrow focused due to be in the federal space for so long. I also am a very introverted person when I don't know people, so I tend to keep to myself until I get comfortable with the people I work with.
- Favorite part of development?
- Backend development working with Java. Java just does things in such a way that logically works for me, I think it's because everything is an object.
- Least favorite part of development?
- UI development. I don't have that natural feel for what people think looks good so, I struggle with CSS and designing nice looking pages. I don't like loosely typed languages like JavaScript. I can work with it, but I don't enjoy it.
- Most frustrating part of development?
- Probably the fact that depending on the time and day there can be multiple answers to a single problem. Depending on who you talk to, changes which solution is the best one. So it's hard to determine at times what the 'best' approach is.
- Favorite project?
- Reserve Travel Module. I got to work with a good buddy of mine throughout the whole process. We learned how to create Soap services together. Plus we knew what the end goal was and the benefit it was going to give the end user.
- Least favorite project?
- DAI Initiative. This was a poorly planned project with way to aggressive of a timeline. This led to issues on both sides when we went to production.
- Favorite tech or tool?
- IntelliJ IDE. Best development tool out there I think. I also enjoy working with Spring. I love the controller annotations, so much cleaner than a massive struts-config.xml. Spring controllers are also easier to explain.
- Favorite Java Collection?
- Seriously got asked this once in an interview. I was not expecting it at all. Set is my answer though, specifically the HashSet. I like that it's easy to use to determine if a record for a given value already exists. The .contains method is very handy. Set Interface
About Me
- Family is very important to me.
- I am a very open and honest person, regardless of if its good news or bad. I am not afraid to stand up and say that I caused a problem in production, and I am working on a fix.
- Outside of work I enjoy working with code. I taught myself how to use Spring controllers while working at home with IntelliJ community edition.
- I also enjoy many sports: racing (Formula 1, Nascar, IndyCar, IMSA, Formula E), basketball (Indiana Pacers, Indiana Hoosiers, Indiana Fever), football (San Fransisco 49ers and Indianapolis Colts), tennis, the Olympics, the women’s world cup, and the Tour De France. My weekends are usually filled with watching some kind of sporting event.
- I enjoy playing video games, I typically play story driven games like The Last of Us, Horizon Zero Dawn, and Mass Effect. I also enjoy sporting games like Madden, F1, and iRacing.
- Favorite music includes: Evanescence, 3 Doors Down, Five Finger Death Punch, Garth Brooks, and Jason Aldean.
- Favorite movies include: all 3 IronMan movies, Days of Thunder, James Cameron's Avatar 1 and 2, iRobot, and The Incredibles 1 and 2.
- I am detail oriented at work and at home. At work my detailed focus helps me ask questions in refinements that other developers sometimes don't think of. In testing my detailed focus helps me test even the most corner of corner cases to ensure that changes are working as intended.
References
- Andrew Staab
- Former supervisor when I first started at TSO. Mr. Staab helped me organize my resume when I was applying to transition from a contractor to a federal employee in 2016. You can view his LinkedIn profilehere.
- Mitchell Phillips
- Former team lead for the MROWS application. We worked on the 'Reserve Travel Module' project together. He also worked on MCDPT before our team took it over. Currently, he is co-team lead on the TMEP project at the TSO. Phone: 765-610-5892
- Michael Rudolphi
- Engineer for the enterprise support branch at TSO. I worked with Mr. Rudolphi when we moved MROWS from Hudson to Jenkins. Mr. Rudolphi also handles any updates to our divisions tools like Nexus and Fortify. You can view his LinkedIn profile here.
- Jeff Arrowood
- Senior supplier quality engineer at Cummins inc. Lifelong friend, who grew up 1 mile down the road from me. You can view his LinkedIn profile here.