Software Development Engineer
Tecore’s Software Development Engineers perform a key role in the full-cycle of Tecore’s product development. They contribute and generate ideas, design, implement, and deploy software and solutions AND collaborate on future product offerings. As a Software Development Engineer, you’ll have the opportunity to interface with other engineers and non-technical counterparts to understand our customers problems and help solve them on a regular basis.
Having a solid base of experience in programming languages is key in order to join our team. However, we understand that each Engineer has different preferences and strengths when it comes to languages – what matters most to us is that no matter the language you choose you can implement clean and effective code. Since our products and software are constantly evolving, our engineers need to adapt and evolve with it. We expect all team members to be open to learning new languages and working to quickly advance their skills at any level of their career.
At Tecore, you will work with a variety of peers – some who have different or similar experiences like you, as well as seasoned senior developers in order to meet the goals of the development cycle. Through research, innovation, analysis of customer and marketing inputs and any other method necessary, Tecore’s product roadmap will continually evolve. As such the Development team will aid in the definition and development of those products resulting in equipment that best meets the customer’s needs. This includes assuring that the design is functionally correct, reliable, compliant and robust. Developers will also assist in product documentation and the resolution of problems found in existing designs to ensure consistency and progression.
We offer opportunities for Developers at all levels of their careers with growth and advancement options.
- Write detailed specifications for substantial software functions.
- Complete substantial pieces of design, as assigned.
- May lead others in technical work and be responsible for the results.
- Participate in project scheduling/estimation, and is held responsible for assignments.
- Research and propose realistic solutions to the problems.
- Develop particular areas of technical interest and expertise.
- May be a Lead Engineer on a project, with responsibility for meeting milestones and performance requirements.
- May be teamed with another engineer with joint responsibility for the implementation of a function or set of functions.
- Mentor more junior engineers.
- Demonstrate technical leadership on a project.
- Work with developers to meet customer needs and deadlines.
- Develop a product and software specifications.
- Design, debug, evaluate, and test software to execute the processes defined in the product specifications.
- Debug the entire software product including software related electronic problems.
- Evaluate and select software packages, development stations and other equipment to be used in the software department.
- Provide information about technical and operation problems.
- Thoroughly document ongoing software such that future modification to that software may be efficiently and accurately performed.
- Evaluate and propose solutions to software problems found in new and existing products.
- Add new features to the software in existing products.
- Write and/or supervise the writing of operations manuals and application notes, etc.
- Perform other duties as assigned.
- Education/Background: Computer (Software) Engineering, Computer Science, Mathematics, and Physics
- A strong coder in a variety of languages with demonstrated proficiency, including Java, Python and Go for back-end and Typescript for front-end C and C++ are a plus but not required.
- Open-source technologies such as PostGres, Docker, and Redux
- Industry-standard build tooling, including SVN, Jenkins, and Github
- Linux environment. CentOS/Ubuntu Target build execution.
- Knowledge of data structures, storage systems, cloud infrastructure, front-end frameworks, and other technical tools.
- Technical Knowledge: Position requires knowledge of specific programming languages, platforms, and related technical knowledge as determined by the development team to which this individual is assigned. Knowledge and experience with system integration and test is required.
- Ability to read and internet technical information and data.
- Ability to provide thorough and accurate data analysis.
- Ability to maintain, implement, and repair new and existing software programs.
- Must have an understanding of engineering design techniques, telephony, and cellular systems.
- Must be a significant individual contributor technically.
- Should be a natural self-starter, energetic, imaginative, and willing to work extra hours when necessary.
- Must have the ability to work with minimum direction, to establish priorities, solve problems, and then move on to new challenges.
- Must demonstrate effective verbal and nonverbal communication skills.
- Must be able to evaluate and select software packages, development stations and other equipment to be used in the software development.
- Experience in the telecommunications industry is highly beneficial.
- High proficiency in Microsoft applications (Word, Excel, PowerPoint, etc.)
- Ability to identify problems independently and with a team.
- Ability to multitask on complex projects.
DISCLAIMER: The above statements are intended to describe the general nature and level of work being performed by employees assigned to this classification. They are not intended to be construed as an exhaustive list of all responsibilities, duties and skills required of employees assigned to this position. Therefore employees assigned may be required to perform additional job tasks required by the manager.