Senior Software Development Engineer (Senior Server)

About the Job

You are a technologist with oodles of experience with .NET programming, Kubernetes, network / server development and Microservices architecture. You enjoy playing around with Dev Ops technologies like Terraform, Ansible, or Fabric. You are a big fan of software design patterns, enjoy reading the occasional tech journals and sketching out Cloud Architectural diagrams. You are results-driven, detail-oriented and always seek self-improvement.
You also have an interest in gaming, tinkers around with multiplayer games programming and are looking for a friendly game studio filled with like-minded individuals with a team who prizes integrity, transparency and personal growth.
Pocket Pinata Interactive is looking for such an individual to join our game development family as a Senior Software Developer Engineer in beautiful Vancouver, British Columbia.

You will:

  • Manage a team of 2 – 4 engineers in an agile development environment.
  • Manage the technical vision, direction and technology on assigned projects.
  • Collaborate with the other project leads to ensure that the technical vision and direction is aligned with the project goals.
  • Collaborate with artists, producers, designers, and programmers on a daily basis.
  • Actively participate in production-related meetings by offering thoughts and ideas.
  • Design and implement systems according to the studio’s code quality standards.
  • Troubleshoot system issues and formulate solutions that minimizes risks.
  • Effectively communicate technical designs and technical decisions verbally, via diagrams, documents, and code comments.
  • Conduct code reviews and mentor other programmers.
  • Update and expand your technical skills to keep pace with industry developments.
  • Work with client and server software teams to improve performance, scalability, durability and security.
  • Participate in a rotational on-call program to troubleshoot server impacting issues.

You will be a great fit for our team if you have:

  • 8+ years of overall professional software development experience.
  • 5+ years of .NET programming experience.
  • 2+ years of experience building Server applications and APIs in a solving for scale environment.
  • Experience with Unity 3D’s build, Input, GUI and 2D systems.
  • Experience with concepts of data oriented programming and design.
  • Experience with memory and performance optimization concepts for .NET programming.
  • Experience with multithreaded programming and design in .NET
  • Experience working with sockets in .Net and TCP and UDP protocols
  • Experience in designing, building and maintaining modular RESTful APIs and API infrastructure that allows for integration between different services, devices, and third party systems.
  • Knowledgeable on information and application security concepts including public key encryption, remote access, access credentials, cryptography standards and multi-factor authentication.
  • Experience with Linux, particularly Debian and Ubuntu.
  • Experience with database technologies, in particular relational databases like MySQL, MSSQL, and ORMs like EntityFramework.
  • Experience with authoritative servers and networking communications (multiplayer gameplay / stock trading)
  • Experience with typical multi-tier architectures: web services, caching, application servers, load balancers, and storage.
  • Experience with software design, Microservices Architecture and REST Web services
  • Experience with Large-scale distributed systems architecture and system performance tuning
  • Experience with network game-play or high frequency network loads.
  • Experience with building and deploying software on Amazon AWS.
  • Knowledgeable with Service Mesh Architectures (Consul / etc)
  • Experience with IaaC (infrastructure as code) eg. Terraform.
  • Experience with containerization services (Docker / Kubernetes)
  • Knowledgeable on highly-available and scalable cloud and on premise server environments.
  • Experience with Agile Software Development methodologies & DevOps principles.
  • Experience administering and deploying services with CI/CD tools.
  • A detail-oriented mindset with a strong ability to multitask.
  • Knowledgeable in applying Clean Code Principles.
  • A proactive, forward thinking and collaborative with others.

Having the following skills is a plus:

  • Experience shipping games on mobile. (Android, IOS)
  • Experience with regulated software. (Bank compliance)
  • Have worked with game engines like Unity.
  • Core understanding of game development, mechanics and structure.
  • Dev Ops experience, specifically with AWS, VMWare and Hashicorp based utilities.
  • Experience with Build pipelines and services deployment with Jenkins.
  • Familiarity with cloud networking infrastructure setup and management.
  • Knowledge of UML.