Software Developer Job Opening
Job Summary:
We are seeking a skilled Software Developer with 2 to 4 years of experience.
Key Responsibilities:
- Design, develop, and deploy complex applications, ensuring they meet both technical and business requirements.
- Create and implement application architecture plans, choosing appropriate design patterns and frameworks to ensure scalable and efficient software solutions.
- Design and implement data lake architectures on Amazon S3, leveraging partitioning and columnar formats such as Parquet to optimize query performance and minimize storage costs.
- Optimize Spark jobs and data processing workflows for scalability, performance, and cost efficiency using techniques such as partitioning, compression, and caching.
- Design and develop Spark applications to implement complex data transformations and aggregations for batch processing jobs, leveraging Spark SQL and DataFrame.
- Design and implement ETL processes using Spark.
- Implement Spark SQL queries for data querying and aggregation.
- Implement Spark with data lakes such as Azure Blob’s, HDInsight.
- Conduct thorough code reviews to ensure code quality, adherence to standards, and to identify potential bugs or issues before deployment.
- Optimize application performance, ensuring applications run efficiently and effectively under varying load conditions.
- Design, implement, and maintain databases, writing complex queries and stored procedures, and ensuring data integrity and security.
- Gather and analyze user requirements, converting them into technical specifications and actionable development tasks.
- Develop and execute unit tests, integration tests, and debugging processes to ensure the reliability and functionality of applications.
- Implement and maintain security best practices to protect applications and data from potential threats and vulnerabilities.
- Stay updated with the latest industry trends, tools, and technologies, recommending and implementing improvements to existing systems and processes.
- Participate in project planning, providing estimates for development time and resources, and ensuring timely delivery of software projects.
- Collaborate with DevOps teams to ensure continuous integration and continuous deployment (CI/CD) pipelines are effectively implemented.
- Interact with clients to understand their needs, provide technical insights, and offer solutions to enhance their business processes.
- Provide ongoing support and maintenance for existing applications, troubleshooting issues, and implementing fixes as necessary.
- Regularly refactor existing code to improve readability, maintainability, and performance without altering its functionality. Plan for and implement scalable solutions to accommodate growing user bases and increasing data loads.
Education:
Bachelor's degree in Computer Science, Information Technology, or a related field.