Back-end Development

Back-end Development

TL;DR

I do back-end development and develop REST API's, micro-services, and GraphQL API's backed by databases.

I tend to primarily do back-end development in Ruby on Rails, Node.js, Kotlin, Java, and Go lang.

For databases I work with both SQL and no-SQL databases, including PostGres, MySQL, SQLite, MongoDB, and Redis.

I do back-end development in a variety of programming languages and frameworks depending on the task and team.

These days I primarily do back-end development with Ruby on Rails, Node.js, Kotlin, Java and Go lang, but have also developed back-end applications using Rust, PHP, and Python.

I started my career doing back-end development with PHP and MySQL, building out dynamic custom websites backed by content management systems that are easy for non-technical users to maintain with WordPress, Drupal and ProcessWire. Then, I shifted to doing back-end development with Node.js, and Ruby on Rails with PostGres. I also have experience doing back-end development in Java and Kotlin.

When appropriate, I reach for no-SQL databases/datastores like MongoDB, and have worked with Firebase datastores like Firestore and Firebase Realtime Database.

Another great tool I reach for is Redis to improve networking performance via caching, as well as create real-time user experiences with Redis streams and Pub/Sub.

For my personal back-end APIs, and productivity tools that require back-end development, I tend to develop these tools using Ruby on Rails, Node.js with TypeScript, and the Kotlin and Go lang programming languages, and usually tend to prefer SQL databases like PostGres, SQLite, and MySQL.

I often use test-driven development when doing back-end development to help speed up the implementation and increase confidence in the code.

I have done a variety of back-end development work:

  • Building back-end APIs backed by databases with complex relationships, both SQL and no-SQL databases/datastores
  • Real-time back-ends with web sockets, server-sent events (SSE), and gRPC
  • Geolocation search
  • Web hooks
  • Periodic workers and CRON jobs
  • Building GraphQL APIs
  • Building server-side SDKs for various programming languages
  • Implementing third-party APIs to speed up implementations
  • Unit testing business logic, request lifecycles, and database interactions
  • Integration testing deployed services
  • Creating CI/CD pipelines and workflows to test and automatically deploy my back-end services to various Infrastructure-as-a-Service platforms. I've worked with a variety of platforms including but not limited to Circle CI, Github Actions, Gitlab Pipelines, Bitbucket Pipelines, Heroku, Google Cloud Platform (GCP), Amazon Web Services (AWS)
  • Building for serverless in a variety of programming languages including but not limited to JavaScript, TypeScript, Java, and Rust, on a variety of platforms including Vercel, Cloudflare Workers, Google Cloud Platform (GCP), Amazon Web Services (AWS)

I build greenfield projects from scratch to help new companies launch their MVPs, as well as work with established and mature companies, codebases, and larger teams to build new features, fix complicated bugs, optimize the performance of their existing and slow back-ends, and help overcome years of tech debt. 

Sometimes I inherit complex projects that the previous team failed to deliver, which sometimes require me to redesign parts of the system and rewrite key parts of the existing back-ends.

I have worked with many other programming languages and frameworks, not just the ones listed above. Read more about the technologies I've worked with.

I can augment your existing team to provide that back-end development expertise and guidance your team may be lacking, or work alongside your team of experts the way they prefer to work to help them power through a big project. I'm a full stack web and mobile developer based in Canada, and I work with teams locally and internationally. If you'd like to work together, feel free to contact me.