Technical knowledge and skills

Everything that I've learned by either teaching myself, through coursework, or my job.

1) Orange progress bars denotes a skill that I just began learning.

2) Solid gold stars denotes a skill that is my personal favorite.

3) Outlined gold stars denotes a skill that was my favorite but has been replaced by an alternate skill for whatever reason.

Certifications

  • C)ISSO: Certified Information Systems Security Officer

    Earned by passing Mile2's C)ISSO Certification Exam, which also served as the final exam for my CSC 5272 Principles of Cyber Security course.

Languages

Any kind of language used in software engineering or development
  • Ruby 3

    Completely spoiled me as a software engineer and programmer.

    100%
  • Python 3

    Python is an incredible language overall but I can never stop raving about how powerful and elegant list comprehensions are in the language!

    100%
  • Elixir 1.7

    The language with the most game-changing potential and powered by a wonderful community.

    90%
  • JavaScript

    Lately, the transition to sending HTML over the wire (i.e., HotwireHotwire, LiveView, etc.) has drastically reduced the need for me to work directly with JavaScript.

    70%
  • C

    Used primarily for my Operating Systems course.

    85%
  • C++

    Dived in deep for several courses: Parallel Computing I: Programming, Computer Graphics I, Computer Science I & II, Problem Solving and Programming, and from teaching myself Unreal Engine 5.

    90%
  • Go

    Built my initial personal website in Go using Hugo, but then transitioned to Next.js, and the learning came to a grinding halt. Nevertheless, I' always on the lookout for a new project that will push me to learn this language

    70%
  • Rust

    After hearing numerous success stories (ex. InfluxDB's performance gains after transitioning from Go to Rust), I spent some time learning the basics of the language. Moreover, it's always refreshing to work with functional programming!

    55%
  • Java

    55%
  • C#

    A great language that I always prioritzie to learn, but just cannot get around to despite using it for a year when I took Game Programming and Design I & II during grad school.

    65%
  • Lua

    Pleasant language that is used in Roblox, which I was learning for my graduate-level Game Programming and Design II course.

    65%
  • SQL

    Realizing my over-dependence on ORMs to basically write SQL for me, which needs to change...

    80%
  • HTML & CSS

    There is no escaping this dynamic duo...

    100%

Libraries

Frameworks, packages, gems, APIs, etc.
  • Rails

    Web development simplified; insanely productive to work with, easyily deployable to every cloud service, and constantly innovated on by the core team and community. Without a doubt, Rails will allow small teams to easily and rapidly build an MVP in a few weeks and revolutionize entire markets. Only bad thing about it is how it completely spoiled me, and finding myself having to adjust my expectations when working with different tech stacks.

    100%
  • Scrapy

    My initial foray in web scraping became tedious and frustrating when I was writing web crawlers in Ruby from scratch. Thankfully, I found Scrapy, which alleviated every technical hurdle I encountered and is the reason why I was able to learn and accomplish so much over the Summer of 2021.

    100%
  • Phoenix

    I've been working with Phoenix just prior to its v1.0 release. Furthermore, my desire to learn the Phoenix framework landed me an incredible software engineering internship opportunity at InfluxData. While I was there, my co-intern and I built a user onboarding simulator for the Backend Engineering team test against the InfluxDB Cloud serivce, which was also was built with Elixir & Phoenix.

    90%
  • Tailwind CSS

    The one tool that single-handedly made me enjoy front-end development work.

    95%
  • React.js

    After dancing around this, and at times outright avoiding it (thanks Hotwire and LiveView!), I recently took the plunge and began tinkering around with a small app built on React.js + Next.js (see below).

    75%
  • Next.js

    Fun fact: This website is built with Next.js!

    70%
  • Bootstrap 5

    Ocassionally turn to Bootstrap, but mostly use Tailwind CSS nowadays.

    80%
  • OpenGL

    Learned about graphics programming and the rendering pipeline in my Computer Graphics I course during grad school. Worked in-depth with C & C++ using OpenGL to render a world containing basic random objects. Furthermore, learned techniques for rendering shaders, local, and global illumination using ray tracing. Finally, recreated 3D rendered models of real-world objects by using Python & OpenCV, COLMAP, and MeshLab.

    80%
  • Pthreads

    Wrote a C++ program that computes the addition of two 256x256 matrices using Pthreads, which can be viewed on GitHub.

    75%
  • OpenMP

    Wrote a C++ program that computes the addition of two 2048x2048 matrices using MPI on 8 processors, which can be viewed on GitHub.Additionally, I wrote another program that multiplies two square matrices using 1, 2, 4, 8, 16, and 32 threads that successfully ran on the university's grid computing service.

    75%
  • MPI

    Wrote a parallelized implementation of the Odd-Even Sort algorithm in C++ using MPI, which can be viewed on GitHub.

    75%

Databases

Database Management Systems, ORMs, techniques, concepts, etc.
  • PostgreSQL

    The ultimate RDBMS and typically my #1 choice for a new project's database.

    90%
  • MySQL

    My #2 RDBMS choice when starting development on a new application.

    80%
  • NoSQL Databases

    Honestly, I am looking for a new app to build that would beneft from using NoSQL databases just so I can dive in deeper and learn more about it.

    75%
  • GraphQL

    Currently working with GraphQL on my project, Servitor, which is built using Elixir, Phoenix, and Absinthe package.

    75%
  • ActiveRecord

    Sometimes I forget this is a standalone system outside of the Rails framework

    100%
  • SQLalchemy & Alembic

    Much stricter and more nuanced than ActiveRecord, but that's not a bad thing.

    85%
  • Ecto

    Enjoyable to use overall and appreciate the explicit nature compared to other analagous systems, like ActiveRecord.

    80%
  • Meilisearch

    The search engine I use in all my personal projects that require robust search functionalities, especially for end-users. Replaced my previous method of using Opensearch via the searchkick gem

    95%
  • Elasticsearch & Opensearch

    When I need something more powerful and robust than Meilisearch, I return to what I've been using for so many years.

    85%
  • Redis

    Mostly thanks to Sidekiq!

    75%
  • Sidekiq

    My default solution for processing background jobs, that is unless solid_queue takes over!

    95%
  • solid_queue

    There is a good chance this will fully replace Sidekiq and Redis in future Rails apps that I undertake.

    60%
  • InfluxDB

    Despite interning at InfluxData, I haven't come across a scenario requiring the use of a time-series database...yet.

    60%

Cloud Services

Solutions for pushing Git commits to repos, running production apps on platforms using custom infrastructure, storing data, and running other essential services.
  • GitHub

    Beyond using GitHub's repo features (Issues, PRs, Code Reviews, etc.), I's worked extensively with their other features, such as GitHub Actions, Codespaces, Projects, and Copilot.

    100%
  • GitLab

    Looking forward to working on projects that incorporate GitLab in the DevSecOps' tech stack.

    80%
  • Heroku

    My default platform for running all my apps for so many years. Still using it frequently, but there is definitely greater competition on the horizon...

    90%
  • Render

    Rapidly becoming my go-to PaaS solution. Blueprints are an excellent feature that both simplifies and clarifies your infrastructure in readable YAML code.

    85%
  • Fly.io

    Similar to my experiences with Render, Fly.io is also rising in my list of preferred deployment platforms.

    80%
  • AWS

    Specifically worked with IAM, S3, CloudFront, Elastic Beanstalk, Route 53, EC2, Lambda, and Cloud9.

    70%
  • Meilisearch Cloud

    Integrated services for my Rails app running in production.

    90%
  • Namecheap

    Majority of my domains are handled through Namecheap with a few exceptions on AWS Route 53.

    85%
  • Cloudinary

    Despite the cost, Cloudinary is a great solution if you're looking for a solution akin to AWS S3 but with a lot of exciting features. In fact, too many to justify using it and paying the potential cost.

    80%
  • Font Awesome

    Simple and convenient way of adding icons to all my apps. Proudly supporting the Font Awesome team for a few years now!

    100%
  • CircleCI

    The CI/CD tool our team used during my internship program at InfluxData.

    80%

Video Game Engines

Used popular engines to create video games either for personal development or academic coursework.
  • Unreal Engine 5

    Continuing to learn about game design, development, and programming by teaching myself the Unreal Engine. Moreover, there is the added benefit of working with C++!

    80%
  • Unity

    Worked with Unity and C# heavily for my Game Programming and Design I & II courses. Built several games in the process; SuperShooter was the most comprehensive and technically demanding games we built. Despite my enjoyment working with Unity, I stepped away from the entire Unity platform after the company unveiled their new Unity Runtime Fee policy.

    80%
  • Roblox

    Used for my Game Programming and Design II course specifically. While my overall impressions of Roblox Studio has changed for the better, I still prefer developing games using other video game engines and programming languages.

    60%

Workstation

  • 14” MacBook Pro, M1 Pro, 16GB RAM (2021)

    I was using an Intel-based MacBook Pro prior to this and the difference is night and day. I've never heard the fans turn on a single time, even under the incredibly heavy loads I put it through with our various launch simulations.

  • Custom Built Gaming Rig

    3070 RTX GPU, 16GB RAM, Windows 11, and all the storage space I could possibly need.

Development Tools

  • Sublime Text 4

    I don't care if it's missing all of the fancy IDE features everyone else relies on, Sublime Text is still the best text editor ever made.

  • Sublime Merge

    Excellent app to use in conjunction with the git CLI tool.

  • Visual Studio Code

    When projects require a fancier setup and particular extensions that aren't available in Sublime Text 4.

  • iTerm2

    Supercharged with ZSH and Powerlevel10k to really enhance the experience. However, none of this would mean anything if I do not have Homebrew, asdf (version manager), Xcode, Git, and NPM/Yarn installed to give a usable and productive CLI experience.

  • Homebrew

    The first thing I install on any new Mac hardware (after Xcode).

  • asdf

    The second thing I install on any new Mac hardware

  • NPM & Yarn

    There is no escaping NPM and all my Rails apps use Yarn.

  • Xcode

    The thing I have to install before working with any other dev tool on macOS. Also, I used Xcode to write and compile C++ programs when I was taking my undergraduate-level CS prereq courses.

  • Beekeeper Studio

    Great software for working with databases. Has saved me from building about a thousand admin interfaces for my various projects over the years.

  • Postman

    A reliable tool for working with APIs in any capacity.

  • Docker

    Used heavily to run certain packages, notably Splash during Scrapy crawl sessions.