Senior Software Developer/Engineer
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 Senior Software Developer/Engineer will also act as part software architect and is responsible for the design and direction of technical infrastructure that support Mandli’s software solutions. They will also advise technical solutions that range in scope from implementation details to new technologies that should be adopted.
Goals and activities of this position:
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.
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
Required knowledge and skills:
- 2+ years of experience developing software professionally in a language such as Swift, Rust, Java, C/C++, or Objective C.
- Knowledge of 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 Apple’s new Swift programming language and Apple’s new M1 processing hardware while developing advanced applications in MacOS and IOS.
Nice-to-have knowledge and skills:
- Experience and interest in Machine Learning.
- Experience or interest in 3D visualization and/or geospatial data.
- Experience or interest in Machine Vision.
- Experience in Swift on IOS, MacOS, WatchOS, and TVOS.
- Must be legally authorized to work in the United States
- Must not require future company sponsorship
- Willing to undergo a pre-employment drug test
This position does not require any set amount of travel. Travel may be required for specific projects on a case by case basis.
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.