What is the Senior Software Engineer responsible for?
- Designs, develops, and debugs software enhancements and/or new software products used in local, networked, cloud-based or Internet environments. Completes documentation and procedures for installation and maintenance. Maintains a comprehensive understanding of relevant contemporary software stacks. May interact with end users to define system requirements and/or demonstrate working software at any stage of development. Within Application Software and Integration, the roles/areas of focus include the following:
- Development, which is the process of writing, documenting, and maintaining source code, involving the conception of the desired application through to the final manifestation of that application, along with the study of new software concepts and ideas,
- Production Support, which is the responsibility for receiving incidents and requests from end-users, analyzing and responding to the end user with a solution or escalating it to the other IT teams.
What are the ongoing responsibilities of the Senior Software Engineer?
- Senior Software Engineer Provides expertise and experience in application development and production support activities to support business needs. Refactors the codebase of applications and reviews source code of peers. Resolves and identifies root cause for unique production issues. Lead Software Engineer Provides expertise, experience, and technical leadership for application design/development and production support activities to support business needs. Leads the definition of software design, development, and integration, and production support of highly complex issues. Mentors and develops more junior engineers.
What ideal qualifications, skills and experience would help someone to be successful?
- If you consider yourself a generalist software developer who has practical experience with a meaningful and interesting cross-section of the following technologies, practices, concepts, and domains, we want to talk to you:
- Microservice software architectures
- Java, TypeScript, JavaScript, Python, Rust, TEAL, Solidity, Go, Sprig, R, SQL, YAML/XML/JSON
- Azure PaaS services such as Cosmos, Service Bus, Functions, and SQL Server; along with their AWS counterparts, NoSQL data stores, RabbitMQ, AMQP, or Kafka
- Orchestration technologies such as Kubernetes, Zookeeper, Zuul, and Eureka
- Application diagnostics and dashboard tooling such as Zipkin, Splunk, Kibana, Grafana
- ALM and devops tooling such as Helm Charts, and the Atlassian suite
- Practical familiarity with public blockchain protocols and their associated APIs such as Algorand, Tendermint, Stellar, Ethereum, Solana, and/or others
- Mobile application development for large scale public usage
- Front-end frameworks such as React, Flutter, and/or commonly used web components
- Public API management, versioning, and governance
- Network system diagnostics and benchmark tooling such as Wireshark and k6
- Ability to provide technical leadership and coaching to team members on topics of individual expertise, as well as actively brainstorming solutions to complex software development problems
- A willingness and comfort to offer, receive, and consider software designs and ideas with a critical eye for scalability, reliability, and performance considerations, in an open and intellectually honest manner
- Interaction with key partners and internal stakeholders regarding practical timelines, technical issues, and infrastructure integration
- Ability and comfort working with data of widely varying degrees of complexity and scale
- As new technologies emerge and impact existing designs and implementations, demonstrate an ability to learn these technologies quickly, identify and evangelize opportunities for use and if necessary, resolve integration and adaptation challenges
- Work in a complex, dynamic team environment with minimal supervision while possessing good organizational skills
- The realities of mission critical production support and monitoring
- Technical writing and drawing for the documentation of knowledge and coding activities throughout the application development lifecycle
- Ability to design and execute unit, integration, profiling, and e2e testing procedures, experience with contract testing using frameworks such as Pact is a plus
Competencies and qualifications:
- Multiple years of professional software engineering experience on mission critical systems
- Relevant industry experience (active or passive investment management, especially notable if in the front office domain) is preferred but not mandatory
- Familiarity with Agile (Scrum, DAD, Kanban, and the like) work organization methodologies
- Ability to adapt quickly and easily to changes within the business
- Excellent oral and written English communication skills
- Excellent organization, planning, and time management skills
What makes Franklin Templeton Investments unique?
In addition to the dynamic and professional environment at Franklin Templeton, we strive to ensure that our employees have access to a competitive and valuable set of Total Rewards—the mix of both monetary and non-monetary rewards provided to you in recognition for your time, talents, efforts, and results.
Highlights of our benefits include:
- Professional development growth opportunities through in-house classes and over 150 Web-based training courses
- An educational assistance program to financially help employees seeking continuing education
- Medical, Life, and Personal Accident Insurance benefit for employees. Medical insurance also covers employee’s dependents (spouses, children and dependent parents)
- Life Insurance for protection of employees families
- Personal accident insurance for protection of employees and their families
- Personal loan assistance
- Employee Stock Investment Plan (ESIP)
- Onsite fitness center, recreation center, and cafeteria
- Cricket grounds and gymnasium
- Library
- Health Center with doctor availability
- Tuition Assistance Program
- HDFC ATM on the campus