Why I Decided to Become a Software Developer

Posted by Thomas Gray on November 29, 2018

Well, I’m not… yet. I’m 3 months into an 8-12 month bootcamp, working full time (not as a developer), with no prior development experience. So what makes me so sure I’m going to be a software developer? That all starts with how I became interested in the subject in the first place.

After graduating from Penn State with a B.S. in Energy Business and Finance and a minor in Economics, I took a job as an analyst with a Maryland-based company. The company was small, no more than 30 people, which meant I could make an impression there. At the core of its business was its ability to model utility rates–that is, given a building’s location and energy usage, how much would the utility company charge the owner of that building for electric, gas, and water? What about in the summer, when electric rates tend to be higher? What about during peak time hours, when electric utilities incentivize their customers to shift their usage to later or earlier in the day, to reduce stress on the grid?

While I found the above topics fascinating, there was an aspect of the job that I found frustrating. There was only one developer on staff, and he had been around since the beginning. He built the company’s proprietary software, which is what made it possible for us to model so many different utility rates for a myriad of different utility companies across the U.S. He was very talented, but he always had a lot on his plate, which meant that any bug we found in the system could take weeks or months to resolve.

The most frustrating thing that I noticed, however, was how much time the analysts (myself included) would spend reformatting the CSV files that our software produced for us. By my calculation, a single analyst would have sunken in an average of 10 hours per month reformatting reports, which was an extremely repetitive and mind-numbingly dull task and therefore, a good candidate for a problem that could be solved in a programmatic way. The options were to either adjust the source code of the software itself so that the reports would come out the way we wanted them to, or to create a more downstream program, specifically designed to reformat our reports after downloading them from the server. The more upstream solution would have obviously been more preferable, however I knew our developer likely didn’t have the bandwidth for this type of project. Plus, I wanted to see if I could contribute in a big way to my company and make myself stand out as a problem solver.

I learned about macros in Excel from my roommate at the time, and how they could be utilized for repetitive tasks. Some of the reformatting tasks were as simple as removing a column, however some were dependent on the length of each individual report, which varied across clients and required more in-depth knowledge of programming in VBA (which I knew nothing about at the time). I decided to take on the task of creating a macro that would solve these problems. I didn’t tell my direct managers about what I was working on, because I didn’t want to set expectations that I may not have been able to meet. I had taken a very introductory course on C++ programming as part of my major in college, but that was about the extent of my programming knowledge. I pretty much Googled my way through this project, breaking down the high-level problem into multiple smaller problems, which I then broke down into even smaller constituent problems, all while learning how to translate those problems and solutions into VBA.

At work, after I finished with my regular responsibilites and had some free time, I would work on the macro. When I got home, after my hour-long commute, I would work on the macro. I would stay up late into the night working on the macro. I remember running into a snag one day and coming to the realization that I needed nested for loops to move forward with the program, and I remember taking a very long time figuring out how to implement that solution. To a lot of people, this probably sounds like agony–working overtime, not getting paid for the additional work, for something that might not even function as intended or even if it did, may not be appreciated by its users. To the contrary, I found I looked forward to working on the macro every day; it was exceptionally challenging work, and I liked doing it. Another passion of mine is making things more efficient wherever possible, and that’s exactly what I was doing with this project.

Eventually, I got the program to work and the macro was finished. I showed my manager for the first time and I distinctly remember the look of awe on his face when he realized what it was I was showing him and the implications for it. I gave a demonstration to my co-workers, distributed the program to each of them, provided instructions for installing it, and waited. Just a couple of days after people started using the macro, I had received a ton of positive feedback. It appeared people did appreciate it, and I liked that. I liked that I was able to help people who were facing the same frustrations I was facing. I liked seeing their faces light up when they just pushed a button and all of that tedious work was instantaneously done for them. I think, more than being appreciative of the amount of time the macro saved, people were more enthusiastic knowing that they could devote less of their day to an annoyingly trivial task, and more of their day actually using their brains and doing what they were there to do in the first place–analyzing utility rates.

A week later, I received a call from the CEO laden with many “thank you”s and “how’d you do that”s. Shortly thereafter, I was awarded a promotion.

I had done what I had set out to do–I made an impression on the company by solving a big problem, and along the way, I had discovered a passion. I knew that I had to turn that passion into a career, so to get my foot in the door I eventually took a non-technical role at a large software company with the hopes of getting into the more technical aspects of the business. A year and a half later, I moved to a technical position that has involved a lot of SQL, HQL, and business intelligence analysis. Then, in September 2018 I enrolled in the Flatiron School.

Today, after learning so much in the Online Web Developer program already, it seems a little ridiculous how long it took me to get that macro to work. I guess we all have to start somewhere.