ABOUT ME

My Story

How do people usually figure out what they want to do for a living?

I fell into software development by chance. I'm told I was always fascinated with taking things apart and figuring out how they worked. Luckily, my parents didn't discourage this, and just told me to make sure that when I take something apart I put it back together afterwards. Understanding how computers worked became what captivated me during my formative years.

I grew up with a computer, and around age 12 I got my first taste of programming when I started making computer games. They were not very good, but I had a lot of fun making them. By 15 I had built a flash gaming website and used it as a reference to begin doing freelance flash and php development.

It wasn't until my junior year of high school that I realized I could be building software for a living. One of my friends said, "so you're probably going to go to college for computer science, right?" I can say now — after 18 years of doing it — I couldn't imagine myself doing anything else.

My Resume My wife's favorite picture of me
My wife and me My wife and me

How I Work

Software is built better when everyone knows what is being built.

Every project I work on starts with some form of wireframing. Any project that will take more than a month gets pixel-perfect wireframes. Being able to see exactly what will be built helps everyone understand the requirements and imagine potential problems.

What I design is firmly grounded in reality. As the person who often has to build the specifications I put out, I have first hand knowledge of what will and will not work. I am also not shy about preventing a client or stakeholder from designing something that will confuse or frustrate users.

The next and most important step in my process is bringing in infrastructure to my projects. Infrastructure allows us to minimize the amount of custom code needed to build the specifications, reduces the cost of maintenance, and allows the teams to work faster. In my Salesforce projects, I have built a custom web framework and suite of supporting tools for this purpose. The tools allow end users to build components by selecing the data to display, the UI used to structure the data (i.e. a table view, a gantt chart, Trello-style cards, etc), data formatting plugins, and plugins for enhancing functioninality. If the components built from this tool are close, but don't fit the bill exactly, the components can be exported for customization. In non-Salesforce projects, I have built a suite of scaffolding tools and created a programming language for building out web projects. The programming language allows developers to define the application's data structure in one place and apply common business logic rules in one place. The output of the language then creates API endpoints and frontend configuration files for the project. This allows the developers to focus on building out the interfaces and making small customizations, rather than writing tens of thousands of lines of custom business logic.

Experience

Fall 2021 – Current

Managing Director of Engineering - Salesforce DU

Crowe

After Spark Orange was acquired by Crowe in Fall of 2021, stepped into the role of managing director. Established process for growing and onboarding the engineering team. Mentored developers to step into roles as lead developers and senior managers. Split engineering department into a delivery department and an innovation department. Planned out the organizational changes for a team-based department and a creative project-based department. Hired for, architected for and acted as interim lead developer for one of Salesforce's biggest customers.

Summer 2019 – Fall 2021

Vice President of Engineering

Spark Orange

Lead a team of developers working on engineering problems for the Salesforce platform. Created IP including a custom component framework, a suite of tools used for building components and over two dozen reusable custom components. Wrote a patent on a modular framework for configuration and reuse of web components. Architected and oversaw the creation of three integration products. Created internal tooling for mocking up, documenting and architecting projects. Established an engineering handbook, guidelines for devops best practices that are tailored around client needs, and procedures for interfacing with the engineering department.

Fall 2018 – Summer 2019

Lead Developer

BHIS (Zurich)

Redesigned and planned full overhaul of HR and employee portals. Performed pentesting, fixed security vulnerabilities and worked with testing team to build monitoring scripts. Mapped out entire codebase and identified serious technical debt to create a development plan.

Fall 2017 – Spring 2019

Freelance (Intermittent side project)

Google

Lead design, consulted on architecture and did development for three Salesforce projects. Developed initial mock ups and architecture plans, iterated on those plans after stakeholder meetings, and mentored developers in building the systems.

Fall 2017 – Fall 2018

Sr. Developer

Incapsulate

Planned, designed and developed a mobile app for checking into and billing customers of an insurance company. Assisted in building a 311 web and mobile app for citizens and service workers. Developed and implemented a rapid application development framework on Angular 5 with plugins for Salesforce, Python and Ionic. Created a curriculum for training developers in fullstack development.

Winter 2015 – Fall 2017

Sr. Developer

Red Argyle

Lead planning and development on custom applications built on top of Salesforce. Managed client relationships for projects I had ownership over. Mentored and trained junior developers. Designed UI / UX on the vast majority of new features, components, and applications.

Spring 2015 – Fall 2015

Sr. Developer

EduCanon

Fully redesigned the web application, maintained existing code base, fixed usability issues across the site, and added several features.

Winter 2015

Lead Developer

Strategic Natural Resource Consultants

Full design and development of internal tracking software. Used by staff to check in, schedule trucks and upload itinerary. Has security features to text and email staff and supervisors when a staff member goes missing in the field.

Fall 2013 – Fall 2014

Frontend Developer

Summit Analytical

Introduced a new UI for clinical trial software, planned development for new product, oversaw visual direction of projects, developed prototypes for prospective clients, and helped maintain existing deployments.

Spring 2010 – Summer 2010

Freelance

Triple Horse / Cine Stables

Collaborated with designers to develop three video portfolios in Actionscript 3.0 and built customizations for digiSHOP storefront.

Winter 2008 – Fall 2011

Freelance

Enkindle It

Developed patches and revisions to finalize projects. Built components for RTMP applications and managed data presentation for several sites.

Specializations

Programming Languages
  • Python
  • Typescript
  • Apex
  • Javascript
  • Ruby
  • Go
  • Actionscript 2&3
  • PHP
  • AutoIt
  • Pl/pgSQL
  • C#
  • Forth
Frontend Tools
  • Spark Framework
  • Angular 2-13
  • Material Design
  • Lightning Design System / Aura / LWC
  • Ionic Cordova
  • Angular 1
  • NodeJS
  • React
  • Electron
  • Backbone
  • KnockoutJS
  • JsData
  • Bootstrap
  • Foundation
  • JQuery
  • MaterializeCSS
Technologies
  • Salesforce
  • AsyncIO
  • Prisma
  • Django
  • Rails
  • Docker
  • Google App Engine
  • Ajax
  • REST
  • SOAP
  • Unity
  • UML 2.4
  • reactNg
Databases
  • PostgreSQL
  • CouchDB / PouchDB
  • SQLite
  • GraphQL
  • memcached
  • SQLCipher
  • MySQL
  • MongoDB
  • IndexedDB
Software
  • Adobe XD
  • Visual Studio Code
  • Burp
  • Adobe Design & Web Premium (Photoshop, Illustrator, ...)
  • Sketchbook
  • Notion
  • Lucidchart
  • Enterprise Architect
  • Qt
  • Eclipse
  • JetBrains
  • PostGIS
  • Axure
  • Sketch

WHAT I DO

Software Engineering

Building software is what I've been doing for more than half of my life and it's what I do best. I'm proficient in 12 programming languages, 12 Javascript frameworks, and an uncountably large number of supporting tools.

Design Mockups

Walking through a prototype is the most effective way to flesh out requirements. In demos I give, I also draw on the screen to draw everyone's attention to important details and quickly mock up ideas as they pop up in the meeting.

User Interaction & Experience

The most important aspect of a software's design is the person who will use it. I strongly believe that users should be able to figure out how to use a piece of software without any instruction. To support this belief, I have learned several ways to reveal information to the user as they need it and without being obtrusive.

Web & Graphic Design

Although my graphic design skills are not what I focus on, I have a full studio where I can develop illustrations and animations. I typically use these skills for creating empty state illustrations or artwork accompanying a form wizard.

Architecting and Consulting

My deep understanding of the full process of software creation allows me to create well-informed specifications and plans. Almost all of my career has been working one-on-one with clients both technical and tech-averse. I can use detailed illustrations, diagrams and mockups to help all stakeholders fully understand anything they may have questions about.

Desktop and Mobile

When it makes sense, all of my projects are designed to work well on screens of all sizes. Using Cordova, I have no problem turning a mobile-friendly webpage into a full mobile application. The same goes for Electron and building native desktop applications

CONTACT

ed(a)ed.dev

(585) 666-2991