While there is often the right tool for the job, there's definitely no such thing as the perfect tool. As we all know, there are tradeoffs to everything. The only way that you can go wrong in my book, is being entrenched in one particular stack. Sometimes you just need to scrap your stack and get uncomfortable.
|Frameworks:||Flask/Django, Rails, Node.js|
|Datastores:||Postgres, MySQL, Redis, Neo4j|
|Deployment:||GCP, AWS, Heroku|
|Other:||NLP, Pandas, Chatbots, ElasticSearch, Data mining, Twilio, Stripe, Plaid|
My most recent love affair is the modern python stack. While I had prior exposure to python and simple ML techniques like
KNN at my last company, I've always needed a greenfield project for a new stack to really sync in. And that side project for learning python is a microframework for analyzing my personal finances. I'm using
Plaid API for bank data,
pandas for analysis, and a
Twilio bot "front-end" for interaction. The project uses a
NaiveBayes Classifier and the
NLTK NLP framework to analyze bank transaction descriptions and learn my preferred categories like Utilities, Food, Rent, etc.
Additionally, I'm just starting to wrap my head around neural nets with this Neural Nets and Deep Learning Coursera course, as well as playing
tensorflow to detect cats (aka the hello world of deep learning). If you're learning as well I'd recommend perusing the
Jupyter Notebooks on Kaggle.
For external interactions, we built an omnichannel bot framework that extended
DialogueFlow and communicated with our customers
on top of
ElasticSearch datastores hosted with
and deployed with tools and tech including
Full disclosure, I was the CEO at CoLane, so while I stayed involved with the engineering team, after the first two years I was not writing any production code at all.
Other JS frameworks that I've enjoyed include
NextJS. O and this site is a
Ghost CMS backend with
handlebars on the front.
Current sentiment: Love/hate relationship with JS, but it is the native language of the internet, and it's arguably the obvious choice for web application development.
Ruby on Rails
One of my favorite things about
Ruby is that is holds a guiding principle of "the happiness of the developer". Ahhhhh. What a beautiful goal. I like to be happy! Also, can we all agree that
ActiveRecord is the GOAT of ORMs?
While Ruby is still my sharpest tool — with thousands of hours building, studying, and teaching under my belt — it's been a while since I've
rails new app_named. The transition started in 2015 when I was implementing an
Angular front-end with a JSON API in Rails, and the constant context switching from Ruby to js became a drag.
Rails was also the platform for my favorite project of my career — my All College Storage platform. Over 5 year period, I built a two-sided platform that automated a huge chunk of my business. One of my favorite features wa a
rake task that initiated a
Twilio SMS to prompt customers to update payment information through a tokenized link, that would process through
Stripe. It was a simple bot that used
state-machines and and simple string matching on responses, but it saved me and my customer service team weeks of their lives trying to chase down customers.
I also got really into
web scraping with
Nokogiri and did some questionable mining of campus directories with an ML enabled bot. We then then used
Mailchimp for email campaigns, and the
Lob API to send physical postcards to campus mailrooms, to get people into our funnel. It was fun, and ridiculously effective, but yea - probably shouldn't have done that.
Current sentiment: Rails - I miss you. You were great. Do you ever think about me? I think about you.
eHighlighter: .NET, objective-c
AllCollege v1: LAMP stack, Drupal
College/HS: java, VBA, BASIC
Quick Tangent - Design Tools
I love Sketch! Do you love Sketch? You should use Sketch.
Want to talk or nerd out about any of this? Need engineering consulting at your company? Please get in touch, and we'll start the conversation.