Granify - Software Systems Engineer

Software Systems Engineer

at Granify

Edmonton, Austin

Did you know? Granify is backed by early investors in Facebook, Twitter, AirBnB, Pinterest, Palantir and Yelp and won Top E-Commerce Solution and Top Digital Startup at the Digital Alberta Awards!

As Granify continues its tremendous growth, we are adding an experienced Software Systems Engineer to our team. 

You'll have a key role in scaling our systems another order of magnitude as we scale up our infrastructure needs. You will join us on solving difficult problems over a large array of domains: from distributed real-time systems to code profiling and relational databases. If seeing large scale systems working makes you excited then we want you to come and help us!

What You'll Work On

You'll get a chance to design, build, and improve on each part of our tech stack. Our tech stack is divided into three primary components:

(1) is our data collection & decision engine. It slurps up millions of requests and terabytes of eCommerce data (traffic, orders, etc) every day. Everything gets put through our AI algorithms in real-time. This thing needs to be rock solid & blazing fast. The data collection piece is primarily a JavaScript snippet that eCommerce owners paste onto their site, much like Google Analytics. The JavaScript collects data about user behaviour and sends it to our Ruby servers for analysis and decisions.

(2) is our data science team, who are responsible for mining data and searching for patterns which are then used to develop algorithms for predicting shoppers behavior. Tools here include Hadoop, Python, Spark, Java, Tableau — really, anything that helps get the job done.

(3) is the customers dashboard (Rails) used to configure and measure the impact of Granify. It's a pretty standard web app — Rails, jQuery, MySQL, etc. — wrapped up in a beautiful design that's focused on simplicity & usability. The Rails app is also what drives our internal dashboards, which give us highly detailed reports about how our algorithms perform for each of our customers.

Skills & Requirements

Your Role

  • Working on a large-scale distributed system
  • Helping orchestrate, monitor and repair our AWS infrastructure
  • Finding and overcoming bottlenecks in the system
  • Evaluating new technologies and their applicability to Granify infrastructure
  • Participating in code reviews
  • Working on solving problems with minimal hand-holding
  • Collaborating with different teams at Granify to design and improve our current systems, be it docker containers, database migrations or deployment reliability.

Who You Are

  • You're experienced in handling Linux/Unix systems and troubleshooting
  • You have practical shell scripting knowledge and solid understanding of at least one higher level programming languages
  • You can learn new languages and technologies quickly (we mainly use Ruby, Ruby on Rails, some Python, and JavaScript)
  • You're comfortable with networking fundamentals such as TCP, UDP, IP
  • You understand storage systems (e.g. relational, distributed, cold storage)
  • You're committed to automate process as much as possible, be it using AWS API, Puppet, Chef or others
  • You can prioritize tasks and work independently

Nice to have

  • Does Machine Learning or Big Data mean anything to you?

Working At Granify

We take care of our stars. Beyond our generous benefits package, some of our unique perks include free catered lunches, bi-weekly massages and prepaid house cleaning services.

You’ll work hard, learn quickly, be compensated well and have plenty of excitement on a daily basis! We’re a close team and have a lot of fun in and out of the office.

The opportunities for growth, development and career progression are limitless as we continue to tackle incredible challenges to drive even more value for our customers in 2016 and beyond.