Software Engineer
Houston, TX - USA
Job Summary
This role is for a highly experienced Software Engineer to design develop and work on the implementation and testing of sophisticated software products and technology platforms. The ideal candidate combines strong hands-on software engineering capabilities with experience in software methodology software architecture cloud computing data design generative AI enterprise integrations and enterprise application development.
This position is intended for an experienced hands-on software engineer who can operate at the design develop test deploy and support levels across web native and mobile applications. The successful candidate will be comfortable writing and reviewing custom production software designing systems supporting technical design discussions breaking-down complex requirements into engineering tasks estimating development effort identifying technical risks and working directly with other engineers product management project management UI designers quality assurance business teams and IT resources to deliver high-quality software solutions.
The role will involve development of advanced technology solutions involving customer facing web and mobile products big data search graph technologies enterprise data front-end back-end content publishing benchmarking tools and cloud-based architectures for both internal and external solutions and products. Work will include browser-based (C# dot-net Angular PHP Python CSS HTML DB design APIs) native applications and mobile application architectures (e.g. flutter).
The position requires excellent written and verbal communication and the ability to collaborate daily with geographically distributed engineering teams including teams in the United States and India.
Key Responsibilities
Software Engineering
Accurately interpret requirements design develop test debug deploy and maintain enterprise software applications and technology platforms.
Write high-quality maintainable scalable secure and well-documented production code. Experience using generative AI tools to accelerate quality software design code and test solutions. Very strong math skills are important.
Participate throughout the complete software engineering lifecycle. Ability to quickly analyze and respond to hosting and hot-fix deployments.
Analyze complex technical problems and develop practical scalable solutions.
Review existing software and recommend improvements to architecture performance maintainability security and reliability. Analyze advancements in market technologies and design patterns to recommend and incorporate into planned solutions.
Conduct and participate in requirements design code test plan and deployment plan reviews.
Establish and promote software engineering best practices coding standards testing practices safe incorporation of generative AI engineering results and development processes.
Troubleshoot complex applications infrastructure integration data and performance problems. Extensive skills in debugging best practices.
Develop reusable software components services APIs and frameworks where appropriate that align to design.
Experience supporting multiple codebases (products) in parallel as needed.
Strong technical functional and support documentation writing skills and experience.
Able to mentor other software engineers and associates at varying levels of experience.
Software Design & Engineering
Hands on software coding unit test creation testing and debugging.
Establish update train others and write code based on coding standards.
Design software for new products and major enhancements to existing systems. Support technical design discussions with software engineering teams.
Translate business and functional requirements into technical designs and implementation approaches.
Create technical design diagrams UML artifacts system diagrams data-flow diagrams integration diagrams database designs and other technical documentation.
Evaluate design alternatives and make recommendations based on scalability performance security maintainability cost and implementation complexity.
Design distributed systems and cloud-based applications.
Define application boundaries service interfaces APIs data flows dependencies and integration patterns. Develop software code documented code and unit tests. Define and use project file structure standards including security related assets.
Identify architectural constraints and technical dependencies early in the development lifecycle.
Help establish technical standards and architectural patterns across products.
Ensure architectural decisions are appropriately documented and communicated to the engineering team.
Familiar with and able to effectively use source code control tools and software release standards.
Application Security & Infrastructure Security
Incorporate security considerations into application and system architecture.
Develop secure software and follow secure coding practices.
Understand authentication authorization identity management access control and data protection.
Work with Microsoft Entra ID Azure DevOps and cloud identity architectures.
Identify security vulnerabilities and architectural security risks.
Collaborate with security and infrastructure teams on security requirements and remediation.
Consider security privacy and data protection requirements when designing
AI and data systems.
Ensure security is addressed throughout the software development lifecycle.
Scalability Performance & Reliability
Design systems capable of scaling appropriately as users transactions data volumes and workloads increase.
Analyze application and infrastructure performance.
Identify system bottlenecks and develop performance optimization approach.
Design for appropriate availability reliability fault tolerance and recoverability.
Evaluate architectural tradeoffs between performance scalability cost complexity and maintainability. Participate in performance testing functional testing and security testing.
Engineering Task Definition & Estimation
While this is an engineering position this role is expected to contribute substantially to engineering planning and execution.
Responsibilities include:
Break complex technical requirements into manageable engineering tasks.
Define technical implementation steps and dependencies.
Estimate development effort and technical complexity.
Identify assumptions underlying technical estimates.
Identify technical risks and implementation uncertainties.
Identify contingency approaches when technical approaches may not achieve the desired result.
Help engineering teams establish realistic development commitments.
Identify dependencies between software components systems teams data infrastructure and third-party services.
Communicate changes to estimates or technical approach as new information becomes available.
Agile Software Development
Work effectively within an Agile software development environment.
Participate in sprint planning backlog refinement technical discussions sprint reviews and retrospectives.
Collaborate with product management to clarify requirements and acceptance criteria.
Help ensure engineering work is appropriately defined before implementation begins.
Maintain awareness of sprint objectives technical dependencies blockers and delivery commitments.
Provide technical input into prioritization and sequencing decisions.
Continuously improving engineering practices and development processes.
Technical Risk & Contingency Identification
Proactively identify technical risks that could affect product functionality quality security performance schedule or scalability.
Communicate significant risks to technical and product leadership.
Develop alternative technical approaches when appropriate. Identify technical dependencies that could create delivery constraints.
Evaluate new technologies and architectural approaches for potential implementation risks. Help engineering teams establish contingency plans for high-risk technical components.
Technical Documentation
Maintain clear and useful technical documentation throughout the development lifecycle.
Documentation examples include design diagrams System designs UML artifacts Data-flow diagrams API specifications Technical requirements Data models Integration specifications software environment installation and standards Engineering standards Deployment environments and processes monitoring plans and solutions automated test scripts and test plans. Experience with documentation and wiki platforms such as Microsoft Loop and Confluence is desirable.
Engineering Status & Communication
Provide concise and accurate written and verbal updates regarding engineering progress. Communicate completed work current activities upcoming work blockers technical risks and dependencies.
Clearly communicate technical issues to both engineering and non-engineering stakeholders. Maintain effective communication with distributed engineering teams across multiple time zones.
Collaborate daily with technology teams in the United States and India.
Ensure important technical decisions and issues are documented rather than relying solely on verbal communication.
Participate effectively in technical meetings and design reviews.
Technical Tools & Collaboration
Experience with or ability to work effectively with tools such as:
Microsoft Azure DevOps suite ADO Projects Jira Microsoft Loop Confluence Lucid Figma Microsoft Office Suite (e.g. PowerPoint Word Excel) Git/source-control platforms Software IDEs AI-assisted software development tools
The engineer should be comfortable using technical collaboration tools to support requirements architecture development documentation design and engineering execution.
User Interface & User Experience
Knowledge of UI and UX design is a plus.
The role should be able to:
Understand UI/UX requirements and design specifications.
Work effectively with product and UX/UI designers.
Interpret Figma designs and translate designs into software implementations.
Identify technical implications of UI/UX decisions.
Contribute technical recommendations regarding usability performance responsiveness and implementation feasibility.
Write software for front-end UI experiences for web based native and mobile apps.
Enterprise Applications & Integrations
Experience developing or integrating enterprise applications and platforms is desirable.
Experience with Salesforce and Salesforce integration is a plus.
The engineer should understand enterprise integration patterns involving:
REST APIs Web services Data integration Authentication and authorization security Event-driven architectures Enterprise SaaS platforms Mobile Applications Cloud services Relational and non-relational data systems.
Required Technical Skills
Strong professional experience with software programming languages and technologies including C C# dot-net C Python JavaScript PHP Angular HTML CSS SQL Database design Flutter API development Application architecture Distributed systems Cloud computing data design and Generative AI. Experience with mobile application development is a plus with tools such as flutter. Ability to learn and effectively use new software languages software libraries IDEs debug tools and
software engineering tools. Use of Hangfire is nice to have. Deploying custom software solutions to Microsoft Azure environments (or other similar cloud service providers) is nice to have.
Required Qualifications
Bachelors degree in computer science Computer Engineering Software Engineering or a very closely related deep technical discipline.
Professional experience as a hands-on software engineer.
Demonstrated experience designing and writing code for production software systems.
Understanding software architecture and system design.
Experience designing scalable high-performance software systems.
Experience with database design and data architecture.
Experience with cloud-based software development.
Strong understanding of Agile software development methodologies.
Experience breaking technical requirements into engineering tasks.
Experience estimating software development effort and complexity.
Ability to identify technical risks dependencies and contingency approaches.
Strong written and verbal communication skills.
Ability to create and communicate software architecture diagrams.
Ability to collaborate effectively with distributed engineering teams.
Experience working with modern software development and collaboration tools.
Ability to work full-time onsite in the Houston Texas office five days per week.
Required Experience:
IC
About Company
alliantgroup offers expert tax consulting solutions helping American businesses take full advantage of tax credits, incentives, and deductions.