Turing
Remote Software Engineer Jobs
Job Description
Job Responsibilities
- Understand and follow our standardized software engineering processes to design, develop, document, review, test, analyze, and release code
- Research, design, and develop new software applications
- Identify areas for modification in existing systems and make improvements.
- Design and develop high-volume, low-latency applications for mission-critical systems and deliver high-availability and performance
- Contribute to all phases of the software development lifecycle
- Identify bottlenecks and bugs, and devise solutions to these problems
- Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review
- Collaborate with other team members, such as product managers, UI/UX designers, engineers, system analysts, and marketing managers, to produce the desired software solutions
- Collaborate with technical authors to create specifications and write operational documentation
Minimum requirements
- Bachelor’s/Master’s degree in Computer Science (or equivalent experience)
- 3+ years of software engineering experience (we make rare exceptions if you are highly skilled)
- Proficiency in one or more programming languages, frameworks, or libraries, such as React, Node, Python, JavaScript, React Native, PHP, Vue, Java, Golang, Ruby on Rails, Angular, and Django, among others
- Excellent computational problem-solving skills and expert understanding of designing, coding, debugging, and testing procedures
- Excellent understanding of data structures and algorithms
- Experience in web/mobile application development, Unix/Linux environments, distributed/parallel systems, information retrieval, networking, or systems/security software engineering
- Ability to work full-time (40 hours/week) concurrently with US time zones for a minimum of 4 hours/day
- Fluency in English and the communication skills to effortlessly collaborate with engineering managers at U.S. software companies
Preferred skills
- Deep understanding of large systems, complex code bases, and version control systems such as Git
- Understanding of concepts such as local storage, caching, effective memory usage, code optimization, scaling, throughput, etc
- The capability to function and find effective solutions to problems without hand-holding and micromanagement
- Tackle complex tasks by putting to use your problem-solving skills and analytical abilities