Software Engineer (systems)

Meta Meta · Big Tech · Menlo Park, CA

Software Engineer role focused on building and testing operating systems-level software, compilers, and network distribution software for large distributed components. The role involves designing core backend software components, handling large-scale data storage and synchronization, and providing a runtime environment for front-end code. Requires experience in C/C++, Java, or C#, building large-scale infrastructure, and designing scalable distributed systems.

What you'd actually do

  1. Research, design, develop, build and test operating systems-level software, compilers, and network distribution software for large distributed components that run applications.
  2. Build new features and improve existing products.
  3. Work on problems of diverse scope and design core, backend software components.
  4. Handle large scale data storage, synchronization and coordination of large server cluster, and provide a runtime environment for front end code.
  5. Receiving little instruction on day-to-day work, code using primarily C/C++, Java, PHP and Hack.

Skills

Required

  • Bachelor's degree in Computer Science, Computer Software, Computer Engineering, Applied Sciences, Mathematics, Physics, or related field
  • 60 months of Progressive, post-baccalaureate work experience in a computer-related occupation
  • 5 years of experience in coding in C, C++, Java, or C#
  • Experience building large-scale infrastructure applications
  • Experience designing and completing medium to large features independently
  • Experience owning a particular component, feature or system
  • Experience with Python, PHP, or Haskell
  • Experience with Relational databases and SQL
  • Experience with Software development tools: Code editors (VIM or Emacs), and revision control systems (Subversion, GIT, or Perforce)
  • Experience with Linux, UNIX, or other *nix-like OS
  • Experience with Core web technologies: HTML, CSS, or JavaScript
  • Experience building highly-scalable performant solutions
  • Experience designing scalable distributed systems with established partition tolerance, consistency, and availability guarantees
  • Experience with Data processing, programming languages, databases, networking, operating systems, computer graphics, or human-computer interaction

What the JD emphasized

  • 60 months of Progressive, post-baccalaureate work experience
  • 5 years of experience
  • Building large-scale infrastructure applications
  • Designing and completing medium to large features independently without guidance
  • Building highly-scalable performant solutions
  • Design scalable distributed systems