Previous Job
Previous
Principal Software Engineer
Ref No.: 17-11734
Location: Chicago, Illinois
Position Type:Direct Placement
Start Date: 12/05/2017
Title: Principal Software Engineer
Location: Downtown Chicago or Remote
Type: Direct Hire


Responsibilities
· Building new modules in a distributed loyalty system
· Maintaining existing modules inside a distributed loyalty system
· Working on and building distribution algorithms for prize awards to end users
· Building and working in systems that do real time metric aggregation and reporting
· Working with and extending existing MySQL and Cassandra schemas
· Improving fault tolerance and automatic failovers inside the existing platform
· Refactoring existing code for maintainability and performance

Desired Skills & Experience
· 8+ years of professional Java development on critical backend systems in a production environment
· 2+ years of working with Cassandra and Redis in a High Performance / High Availability production environment
· 3+ years working with high performance relational databases such as MySQL in a distributed, fault-tolerant environment.
· Solid understanding of cloud computing strengths and weaknesses
· High level of comfort working on Linux from command line to tuning and securing the OS
· Thorough knowledge of techniques for testing distributed micro-services
· Experience building highly concurrent network services and deep understanding of the tradeoffs in the various approaches to designing concurrent software.
· Solid understanding of security and encryption practices

Highly Desired:
· 2+ years of Go development (at least 1 year of non-hobbyist development)

Preferred:
· Experience with TLA+ or similar modeling systems
· Strong understanding of database schema design and access
· Understanding of various instruction set optimizations (IE SIMD and other vectorization techniques)
· Experience working on real time financial applications
· Skill with system scripting languages such as Python or Lua for tool creation
· Experience with debugging and profiling tools gdb/strace/ptrace
· Experience with delve or other stack debuggers for Go
· Experience with load testing high performance distributed systems