Apply for this job now

Senior Software Engineer

Location
Manhattan Beach, California
Job Type
Permanent
Posted
12 Feb 2021
Company Description

Join the thousands of innovators, advocates and forces who are making an impact every day at one of the biggest footwear brands in the world. Whether you love to connect with consumers on the retail floor or want to drive our award-winning powerhouse in new directions, the SKECHERS team is the place to be. Learn more about our brand at skx.com.

Job Description

The Senior Software Engineer will design, build, and deploy complex integration solutions between system, process and service layers. This person will also interpret and translate requirements to design and develop highly resilient and robust microservices in a continuous integration/continuous deployment model using Rust in an Agile methodology.
  • Solid knowledge of Rust 2018 features. You are expected not to use obsolete features, be able to use lifetimes tightly, understand lifetime elision rules, know how to write and implement custom traits, etc.
  • Familiarity with the Rust toolchain. Cargo, crates.io. Familiarity with the self-profiler of Rust's compiler is a bonus.
  • Async programming with Rust. You should be comfortable with writing multi-threaded code and are expected to be familiar with the concepts of tokio, even though working experience with it is not a requirement.
  • Application-level integration. You should be able to integrate your code with a wide variety of other systems, know how to write optimal queries, and, conversely, how to serve data optimally. Have working experience with serde.
  • Unit and property testing. You are expected to ship tested code, finding invariants and testing those with proptest. Being able to write unit tests is required. Working experience of writing integration tests and functionality (black-box) tests is appreciated.
  • Documentation. You are expected to write clean, accurate, and thorough technical documentation for your solutions.
  • Logging and tracing. You must know how to organize logging, tracing, and monitoring. You are expected to be familiar with tracing and slog libraries.
  • Performance engineering. You are expected to be able to write performant code. This implies knowing how to benchmark (e.g. criterion) it and profile (e.g. cargo-profile). Familiarity with valgrind, working experience with perf, and being comfortable around disassembled snippets are a bonus.

Essential Job Results
  • Design and implement the business logic to expose our functionality via APIs using functional programming and serverless computing.
  • Implement performant solutions in cleanly abstracted Rust code.
  • Benchmark implementations and optimize for performance while retaining semantic correctness.
  • Produce technical design specifications and test software changes.
  • Evaluate algorithmic complexity and implementation difficulty of new software.
  • Conduct code reviews with team members.
  • Maintain a high-quality codebase standard.

Additional Responsibilities
  • Other duties as assigned.

Supervisory Responsibilities
  • None

Job Requirements
  • B.S. or higher in Computer Science, related engineering field, or equivalent experience.
  • 3+ years of professional software development
  • Professional experience with Rust, Scala, and Amazon Web Services.
  • Experience developing complex web applications/services and backend APIs
  • Experience with distributed systems and/or container orchestration
  • Experience building highly concurrent systems and resilient distributed systems to achieve high reliability.
  • Experience with test-driven development and the use of testing frameworks
  • Experience with Continuous Integration and Continuous Delivery
  • Knowledge of the fundamental algorithms and data structures (e.g. binary search tree, DFS, hash table, quicksort, etc.)
  • Knowledge of computer networks: HTTP, TCP/IP stack, understanding of poll-based and push-based data synchronization models and their usage in modern service APIs.
  • Knowledge of systems design concepts.
  • Experience with good coding habits (code structuring and decoupling, patch management with git, code review practices).
  • Good level of self-organization.
  • Strong communication skills, specifically giving/receiving constructive feedback in a collaborative setting

Education And Experience
  • B.S. or higher in Computer Science, related engineering field, or equivalent experience.
  • 3+ years of professional software development

Qualifications

To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The skills, abilities and physical demands described are representative of those duties that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodation may be made to enable individuals with disabilities, who are otherwise qualified for the job position, to perform the essential functions.

Additional Information

PHYSICAL DEMANDS

While performing the duties of this job, the employee is regularly required to stand; use hands to finger, handle, or feel, and talk or hear. The employee frequently is required to walk, sit, reach with hands and arms, stoop, and kneel. The employee is occasionally required to sit for long period of times.

All your information will be kept confidential according to EEO guidelines.
Apply for this job now

Details

  • Job Reference: 230504775-2
  • Date Posted: 12 February 2021
  • Recruiter: SKECHERS
  • Location: Manhattan Beach, California
  • Salary: On Application
  • Sector: I.T. & Communications
  • Job Type: Permanent