Ten month coding hiatus
I often get asked about my decision to switch careers from accountant to developer. I didn’t switch. Even before I started graduate school for accounting, I knew that software engineering is a requirement for most jobs of the future. So after graduating, I began a bootcamp at the University of Miami. I left my job and began a daily routine of coding for 10+ hrs/day. It was not the best thing for my physical health, but I knew it was only temporary 😂.
During Startup Weekend, I was introduced to Travelastic, a startup that provides a complete software solution for tour operators. I later joined Travelastic and spent a lot my time at a desk in Miami’s best coworking space, the CIC. The environment was very conducive to entrepreneurship and they hosted many events catered to startups.
After completing the bootcamp, I continued my educational journey on Udemy and allowed intuition to pick the course. I went down a rabbit hole and was going to persist until I came out the other side. 30 certificate courses later, I see the light. I began my journey struggling to implement proper HTML styling. Today, I can query big data on hundreds of processors, hack virtual machines though a backdoor over a NAT network, and have machine learning fit multiple linear regressions on higher dimensional data 🤓.
Below, I’ve made a ranking of my favorite topics covered ❤️
- Amazon Web Services - Everything I do is on AWS and I’m a customer for life. It is a daunting platform for beginners to learn, but it is worth it.
- Startup financing - Unrelated to coding, but I spent a lot of time around startups and events related to startup financing. Despite being an accountant, I had little understanding of how accounting and finance was conducted in startups, so I attended many events on this topic while at the CIC. I drafted an outline for a book on accounting and finance for startups. Maybe one day I will publish it.
- Serverless framework - This was my favorite tool of all. Infrastructure as code made me enjoy backend development for the first time. I prefer the Serverless framework to CloudFormation because it is service agnostic and packages/deploys my functions alongside the infrastructure resources.
- React - I realized how much I loved React after testing its competitors. React’s flexibility, templating in JSX, developer community, and freely available libraries/components make it the best front-end framework.
- Hacking & Cryptography - I always wanted to be like Neo from the Matrix and experimented with hacking networks and performing client/server side attacks using Kali Linux, Metasploit, etc. Since hacking requires a more sophisticated understanding of the components in use, it actually provided the biggest boost to my growth as a developer.
- Financial Algorithms - The Pandas python library and Quantopian platform made working with financial data and back-testing easy and fun. I plan to enter many contests in the future.
- Big Data - As a former statistics teaching assistant, I’ve always been fascinated by numbers. With so much freely available data to analyze, I spent a little time with Apache Spark. I don’t have any use for it now, but I know one day this knowledge will be useful.
- Elasticsearch - Used in conjunction with Filebeat and Kibana, this database has significantly more features than any other alternative I had previously used. It is very powerful, but AWS managed solution is EXTREMELY overpriced.
- Web Scraping - I originally started scraping the web with Cheerio and then quickly realized Google’s headless chrome API, Puppeteer, was like Cheerio on steroids.
- Containers - Instance management was something that seemed very uninteresting to me, mostly because I found the serverless approach with AWS Lambda to be a better solution for the vast majority of cases. If I needed to scale non-ephemeral servers, I would prefer to use Docker images with AWS Fargate and have AWS manage the clusters for me.
- Python - I had already learned the basics of Python before but did not like it for what I was doing at the time (web development). However, after exploring machine learning and financial trading algorithms, I had a newfound love for Python. Jupyter Notebook also made learning the language a lot more natural.
- TypeScript - I don’t voluntarily code in TypeScript but actually learning it forced me to start thinking about objects as a type of interface for other objects to interact with. It also gave me the ability to read other languages like Java and C# and understand what was going on.
- Continuous Integration & Delivery - I didn’t really enjoy this topic, but I pressed forward because it is an extremely important aspect of software development. I used services that simplified the process like Netlify, seed.run, and AWS Codestar. I did not enjoy using Travis or Jenkins because of their complexity and the lack of quality educational resources.
- Blockchain development - Ironically, this was the single biggest motivator for me to get back into software development. I was fascinated by the topic of smart contracts and decentralized applications. Unfortunately, after writing my own contracts on the Ethereum blockchain, I realized the technology isn’t anywhere close to the hype surrounding it. Also, the crypto community is toxic (for the most part).
- Angular - I might have actually enjoyed Angular a lot more if I learned it before React, but I didn’t. Angular has some advantages over React (enterprise applications and debugging), but overall I think React provides a significantly more enjoyable developer experience. I also learned AngularJS which is A LOT worse than Angular and has zero redeeming features.
- Unity - I didn’t spend much time on this because I don’t see myself as a game developer nor did I have the time to learn C#. I did enjoy going through the process of creating a simple 3D game for entertainment purposes only but eventually came to the conclusion that creating an engaging, high quality game is a task of extreme difficulty.