Job Role : Software Development Engineer (F# Engineer)
Location : Bangalore
Summary
- Build an API first, cloud SaaS application platform that powers more and more of Rockwell’s products on the cloud.
- Work on a modern, cloud native stack employing cloud first design and architectural patterns.
- Build multi-tenant SaaS services that are reliable, robust and scalable.
- Join a high performing team biased to action
- Competitive compensation and benefits for employee wellness
- Experience learning and innovation working on a new product line in a startup mode
- Multinational work environment
The ideal candidate is passionate about reading existing codebase to understand current architecture, open to learning new technology stack, design & architecture patterns, highly organized, action-oriented with hands on experience in building complex headless service applications with strong expertise in some combination of the following algorithms, optimization, data structures, distributed services and web technology . The candidate has a good understanding of entire application architecture and focused on API, middleware and back-end, and cloud, is willing to dive into new areas.
Minimum Qualification
Bachelor of Science in Computer Science, Computer Engineering or equivalent.5-9 years of industry experience in product-based companies in software development roles developing software in F# OR C# AND .NET / .NET Core platformExposure to the F# language (or any other Functional Programming language like Scala / Haskell etc.) and has written small / medium sized tools or systems with the same.Strong in designing and implementing systems using OO design patternsExperience building scalable and performant back-end services using asynchronous primitives (threads / async etc.)Excellent debugging skills – esp. in a microservices based environment with multiple services across front end and back end.Strong understanding of distributed systems patterns and typical challenges faced around concurrency, race conditions, performance, scalability etc.Should be very comfortable with Git based workflows for code collaboration and reviewsGood understanding of API security and OAuth2 / OIDC protocols is highly desirable.Strong with writing unit test cases for complex headless systems.Comfortable with Docker containers (Docker / docker compose) and related ecosystem for development environment and other development related tasks (inspecting logs, troubleshooting, shelling them into containers)Hands-on / working knowledge of Linux and shell scripting in Bash or equivalentExperience in participating / leading reviews of designs, code, test cases, other documentationExcellent English proficiency and fluency to communicate with people at all levels.Desired Qualifications
Experience with cloud services like AWS or Microsoft Azure.One or more of the following – High availability, performance and scalability, microservices, SOA, modern database architectures, highly automated test systems, rapid prototyping, demonstrable experience of taking concept to product, Web technologies, security, data communication, and contemporary user interface technologiesFamiliarity with dev-ops software development methodsKnowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, testing, and operations.Experience in communicating with users, other technical teams, and management to collect requirements, describe software product features, and technical designsDirect experience collaborating with local and global technical development teamsExperience with front ends in TypeScript, Node.Js and React / AngularSoftware development on both Windows and LinuxResponsibilities
Develop and extend SaaS app platform features and functionality to support an ever-growing suite of applicationsDesign and Develop features with an eye towards long term evolution and maintainability.Develop loosely coupled, testable features that are robust, scalable and performantIdentify, propose and develop tools and utilities as required to optimize workflows andminimize manual interventionWriting efficient, reusable, and testable code used in high-performance applicationsMaintain documentation for architecture and source codeCollaborate with geographically distributed teamsAble to work closely with product managers, team members, and QAContribute to and promote good software engineering practices across the teamTroubleshoot and resolve system problems and customer issues