Job Description
The Python/C++ programmer converts project specifications and statements of problems and procedures to detailed logical flow charts. The logical flow charts are used by the programmer to develop and write computer programs to store, locate, and retrieve specific documents, data, and information. The software programmer also leads and guides the work of technical staff, serves as liaison between business and technical aspects of projects, plans project stages and assesses business implications for each stage, and monitors progress to assure deadlines, standards, and cost targets are met.
Intern Position Advantages
- • Join a start-up company with leadership in founding creating successful companies;
- • Expand experience in a technical field of emerging and critical industrial importance;
- • Augment skills and experience by working with HMI and software architecture design, SBC and microcontroller coding, as well as other design disciplines including mechanical, electrical, and hardware engineering teams;
- • Join a team with an awesome program for P/T staff members!
Duties
- • Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program;
- • Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct;
- • Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs;
- • Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements;
- • Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer;
- • Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic;
- • Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.
Required and Mandatory Qualifications
- • Bachelor’s degree in a computer science, with 5+ years’ progressive work experience or MS degree in computer science with 1-2 years’ applicable work experience between academic degrees;
- • Strong facility with Office 365 and programming IDEs (Visual Studio Spyder);
- • Ability to work fluently between operating systems (OS-X, Ubuntu and Windows-10);
- • Ability to set up and maintain Yocto environments in Ubuntu with Bitbake;
- • Experience, ability, and desire to lead and instruct junior staff on coding projects in C/C++ and Python3.x
- • Demonstrated ability to design, direct, advise, and review software architecture planning and execution
- • Strong knowledge of unit testing (development, documentation, and execution);
- • Proficiency with software version control tools (e.g., Jira);
- • Completed systems analysis and design class; understands the role of QA in the software development life cycle; designs and executes software unit tests;
Preferred and Additional Qualifications
- • Demonstrable experience with QtCreator and QtDesigner to create GUIs with C++;
- • Experience in design and use of JSON files for system adaptation;
- • Demonstrated interest and training in GUI development and software architecture; has training in agile-programming;
Competencies (in order of importance)
- • Analytical Thinking — Analyzing information and using logic to address work-related issues and problems.
- • Attention to Detail — Being detail-oriented and thorough in completing tasks.
- • Initiative — Being willing to take on responsibilities and challenges.
- • Achievement/Effort — Establishing and maintaining personally challenging achievement goals and exerting effort toward mastering tasks.
- • Cooperation — Having a good-natured, positive attitude.
Reporting and Work Environment
- • The successful candidate reports to the Software Manager. Remote working is expected, as is onsite hands on work, with on-site meetings (or other convenient venues) as required.