I've been a developer for over 3 years now and I have built up confidence of my programming abilities within my team. Recently my team has been employed under a company owned by our venture capitalists which we have integrated within and now work on.
I have no experience of Java and while I know how to code in C# etc and I am familiar with APIs, I recently created a huge issue when checking in my code to our source repository.
I was thrown into the deep-end and asked to make changes to an existing API (my team is aware of my exposure and abilities). After understanding the changes and checking the solution environment for references to the API itself, I made the changes, tested it with unit tests and Postman for the response etc.
All seemed fine. However my knowledge of the solution overall and other things is not as good as the other back-end developers on this project; I'm the only full-stack developer, doing both front and back end. The problem was that the API is referenced in a BPMN workflow file which didn't show up when I searched for the references or API name as text in the IDE.
This caused a 4 day problem with between 2-4 back-end developers looking into why the build was failing at any given time during the working day. While I own up to my mistake and fully accept the responsibility for making such a big problem, I now feel very disappointed in myself and more so doubt that I should continue to develop the back-end with such little knowledge of Java and the solution structure. I also can't help but feel guilty for wasting so much time and money on what was a mistake and took a long time find.
While I'd like to be able to spend time and sit down with some back-end developers to go through and understand it fully, they simply don't have the time right now. What else can I do to help ensure I don't make or am far less likely to make mistakes, let alone such costly ones, in the future?
I should add I also had my change code reviewed by one the back-end developers, who I'm sure asked if the API is referenced anywhere else. As my search and check didn't show anything in the IDE as it doesn't check BPMN files, I replied no.
What more and what else should I do to minimize the risk of making similar mistakes in the future?
Additional notes in response to the comments and answers:
Code reviews: I will always sit with the developer and talk through and understand the code with them, explaining as we go.
We do daily scrums. I mentioned this when I was working on it but no concerns were raised, though I'm sure we will discuss it in tomorrows scrum or the next retrospective.
I should clarify that the issue was the build was failing and I understand that I should probably pull all changes into my branch and build and do a final test before committing, this I didn't do.