Skip to content

Instantly share code, notes, and snippets.

View benoror's full-sized avatar
🌀
In a quantum state between coding and procrastinating

Ben Orozco benoror

🌀
In a quantum state between coding and procrastinating
View GitHub Profile
@benoror
benoror / long_query.rb
Created October 5, 2023 16:08
Modularize a long/complex SQL query in Ruby
def my_big_ish_report
my_long_query = ```sql
SELECT a,b,c FROM ... AS q_a
JOIN (
SELECT ... ' Sub-query 1
WHERE client_id = 'foobar'
) sq_1 ON q_a.fkey_id = sq_1.id
INNER JOIN (
SELECT x,y,z FROM ... ' Sub-query 2
JOIN (
@benoror
benoror / README.md
Created May 13, 2022 17:06 — forked from tannerlinsley/README.md
Replacing Create React App with the Next.js CLI

Replacing Create React App with the Next.js CLI

How dare you make a jab at Create React App!?

Firstly, Create React App is good. But it's a very rigid CLI, primarily designed for projects that require very little to no configuration. This makes it great for beginners and simple projects but unfortunately, this means that it's pretty non-extensible. Despite the involvement from big names and a ton of great devs, it has left me wanting a much better developer experience with a lot more polish when it comes to hot reloading, babel configuration, webpack configuration, etc. It's definitely simple and good, but not amazing.

Now, compare that experience to Next.js which for starters has a much larger team behind it provided by a world-class company (Vercel) who are all financially dedicated to making it the best DX you could imagine to build any React application. Next.js is the 💣-diggity. It has amazing docs, great support, can grow with your requirements into SSR or static site generation, etc.

So why

@benoror
benoror / export_base_meta_from_airtable.js
Created December 10, 2020 05:37 — forked from wassim/export_base_meta_from_airtable.js
Export base meta data from Airtable
const fda = ( fields ) => {
let data = []
for(const f of fields ){
data.push(fd(f))
}
return data
}
const fd = ( field ) => {
let data = {
@benoror
benoror / README.md
Created September 23, 2020 15:53 — forked from ggondim/README.md
Airtable schema API request

Airtable Schema API

Replace the variables below in the script

  • YOURBASEID: your Airtable base ID starting with 'app...'
  • YOURCOOKIESFORAIRTABLEDOMAIN your browser cookie for airtable.com domain
@benoror
benoror / cover_letter.md
Last active May 20, 2021 21:04
Cover Letter - Ben Orozco - benoror.com

Hi, my name is Ben Orozco. I am a Computer Science Engineer specialized in Full Stack web development, passionate on making and launching software products, leading engineering teams and leveraging technology to tackle big real-world problems. Portfolio: https://benoror.com/portfolio

I am passionate of full stack development (APIs, backend, DevOps, front-end, UI/UX) for the past 9+ years, mainly in Ruby on Rails, Node.js, Elixir and Javascipt frameworks (React, Angular, Ember).

I am ready for my next career challenge! Some fun projects I have been part of that might be relevant:

  • Helped planning, architecture design and hands-on programming of a full AuthN/AuthZ identity provider based on OAuth2/OpenID standards, to support SSO (Single Sign-on) and User Management across many EdTech applications.

  • Launched a Node.js Tax/Invoicing lambda micro-service in record time that ended up replacing a big chunk of a Java monolith codebase and serving 1000's or requests per minute by relying on minimal footprint

@benoror
benoror / index.js
Created December 3, 2019 22:56
Simple self-auth Airtable Proxy in Node.js
var express = require('express');
var proxy = require('http-proxy-middleware'); // This one does most of the heavy lifting
var axios = require('axios');
var base64 = require('base-64');
var cors = require('cors')
require('dotenv').config()
var options = {
target: 'https://api.airtable.com/v0/' + process.env.APP_ID, // Airtable ENV var
@benoror
benoror / latency.markdown
Created September 1, 2019 04:48 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@benoror
benoror / 00_Heroku-Release-Phase-Review-Apps-Rails_README.md
Created July 9, 2019 21:01 — forked from stevenharman/00_Heroku-Release-Phase-Review-Apps-Rails_README.md
Heroku Release Phase script for managing Rails DB migrations, and playing nice with Review Apps and postdeploy scripts

Heroku Release Phase + Review Apps + Rails

This is a simplified, but fairly thorough, set of scripts and configuration to enable Heroku Release Phase for Rails apps. Further, this particular set up plays nicely with Heroku Review Apps in that the release phase script will:

  1. Fail, loudly, if the DB does not yet exist.
  2. Load the DB schema if the current schema version (as determined by bin/rails db:version) is 0.
  3. Run DB migrations otherwise.

For a "normal" app that usually means it will run the DB migrations.

@benoror
benoror / xor_validation.md
Last active May 17, 2019 19:13
Rails Model XOR Validation for "Custom" fields

XOR Validation

validate :disease_or_custom_disease

#...

private
def disease_or_custom_disease
  custom_disease.blank? ^ disease_id.blank?
@benoror
benoror / LIST.md
Last active February 26, 2019 05:05
JSON:API (jsonapi.org) resources for React + Redux