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. There’s a massive opportunity to impact how software is built right from where the code is written using automation and intelligence, that not only improves developer productivity but also increases software’s robustness.
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, Scala 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 Scala ecosystem.
As a member of the Language Engineering team, you will:
-
Identify bad code practices in Scala 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 Scala and Java.
-
Understanding of the nuances of execution of the source code (AST, data flow graphs, etc).
-
Familiarity with Scala 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
About Tazapay
Tazapay is a Singapore-based B2B payments startup, backed by Sequoia Capital, Saison Capital, and RTP Global, enabling small and medium-sized businesses (SMBs) to conduct secure cross-border commerce. Founded by experts in payments, e-commerce, and cross-border trade, Tazapay is focused on driving digital transformation in the B2B space, addressing post-pandemic shifts and new opportunities with a culture of openness, innovation, and growth.
What Awaits You?
Joining us now means being part of an exceptional team on an exciting journey just as we’re preparing for significant growth. This is a unique opportunity to help build something from the ground up, with the satisfaction of seeing your work impact thousands of users. You’ll experience growth across all areas – Sales, Software Development, Marketing, HR, Accounting, and more – and share in a culture of openness, innovation, and memorable experiences.
Are you ready for the ride?
Explore what you could accomplish with us!
Backend Engineer Role
Responsibilities (not exhaustive)
- Design, write, and deliver highly scalable, reliable, and fault-tolerant systems with minimal guidance.
- Participate in code and design reviews to maintain high development standards.
- Collaborate with product management to define and execute the feature roadmap.
- Translate business requirements into scalable and extensible design.
- Proactively manage stakeholder communication regarding deliverables, risks, changes, and dependencies.
- Coordinate with cross-functional teams (Mobile, DevOps, Data, UX, QA, etc.) on planning and execution.
- Continuously improve code quality, product performance, and customer satisfaction.
- Willingness to learn new languages and methodologies.
- Display a strong sense of ownership.
- Engage in service capacity and demand planning, software performance analysis, tuning, and optimization.
The Ideal Candidate
Education
- Degree in Computer Science or equivalent.
- 5+ years of experience in commercial software development within large distributed systems.
Experience
- Hands-on experience in designing, developing, testing, and deploying applications on one or more of the following: Golang, Ruby, Python, .Net Core, or Java for large-scale applications.
- In-depth knowledge of Linux as a production environment.
- Strong understanding of data structures, algorithms, distributed systems, and asynchronous architectures.
- Expert in at least one language: Golang, Python, Ruby, Java, C, C++.
- Proficient in OOP, including design patterns.
- Ability to design and implement low-latency RESTful services.
- Proven experience in building backend services for high-volume traffic.
- Strong understanding of system performance and scaling.
- Excellent communication, analytical skills, and design abilities.
- Experience with data modeling in both relational and NoSQL databases.
- Able to continuously refactor applications for high-quality design.
- Skilled in planning, prioritizing, estimating, and executing releases predictably.
- Able to scope, review, and refine user stories for technical completeness and dependency mitigation.
- Eager to learn new technologies and tackle complex challenges.
- “Can-do” attitude.
Nice to Have
- Familiarity with the Golang ecosystem.
- Experience running web services at scale; understanding of systems internals and networking.
- Knowledge of HTTP/HTTPS communication protocols.
Abilities and Traits
- Strong attention to product details and ability to meet deadlines.
- High focus and precision for extended periods of repetitive tasks.
- Proactive problem-solver with strong anticipation skills.
- Team-oriented and able to assist others in resolving issues.
- Quality-oriented and structured in approach.
- Exceptional planning, organization, and prioritization skills.
- Demonstrated logical and analytical thinking abilities.
If you’re excited by this role, we’d love to see how you can make an impact on our journey.
Key Responsibilities
● Evolving the architecture for performance and scalability.
● Design, develop and own components of a highly scalable, distributed web
services platform.
● End to end delivery of new features.
● Lead a team of software engineers and help create an environment of ownership
and learning.
● Constantly strive to improve software development process and team
productivity.
Technical Skills
● 6-10 years of relevant software development experience.
● Experience in developing scalable, fault-tolerant, distributed backend services.
● Exceptional proficiency in any 1 of the language - Java, RoR or Golang.
● Good experiences with databases and Schema design and strong RDMS
knowledge.
● Strong knowledge of Performance optimization and caching techniques.
● Fairly good understanding of AWS (or any equivalent) and a relational database.
● Experience with prevalent design patterns and advanced system designing.
Benefits
● This is an opportunity to work on a fairly complex set of systems and impro
Providing technical expertise for every phase of the project lifecycle—from concept
development to solution design, implementation, optimization and support. Interacts
with a set of clients (client senior developers and architects) to create technology
specifications from business requirements for one of the modules within the project.
Prepares the technical design of the more complex technology components within the
module (one or more of client/web presentation tier, server tier, data access and data
model, integration component, package function customization).
Assists the architect in articulating the pros and cons of using a certain technology stack
or component or design pattern versus another to the clients and project team and
drives selection of technologies, designs to come up with the optimal architecture.
Drives the performance tuning, re-design and re-factoring for a module.
Contributes to designing and implementing the build, releases process as well as system
configuration and deployment characteristics of the application.
Required Tech Stack
2+ years of strong development skills in Java with JDK 1. 8 & above version &
Microservices with Spring boot/ Spring.
Should have strong acumen in Data Structures, Algorithms, problem-solving and Logical/
Analytical skills.
Thorough understanding of OOPS concepts, Design principles and implementation of
different type of Design patterns.
Sound understanding of concepts like Exceptional handling, Serialization/Deserialization
and Immutability concepts, etc.
Good fundamental knowledge in Enums, Collections, Annotations, Generics, Auto
boxing, etc. Experience with Multithreading, Concurrent Package and Concurrent APIs Basic
understanding of Java Memory Management (JMM) including garbage collections
concepts.
Experience in RDBMS or NO SQL databases and writing SQL queries (Joins, group by,
aggregate functions, etc.)
Experience with at-least one NoSQL (Any of Cassandra/Couch base/Hadoop), Hands-on
experience with JMS
Hands-on experience in creating RESTful webservices and consuming webservices
Hands-on experience with Spring.
Hands-on experience with any of the logging frameworks (SLF4J/LogBack/Log4j)
Experience of writing Junit test cases using Mockito / Powermock frameworks.
Should have practical experience with Maven/Gradle and knowledge of version control
systems like Git/SVN etc.
Good communication skills and ability to work with global teams to define and deliver
on projects.
Sound understanding/experience in software development process, test-driven
development
- You solve problems at their root, stepping back to understand the broader context.
- You develop pragmatic solutions and build flexible systems that balance engineering complexity and timely delivery, creating business impact.
- You understand a broad range of data structures and algorithms and apply them to deliver high-performing applications.
- You recognize and use design patterns to solve business problems.
- You understand how operating systems work, perform and scale.
- You continually align your work with Amazon’s business objectives and seek to deliver business value.
- You collaborate to ensure that decisions are based on the merit of the proposal, not the proposer.
- You proactively support knowledge-sharing and build good working relationships within the team and with others in Amazon.
- You communicate clearly with your team and with other groups and listen effectively.
• Proficient in software development from inception to production releases using modern
programming languages ( Preferably Java, NodeJS, and Scala)
• Hands-on experience with cloud infrastructure, solution architecture on AWS or Azure
• Prior experience working as a Full-stack engineer building cloud-native, SaaS products.
• Expertise in programming and designing circuit breakers, the localized impact of failures,
service mesh, event sourcing, distributed data transactions, and eventual consistency.
• Proficient in designing and developing SAAS on Microservices architecture
• Proficient in building Fault tolerance, High availability, and Autoscaling for microservices
• Proficient in Data Modelling for distributed computing
• Deeps Hands-on experience on Microservices in Spring Boot and in large scale projects in
Spring Framework
• Fluency in cloud-native solution architecture; designing HA and Fault-Tolerant deployment
topologies for API Gateway, Kafka, and Spark clusters on cloud.
• Fluency in AWS, Azure, Serverless Functions in AWS or Azure and in Docker and Kubernetes
• Avid practitioner and coach of Test-Driven Development
• Deep understanding of modeling real-world scheduling and process problems into algorithms
running on memory and compute efficient data structures.
• We value Polyglot engineers a lot, hence experience in programming in more than one
language is a must, preferably one of Groovy, Scala, Python or Kotlin
• Excellent communication skills and collaboration temperament
• Articulation of technical matters to Business Stakeholders, and the ability to translate business
concerns into technical specifications.
• Proficiency in working with cross-functional team on refining initiatives to objective features.
Good To Have:
• Hands-on experience with Continuous Delivery and DevOps automation
• SRE and Observability implementation experience
• Refactoring Legacy products to microservices
We are looking for software development engineers to design and develop the backend systems for our consumer and partner-facing applications. You will work on massively scalable distributed systems and solve complex engineering problems
Reporting structure - Engineering Manager-Java
- Computer Science fundamentals in object-oriented design, design patterns, data structures, algorithm design,
- Proficiency with Java, Rabbit MQ, Kafka.
- Proficiency in Mongo DB, Cassandra, Redis.
- 3+ years of experience contributing to architecture and design in a product setup Information Technology
- Understand customer needs by collaborating with Product Managers and Business stakeholders
- Development, delivery and support of large-scale, distributed software applications and tools
- Use software engineering best practices to ensure a high standard of quality and maintainability for all deliverables
- Work in an agile, start-up-like development environment, where you are always working on the most important stuff.
- Take initiatives and come up with new ideas to invent solutions for customer