Position Overview:
Embark on a journey where code meets innovation! As a Senior Software Engineer, you'll play a pivotal role in shaping the digital landscape of Internet of Things (IoT). Your mission will be to craft, refine, and deploy sophisticated software solutions that flawlessly complement our advanced electronics. Within our dynamic cross-functional team, you'll collaborate with embedded engineers, data experts, and tech trailblazers, together creating transformative IoT experiences. Step into this exciting role and be at the forefront of defining the future of connected technology.
Your responsibilities will encompass the following key areas:
- Software Development: Design, develop, and implement software components across various parts of the application stack, ensuring adherence to best practices and coding standards.
- Responsive Design: Build features and applications with a responsive design to ensure optimal user experience across devices.
- Efficiency & Optimization: Ensure software components are optimized for performance and can handle anticipated user loads.
- Debugging & Troubleshooting: Identify, debug, and resolve software defects and issues, ensuring the software functions as intended.
- Continuous Integration & Deployment: Implement and manage CI/CD pipelines to streamline software deployment and updates.
- Collaboration: Work closely with product managers, analysts, and other stakeholders to refine requirements and deliver software that meets business needs.
- Database Management: Design, develop, and manage efficient and scalable databases, ensuring data consistency, security, and performance.
- Software Testing: Develop and execute tests to validate software functionality, security, and performance, ensuring high-quality releases.
- Technical Documentation: Document software architecture, design decisions, and user guides for effective team collaboration and future reference.
- Professional Growth: Continuously research new technologies, methodologies, and tools in the software engineering space, contributing to team growth and product enhancement.
To be successful in this role, you will need to have:
- Bachelor's degree in Technology or Computer Science
- At least 5 years experience or more in any programming language especially on web based and micro-services.
- Excellent problem-solving skills with a relentless self-drive
- Exceptional attention to details and time management skills
- Willingness to learn new technologies, including mobile app development
- Team player and good collaborator
- Excellent communicator
Must-Have Skills:
Languages:
- Node.js: Deep understanding of Node.js and its ecosystem (npm, frameworks like Express.js, etc.).
- Go (Golang): Proficiency in writing efficient and concurrent applications using Go.
Front-End Development:
- HTML, CSS, JavaScript: Essential web technologies.
- React or Vue.js: Given that Cordova and native apps may use frameworks like React Native or Vue Native, knowledge of their web counterparts is crucial.
AWS Core Services:
Databases:
- SQL: e.g., PostgreSQL, MySQL.
- NoSQL: e.g., DynamoDB, MongoDB.
Version Control: Mastery with Git.
API Development:
- Creation and maintenance of RESTful services.
BONUS SKILLS
Understanding of Cloud architectural patterns
Mobile Development:
- Cordova: Experience in building hybrid mobile applications.
- Flutter: Proficiency in Flutter for app development, including the Dart language.
- Native Development: Familiarity with native app development for both iOS (Swift/Objective-C) and Android (Java/Kotlin).
AWS Advanced Services: Knowledge of specific AWS services like AppSync, Step Functions, and Elastic Beanstalk.
AWS IoT: Experience with AWS's IoT Core and associated services for IoT solutions.
AWS Cognito: Experience in user management, authentication, and authorization with Cognito.
CI/CD:
- Familiarity setting up continuous integration and continuous deployment pipelines.
- Experience with tools like AWS CodeBuild, CodeDeploy, CodePipeline, and Azure DevOps.
Testing: Familiarity with unit testing, integration testing, and e2e testing tools for Node.js and Go.
Containerization: Knowledge of Docker and AWS container solutions like ECS or EKS.
State Management: Experience with Redux, MobX, or other state management tools relevant for mobile app development.
Performance Optimization: Expertise in optimizing both web and mobile application performance.
WebSockets & Real-time Communication: Knowledge of real-time communication tools and protocols.
Microservices: Experience in designing, developing, and deploying microservice architectures.
CloudFormation or Terraform: Proficiency in infrastructure as code.
Accessibility: Understanding of web and mobile accessibility standards and best practices.