Software Developer/Engineer I
Summary of the Position
Under the general direction and supervision of the Development Team Lead the position will design, develop, test, and support software solutions. You will work closely with the software team lead, product specialists, other software engineers to design, develop, and test software solutions.
The software engineer will also assist with software architect and is responsible for the assisting in the design and direction of technical infrastructure that support Mandlis software solutions. They will also advise technical solutions that range in scope from implementation details to new technologies that should be adopted.
Required knowledge and skills:
- Bachelors degree in Computer Science or related field.
- 0-2 years of experience developing software professionally in a language such as Swift, Rust, Java, C/C++, or Objective C, or a desire to learn these languages.
- Knowledge or the desire to learn OOP principles, data structures, multi-threading, common design patterns, and networking.
- We are an Apple software development shop and this position requires someone interested in becoming an expert in exploiting Apples new Swift programming language and Apples new M1 processing hardware while developing advanced applications in MacOS and IOS.
Nice-to-have knowledge and skills:
- Experience and/or interest in Machine Learning.
- Experience and/or interest in 3D visualization and/or geospatial data.
- Experience and/or interest in Machine Vision.
- Experience or interest in Swift on IOS, MacOS, WatchOS, and TVOS.
50% Software Development
- Design, code, test, and support applications in varied software languages and environments such as Swift, C/C++, Rust, and Java
- Work independently to identify and solve problems
- Understand and follow best practices and principles of Object Oriented Programming and design, internal cloud development and deployment
- Work with other software engineers and product specialists to gather and understand complex software requirements
- Machine Learning Automation of the identification of transportation corridor assets such as signs, guardrails, bridges, overpasses, etc.
- Work with geospatial data structures and vectorized image processing in creating digital twins and VR 3D worlds.
30% Software Architecture
- Design the functional and structural architecture of software applications and systems.
- Document the decided upon architecture and maintain the document
- Break down software architecture into smaller manageable units of work with technical supporting documents
5% Quality Improvement
- Identify improvement requirements or opportunities and prioritize
- Learn new technologies and adapt to different technical environments and requirement changes
5% Other duties
- Perform other duties as assigned.
This position requires up to 5% travel throughout the United States and Canada.
Physical and Environmental Demands of the Position
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
While performing the duties of this job, the employee is regularly required to talk, hear, use hands, and reach with hands and arms. Vision requirements include the ability to have clear vision at 20 inches or less to view and effectively utilize general office equipment and computers.
The information contained in this job description is intended to describe the essential job functions required of those assigned to this job. It is not intended to be an exhaustive list of all accountabilities, activities, and knowledge needed to perform the job. Please note that job functions are reviewed periodically and are subject to change based upon company business need.