DeepSource is working on building tools that help developers ship good code. There are over 40 million developers in the world, and all of them write and review code in some form. The Language Engineering team works on the source code analyzers, including both programming languages and configuration-as-code systems. As a member of the Language Engineering team, you will work on building the best, most comprehensive, Ruby analyzer in the world. You will add new rules and Autofixes for finding more issues with code and automatically fixing them. You will be involved with the community to understand the problems with static analysis tools in the Ruby ecosystem.
As a member of the Language Engineering team, you will:
-
Identify bad code practices in Ruby and write new analyzers to detect them.
-
Improve the coverage of automatically fixable issues.
-
Ensure fewer false-positives are reported by the analyzer.
-
Work on the internal tools that support analysis runtimes.
-
Contribute to open-source static analysis tools.
We’re looking for someone who has:
-
Strong foundational knowledge in Computer Science.
-
At least 3 years of professional software development experience in Ruby.
-
Understanding of the nuances of execution of the source code (AST, data flow graphs, etc).
-
Familiarity with Ruby best practices followed in the industry.
-
Native experience with Linux/Unix environment.
-
A focus on delivering high-quality code through strong testing practices.
We offer competitive compensation with meaningful stock options, a generous vacation policy, and a workstation of your choice, to name a few of the perks.

About DeepSource
About
Connect with the team
Similar jobs
Job Title: Software Developer
Location: Remote
About Us: CipherSonic Labs is a cutting-edge technology company specializing in data security and privacy solutions for enterprises processing sensitive data in the cloud. We develop high-performance cryptographic software and hardware acceleration techniques to enable secure computing. Our team is looking for talented individuals to contribute to innovative projects in secure computing and high-performance software development.
Job Description: We are seeking a Software Developer to assist in the development of high-performance software solutions. This role will involve working on low-level programming, optimizing cryptographic algorithms, and improving performance for security-critical applications. The ideal candidate will have a passion for systems programming, algorithm optimization, and working in a high-performance computing environment.
Key Responsibilities:
· Develop and optimize software using C/C++ for high-performance computing applications.
· Work on cryptographic algorithm implementations and performance tuning.
· Optimize memory management, threading, and parallel computing techniques.
· Debug, profile, and test software for performance and reliability.
· Write clean, efficient, and well-documented code.
Qualifications:
· Completed a B.S. or higher degree in Computer Science, Computer Engineering.
· Strong programming skills in C and C++.
· Familiarity with Linux-based development environments.
· Basic understanding of cryptographic algorithms and security principles is a plus.
· Experience with AWS Lambda, EC2, S3, DynamoDB, API Gateway, Containerization (like Docker, Kubernetes) is a plus.
· Knowledge of other programming languages such as Python, Rust, or Go is a plus.
· Strong problem-solving skills and attention to detail.
· Ability to work independently and collaboratively in a fast-paced startup environment.
What You’ll Gain:
· Hands-on experience in systems programming, cryptography, and high-performance computing.
· Opportunities to work on real-world security and privacy-focused projects.
· Mentorship from experienced software engineers and researchers.
· Exposure to cutting-edge cryptographic acceleration and secure computing techniques.
· Potential for future full-time employment based on performance.
Qualifications & Requirements:
- 4+ years of experience in C++ application development.
- Hands-on experience with C++11 or above.
- Strong knowledge of object-oriented programming and software design.
- Deep understanding of STL, multi-threading, socket programming, and data structures.
- Solid grasp of Linux development and debugging techniques.
- Proficient in using GCC, GDB, and Makefile.
- Familiarity with Valgrind and similar analysis tools.
- Experience with version control tools like Git.
- Experience writing and maintaining automated tests.
- Experience in capital markets/trading domain is a plus.
Skills:
- Strong problem-solving and analytical thinking.
- Clear and effective communication.
- Self-driven with the ability to work independently.
- Passionate about high-quality software and strong engineering practices.
- Comfortable working in a fast-paced, collaborative environment.
Responsibilities
- Software Engineering
- Design and develop highly scalable, available, reliable, secure and fault tolerant systems with minimal guidance for a market leader in the logistics industry
- Partner with team members on functional and nonfunctional requirements and spread design philosophy, goals and improve the code quality across the team
- Research new technologies and tools that enable building the next generation of our services
- Provide technology leadership to the team and foster engineering excellence
- Product Delivery
- Partner with product managers to define and execute on the feature roadmap
- Translate business requirements into scalable and extensible design
- Coordinate with various cross functional teams on planning and execution
- Maintaining automated build / test / deployment environments
Qualifications
- Software Engineering
- Deep knowledge of one of the programming language they have experience in
- Proficient in OOP and Design Patterns, experience with functional programming would be a plus
- Data modelling experience in Relational Databases
- Ability to design and implement low latency RESTful services
- Product Delivery
- Ability to scope, review and refine user stories for technical completeness and to alleviate dependency risks.
- Well versed in working with agile methodologies which includes phases such as design, development, code review, testing and release management
- Ability to have worked in a CI/CD environment, with hands on experience with Git or any similar source code management tools
- Product Maintenance
- Experience troubleshooting server performance issues such as memory tuning, GC tuning, resource leaks etc
- Continuously refactor applications to ensure high quality design
and Rails framework along with PostgreSQL database. Someone who is passionate
about coding and loves to work in an ongoing challenging environment. You will be part
of a talented software team. You have to consistently deliver in a fast paced
environment and should be more than willing to build software that people love to use.
Key Responsibilities
The individual role that you’ll play in our team:
● Developing large multi-tenant applications in Rails.
● Understanding Rails best practices and religiously introducing those to our
codebase.
● Knowledge on how to do effective Refactoring.
● Ability to write unit tests and following those practices religiously.
● Working closely with the Product managers and UX team.
● Helping QAs to write automated integration tests.
● Staying up-to-date with current and future Backend technologies and
architectures.
Read the ‘Skills and Experience’ section, it is not the usual yada yada, you’ll be
asked specific questions on these.
Skills and Experience
● Ruby on Rails architecture best practices
● Knowledge on the latest versions on ROR
● Strong OOP knowledge in Ruby.
● Asynchronous Networking in Ruby
● Designing RESTFul HTTP APIs using JSON-Schema or JSON API (jsonapi.org).
● Ability to architect and develop API only backend
● Experience in using ActiveRecordSerializer
● Understanding O-Auth2 or JWT (Json Web Token) authentication mechanisms.
● How to use RSpec
● Rails Security Best Practices
● PostgreSQL and Rails.
● SQL concepts like Joins, Relationships etc.
● Understanding DB Partition strategies.
● Knowledge about refactoring ActiveRecord Models (read this - “7 Patterns to
Refactor Fat ActiveRecord Models”).
● Understanding scaling strategies for a high-traffic Rails applications (2 million+
requests a day).
● Background Job processing using Redis and Sidekiq
● Experience in using Amazon Web Services (AWS) tools.
● Writing automated Deployment Scripts using Capistrano, Ansible etc.
● Sending emails in Rails
● Knowledge in Linux and Git is mandatory
- gathering and analyzing user/business system requirements, Participate in design meetings and consult with clients to refine, test and debug programs to meet business.
- Develop, test and implement new software programs
- Identifying areas for modification in existing programs and subsequently developing these modifications
- Clearly and regularly communicate with management and technical support colleagues
- Design and Applications, Web Sites, Data Communication Processes and User Interfaces
- Writing and implementing efficient code
- Determining operational practicality
- Test, maintain and recommend software improvements to ensure strong functionality and optimization
- Working closely with other developers, UX designers, business and systems analysts
- Analyze user requirements , Make good technical decisions that provide solutions to business challenges
- achieve resolution to outstanding problems or issues
- Communicate effectively and professionally in all forms of communication with internal and external customers
- Possess strong problem solving and decision making skills while using good judgment
Job Qualifications and Requirements
Skills required:
- knowledge of Linux administration and Bash,
- great overall coding experience, knowledge of algorithms, etc,
- experience with Git,
- experience with Docker.
Typical tasks would consist of writing scripts for:
- server automation,
- container deployment,
- user data migration,
- backup management.
Design robust, scalable, and secure features.
Contribute to all phases of the development lifecycle.
Sincere to work and can take ownership.
Requirements
Proven work experience as a Ruby on Rails developer.
Proven work experience in software development.
Demonstrable knowledge of front-end technologies such as JavaScript, HTML, CSS and JQuery.
Experience developing highly interactive applications.
A firm grasp of object-oriented analysis and design.
Passion for writing great, simple, clean, efficient code.
Good knowledge of relational databases.
Working knowledge of NoSQL databases.
Good communication (English) and a problem-solving attitude.
Bachelor degree in Computer Science, Engineering or in an equivalent field.








