Trevor Farlow

human software craftsmanship

force dark mode

I love people and building elegant tools to delight them.
JavaScript, Clojure, and Java, with a Linux/DevOps streak.
Interested in full-stack problem solving in distributed systems.

Values

  • human software
    Build with humility and empathy for the people whose daily lives are affected by your code. The best software is delightful, accessible, and fast. And often, the best solution isn't software at all.
  • founder mentality
    Take pride of ownership in every project. Do the right thing for the future of the application. Treat customers as people, not faceless units to be "acquired" and "retained".
  • people over process
    Team success trumps individual praise, and open communication beats knowledge hoarding. Together, devs, designers, and product experts arrive at creative ends none of them may have reached alone. Assume positive intent in others.
  • craftsmanship
    Maintainability over clever code. Confident test coverage over slinging bits at breakneck speed. Success means shipping features built out of roughly the right shapes1, not some idea of perfect code. Stay up with the fast-paced web ecosystem, but remaining grounded in unchanging fundamentals.

Skills

  • front-end
    JavaScript was my first language in 1998, and I’ve re-learned it in modern form over the last 6 years. From Babel to bundling, CSS to CORS, React to responsive design, semantic HTML to service workers—the web is my platform of choice.
  • server-side
    I’m comfortable in Node.js and PHP and increasingly less awkward in Clojure. Having started my career in Java and SQL, I'm still conversational, but a tad stale in both. Historically a bit of a RESTafarian—I love a fluent API design, but I'm also super interested in GraphQL right now. Fascinated by scaled, distributed systems; both the capabilities and challenges that come with them.
  • devOps
    I enjoy working with Docker containers, continuous delivery, codemods, and modern front-end build systems. I love it when any of the above can be leveraged to accelerate my team. I know my way around a Linux terminal. Ops concerns—services scaling, zero-downtime deploys, container orchestration, etc.—are all areas where I'd like to grow my expertise.
  • remote work
    I've worked remotely for a combined 2 years on two different teams at Rally/Broadcom. As the only full-time remote team member, I have a reputation for transparent status updates, productive asynchronous work, and for fostering community within the team even from a distance.

Work

Software Engineer -> Senior -> Staff Engineer
Rally Software / CA Technologies / Broadcom2014 - Date.now()

Feature development in Rally, the $100M+ agile application lifecycle management product, working in cutting edge technologies continuously delivered against a backdrop of more legacy frameworks than you can shake a stick at. We pride ourselves on extensive test coverage and robust production observability.

Currently focused on an overhaul of our front-end (React and Redux) and helping support legacy Clojure microservices.

Team Contributions
  • Mentor teammates in JavaScript, React, and Redux best practices through code reviews, pair programming, training
  • Advise teammates in best practices for using our internal UI design system
  • Organizer of an internal Front-end Developers Guild where best practices are discussed and org-wide working agreements decided
  • Volunteer “steward” for our front-end repository, tasked with fostering developer productivity and a healthy codebase
Technical Contributions
  • Converted our overhauled app's unit testing suite to Jest with react-testing-library (from Jasmine/enzyme), pruning 800 test suites containing 9000 tests down to 130 suites containing the 1500 still-relevant tests
  • Primary author/maintainer of an internal Node-based error reporting tool for tracking client-side errors. Using this tool, engineering collectively reduced the 5-day JS error count from over 250 to about 15.
  • Implemented Bugsnag JavaScript error tracking after 3 years using the above tool
  • Revamped our front-end documentation content and build process to catch up to the current state of our app
  • Provide detailed bug reports and minimal bug reproductions to the team building our internal design system
Volunteer Frontend Developer
Colorado Citizen Software EngineersSpring 2020

Developed a COVID-19 triage hotline for uninsured Coloradans on a small team using TypeScript and Postgres, Twilio, AWS, and an electronic medical records system.

Data Analyst -> Agile Product Owner -> Software DeveloperClearwater Analytics2007 - 2014
  • Built RESTful webservices in Java using JAX-RS 2.0, including the underlying DAO and SQL stored procedures.
  • Designed and implemented a set of AJAX backoffice tools using Twitter Bootstrap in support of legacy database update operations previously performed by analysts via direct SQL manipulation
  • Personally upgraded a backoffice system from Spring 2.0 to Spring 3.0 in order to provide AJAX support in the above tools and enhance future maintainability. Migrated from the Acegi security framework to its successor, Spring Security.
  • Helped build a proof-of-concept transaction processing service with HTTP long-polling
  • As a Data Analyst, designed SQL queries to help the sales and executive teams answer questions about our customers and their usage patterns
  • Enormously grateful for the chance to pursue new roles when I wanted greater technical challenges

Education

BS Molecular Biology, Computer Science minorBoise State University2003-2007
  • Designed and developed a PHP/MySQL-powered webapp for presentation and analysis of genome data, including database design and webserver and version control (SVN) setup.
  • Performed undergraduate research in organic chemistry.
Computer Science Coursework
  • Database Theory (400)
  • Cryptology I (300)
  • Data Structures and Algorithms
  • Discrete Math
  • Calculus II
  • Intro to Computer Science I && II