- 2-5 years of IoT Experience Engineering or Computer Science background
- Working knowledge of NXP and Intel architectures, ARM based processor (64 bit ARM), nice to have
- Working knowledge of GoLang, C++, Rust, or Python languages, 1 of the 4 required
- Working knowledge of IoT HW technologies such as Zigbee, Zwave, LoRa, BLE, WiFi, etc., 1 of the 5 are required
- Must demonstrate Hardware design skills
- Design and build highly complex software solutions using agile/XP/TDD.
- Lead a team in programing well-designed, efficient code independently.
- Collaborate with designers, developers, and product owners to build cloud native software solutions targeting PCF, Azure, AWS, mobile iOS/Android, etc.
- Clearly communicate team wide progress and identify blocking processes/patterns that hold a team back.
- Participate in paired programming and code reviews with mentees to expand the teams collective knowledge and understanding of software engineering.
- Complete independent research to refine best practices and present work to peers. Lead Software Engineers must possess:
- A breadth of experience building software solutions (through a strong mix of independent research/projects and industry expertise).
- 7-9 years previous experience in software development. (Either 9 years of experience specifically in software development or seven years of experience in software development in combination with 2 years alternative experience in a related field). Ideally has a portfolio of work - code samples, etc.
- Significant familiarity and comfort in using IDEs. Knows short-cuts and frequents operations that speeds up development time.
- Deep and solid understanding of APIs. Have been involved in designing/building/implementing APIs.
- Considered an expert of cloud-native software engineering best practices.
- Familiarity with a several frameworks. Resulting code is concise and easy-to-follow.
- Ability to build a custom framework (when necessary).
- Experience with automation and optimization. Looks for ways to create repeatable patterns that increase the efficiency of the team.
- Experience and ability to manage and optimize databases.
- Understanding of functional programming and how to apply functional concepts in any language. Quick to picking up a new language or adopting a more recent version of a language.
- Familiarity and ability to comfortably work with multiple platforms.
- Deep experience turning complex ideas into workable solutions.
- Previous experience collaborating on a cross-functional team.
- Deep understanding of development cycle.
- Ability to debug and avoid future problems by building more robust solutions.
- Ability to look at previous personal or team experience and use this to analyze mistakes/successes, draw conclusions, and design future solutions. Resulting solutions have few bugs and quick remediation times.
- Previous experience translating business needs into valuable solutions for customers.
- Previous experience building solutions with vulnerabilities in mind. Thinks in advance about possible system bottleneck, looks out for vulnerabilities and problems. Remediates these issues as part of design of a new solution.
- Experience acting as a strong instructor for team members.
- Experience building solutions with the larger team in mind. Solutions have the goal of improving software engineering at the team level.
- Experience with teaching and mentoring team members at various levels.
- Previous involvement in the long-term vision of projects and software engineering practices.
- Demonstrated strong soft skills.
- Expertise and ability to rapidly make decisions for the team.
- A mastery of cyber security principles such as authentication, authorization and encryption. Ability to recommend and leverage common security libraries applicable to their language stack and champion secure programming best practices. In depth experience with common attack vectors, such as SQL injection, Denial of Service (DoS), Cross-Site Scripting, etc. and methods to limit exposure. Coaches organization on the prevention and remediation of potential security vulnerabilities.
- In depth experience working with multiple CI/CD stacks. Guides product teams on the setup of CI/CD for new products and coaches organization on DevOps best practices. Leads the evaluation and selection/development of new CI/CD tools and processes.
- Turn complex ideas into manageable pieces of work to complete as part of a product team.
- Coach and mentor software developers.
- Provide technical guidance to leadership so that solutions are built with innovation and sustainability in mind.
- Learn the business drivers of a product and help drive the technical direction of a product to fulfill the desired vision.
- Recommend and implement best practices and innovative solutions to drive digital transformation in the organization.
Meridian Technologies, Inc.
United States of America
(From Everywhere/No Office Location)
Golang Job Details
Hardware Engineer Software Engineer
Charlotte, NC (remote)
12-month W2 contract
Lead Software Engineers are primarily responsible for designing highly complex solutions then building and overseeing the execution of those designs. Individuals with this role are required to: