Software Engineer
Position Description: Employees in this job function are responsible for designing, developing, testing, and maintaining software applications and products to meet customer needs. They are involved in the entire software development lifecycle including designing software architecture, writing code, testing for quality, and deploying the software to meet customer requirements. Full-stack software engineering roles, who can develop all components of software including user interface and server side also fall within this job function.
Key Responsibilities:
- Engage with customers to deeply understand their use-cases, pain points, and requirements, showcasing empathy and advocating for user-centric software solutions.
- Solve complex problems by designing, developing, and delivering using various tools, languages, frameworks, methodologies (like agile) and technologies.
- Assess the requirements of the software application or service and determine the most suitable technology stack, integration method, deployment strategy, etc.
- Create high-level software architecture designs that outline the overall structure, components, and interfaces of the application.
- Collaborate with cross functional teams like product owners, designers, architects etc.
- Define and implement software test strategy, guidelines, policies and processes in line with organization vision, industry regulations and market best practices.
- Work on continuously improving performance and optimizing the application and implement new technologies to maximize development efficiency.
- Familiar with programming practices, such as test-driven development, continuous integration, and continuous delivery.
- Support security practices to safeguard user data including encryption and anonymization.
- Create user-friendly and interactive interfaces.
- Develop and maintain back-end applications like APIs and microservices using server-side languages.
- Evaluate and incorporate emerging technologies and capabilities to deliver their solutions, and are monitoring and participating in solutions for new stack layers, often involving industry collaboration.
Skills Required: Java, Angular, GCP Cloud Run, Big Query, GitHub, API, SonarQube, PostgreSQL, MySQL
Skills Preferred: Tekton, Agile Software Development, Jenkins, Docker
Experience Required: Engineer 3 Exp: Prac. In 2 coding lang. or adv. Prac. in 1 lang. 6+ years in IT; 4+ years in development
Education Required: Bachelors Degree
Additional Experience Preferred:
- Experience with Infrastructure-as-Code (Terraform) and DevOps practices.
- Familiarity with CI/CD tools like Tekton or Jenkins.
- Experience with Cloud Run, Big Query and GitHub CoPilot.
- Understanding of Agile methodologies.
- Experience with backend frameworks such as Flask, Django, FastAPI.
- Experience with Test-First/Test Driven Development (TDD), MVP, Evolutionary design.
- Basic understanding of Machine Learning.
This role is hybrid, which means the candidate must be located within a drivable distance to Dearborn, MI. Also, the candidate if selected might be asked to come into the office up to 4 or more days per week.
EEO Employer Apex Systems is an equal opportunity employer. We do not discriminate or allow discrimination on the basis of race, color, religion, creed, sex (including pregnancy, childbirth, breastfeeding, or related medical conditions), age, status as a veteran, military service member, or disability, national origin, sex, gender, sexual orientation, gender identity, or any other legally protected characteristic.