Ten month coding hiatus

December 2018

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 😂.

The bootcamp provided me with excellent guidance that I needed. Along the way, I created JavaScripter.org to serialize my learning process. The repository for the site showed up as trending on Github 😲. After graduation, the bootcamp hired me to be a teaching assistant for the following cohort. I will use JavaScripter as a teaching tool for my students.

I wanted to apply my new skills in the real world, outside of an academic setting. I organized a Meetup group for blockchain developers. I also attended many events in the Miami startup scene. One of these events was Startup Weekend, an event which my team won 1st place. Our idea was Kitchen Concepts - Coworking spaces for restaurants.

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 ❤️

  1. JavaScript/Node - I had tried coding before but I never really enjoyed it until using JavaScript and Node.js. For me, JavaScript has many advantages. I can immediately see the results of my code in the browser or on any mobile device and there’s nothing to compile. Also, writing in one language for both the client and server was a huge benefit.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Machine learning - By far the most difficult thing I went over because I was trying desperately to understand what goes on “under the hood”. Luckily, there are libraries like Keras and scikit-learn that allow me to rely on the shoulders of other great data scientists. I’m really interested in seeing how Tensorflow.js develops, as it allows for offline training of models with JavaScript. Also, Kaggle has some interesting prize contests I might consider entering.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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).
  17. 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.
  18. 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.