Craig Wallace

I am a full stack programmer with experience in a variety of languages and frameworks. I love working with people, diving into complex problems and codebases, and creating efficient solutions. Having built many applications, I will deliver the enterprise software you envision!

Contact :)

JavaScript

Java

HTML/CSS/Sass

Python

Ruby

C#

Bash

Mumps

May 2020

-

Present

Full Stack Programmer

SS&C Blue Prism Document Automation (formerly Vidado.ai)

Oakland/San Francisco, CA

On the AppEng team, I supported our Machine Learning (ML) team by creating/updating various apis (REST and Graphql), maintaining our redshift analytics database, speeding up queries, fixing bugs, and adding features to our ML pipeline.

Maintenance and Features

  • Stack: Django (python), Postgresql, Celery/Redis, Redshift, Angular, Pytorch
  • Created tools to migrate 10+ million s3 objects
  • 0 to 500k monthly pages digitized in private cloud
  • Moved all app notifications from slack to teams
  • Added "plug and play" feature to integrate third party OCR models
  • Fine tuned document layout models and created a long-text model
  • Initiated development on several undocumented services
  • Redirected image requests via Nginx in new cloud environments
  • Added imports of data via csv/json files
  • Rewired microservices together with token authentication
  • Worked on adding Single Sign On
  • Wrote C++ computer vision library code to visualize feature matches
  • Created custom subscriptions for user webhooks
  • Improved new user signup experience
  • Added limits on file uploads for multiple models
  • Enhanced error handling and feedback
  • Added batchloading to our graphql apis and improved their matching restful endpoints
  • Updated packages for security and maintained legal compliance
  • Deleted unused code
  • Fixed long standing, elusive bugs such as with our sieve orchestration
  • Created tools for professional services to copy and sync data

Analytics

  • Managed the redshift database release migrations and solved ETL issues
  • 100x Speed up reporting APIs
  • 200x Speed up on admin pages
  • 100x reduction in the number of queries for different APIs
  • Investigated downtimes/slowness/errors and provided reports
  • Wrote analytic queries for both the redshift and postgres databases
  • Designed utilization reports
  • Wrote complicated SQL queries for DQAs

Team Oriented

  • Created better PRs: added tests, documented the reproduction steps and other issues, and gave demos and included videos
  • Proactively communicated with product/devops/QA/PS to push projects to completion
  • Took notes during our storytime/spring plannings
  • Refactored scripts to create/update local docker containers, improving reliability

August 2019

-

March 2020

Full Stack Programmer

Stratim

San Francisco, CA

As a member of the vendor services team, I improved our application by adding features, refactoring, and decreasing page load times. I built tools for developers, wrote tests to move us towards continuous integration, and helped create a testing framework.

Testing

  • Wrote frontend tests in Chai/Mocha and Jest/Vue test utils
  • Wrote backend tests in jUnit
  • Helped build an integration testing framework. Initially the tests were in jUnit, and I allowed our apis to be instantiated using Guice dependecy injection combined with Retrofit
  • The integration testing framework evolved to replace our QA team, completely using Selenium and Cucumber to manipulate the browser
  • Used PIT for mutation testing
  • Worked with vuelidate to handle input validations for all forms

Developer tools and dev-ops

  • Helped build Python terminal tools to run and update services, and deploy changes. When deploying changes, it created a Jira filter with the tickets for review (for the QA team), and a manifest report of all of the changes
  • Used sbt and gradle for builds / dependency management, and play and spring frameworks
  • Created Jenkins jobs for testing when code was pushed
  • Used docker and docker swarm to run services
  • Created apis and updated libraries

Application features

  • Added the ability to download multiple attachments, while zipping them appropriately
  • Reduced http calls between services by binding service apis
  • Updated styling using SCSS, and frontend state using Vuex
  • Wrote queries with ebean, criteriaApi, raw SQL, and sql generator services
  • Managed database transactions, used sql views and indexes, denormalized tables, and sql functions
  • Converted billing units (fixed problem where tables were storing miles/km/meters together
  • Created business events with Kafka, and frontend events with the vue event bus

July 2018

-

March 2019

Software Developer

Stellar Power and Workbond (Contracts)

Los Altos, CA

Contracted work with Stellar Power (a solar sales company) and Workbond (a workplace social networking app) to help them achieve their goals.

Stellar Power

  • Built an integrated sales dashboard that allowed customer creation and visualization
  • Created an interactive map tool, where forms and icons were used with a google map to make adding and tracking customers extremely easy
  • Google calendars were linked to create and display appointments automatically, and easily display the day's tasks
  • Customer stats were presented in user friendly graphs
  • The backend for this app was in Rails, and the frontend used React
  • Used AnyCable and a Go server to quickly update the application via a websocket connection and parallel processing

Workbond

  • Updated the login and user creation process. The process was detailed as users went through a variety of steps to enter their information
  • Sped up loading times and improved page transitions
  • Provided guidance and strategy for the leadership
  • The application was built in React-Native, React Navigation, and Redux

September 2017

-

July 2018

Lead Software Developer

Walnut Creek, CA

Sungrade

Built a CRM application to manage, track, and communicate with customers and team members as the solar installation stages were completed. The application was built in rails with postgres db, and deployed on heroku and AWS.

Messaging team members and customers

  • Automated emails were generated when certain steps were complete, and we built the ability to save custom email templates so Sales Consultants could send common emails with a single click
  • Tags were applied automatically when customers had special circumstances, helping the backend team easily communicate with the Sales team
  • Custom instant messaging system was built, so that conversations tied to a customer account were easily accessible. Additionally, we emitted all of the events that happened for the customer, so the full history could be quickly viewed. Files, text, and images were able to be sent.
  • Emails were created using ActionMailer and ActiveJob, and tags and messages were created using ActionCable (websockets) and ActionJob. The messages were broadcast via ActionCable inside of the background jobs. This allowed the app to be fast, light, and immediately responsive to any changes

Mapping routes, User roles, Stage logic, and File Storage

  • We integrated Google maps to locate customers and route the sales and surveyor teams
  • In the admin panel we created, admins were able to update most records, including users and their roles. The roles determined their access to the site.
  • Admins were also able to add custom logic to determine the checks that needed to be done between stages. This was accomplished with some metaprogramming and complicated queries
  • We used Paperclip and amazon S3 for storage, and allowed for file attachments on a variety of records. Our users were in the field with poor reception, so in order to boost performance and ease of use, we integrated plugins to allow chunking and drag & drop file directories.
  • Created a service that recursively handled the date/time/timezones on all records and nested records
  • Built a commissions dashboard for sales reps to view details about their past and upcoming payments, as well as view information about their efficiency

November 2016

-

August 2017

Educational Game Developer

Madison, WI

Reaction - Game Development

As a chemistry and physics teacher, I wanted to engage my students with the material. I created a mobile card game to show different reactions and their effects as they fought monsters, ideally hiding the difficult concepts behind a fun gaming experience. I also created a small game for young kids to learn math as they swiped fish in the ocean

  • Used the Unity Engine, and programming in C#. Created all of the cards and effects in Unity
  • Drew characters in Gimp and Krita, and created the 2D animations in Blender
  • In order to create a flexible library of reactions, I created a tool to easily input the equations that automatically built the gameObject cards for each molecule involved.
  • Also created small HTML5 canvas games in javascript (such as snake and asteroids)

March 2016

-

November 2016

Technical Problem Solver

Madison, WI

Epic Systems

As a Technical Problem Solver, I worked with several large hospital systems to deploy, maintain, and upgrade their Anestesia and Optime applications. I was able to travel to several hospitals to help in the operating rooms, but mostly spent time trouble shooting issues and communicating over video chat.

  • Delivered customized software to their healthcare professionals
  • As the point person at Epic, I directed the projects, lead the meetings, and escalated issues with the Anesthesia and Optime applications.
  • Development project connected several databases together, written in M (MUMPS - language with a built in database for extremely scalable programs), so the Anesthesia team could use information for the Optime context
  • Wrote various reporting scripts for the IT teams, answering pertinent questions from leadership
  • Communicated daily with IT teams in Boston and Illinois

August 2014

-

February 2016

Chemistry / Physics Teacher

Collier County, FL

Immokalee High Chemistry/Physics

Taught lab based chemistry and physics to high schoolers at Immokalee High School. This was a great experience to work with kids, giving them tips and encouragement on how to be successful.

  • Created lesson plans and classroom organizational structures that optimized learning
  • Ran a lab based curriculum, centered around exploration, and continuously monitored the safety and well being of my students
  • Gave personal advice to many students, and wrote letters of recommendation
  • Received a grant for a special guitar building project for physics

August 2010

-

May 2014

BS Major in Biology, Minor in Chemistry

Florida State University

Tallahassee, FL