Job Overview
We are seeking a proactive Software Engineer to join our dynamic team, focusing on the design and development of innovative software solutions. In this role, you will collaborate with colleagues to build and maintain robust, scalable applications.
Roles and Responsibilities
- Adhere to and enhance development best practices, including comprehensive unit testing and rigorous code reviews.
- Drive innovation by contributing new ideas for technologies, processes, and tools.
- Translate complex requirements and use cases into functional, high-performance applications.
- Partner with internal teams to craft sophisticated software designs and architectures.
- Develop, construct, and maintain efficient, reusable, and dependable code.
- Produce clean, scalable code across various programming languages.
- Conduct thorough testing of applications and systems to ensure quality.
- Identify performance bottlenecks and bugs, and implement effective solutions.
- Optimize applications for maximum speed, quality, and responsiveness.
Desired Candidate Profile
- Possess a minimum of 2 to 4 years of relevant professional experience.
- Exhibit strong interpersonal and communication skills, essential for collaborative teamwork.
- Demonstrate hands-on expertise in data pipeline development, including the design, creation, and optimization of ETL processes utilizing Spark SQL, Python, and Databricks.
- Showcase experience with .NET technologies such as C#, .NET Core, WPF, and ASP.NET, with the flexibility to transition between data pipeline initiatives and desktop/cloud-based .NET applications.
- Possess a solid understanding of modern cloud platforms and services, with a preference for Microsoft Azure, including practical experience in deploying and managing applications or data workloads in a cloud environment.
- Maintain a deep understanding of multi-threaded programming, Object-Oriented Programming (OOP) principles, and established design patterns.
- Be familiar with SQL Server and other relational database management systems.
- Demonstrate proficiency in using code versioning tools like Git for effective source code management.
- Thrive in environments with ambiguous requirements and operate effectively with minimal supervision.
- Commit to producing clean, maintainable, and well-documented code.
- Prioritize performance, security, scalability, and testability in all software development efforts.
- Have experience in developing reusable libraries and components.
- Understand the fundamental design principles critical for building scalable and robust applications.
- Be familiar with data engineering best practices, including data quality assurance and monitoring techniques.
- Comfortably collaborate within cross-functional teams and adapt to evolving project priorities.
- Exposure to AI-assisted development practices, such as leveraging LLMs, Copilot tools, or building AI-integrated workflows, is considered a valuable asset.
