My Background: Three years ago, at the age of 51, I changed careers. I have a BFA in studio art and I went back to school and obtained a Digital Design Certificate from a local university. Prior to this I was a Field Service Tech working on industrial generator sets for Caterpillar and Cummins. That job was a mix of physical labor and digital know-how. I can typically fix anything. So, three years ago I got this job working for a company that is a subcontractor to a very large chip manufacturer here in Oregon. We maintain their global web presence. So, on one hand, my work environment is very cutting edge, very silicon valley, very high-tech. On the other hand, since I don't work directly for this high tech company I'm kind of just a warm body. And also, since I don't work directly for this big, global chip company I really don't have access to their developers and I am not part of a development team. In the three years I have been there I have been able to obtain the title of "Tech Lead" because I am willing to work outside of my comfort zone, and I have a real interest in code (especially
Java), and I don't miss deadlines. But still, I work in this weird vacuum where no one knows more about what I am doing than me, but I don't exactly know what I am doing or exactly what process to follow. There is no mentorship, and sadly, even after three years in this environment I feel like I'm still not ready to move on to a real developer role in a real company that would value someone that gets the work done.
My Problem: I recently inherited a SQL database, some backend VB code that acts on that database, and an old Java program (Java 5) that imports the raw data into the data base and runs queries on it. The java program is broken. The person I inherited this from did not maintain it, or broke it, and resorted to manually importing raw data into the database and manually running queries on it. The VB portion of this mess still works and runs a portal that creates output tables and charts based on the raw data and other fixed tables. To make things worse, a third party vendor was asked to create a similar tool and each week we post our results and of course they are never perfectly in sync. This third party vendor supplies the raw data (from a registration application that they created), and since the code I inherited had not been maintained, someone at the large chip company asked them to replicate this old tool that I am responsible for because they had either lost faith in it, or had been told that it was broken and could not be fixed.
So, with virtually no help, no training, just reading past documents, I figured out basically how all of this works and I am able to produce numbers each week. But, my goal is to get the Java code working again and to make the whole program dependable and valuable once again. Do you have any advice? I am pretty intimidated by the vastness of the SQL tables, views, store procedures that make this work but at the same time I also know that a lot of this stuff already works. I am curious why the java program stopped working (maybe it was dependent on a library that is no longer supported... who knows) but from my point of view, I see this mess as possibly the best thing that could have happened to me. I get to fix something BIG that is broken, and right now I don't think anyone expects me to succeed, and no one is there to help. So imagine if you could work solo in this environment fixing this stuff, refactoring code (knowing that if you did screw up it could be the last thing you do there...) what would you do. What would be some of the basic things you would do to make sure you weren't just a mediocre hack, but actually were a caring, thoughtful developer that had something to prove. Also, how would document your process so that when it was all done you would have something to show your next prospective employer?
If you have read this far, thanks for taking the time. I know you too are busy. The opinions here matter to me and I have an opportunity to finally prove myself as a developer. Any advice you can give is welcome.
Thanks