Senior Software Engineer

Reporting Location:  Chicago - 345 North Morgan
Workplace Type:  Hybrid

ABOUT US

tms unites technology, marketing, and sourcing to drive transformational change for the world’s leading brands. With 1,200+ employees across 26 countries, we offer an impressive range of solutions – from inspiration and innovation to category management and delivery.

 

Operating as a creative agency, a strategic consultancy, a sourcing business, and a technology provider, we engage with over 110 million customers every single day for our clients, including McDonald’s, T-Mobile, O2, Starbucks, and adidas.

 

Most importantly, we're a place where you can achieve great things, and be recognized as the best.

 

WHAT MATTERS THE MOST

Breakthrough, business-driving ideas come from extraordinary people with the freedom to be their most authentic selves at work. Authenticity and diversity are critical elements of our business. They can only be realized when we create access and equity for all. We foster a culture of inclusion and belonging and aspire to be ever-evolving.

 

tms is a place where brilliant people are better together. If you want your ideas to be heard and to contribute to a culture of inclusion and authenticity, bring us your voice! Visit us at tmsw.com.

 

WHY WE THINK YOU WILL LOVE THIS ROLE

This is not your average Java role! On this team you will have the opportunity to move beyond typical enterprise technology and dive into a unique codebase using reactive programming and the Vert.x framework. You will be joining a team of dedicated engineers who value their community of knowledge sharing, communication, and growth. We encourage open dialogue between our people and you’ll have the opportunity to Collaborate with your peers, leadership, and product teams on a daily.

 

WHAT YOU WILL BRING TO THE ORGANIZATION

The experience and energy to roll up your sleeves and commit your excellence to a product, your team, and our customers.

 

  • Create maintainable software including comprehensive unit and performance testing using Java21, Vert.x framework, AWS (API Gateway, Cognito, Lambda, Dynamo, S3)
  • Active participation in peer code reviews and all scrum ceremonies
  • Be a trusted mentor for other members of the team, openly participating in knowledge sharing and pair programming exercises where useful
  • Uphold and help evolve coding standards using best-practices and lessons-learned
  • Consistent and effective communication and collaboration with peers and stakeholders
  • Bring energy and commitment to our inclusive and equitable team environment
  • Contribute to recruiting and onboarding efforts as our team grows
  • 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
  • Improving fault tolerance and automatic failovers inside the existing platform
  • Refactoring existing code for maintainability and performance

 

SKILLS AND EXPERIENCE WE WOULD LIKE YOU TO HAVE

  • Experience building systems using Java 21 features with a functional programming style
  • 5+ years of professional development on critical backend systems in a production environment
  • Familiarity with a reactive application framework such as Akka, Vert.x or Spring Reactor
  • Excellent working knowledge of at least one high performance relational database such as MySQL
  • Strong understanding of database schema design and access
  • Strong understanding of API Design

Desired Skills & Experience

  • Understanding of the tradeoffs in the various approaches to designing concurrent software
  • Experience building highly concurrent network services
  • Thorough knowledge of techniques for testing distributed systems
  • Experience with system profiling and performance tuning
  • Understanding of JVM memory management and garbage collection tuning
  • High level of comfort working on Linux from command line
  • Solid understanding of cloud computing strengths and weaknesses
  • Solid understanding of security and encryption practices

Preferred

  • Experience working with a NoSQL database
  • Skill with system scripting languages such as Python or Ruby for tool creation
  • Experience with debugging and profiling tools
  • Experience with load testing high performance distributed systems