# 2024 年「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2024)」作業 3
## Big Tech Backend
- Large Scale Distibuted System
- Big Data Infra
- High traffic system
- 希望有機會能參與 Cloud Infra 的開發
## 相關工作職缺項目
### [Azure Cloud Solution Architect](https://www.linkedin.com/jobs/view/4052308889)
:::spoiler JD
We are looking for a highly motivated Senior Azure Cloud Solution Architect (CSA) with an entrepreneurial spirit to join our Worldwide Public Sector Team in Taiwan. This is a unique chance to be at the frontline of the AI revolution, working closely with key Public Sector customers to design, build, and maintain their Infrastructure & Data&AI portfolio of applications that make a real impact.
As a Senior CSA, you'll serve as a vital bridge between cutting-edge technology and business success. You'll collaborate with international product groups, and take part in a dynamic ecosystem alongside other Cloud Solution Architects, Customer Engineers, Account Teams and Customer Success Account Managers.
In this role, you'll find a conducive environment for continuous learning, allowing you to deepen your technical expertise and expand your understanding across various technologies. The pace is fast, the work is stimulating, and the opportunity for impactful decision-making is significant.
Responsibilities
Key responsibilities include:
Emphasize guiding customers through their data platform modernization journey to Azure, highlighting the opportunity to innovate and get AI-ready.
Support customers on the adoption of generative AI and build innovative, safe and performant AI-based solutions on top of a solid foundation of data and infrastructure.
Include the importance of capturing Analytics market share with Fabric & Azure Databricks based on customer use cases.
Understand the customer's overall applications portfolio, IT and business priorities, and success measures to design robust architectures and solutions (including third-party solutions) using Azure Iaas, PaaS, DevOps, Entra Identity and Advanced Application coding.
Apply technical knowledge and customer insights to guide customers through their modernization roadmap. Architect solutions to meet business and IT needs, ensuring the technical feasibility of new projects and successful deployments.
Collaborate with other Cloud Solution Architects and Microsoft stakeholders to develop complex end-to-end Enterprise solutions on the Microsoft Azure platform, ensuring that all solutions adhere to the "Well-Architected" framework, exhibiting high levels of performance, security, scalability, maintainability, and appropriate reusability and reliability upon deployment.
Lead Architectural Design Sessions to build an implementation plan aligning with customer business goals and their technical environment. This will result in consensus on solution design and the next steps toward production.
Develop deep relationships with key customer decision-makers, who drive long-term cloud adoption within their company, enabling them to be cloud advocates.
Be the Voice of the Customer; share insights and best practices, and connect with Engineering teams to eliminate blockers.
Troubleshoot technical issues to demonstrate the value of implementing Azure technologies.
Assess the Customers' knowledge of the Azure platform and overall cloud readiness to support customers through a structured learning plan and ensure its delivery through partners.
Maintain technical skills and knowledge of market trends and competitive insights; collaborate and share with the technical community.
Be an Azure Platform evangelist with customers, partners, and external communities, building and growing developer communities through activities such as workshops.
Qualifications
Required/minimum qualifications
Bachelor's Degree in Computer Science, Information Technology, Engineering, Business, or related field AND 10+ years experience in cloud/infrastructure technologies, information technology (IT) consulting/support, software development/support, technology solutions, practice development, architecture, and/or consulting OR equivalent experience. Technical Certification in Cloud (e.g., Azure, Amazon Web Services, Google, security certifications). 8+ years experience leading technical projects. 8+ years experience working in a customer-facing role (e.g., internal and/or external).
Additional Or Preferred Qualifications
Bachelor's Degree in Computer Science, Information Technology, Engineering, Business, or related field AND 15+ years experience in cloud/infrastructure technologies, information technology (IT) consulting/support, software development/support, technology solutions, practice development, architecture, and/or consulting OR Master's Degree in Computer Science, Information Technology, Engineering, Business, or related field AND 12+ years experience in cloud/infrastructure technologies, technology solutions, practice development, architecture, and/or consulting OR equivalent experience.
Microsoft is an equal opportunity employer. Consistent with applicable law, all qualified applicants will receive consideration for employment without regard to age, ancestry, citizenship, color, family or medical care leave, gender identity or expression, genetic information, immigration status, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran or military status, race, ethnicity, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable local laws, regulations and ordinances. If you need assistance and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations.
:::
#### 職缺所需要的能力分析
- 除了 PM 唯一在軟體可以行跨 Tech 和 Business 的職位
- 需要至少 Staff / Tech Lead 等級 ( 12Y+ Working Experience )
- 非常熟悉 Azure Cloud 對應其他 Cloud 的替代方案
- 精通各種 Usecase 的 System Design
### [AWS: Software Development Engineer (Backend), Aurora Storage](https://amazon.jobs/en/jobs/2794478/software-development-engineer-backend-aurora-storage)
:::spoiler JD
DESCRIPTION
Imagine a database where you don't have to worry about the configuration or capacity of your database. Where you don't have to worry about what kind of load that your product or service will put on it and you only pay for what you use. Want to learn more? Then read on.
Amazon Aurora Serverless an on-demand, auto-scaling configuration for Amazon Aurora where the database will automatically start up, shut down, and scale capacity up or down based on your application's needs, with no down time. It enables you to run your database in the cloud without managing any database instances. With Amazon Aurora Serverless we aim to do nothing less than revolutionize the database business. Aurora Serverless builds on top of foundational AWS services such as EC2, S3 and DynamoDB and we are breaking new ground in the way that customers experience databases.
To learn more about Amazon Aurora Serverless visit: https://aws.amazon.com/rds/aurora/serverless/
We are looking for passionate and curious engineers to innovate with us on behalf of our customers. In this role, you will work with our senior engineers to design and implement systems that orchestrate thousands of databases. You will build a foundational platform consisting of web service APIs and workflows which make Aurora Serverless highly available, scalable, reliable and fast. This is a unique and rare opportunity to get in on the ground floor within a fast-growing AWS service, have an impact on the product direction and the shape of the cutting-edge database technology. We count on your technical expertise and eagerness to learn. You will act a role model for junior engineers. We will give you the opportunity to work with and learn from a team of extremely talented engineers.
AWS Utility Computing (UC) provides product innovations — from foundational services such as Amazon’s Simple Storage Service (S3) and Amazon Elastic Compute Cloud (EC2), to consistently released new product innovations that continue to set AWS’s services and features apart in the industry. As a member of the UC organization, you’ll support the development and management of Compute, Database, Storage, Internet of Things (Iot), Platform, and Productivity Apps services in AWS, including support for customers who require specialized security solutions for their cloud services.
10031
Key job responsibilities
Our engineers collaborate across diverse teams, projects, and environments to have a firsthand impact on our global customer base. You’ll bring a passion for innovation, data, search, analytics, and distributed systems. You’ll also:
Solve challenging technical problems, often ones not solved before, at every layer of the stack.
Design, implement, test, deploy and maintain innovative software solutions to transform service performance, durability, cost, and security.
Build high-quality, highly available, always-on products.
Research implementations that deliver the best possible experiences for customers.
A day in the life
As you design and code solutions to help our team drive efficiencies in software architecture, you’ll create metrics, implement automation and other improvements, and resolve the root cause of software defects. You’ll also:
Build high-impact solutions to deliver to our large customer base.
Participate in design discussions, code review, and communicate with internal and external stakeholders.
Work cross-functionally to help drive business decisions with your technical input.
Work in a startup-like development environment, where you’re always working on the most important stuff.
About the team
Our team is dedicated to supporting new members. We have a broad mix of experience levels and tenures, and we’re building an environment that celebrates knowledge-sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects that help our team members develop your engineering expertise so you feel empowered to take on more complex tasks in the future.
Diverse Experiences
AWS values diverse experiences. Even if you do not meet all of the qualifications and skills listed in the job description, we encourage candidates to apply. If your career is just starting, hasn’t followed a traditional path, or includes alternative experiences, don’t let it stop you from applying.
About AWS
Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform. We pioneered cloud computing and never stopped innovating — that’s why customers from the most successful startups to Global 500 companies trust our robust suite of products and services to power their businesses.
Inclusive Team Culture
Here at AWS, it’s in our nature to learn and be curious. Our employee-led affinity groups foster a culture of inclusion that empower us to be proud of our differences. Ongoing events and learning experiences, including our Conversations on Race and Ethnicity (CORE) and AmazeCon (gender diversity) conferences, inspire us to never stop embracing our uniqueness.
Work/Life Balance
We value work-life harmony. Achieving success at work should never come at the expense of sacrifices at home, which is why we strive for flexibility as part of our working culture. When we feel supported in the workplace and at home, there’s nothing we can’t achieve in the cloud.
Mentorship & Career Growth
We’re continuously raising our performance bar as we strive to become Earth’s Best Employer. That’s why you’ll find endless knowledge-sharing, mentorship and other career-advancing resources here to help you develop into a better-rounded professional.
BASIC QUALIFICATIONS
- 3+ years of non-internship professional software development experience
- 2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience
- Experience programming with at least one software programming language
PREFERRED QUALIFICATIONS
- 3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
- Bachelor's degree in computer science or equivalent
Amazon is committed to a diverse and inclusive workplace. Amazon is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, protected veteran status, disability, age, or other legally protected status. For individuals with disabilities who would like to request an accommodation, please visit https://www.amazon.jobs/en/disability/us.
Our compensation reflects the cost of labor across several US geographic markets. The base pay for this position ranges from $129,300/year in our lowest geographic market up to $223,600/year in our highest geographic market. Pay is based on a number of factors including market location and may vary depending on job-related knowledge, skills, and experience. Amazon is a total compensation company. Dependent on the position offered, equity, sign-on payments, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits. For more information, please visit https://www.aboutamazon.com/workplace/employee-benefits. This position will remain posted until filled. Applicants should apply via our internal or external career site.
:::
#### 職缺所需要的能力分析
- Expert in Distributed System Desgin / Implementation
- HA
- Fault tolerance
- High Scalability
- OS / kernel ?
- 需要實際開發 serverless 的服務而不是使用 serverless
- 可能反而會需要碰更多 OS 相關的 syscall 或是 kernel 相關的 domain knowledge
### [Uber: Backend Software Engineer](https://www.uber.com/global/zh-tw/careers/list/135486/)
:::spoiler JD
About the Role The Unified Configuration System team enables Uber’s engineers and operators to manage/configure their fleet-wide services safely and efficiently on a large scale. We put extra emphasis on safe and gradual configuration rollout, ensuring proper monitoring and automatic rollback in case issues are detected.
The team provides a unified and scalable configuration experience across all of Uber’s workloads, data centers, and cloud vendors. We closely collaborate with many product and platform teams, also supporting custom-tailored configuration solutions that serve specific business needs.
What the Candidate Will Do The candidate will help build large-scale software solutions to ensure Uber’s systems are reliable and efficient – in a team of people that want you to grow and succeed.
Examples of what it means to be an engineer in our team:
Design reliable solutions to solve business use cases in a highly distributed system.
Implement solutions in Go with a strong focus on clean, readable code with unit and integration test coverage – and run it in production.
Actively drive collaboration across multiple teams to create alignment and progress.
Take an active part in code change peer reviews to ensure quality and knowledge sharing across the team.
Contribute to engineering culture in terms of quality, monitoring, and on-call practices.
Own part of the team’s charter and through that help set longer-term direction for the team.
Basic Qualifications A typical engineer has the following profile. We expect that you have similar traits:
3+ years of professional software development experience
Self-driven, team-first, strong ownership.
BS, MS, or PhD degree in computer science, similar technical field of study, or equivalent practical experience
Background in multiple programming languages, e.g., Go, Java, Python, etc.
Attention to detail, particularly around software engineering fundamentals, testing methodologies, and quality.
Good verbal and written communication skills. Experience writing design documents, documentation, post-mortems, etc.
Preferred Qualifications
Experience building large distributed systems
Experience with running critical systems in production, monitoring them, and handling incidents.
Experience with containerization software such as Kubernetes or Docker.
Experience with database and storage technologies and understanding trade-offs between them.
Comfortable working with on-prem and cloud-based infrastructure (AWS, GCP).
Experience with Linux development
We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let’s move the world forward, together.
Offices continue to be central to collaboration and Uber’s cultural identity. Unless formally approved to work fully remotely, Uber expects employees to spend at least half of their work time in their assigned office. For certain roles, such as those based at green-light hubs, employees are expected to be in-office for 100% of their time. Please speak with your recruiter to better understand in-office expectations for this role.
*Accommodations may be available based on religious and/or medical conditions, or as required by applicable law. To request an accommodation, please reach out to accommodations@uber.com.
:::
#### 職缺所需要的能力分析
- 同 2. 的 Distributed System
- Large scale OLTP system
- CI / CD
- Cloud Native
- k8s, 各 Cloud 的 Infra
## 檢視自身能力並撰寫簡歷
### [**Resume**](https://github.com/jason810496/Resume/blob/ncku-info2024/jason810496.pdf)
### Open Source Contibutions
- [Apache Airflow](https://github.com/apache/airflow/) 37.3k stars
- > Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
- [View all contributions on GitHub](https://github.com/apache/airflow/pulls?q=is%3Apr+author%3Ajason810496+)
- [PGMQ(Postgres Message Queue)](https://github.com/tembo-io/pgmq) 2k stars
> A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.
- [PGMQ Python Sqlalchemy Client](https://github.com/jason810496/pgmq-sqlalchemy)
### Experience
- Backend Intern @Appier
- Part-time Backend SWE @PAIA
- Part-time Fullstack SWE @GLSoft
### Reward
- TSMC IT CareerHack - "IT Infrastructure Automation Monitoring and Management - Implementation with Generative AI Technologies" : Second Place, 2024
- The ICPC Asia Regional Programming Contest : Bronze Medal, 2023
## 模擬面試
- Coding Interview:
- Leetcode Mid + Leetcode Hard
- 非常需要多練...
- System Design:
- 需要多練才能熟悉各種 Usecase 適合的 System Design
- requirements -> constraint
- Working Experience
- 學習 Senior 在 design 會考慮的方向
- 如何處理重大事故
- 解決各種瓶頸 ( I/O, throughout, peck traffic)