Skip to content

Instantly share code, notes, and snippets.

Carl Vitullo vcarl

  • Stellar Development Foundation
  • New York
View GitHub Profile
vcarl / userTimingMiddleware.js
Last active Feb 22, 2020 — forked from clarkbw/redux-performance-mark.js
A User Timing middleware for redux to create performance markers for dispatched actions
View userTimingMiddleware.js
const userTiming = () => (next) => (action) => {
if (performance.mark === undefined) return next(action);
const result = next(action);

Keybase proof

I hereby claim:

  • I am vcarl on github.
  • I am vcarl ( on keybase.
  • I have a public key ASDlWlpXqRlQBdfwuc6TB0DKpDQdXtlKgT97d7lQCv_v8wo

To claim this, I am signing this object:


I bundled these up into groups and wrote some thoughts about why I ask them!

If these helped you, I'd love to hear about it!! I'm on twitter @vcarl_ or send me an email

Onboarding and the workplace

  • How long will it take to deploy my first change? To become productive? To understand the codebase?
  • What kind of equipment will I be provided? Will the company pay/reimburse me if I want something specific?

“Honesty in small things is not a small thing.”

This is a book about humble concerns whose value is nonetheless far from small.

We can accept for granted that responsible professionals give some time to thinking and planning at the outset of a project.

I think this is one of the base assumptions the book makes about its readers. If your routine is to hop directly into code without a thought for the overall design, you may try to change that habit.

Total Productive Maintenance

View gist:76ca26f5c40b3ecfc5e4e22aec81bbd4
const ToHoc = (Component) => {
return (Wrapped) => {
class GeneratedHOC extends React.Component {
render() {
return (
<Component render={args => <Wrapped {...this.props} {...args} /> } />

Adding manpower to a late software project makes it later.

Development managers often win their management roles primarily from having been stellar coders while displaying a modicum of people skills.

Programming teams can tell management that the product is one week from being functionally complete every week for the months.

A program can produce the desired results and be so poorly designed and/or executed that it cannot realistically be enhanced or maintained.

For too many managers (especially less technical managers, such as CEOs or CFOs) prototypes appear to be “done.”

vcarl / router.js
Created Sep 14, 2016
Synchronous routing example
View router.js
import Restify from 'restify';
import SyncRoute from './sync-route';
const server = Restify.createServer({
name: 'SyncRoutingDemo'
SyncRoute(server, {
verb: 'post',
vcarl / package.json
Last active Oct 27, 2016
Sample webpack 2 config
View package.json
"name": "jstest",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"keywords": [],
"author": "",
View visible-hoc.cjsx
define (require) ->
_ = require('lodash')
React = require('react')
ReactDOM = require('react-dom')
# Modified from
isElementInViewport = (el) ->
rect = el.getBoundingClientRect();
vcarl /
Last active Dec 14, 2015
How to learn React

Read "Smart and Dumb Components" by Dan Abramov (who later wrote Redux, a hugely popular variation on Facebook's Flux architecture).

In general, you need to make more components than you think you do. Facebook has over 15,000. Not only is more components not harmful to performance, by giving a lot of split points and more narrowly defining what data is needed to render, you can reduce how much DOM gets invalidated--which is a massive performance gain.

As of React 0.14.0, React supports stateless function components which are functions that take a props object as an argument and return as a render function. They have caveats though, like no lifecycle, state, or refs. So why use them? Because they encourage writing small, focused components t

You can’t perform that action at this time.