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
Similar jobs
Requirements
- 2+ years of experience in the Development of JAVA technology.
- Strong Java Basics
- Linux
- SpringBoot or Spring MVC
- Hands-on experience in Relational Databases (SQL query or Hibernate) + Mongo (JSON parsing)
- Proficient in REST API development
- Messaging Queue (RabitMQ or Kafka)
- Microservices
- Java 8
- Any Caching Mechanism
- Good at problem-solving
Good to Have Skills:
- 2+ years of experience in using Java/J2EE tech stacks
- Good understanding of data structures and algorithms.
- Excellent analytical and problem-solving skills.
- Ability to work in a fast-paced internet start-up environment.
- Experience in technical mentorship/coaching is highly desirable.
- Understanding AI/ML algorithms is a plus.
Software Architect
Bangalore, India / Engineering/ Full-time
Job Overview:
As a Software Architect, you will play a crucial role in designing, developing, and maintaining robust and scalable backend solutions for our software applications. You will be responsible for making strategic technical decisions, and collaborating with cross-functional teams to ensure the successful delivery of high-quality software products with scalable backend infrastructure.
Responsibilities:
- System Architecture:
- Design and architect scalable, efficient, and maintainable backend systems.
- Collaborate with cross-functional teams to understand business requirements and translate them into technical specifications.
- Technical Leadership:
- Provide technical leadership and guidance to the development team, ensuring best practices and coding standards are followed.
- Mentor and coach team members, fostering a culture of continuous learning and improvement.
- Backend Development:
- Lead the development of backend components, modules, and features primarily on Ruby on Rails tech stack and also be open to contribute in other tech stacks based on Java/Kotlin and Python.
- Implement and maintain APIs, data models, and database structures to support application functionality.
- Performance Optimization:
- Identify and address performance bottlenecks, ensuring optimal system response times and resource utilization.
- Implement caching strategies and other performance optimization techniques.
- Collaboration:
- Collaborate with frontend developers, product managers, and other stakeholders to integrate frontend and backend components seamlessly.
- Participate in code reviews to ensure code quality, adherence to standards, and knowledge sharing within the team.
- Security and Compliance:
- Implement and enforce security best practices to safeguard sensitive data.
- Stay updated on industry trends and emerging technologies to ensure compliance and security standards are met.
- Documentation:
- Create and maintain comprehensive technical documentation for the backend architecture, APIs, and development processes.
- Continuous Improvement:
- Proactively identify opportunities for process improvement and contribute to the evolution of development methodologies and practices.
Qualifications:
- Overall 10+ years of experience, with 2+ years as a Software Architect with a focus on backend development using Ruby on Rails.
- In-depth knowledge of Ruby on Rails framework, database design, and API development.
- Strong understanding of software architecture principles, design patterns, and best practices.
- Experience with performance optimization, scalability, and security considerations.
- Excellent communication and collaboration skills.
- Leadership experience with a demonstrated ability to mentor and guide development teams.
- Bachelor’s degree in Computer Science, Engineering, or a related field (or equivalent work experience).
Bonus points:
- Familiarity with front-end technologies and frameworks(ReactJs).
- Experience with other programming languages.(Kotlin/Python)
- Experience with cloud platforms and microservices architecture.
- Knowledge of DevOps practices and tools.(AWS, Kubernetes, )
Join us in revolutionizing the way software solutions are developed, and contribute to building cutting-edge applications that make a positive impact on our users and the industry.
- Responsibilities and Accountabilities:
- Designing/developing web & mobile applications in the Legal, Tax and Compliance space.
- Design, build, and maintain efficient, reusable, and reliable Ruby code
- Integration of data storage solutions {may include databases, key-value stores, blob stores, etc.}
- Integration of user-facing elements developed by front-end developers with server side logic.
- Identify bottlenecks and bugs, and devise solutions to these problems.
- Help maintain code quality, organization and automatization.
- Nature of Experience: Good working knowledge in Ruby on Rails in a product based role.
- Length of Experience: 4 – 8 years .
- Skill Set & Personality Traits required:
- Design, build, test, maintain reusable Ruby code.
- Have sound knowledge in one or many databases like MYSQL, PostgreSQL.
- Knowledge in ActiveRecord.
- Knowledge in version control systems like Git.
- Solid understanding of OOPS, Data structures and Algorithms.
- A desire to write exceptional code
- Experience developing APIs for high volume mobile applications
- Understanding basic design patterns behind scalable applications.
- Experience in maintaining production servers.
- Basic understanding of HTML, CSS, SCSS and asset pipeline.
A quick overview of our stack:
Python, MySQL, NoSQL, Memcache, Bigquery, Microservices.
Responsibilities
As a backend developer, you would be responsible for building, scaling, and maintaining the multiple modules, encompassing - external integration, API management, building business and operation processes, designing and defining microservices, designing multi-input/output state machines
You will be given complete ownership of modules and processes. You will work with business, product, and UI teams to work on new features and products. You are expected to drive the services/modules to maximize its business impact and customer delight.
- Acumen for good, secure API design
- Write clear and effective API documentation
- Write/review test cases for code and process coverage
- Stickler for good, clear, secure coding, both oneself and team members by code review
- Reviewing designs, code, and processes from a system security standpoint
- Defining and building micro-services
- Building systems with positive business impact Tracking module health, usage, behavior tracking, measure and improve code and processes
Requirement
You will be working on multiple projects/modules. You are expected to write code to integrate - external providers, internal business and process tools, customer-facing applications, and partner-facing applications.
- At least 1-3 years of working experience in web services, preferably in Python
- Should have built and released APIs in production
- Experience working with RDBMS and NoSQL databases
- Designing thoughtful, extensible data models
- Knowledge of identifying, defining and building micro-services
- Working knowledge of GCS, AWS, Azure or any other cloud provider
- Aggressive problem diagnosis and creative problem-solving skills
- Good communication skills - written and spoken
Good to have
- Focus on constant improvement of developer experience
- Building or Working knowledge of CI/CD
- Basic know-how of front-end technologies like AngularJS/React
- Have worked on additional languages like Javascript/Ruby
Job Location - Bangalore
Opportunity in our Product Team?
Our system has over 4 products & 12 modules designed by product managers working with banking & finance experts. The company’s growth from here is based on a multi-product strategy. The way we’re scaling our product team is in-line with the company’s strategy.
Your customers are the CFOs & Finance Teams in mid to large scale enterprise businesses and you will build these products to solve the problems faced by them.
You’ll become familiar with all parts of our stack from end to end. You’ll design and implement features to be scalable and resilient by working with both our infrastructure engineers and our product engineers. You’ll be a driver for positive change to Finly’s engineering culture, processes and technology.
Here are some examples of the projects in the different products:
Payment automation by building a deep integration with multiple banking systems:
- Governance frameworks with policy controlled workflows.
- Core finance document management system.
- Automating reconciliation of transactions across business
- Collaboration tools among finance, vendors & employees.
- Continuous ETL for integrating with CRMs like Salesforce & Accounting Systems like SAP.
WITHIN 1 MONTH, YOU'LL
- Complete Finly’s new-hire training week, and learn Accounts Payable
- Processes & the various partners we work with to make Finly happen.
- Investigate, solve and release a bug fix to production. In order to do this you will ramp up on Finly’s engineering stack by pair-programming with your teammates and attending engineering training sessions designed and presented by the team.
- Meet with cross-functional peers around the company to learn how the product functions.
- Complete your engineering starter project and deploy your first changes to production.
WITHIN 3 MONTHS, YOU'LL
- Individually contribute reliably ship full features to customers.
- Own major product areas and take features from mock to deploy.
- Estimate technical scope and time to complete major features and initiatives.
WITHIN 6 MONTHS, YOU'LL
- Move to new product vertical & initiative and start designing and architecting scalable systems as per the requirements discussed with Product Manager.
- Have made a visible impact on the product for all the users of Finly.
- Work closely with your team to remove roadblocks, educate on best practices and improve how we work.
- Be comfortable navigating most of our stack and infrastructure
- Be responsible for the planning, scoping, design, and implementation of new features
- Participate in interviewing and hiring, as a way to influence team growth and how our values inform our culture
WITHIN 12 MONTHS, YOU'LL
- Individually contribute and lead teams to reliably ship full features to customers.
- Estimate technical scope and time to complete major products and initiatives.
- Define tools and standards for product engineering to measure performance impact of releases
- Help grow other engineers technically by mentoring, pairing and developing other learning opportunities
- Collaborate with engineering and product leadership to define priorities and set delivery goals.
So in this role, you will work with the respective team’s product manager and other engineers in that team. You may work on the front-end or backend or both based on the requirement of the project.
Join us & have the authority and responsibility to make things happen!
• Integration of data storage solutions may include databases, key-value stores, blob
stores, etc.
• Integration of user-facing elements developed by front-end developers with server side
logic.
• Identify bottlenecks and bugs, and devise solutions to these problems.
• Help maintain code quality, organization and automatization.