Associate Software Development Engineer - Full Stack - Java - Hybrid 4 days - NY
Role details
Job location
Tech stack
Job description
Software Development Engineers (SDE-I) are the bright talented and motivated young minds with strong technical skills, developing software applications and services that make life easier for customers.
The SDE-I is expected to work with an agile team to develop, test, and maintain digital business applications.
As an SDE-I 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 - delivering the sprint outcomes, iteratively & incrementally, following the agile ceremonies
-
You will groom the stories functionally & help define the acceptance criteria (Functional & Non-Functional/NFRs) collaborating actively with stakeholders - locally & in client org., understanding end-to-end customer requirements
-
You will actively contribute in technical grooming, brainstorming & whiteboarding design sessions to define & articulate the solution approaches, to identify tasks & estimates, and to document the module/sub-system design with their interfaces & wireframes
-
You will have breadth of concepts, tools & technologies to address NFRs like security, performance, reliability, maintainability and understand the need for trade-offs
-
You will bring in expertise to optimize and make the relevant design decisions (considering trade-offs) at the module / components level
-
You will be a polyglot with a PE mindset - Open & Curious, learning & adopting new languages, platforms & toolkits constantly
-
You will work with SDE-IIs to understand & practice the overall system architecture, standards & guidelines; While helping them with module & sub-system level details
-
You will help evangelize and inculcate the engineering mindset and culture, share knowledge within Peer groups & ASDEs; Provide and receive constructive feedback
-
You will have a continuous improvement mindset working on opportunities to shift left; Proactive about reduction of tech. debts, eliminating waste, increasing automation, using the right productivity tools, understanding client business, using dashboards for monitoring & alerts
-
You will be accountable for development, unit testing of features with an E2E focus, following the engineering best practices, standards:
- Solve problems at a story level, given the stories and system design
- Design Sub-systems/Modules, Ensure Implementation in-line with design & Integration with all dependent systems/modules; Focused on solving business problems.
- Write Unit & Acceptance Testcases, adopting a Test First approach applying TDD; while using BDD for Functional & Integration testing
- Manage Tech Debts
- Use SCM like GIT; Understand & adopt different branching strategies for code development;
- Use integrated tools like Jira, Confluence etc., along with other collaboration tools across geo locations
- Perform Peer Reviews of sub-system, component level design & implementation, following the established coding standards
- Use Static Analysis & Profiling tools to ensure high Code Quality & Performance
- Practice 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), User Manuals to help in the support & training
Requirements
Your Experience:
-
You have 3+ years of professional work experience building large scale, large volume services & distributed apps., taking them through production and post-production life cycles
-
You use more than one programming language with expertise in at-least one; Ex:
-
Memory Management, GC, Templates/Generics, Closures etc.
-
Multi-Threading, Sync/A-Sync.; Blocking/Non-Blocking execution styles
You practice Imperative, Functional Programming styles
You are aware of a Cloud Platform like AWS, GCP, Azure etc.
You are a problem solver choosing the relevant data structures, algorithms considering the tools for Time & Space Complexity
You apply SOLID, DRY design principles, design patterns & practice Clean Code
You are an expert at String Manipulation, Data/Time Arithmetic, Collections & Generics
You practice & guide on handling failures a Error Management & Exception handling
You build reliable & high-performance apps leveraging Eventing, Streaming, Concurrency, Multi-Threading & Synchronization libraries and frameworks
You develop web apps using HTML, CSS, Java-script & relevant frameworks (Angular, React, Vue)
You design and build microservices from grounds up, considering all NFRs & applying DDD, Bounded Contexts
You use one or more databases (RDBMS or NoSQL) based on the needs, * Spring or Spring Boot or Micronaut (Java)
- Flask or Django (Python)
- Express or Meteor or Koa (Node)
- 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)
You use logging frameworks like Log4j, NLog etc.
You use build tools like MsBuild, Maven, Gradle, Gulp etc.
You understand and use containers, virtualization
You use proactive monitoring & alerting, dashboards
You use Logging/Monitoring solutions (Splunk, ELK, Grafana)
Nice To Have:
You understand infra. as code (cattle over pets)
You understand reactive programming concepts, Actor models & use RX Java / Spring React / Akka / Play etc.
You are able to set-up a CI/CD pipeline infrastructure & stack from grounds-up
You are able to articulate the pro's, con's of designs & tradeoffs
You are aware of distributed tracing, debugging and troubleshooting
You are aware of side-car, service mesh usage along with microservices
You are aware of distributed, cloud design patterns & architectural styles
You are aware of gateways, load-balancers, CDNs, Edge caching
You are aware of gherkin and cucumber for BDD automation
You are aware of performance testing tools like JMeter, Gatling
You are aware of one search solution like ElasticSearch, SOLR, Endeca
You are aware of one distributed caching solution like Redis, MemCache etc.
You are aware of selenium for UI automation
You are aware of a Rules engine like Drools, Easy Rules etc.
Benefits & conditions
The range shown represents a grouping of relevant ranges currently in use at Publicis Sapient. Actual range for this position may differ, depending on location and specific skillset required for the work itself.
- An inclusive workplace that promotes diversity and collaboration.
- Access to ongoing learning and development opportunities.
- Competitive compensation and benefits package.
- Flexibility to support work-life balance.
- Comprehensive health benefits for you and your family.
- Generous paid leave and holidays.
- Wellness program and employee assistance.