c

Software Development at NiceJob

The Software Development team’s role is to build NiceJob’s platform, plan for the future, and provide technical support to our Customer Success team as new issues arise.

Learn about our company culture here.

Perks & Benefits

Why work in Software Development at NiceJob

You won’t be building buttons

Unlike large companies, you'll witness your work make an impact.

Work on the Bleeding Edge

AI, machine learning, microservices, Google Cloud, and more.

Pick your Projects

We’ll give you autonomy & an architecture with minimal dependencies.

Zero Legacy Code

No mainframes. No Cobalt. No nickelback. Only the good stuff.

A Product People Love

Build something people actually like. Just read our reviews.

Learn from Experts (mentorship)

Our small team has a combined +40yrs experience in development.

"I've had the freedom to try new things and take on large projects, given the proper support when I need it"

— Konrad Izykowski, Back-end Engineer

Our Department Philosophy

No items found.

Fun and Creativity

We don’t take ourselves too seriously, we’re not afraid to fail, and you won’t be punished if you do. We believe in taking chances, experimentation, and loving the journey as much as the destination.

Data-Informed Decisions

We always start with a minimal viable product in order to validate our assumptions, before iterating further. We like to move fast and break things, but we’re not reckless.

A Relentless pursuit of simplicity

The easiest solution to any problem is almost always a complicated one. Over time this creates technical debt, and slows innovation to a halt. By staying lean, we will be able to innovate and grow faster than competitors.

An Interesting Challenge

Our platform touches all major touchpoints customers have with a business. This means the logic and work we do, and the data we collect, is not only challenging, but fascinating as well. Your potential to build cool products here is enormous.

Flat team structure

Everyone’s voice is valued and heard at NiceJob. You’ll be given direction when you need it, and freedom when you want it. We hate bureaucracies and hierarchies.

A Launchpad for your ideas

Our microservices event-driven architecture allows you to go quickly from idea, to feature, to production. While we do beta testing, your ideas can go to market far faster at NiceJob than elsewhere, with near infinite scalability.

Our Stack

Google App Engine

Google App Engine

Serverless App Platform
Javascript

Javascript

Programming Language
Node.js

Node.js

Run-time Environment
GitHub

GitHub

Version Control
Google Cloud Big Table

Google Cloud Big Table

NoSQL database
Google Cloud Datastore

Google Cloud Datastore

NoSQL Database
Google Cloud Big Query

Google Cloud Big Query

Data Warehouse
Google Cloud Pub/Sub

Google Cloud Pub/Sub

Messaging Service
Twilio

Twilio

Messaging API
Stripe

Stripe

Payments

"I enjoy working at NiceJob because it's a place where you're trusted, and challenged, and one where you're able to give life to your most ambitious ideas."

— Andrew Lake, Senior Full-Stack Developer

What we're working on & what you'll learn

How our system is designed

The NiceJob software exists to execute three broad objectives:

  1. It provides a means of creating, updating, and deleting data.
  2. It receives, normalizes, and stores data from external sources – e.g. data in the form of reviews, bookings, conversations, etc.
  3. It exposes interfaces to read and interact with normalized data.

The blocks of code responsible for achieving these objectives are referred to herein as services (alternatively: microservices).

Services are built upon a shared infrastructure composed of:

  1. A database, or datastore.
  2. A communication network.
  3. A file storage & separate codebase storage.
  4. A shared toolset.

Access to the infrastructure is made simple through modules, which abstract common actions into simple methods.

Meanwhile, services share common blueprints, lowering the barrier to understanding them, easing the process of modification and design.

Rather than build large services with complex and unexposed inner workings, at NiceJob our services are designed as microservices; they are small, predictable, and individually deployable. They are independent.

Each microservice is designed to execute a single task, or a small group of related tasks. Most services fit comfortably inside one of the above 3 objectives.

What you’ll learn

On the engineering team at NiceJob you will be challenged, learning more than you ever have before. We are operating on the most advanced technology commercially available. This means we are pioneering the next generation of marketing technology. We hope you’ll join us on this exciting journey.

You’ll learn all the best practices and standards for writing clean, concise, and well documented code.

You’ll join an exclusive global group of engineers proficient in the next generation of system architecture, cloud platforms, and API’s.

Your ability to efficiently identify and solve almost any problem through code will improve dramatically.

And much more!

At NiceJob, your professional development will be nurtured, and your software engineering abilities will be pushed to their limits to grow beyond your expectations.

Ready for a nicer job?

Apply Now

Things you should know

How to get a job in Software Engineering at NiceJob

You should have designed or built products in the past that were technically challenging in nature.

You should understand how to translate design and business requirements into engineering requirements.

You should be a pro at modern programming languages and have good team-oriented software development habits.

You should be be a strong quantitative thinker.

You should be able to communicate your ideas clearly, and concisely.

Featured Articles

No items found.