As an Amazon Associate I earn from qualifying purchases.

coding finance job crafting
Photo by ThisIsEngineering on

Coding a new career through continuous learning

I love the job I have today. My job is an interesting mix of corporate finance, creative problem solving, coding, spreadsheets, and decision science that provides recognizable value to the company I work for. I know what you are thinking right now and I agree that any job involving spreadsheets is going to be a sexy career choice. It didn’t start out like this though. I was able, with the help of some amazing managers, to craft the job I want from the job I had over time. You can start coding a new career too.

Make the job you have the job you want

The job you have today doesn’t have to be the job you have tomorrow. Traditionally, this meant searching for job postings to apply for your dream job in a career change. I’m going to explain how I was able to push my job in the direction that suited my interests and skills. Sometimes, remodeling your existing home can lead to better results for you than buying a new home and the same applies to careers.

The concept is referred to as ‘Job Crafting’ or ‘Talent Stacking’ depending on the angle you take. Basically, the idea is to slowly direct your work towards your desired style through continuously learning new skills, minimizing aspects that drain you, and maximize the aspects that energize you. I want to take a moment to thank the Fioneers and ChooseFI for the inspiration to post my story today. Both articles linked above lay out how to stack talents and craft your job in a way to significantly improve your life.

Quick background

While in college, I spent most of my time in business management, organizational theory, and entrepreneurial courses because they interested me the most.  I was drawn toward the creativity afforded by the business decisions, analysis, and planning as opposed to the more rigid world of accounting and treasury. I loved spotting the patterns in the work, finding ways to improve them, and building plans around executing those improvements.

Despite getting a Master’s degree in Business Administration (MBA), I think I only took a handful of finance courses and maybe one IT course. To make it worse, the IT course I took focused almost entirely on rudimentary Microsoft Office skills and nothing more in depth. I’m pretty sure they never mentioned a database or a general ledger system at all.

Don’t get me wrong, I was very proficient in Word, Powerpoint, and Excel compared to an average user leaving college I imagine. I just wish they had taught me even some limited coding skills that would come in handy for anyone in the finance or accounting field. All of my finance related jobs have involved 100% more coding than was suggested by the courses I took in school. A heads up would’ve been nice is all.

How it started (spoilers: no coding)

The first financial analyst job I got out of college was a foot in the door but a glorified data entry position. It was incredibly boring to take the same data day after day and move it from one system to another. It was draining. To make things worse, I was given the unenviable job of handling the expense processing for all of the funds we managed since I was the new guy on the team. Nobody wanted to do the expenses because it was a lot of manual work and took the previous person over 20 hours a week.

There has to be a better way

After repeating the process a couple times I noticed that while it seemed chaotic to my coworkers, there were definite patterns in the mechanics of compiling the data. I slowly built out my Excel spreadsheets to convert raw data pasted in one sheet into an output usable for processing the expenses. When that was insufficient, I started teaching myself VBA coding built into Excel to handle the more complex processes. I just started coding a new career and didn’t realize it.

To many people, that might seem like a lot of work but it energized me like none of my other work. Building, planning, and coding my way around the dozens of simultaneous problems to make this process work was exciting and challenging. It was actually fun to encounter a problem, trial-and-error a lot of options, and implement a solution through code. Eventually, using these spreadsheets and code I built, I was able to automate most of the data prep. A 20 hour per week process was now being compiled in minutes.

Coding is a skill anyone can learn

This isn’t a new concept. Websites like ChooseFI have been telling people that learning to code can change their life regardless of their career. Coding is a great equalizer where you can harness the power of computers to do the mundane work without needing a formal education to acquire the ability. Anyone can learn to code online for cheap or free (even get certified) and turn that into a lucrative career. Coding a new career is an opportunity open to nearly everyone, regardless of background.

If it helps convince you to take up coding, you can change all of the settings on your computer to ‘hacker mode’ to show off how cool you are. Go to settings in your favorite text editor and change the background to black and the text color to green for maximum “The Matrix” vibes. Do you have to code in a dark room wearing sunglasses while typing 200 words per minute as code screams by on screen? No, but you’d be cooler if you did. haha.

Coding a new career started working

My project received a lot of recognition from my peers and managers as you’d imagine. More importantly, it taught me that coding and process improvement were aspects of the job I was passionate about. I made sure the next job I moved to involved a lot more analysis and less data entry.

The next job taught me that I also had a knack for forecasting as well as financial analysis even though I only got to do that 3 months out of the year.  I also learned that the ability to get my own data by writing SQL to query the databases was a valuable skill.  Both of these interests would serve me well in the future.

A new company

Realizing the position I had was a dead end in terms of future opportunities, I took my newfound skills and interests to a new position across town.  In this job, I was tasked with updating about a dozen reports each day for the finance department and was as exciting as that sounds (not). This was another glorified copy-and-paste-and-refresh “financial analyst” job that was going to crush my spirits if I wasn’t willing to change it.

Manually copying and pasting data from one file to another is time consuming, boring, and not scalable. There is a hard upper limit on the number of reports a person can reasonably complete in a day in this manner. Additionally, it isn’t exactly skilled, value-added labor so I could easily be replaced at any time. In fact, I had one week to learn this job because I was replacing someone who was leaving the company. If I could learn this job in one week then it isn’t unreasonable to think I could be quickly replaced as well.

Minimize Activities that Drain your Energy

I quickly became very efficient at getting my reports out each day which left me with some free time. Not content with refreshing the same 12 reports over and over, I slowly took the reports apart to break them down to recurring, consistent pieces I could automate like a digital assembly line.  Every report I came across could be boiled down to three steps: get the data, summarize the data, and save the report.

Very standard and very boring. Coding a new career at this point was less about getting a promotion or raise and more about avoiding the boring parts of this job. The copy-and-paste day after day was draining me. I needed to find a better way.

I built out a modular process in Excel using VBA coding, SQL coding, and spreadsheet manipulation where I update a few fields specific to a given report and automate the output within minutes. All 12 of my reports were fully automated within a week after that, freeing up even more time to improve the process. The reports went out on time every day even when I was on vacation or out of the office, significantly reducing the stress of my work.

Do More of what Energizes You (spoilers: coding)

I wanted more and my manager was more than willing to see how far we could push my skill for process improvement and automation. We eventually automated more than 250 of the recurring financial reports that used to be the full time work of 25 employees. It likely saved millions in operational expenses since implementation which is great for anyone’s resume. It certainly was for mine.

Before you worry too much about those employees whose work I automated, don’t. Automating these reports didn’t eliminate their jobs but rather freed them up to provide the company more value-added analysis work. The company gets more useful analysis and the employee gets to do more interesting work, it was a win-win.

More energy, captain!

Teaching myself VBA and SQL coding to make my work easier was fun, but what are all the cool kids doing? They were using Python apparently. With encouragement from my supervisor to learn a new skill and an online training course I bought on a whim for $10, I dove into python programming. The thing I love about coding a new career is how broad that concept really is. There are hundreds of in demand coding languages for hundreds of use cases for every industry. Try a bunch of them until you find one that resonates with you or is the most useful for your situation.

Either python coding is super intuitive or I am a natural programmer because I was writing scripts to simplify my life within the month. Spoilers: I am not a natural programmer, have no formal training in computer coding, and mostly picked python because it sounded cool. So there’s that.

Teaching myself python was so energizing because anything felt possible. Unlike SQL for databases, python was a full fledged programming language and possibilities were endless. Quick shout out to Al Sweigart for writing Automate the Boring Stuff with Python which shows anyone the practical applications of coding and how to write them yourself. 

Start incorporating changes now

My job involved forecasting the number of customers that would churn (not pay us) within the next 60 days. I inherited the process from the employee before me and quickly automated the outputs to replicate the existing process. This freed up my time (while still producing what was expected of me) to see if I could use Python to improve the process.

I won’t bore you with the details, but I was able to deploy relatively sophisticated machine learning algorithms via python to significantly improve the forecast. Not only was the forecast far more accurate, but it provided detail at a level previously not possible in the old method. 

Success breeds more success

I was able to keep learning and incorporating more python into my work as time allowed. Others noticed and I was soon helping them learn as well. When a new team was put together specifically for data science and forecasting the directors who had noticed my work offered me a position on the team.  Now, I was doing automation, forecasting, and creative problem solving full time.

I recognized what aspects of my job I liked, what aspects I did not, and made a plan to craft my ideal job around that. I was able to shifted a copy-and-paste data entry job at high risk of being replaced to a creative coding job of high value to the company. I’m not saying this is possible for every person out there but certainly worth a try. For almost no expense and some of your free time, coding a new career is worth giving a shot.

Show gratitude and help others

Life is trial-and-error so I never expected everything I tried to work out and you shouldn’t either. Just know that you did your best today but will try harder tomorrow to make even tiny improvements. Each new skill I learned was a stepping stone to the next one, building off of each other into a talent stack. It was never about one skill in particular, but the confluence of them all at the right time for the right job to succeed.

 A rising tide lifts all boats, so I made sure to pay it forward whenever possible at work. I made myself available to any coworker who needed help with their work or wanted to learn about mine. Additionally, I volunteered to showcase the work on a regular basis to make sure the efficiencies I built weren’t limited to my work.

I even helped start a lunch and learn group at the office to showcase and teach other financial analysts and accountants the magic of coding. We brought the art of the possible to hundreds of employees in the building and hopefully inspired many more. Teaching myself to code changed my life and I want to share that with anyone who will listen.


You can make the job you have now into the job you want. Minimize the parts you don’t like and maximize the parts you do like to craft your ideal job. I achieved this through learning to code but there are many paths. If you are able to get there, help others along the way. You can start coding a new career at any age or experience level.

While you are here, don’t forget to check out my step by step series on discovering the Path to Financial Independence together.

Amazon and the Amazon logo are trademarks of, Inc, or its affiliates.