This position is remote based.
 
At GitLab, developers are independent and self-organized individual contributors who work together as a tight team in a remote and agile way.
 
Most backend developers work on all aspects of GitLab, building features, fixing bugs, and generally improving the application.  The Memory team is responsible for optimizing GitLab application performance by managing the memory resources required. The team is also responsible for changes affecting the responsiveness of the application.
 
The Memory team is responsible for optimizing GitLab application performance by managing the memory resources required. The team is also responsible for changes affecting the responsiveness of the application. We will accomplish these goals in two ways. First we will research and resolve reported memory issues to the best of our ability and within our published SLAs. Additionally, will build tooling to proactively inform developers of the static and dynamic memory consumption of their proposed changes.

Responsibilities

  • Identify, troubleshoot, improve and manage memory-intensive aspects of the GitLab application.
  • Explore alternatives outside of the GitLab application for reducing memory consumption through contributions to, e.g., Rails, Ruby, Puma, or other key third-party components.
  • Define and help implement best practices for creating efficient and performant code.
  • Setting standards that changes are not affecting memory utilization and can be validated.
  • Partner with the Quality team to maintain effective performance reporting and monitoring through instrumentation and testing.

Requirements

An ideal engineer candidate -

  • Proficiency in the English language, both written and verbal, sufficient for success in a remote and largely asynchronous work environment
  • Demonstrated capacity to clearly and concisely communicate about complex technical, architectural, and/or organizational problems and propose thorough iterative solutions
  • Experience with performance and optimization problems and a demonstrated ability to both diagnose and prevent these problems
  • Comfort working in a highly agile, intensely iterative software development process
  • Demonstrated ability to onboard and integrate with an organization long-term
  • Positive and solution-oriented mindset
  • Effective communication skills: Regularly achieve consensus with peers, and clear status updates
  • An inclination towards communication, inclusion, and visibility
  • Experience owning a project from concept to production, including proposal, discussion, and execution.
  • Self-motivated and self-managing, with strong organizational skills.
  • Demonstrated ability to work closely with other parts of the organization
  • Experience of performance tuning and/or architecture, Example.
  • Experience of memory leak troubleshooting, Example 1Example 2.

Alternatively, some of the following qualifications, may not necessarily be all -

  1. Must be proficient in one or more of the following in preference order
    1. Ruby.
    2. Go.
    3. Similar OOP languages (e.g. Python, C++, Java, C#, etc.).
  2. AND/OR proficient in one or more of the following
    1. Proven record of building scalable solutions.
    2. Top notch understanding of DB principles and optimization mechanisms.
    3. Familiar with a framework similar to the concepts of Rails (e.g. CakePHP, Ember, Node.js, Angular, J2EE, etc.) - For reference and apply with due diligence.
    4. High-level principles: has knowledge of existing perf testing tools and test automation with some Ruby.
    5. Low-level principles: Understands internals, how memory works, garbage collection. Sorting algorithms.

Nice to have

  • Tuning up performance from architecture/design perspective.
  • Troubleshooting memory leaks (any language).
  • Optimizing full stack implementation, e.g. I/O, caching.
  • Good knowledge of performance testing.
  • Strong problem analysis and solving skills, methodological in problem solving.
  • Must be a proven fast-learner and self-starter.
  • Share our values, and work in accordance with those values
  • Ability to thrive in a fully remote organization
  • Experience in a peak performance organization, preferably a tech startup
  • Experience with the GitLab product as a user or contributor
  • Product company experience
  • Experience working with a remote team
  • Enterprise software company experience
  • Developer platform/tool industry experience
  • Experience working with a global or otherwise multicultural team
  • Computer science education or equivalent experience
  • Passionate about/experienced with open source and developer tools

The compensation calculator for this role can be found here.

Remote-CHAR

Apply for this Job

* Required
  
  


U.S. Equal Opportunity Employment Information (Completion is voluntary)

Individuals seeking employment at GitLab are considered without regards to race, color, religion, national origin, age, sex, marital status, ancestry, physical or mental disability, veteran status, gender identity, or sexual orientation. You are being given the opportunity to provide the following information in order to help us comply with federal and state Equal Employment Opportunity/Affirmative Action record keeping, reporting, and other legal requirements.

Completion of the form is entirely voluntary. Whatever your decision, it will not be considered in the hiring process or thereafter. Any information that you do provide will be recorded and maintained in a confidential file.

Race & Ethnicity Definitions

If you believe you belong to any of the categories of protected veterans listed below, please indicate by making the appropriate selection. As a government contractor subject to Vietnam Era Veterans Readjustment Assistance Act (VEVRAA), we request this information in order to measure the effectiveness of the outreach and positive recruitment efforts we undertake pursuant to VEVRAA. Classification of protected categories is as follows:

A "disabled veteran" is one of the following: a veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be entitled to compensation) under laws administered by the Secretary of Veterans Affairs; or a person who was discharged or released from active duty because of a service-connected disability.

A "recently separated veteran" means any veteran during the three-year period beginning on the date of such veteran's discharge or release from active duty in the U.S. military, ground, naval, or air service.

An "active duty wartime or campaign badge veteran" means a veteran who served on active duty in the U.S. military, ground, naval or air service during a war, or in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.

An "Armed forces service medal veteran" means a veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated in a United States military operation for which an Armed Forces service medal was awarded pursuant to Executive Order 12985.


Form CC-305

OMB Control Number 1250-0005

Expires 1/31/2020

Voluntary Self-Identification of Disability

Why are you being asked to complete this form?

Because we do business with the government, we must reach out to, hire, and provide equal opportunity to qualified people with disabilities1. To help us measure how well we are doing, we are asking you to tell us if you have a disability or if you ever had a disability. Completing this form is voluntary, but we hope that you will choose to fill it out. If you are applying for a job, any answer you give will be kept private and will not be used against you in any way.

If you already work for us, your answer will not be used against you in any way. Because a person may become disabled at any time, we are required to ask all of our employees to update their information every five years. You may voluntarily self-identify as having a disability on this form without fear of any punishment because you did not identify as having a disability earlier.

How do I know if I have a disability?

You are considered to have a disability if you have a physical or mental impairment or medical condition that substantially limits a major life activity, or if you have a history or record of such an impairment or medical condition.

Disabilities include, but are not limited to:

  • Blindness
  • Deafness
  • Cancer
  • Diabetes
  • Epilepsy
  • Autism
  • Cerebral palsy
  • HIV/AIDS
  • Schizophrenia
  • Muscular dystrophy
  • Bipolar disorder
  • Major depression
  • Multiple sclerosis (MS)
  • Missing limbs or partially missing limbs
  • Post-traumatic stress disorder (PTSD)
  • Obsessive compulsive disorder
  • Impairments requiring the use of a wheelchair
  • Intellectual disability (previously called mental retardation)
Reasonable Accommodation Notice

Federal law requires employers to provide reasonable accommodation to qualified individuals with disabilities. Please tell us if you require a reasonable accommodation to apply for a job or to perform your job. Examples of reasonable accommodation include making a change to the application process or work procedures, providing documents in an alternate format, using a sign language interpreter, or using specialized equipment.

1Section 503 of the Rehabilitation Act of 1973, as amended. For more information about this form or the equal employment obligations of Federal contractors, visit the U.S. Department of Labor's Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5 minutes to complete.