I give a shit. Sometimes that makes me come off like a smug asshole and that’s unfortunate, because most of the time I’m just a curious, affable nerd who likes to help people make their software suck less. To be fair, it’s not their fault the software is awful, all software is awful, all we can do is try to make it better, one byte at a time.
- Building box forts for my son
- Database Toolkit (WIP)
- Started as a tool for just doing command line SQL migrations with a curses-like UI, and then started morphing into an all-purpose sql toolkit for doing backups and stuff, which then spun off into a sql parser / linter / flow analyzer that I’m still working on.
- Slack Ops
- My little chatbot friend. Forked and rewriting this in Typescript.
- YouTube Videos
- My YouTube channel, maybe I’ll make more…
TOOLS & LANGUAGES
A big bag of keywords:
VSCode (Electron gets a lot of hate, and yeah, it’s slower than sublime but ahhhh the features.)
Typescript, all around winner.
Favorite Variable Casing
Tabs vs Spaces
Static vs Dynamic Languages
Gradually typed. Ha!
Vim vs Emacs
Emacs until my pinky hurts from smashing ctrl. That’s not to say that I don’t love the idea of composing keyboard shortcuts to make tiny text editing programs, I think I just haven’t invested the time to reach Vim nirvana you guys.
Cherry MX Blue
Senior Application Developer, Exeter Finance
Irving, TX | Mar 2017 – Sept 2018
Senior developer on a small team developing AngularJS web applications leveraging WebApi 2 micro-services and Entity Framework 6.
Dealer Recovery UI
- Implemented SQL full-text search functionality which provided a natural way to find related documents.
- Developed custom vim-like hotkey library to facilitate faster page navigation.
- Created mechanism for alerting a user in real-time when multiple concurrent edits were happening on a page which prevented conflicts.
Credit / Funding UI
Developed concurrent rule-based sql server queue which simplified and improved credit approval and underwriting workflows, and completely eliminated duplicate work via definite assignment.
Lead Engineer / Co-creator, SC Labs
Dallas, TX | 2016-17
Pitched and sucessfully started a small project incubator within the company with the goal of delivering innovative solutions to entrenched business problems. This team operated more or less independently from the larger IT organization, separate networks, no support, no IT ops, etc.
- Managing AWS cloud infrastructure (EC2 instances, dns names, certificates)
- Delivering C-suite presentations
- Performing UX research
- Developing prototypes
Prototyped an Amazon Alexa skill which would allow our customers to perform balance inquiries, make payments, and ask simple questions about their loans via voice commands.
The skill handling code was written in NodeJS and hosted on AWS Lambda, and leveraged a fake OAuth2-enabled backend server which handled the authentication and account inquiries.
Facebook Chat Bot
Similar motivation here, to provide automated customer support via as many channels as possible. Started working on a Wit AI model and integrated facebook chat api for handling customer support inquiries. Extracted text transcripts from recorded customer phone calls, and used Python NLTK to develop clusters of commonly requested information.
Slack Bot Prototype
Developed a bot framework in NodeJS and Sqlite3 to integrate Slack with project time tracking, build server, custom deployment tools, and incident ticketing which allowed team members to streamline mundane tasks while notifying the team of their progress.
iOS Prototype + User Research
Working with a colleague, prototyped a customer-facing iOS app using Apache Cordova and Kendo UI which displays relevant loan statistics on performance and account remediation strategies using an animated D3 chart to provide amortization schedule aproimations. Produced UI mocks in Sketch. Performed UX interviews to determine customer viability using Google Ventures’ Sprint UX Method.
Lead Engineer, SC USA
Dallas, TX | 2016-2017
Responsible for leading an agile team through all the various ceremonies, planning, design, and implementation of our product. Worked closely with the product owner and business stakeholders to ensure that we were always delivering an excellent experience for our users.
Residual / Incentive Management
Leading a team of four other developers, developed a web application utilizing RequireJS, Knockout, and Asp.Net MVC. This application replaced an error-prone manual process involving email and spreadsheets, and improved time to market of critical financial decisions.
- Server-side Pagination, Cell-level editing / validation, Copy / paste, Range drag copy
- > 50% code coverage by JasmineJS test specs + Karma test runner
- All architectural / most UX decisions
Over the course of three years, organized and mentored a group of 8-15 college students, providing coaching, programming lectures, and guided group projects to give them a more fulfilling internship experience.
Solutions Architect, SC USA
Dallas, TX | 2013-2015
This role afforded a lot of flexibility, as well as the ability to work on larger architectural issues, and provided exposure to other technologies.
Principal Code Reviewer
- Responsible for performing code quality checks on samples of developer checkins looking for performance issues and code standard violations.
- Improved the process through powershell automation to scrape SVN logs, open diffs, and automate code review emails.
Handled the SVN, build and deployment infrastructure. Performed regular maintenance, merges, and version upgrades.
Loan Accounting System
Developed a loan accounting system for handling overages and refunds of misapplied checks.
Async Query Support
Over a weekend, developed an unobtrusive in-place upgrade to our data access framework to facilitate async database queries. This was before asynchrony had really become “a thing” in .net. There were larger issues in the data access code (rampant select n+1), but this single improvement cut the effective wall-clock time in half.
SQL Trainee Program
Worked with the Talent Development department to develop a curriculum for teaching basic SQL to a group of non-technical associates. Facilitated classroom instruction, developed skill evaluation tests, and provided individualized coaching.
These trainees had a 90% success rate when applying to other technical roles within the company following the class.
Software Developer I-IV, SC USA
Dallas, TX | 2005-2013
Held all roles from Junior to Senior developer, responsible for all stages of the software development lifecycle, design, code reviews, deployments etc.
Developer Conference / Hackathon
Key organizer and speaker. See the post: Here
- WPF rewrite of legacy WinForms document faxing application.
- Bitmap image redaction features.
- Controls to audit each template usage to ensure compliance.
- Static verification tests to ensure that XPath queries were verifiably correct across 100+ templates.
- An IP telephony-integrated WinForms application for managing customer demographics and processing loans.
- Improved load times of customer applications by 10x
- Solved critical memory leaks in production using WinDbg
- Maintained telephony state-machine, with asynchronous control flow (before it was easy).
Tuned performance critical applications, UI design, optimized stored procedures, developed utilities to aid testing, developed core framework libraries.