Job Summary:
Software Development Engineers (SDE-II) are bright, talented, and motivated young minds with strong technical skills, developing software applications and services that make life easier for customers.
The SDE-II is expected to work with an agile team to develop, test, and maintain digital business applications.
As an SDE-II you will get an opportunity to work with industry-leading clients and global teams to solve complex business problems and build your skills on the full stack of application development technologies
You will work in the spirit of agile & a product engineering mindset – driving the sprint outcomes, iteratively & incrementally, following the agile ceremonies
You will help define & prioritize Epics and Stories; Groom the stories functionally & help define the acceptance criteria (Functional & Non-Functional/NFRs) collaborating actively with stakeholders – locally & in client org., shaping end-to-end customer requirements
You will lead the technical grooming, brainstorming & whiteboarding design sessions to define & articulate the solution approaches, to identify tasks & estimates, to design and document sub-system(s) along with interfaces & wireframes
You will have a breadth of concepts, tools & technologies to address NFRs like security, performance, reliability, and maintainability and advocate relevant trade-offs
You will bring in expertise to optimize and make the relevant design decisions (considering trade-offs) at the sub-system level & challenge the status quo
You will be a polyglot with a PE mindset Open & Curious, learning & adopting new languages, platforms & toolkits constantly
You will work with SDE-IIIs, and SDMs to define & understand the overall system architecture, standards & guidelines, helping them with the details of the sub-system specifics
You will mentor & guide, actively evangelize and inculcate the engineering mindset and culture, and share knowledge within Peer groups, SDE-Is, and ASDEs, while providing and receiving constructive feedback
You will drive change with a continuous improvement mindset working on opportunities to shift left and; Proactive about the reduction of tech. debts, eliminating waste, increasing automation, using the right productivity tools, understanding the client business, using dashboards for monitoring & alerts
You will be accountable for sub-system design, development & deployment, and quality with an E2E focus, following the engineering best practices, and standards:
– Solve problems at an Epic level, given the overall business requirements
– Design Sub-systems focused on solving business problems; Ensure Implementation is in-line with design & well integrated with all other dependent sub-systems/systems
– Evangelize adoption of Test First approach & TDD; Apply BDD for Functional & Integration testing; Review Unit & Acceptance Test suites
– Ensure closure of Tech. Debts & adopt practices to prevent Tech. Debts
– Use SCM like GIT; Advocate the relevant branching strategies for code development;
– Use integrated tools like Jira, Confluence, etc., along with other collaboration tools across geo-locations
– Perform Peer Reviews of system/sub-system, module level design & implementation; Work with SDE-IIIs to establish coding standards
– Use Static Analysis & Profiling tools to ensure high Code Quality & Performance
– Practice & Inculcate the DevOps mindset, adopting CI/CD to Deliver, Deploy & Support the implementation from Dev., QA environments all the way to Production
– Document Code (Doc as Code), Functional Features (BDD), Config. As Code, User Manuals to help in the support & training
Experience Guidelines:
Mandatory skills
You have 8+ years of professional work experience building large-scale, large-volume services & distributed apps., taking them through production and post-production life cycles
You create POCs on new technologies, building quick and usable solutions
You use more than one programming language with deep expertise in language features, concepts, and protocols; Ex:
o Memory Management, GC, Templates/Generics, Closures, etc.
o Multi-Threading, Sync/A-Sync.; Blocking/Non-Blocking execution styles
o Lambdas, Streams, Performance Tuning, NIO, HTTP2, Websockets, gRPC, ProtoBuf
You practice Imperative, Functional Programming styles
You work with Cloud Platforms like AWS, GCP, Azure, etc.
You are aware of API gateways and Management Tools
You are aware of GraphQL, Aggregate services, API Composition, SAGA pattern
You are aware and familiar with reactive programming, observables (e.g. Spring Reactor/RX Java), Actor models, Akka, Play, etc.
You are a problem solver – choosing the relevant data structures, and algorithms considering the tools for Time & Space Complexity
You help in relevant technology & tools selection, build/buy decisions to solve the business problems
You are an expert at reviewing & guiding the adoption of SOLID, DRY design principles, design patterns & Clean Code
You are an expert at String Manipulation, Data/Time Arithmetic, Collections & Generics
You practice & guide on handling failures Error Management & Exception handling
You build reliable, scalable & high-performance apps, and services leveraging relevant architectural styles and patterns like Event Sourcing, CEP, Restful APIs, CQRS, etc.
You develop web apps using HTML, CSS, Java script & relevant frameworks (Angular, React, Vue)
You design and build microservices from grounds up applying DDD, Bounded Contexts; Considering multiple perspectives and tradeoffs to meet the NFRs
You define solutions to scale up/scale out/Auto Scale as relevant, with robustness and resilience, applying patterns like circuit breakers & backpropagation
You understand the CAP theorem and work with multiple databases (RDBMS or NoSQL)
You deploy to production, troubleshoot problems & provide live support
You practice and ensure coverage of security aspects & compliance to data, code & application security policies; You write secure code to prevent known vulnerabilities; You understand HTTPS/TLS, Symmetric/Asymmetric Cryptography, Certificates, SAML, Vaults, Key rotation, OAuth, JWT, MFA, DDOS, etc.
You are an expert & advocate the use of the relevant Web Application Frameworks
o Spring or Spring Boot or Micronaut (Java)
o Flask or Django (Python)
o Express or Meteor or Koa (Node)
o Asp.net MVC, WebApi or Nancy (.Net)
You use one or more messaging platforms (e.g. JMS/RabbitMQ/Kafka/Tibco/Camel)
You use Mocks & Stubs & related frameworks (Moq, Mockito, JMock, etc.)
You use logging frameworks like Log4j, NLog etc.
You use build tools like MSBuild, Maven, Gradle, Gulp, etc.
You use containers, virtualization (Docker, Vagrant)
You use proactive monitoring & alerting, dashboards
You use Logging/Monitoring solutions (Splunk, ELK, Grafana)
You practice & ensure infra. as code (cattle over pets) using tools like terraform, cloud-formation, ansible, etc.
You are able to set up a CI/CD pipeline infrastructure & stack from grounds-up (Jenkins, Bamboo)
You are able to articulate the pros, cons of designs & tradeoffs
You use distributed tracing apps/platforms, debug and troubleshoot with relevant tools
You practice distributed, cloud design patterns & architectural styles
You use load-balancers, CDNs, Edge caching, reverse proxies
You use performance testing tools like JMeter, Gatling
You use search solutions like Elastic Search, SOLR, Endeca
You use distributed caching solutions like Redis, Memcache, etc.
You use selenium for UI automation
Optional skills
You are aware of K8S, Container Orchestration, Mesos, Consensus algorithms like PAXOS
You use sidecars, service mesh along with microservices
You use gherkin and cucumber for BDD automation
You use rules engines like Drools, Easy Rules, etc.
Education:
Bachelor’s/Master’s Degree in Computer Engineering, Computer Science, or a related field
Position Overview Deutsche Bank Advert Template Division: Corporate Bank Technology Location: PuneHiring Manager: TBCOverview:The Corporate Bank Technology team have an...
Apply For This JobJob Description Minimum qualifications: Bachelor’s degree in Computer Science, a related technical field, or equivalent practical experience. 5 years of...
Apply For This JobPosition Type : Full time Type Of Hire : Experienced (relevant combo of work and education) Education Desired : Bachelor...
Apply For This JobJob Description JOB DESCRIPTION Engineer – Embedded software JOB DESCRIPTION Our Commitment to Our People At Emerson, we are motivated...
Apply For This JobPosition Type : Full time Type Of Hire : Experienced (relevant combo of work and education) Education Desired : Bachelor...
Apply For This JobAre you interested in working for one of the most exciting teams in Microsoft A team relentlessly focused on customer...
Apply For This Job