Author Archives: Ming Lin

Linux Kernel Software Engineer – Facebook

About the job

Facebook’s mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we’re building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we’re creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities – we’re just getting started.

Facebook is seeking a Linux Kernel Software Engineer to join our Kernel team. The Facebook kernel team is responsible for developing fixes and new features that are primarily driven by internal needs and emerging industry trends. As a member of that team, you will play an integral role in improving kernel stability, performance, observability, and manageability. Additionally, you will help work with the wider Linux community including upstream developers, vendors, and optionally conferences. This position is full-time.

Responsibilities

  • Work with other teams to understand their kernel needs and develop solutions.
  • Triage, investigate, and resolve primarily kernel related performance or stability issues.
  • Build and/or support user space libraries and tools related to the kernel work.
  • Advocate best practices with other engineers when it comes to kernel usage, deployment, tuning parameters, etc.
  • Backport or develop solutions for 1-2 kernel releases. We prefer code being in mainline.
  • Help improve our automated testing infrastructure.
  • Be a part of the kernel release process, helping it run smoothly.
  • Occasionally participate in TPM led projects that are kernel focused.
  • Communicate and interact with upstream maintainers.
  • Occasional conferences, particularly things like LPC/LFS/MM.

Minimum Qualification

  • Knowledge of low-level operating system and hardware primitives.
  • Scripting (Python, Bash, etc.) experience.
  • Expertise programming with C or C++.
  • Experience using kernel perf and/or tracing tools for resolving performance issues.
  • Solid troubleshooting and debugging skills.
  • Proven communications skills.

Preferred Qualification

  • Experience working with and contributing to Open Source communities.
  • Familiarity with multiple layers of the Linux stack (hardware, kernel, user space, etc.).
  • Experience working at very large scale (> 10,000 servers).
  • Experience presenting to technical audiences at conferences.
  • Experience with one or more of the technologies our partner teams own (containers, RPC, databases, etc.).

Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.

Linux Kernel Software Engineer – ByteDance

About the job

Founded in 2012, ByteDance is a technology company operating a range of content platforms that inform, educate, entertain and inspire people across languages, cultures, and geographies. With a suite of more than a dozen products, including TikTok, Douyin, Toutiao, Helo, and Resso, ByteDance now has a portfolio of applications available in over 150 markets and 75 languages.

• Follow the Linux kernel community and support analysis and fixing bugs

• Capture and synthesize the needs of product teams, and develop kernel features accordingly

• Explore and work with industry-leading technology and hardware

Qualifications

• BS or above degree in Computer Science or related technical field or equivalent practical experience

• Proficiency with at least one modern programming language such as Golang, C/C++, Python

• Deep understanding of operating systems. Familiar with at least one subsystems among MM, scheduler, filesystem, network, and group

• Familiar with various debugging tools (perf, systemtap, ebpf). Have the ability and experience to resolve performance issues in a timely manner

• Strong experience in hunting bugs (e.g. softlockup, deadlock, panic, and oom)

• A mind with creativity and a fast learner of new technology

Preferred Qualifications

• Cloud industry experience

• A history of participation in Linux kernel mailing lists is a plus

ByteDance is committed to creating an inclusive space where employees are valued for their skills, experiences, and unique perspectives. Our platform connects people from across the globe and so does our workplace. At ByteDance, our mission is to inspire creativity and enrich life. To achieve that goal, we are committed to celebrating our diverse voices and to creating an environment that reflects the many communities we reach. We believe individuals shouldn’t be disadvantaged because of their background or identity, but instead should be considered based on their strengths and experience. We are passionate about this and hope you are too.

Senior Engineering Manager, Kernel & Operating Systems

Company Description

Twitter is what’s happening and what people are talking about right now. For us, life’s not about a job, it’s about purpose. We feel real change starts with conversation. Here, your voice matters. Come as you are and together we’ll do what’s right (not what’s easy) to serve the public conversation.

Job Description

Who We Are

The Kernel & Operating System team at Twitter is responsible for shipping the Linux kernel and OS versions on which all of Twitter’s services run. Our job is to ensure the safe, reliable, fast, and efficient operation of the lowest levels of the Twitter software stack! We actively contribute many of our fixes upstream and are active members of the Linux OSS community.

What You’ll Do

  • Deliver regular releases of the Linux kernel and operating system in order to ensure that Twitter’s infrastructure remains up-to-date and secure.
  • Partner with our hardware engineering team and our customers to ensure that kernel and OS releases meet our performance and quality standards.
  • Drive R&D efforts within the Linux kernel and operating system that focus on improvements to Twitter’s overall performance, security, and reliability.
  • Engage with the Linux community-at-large to support the development of the Linux kernel and operating system, particularly in the areas and subsystems critical to the success of Twitter and its “hyper-scale” peers.
  • Grow and develop the team and guide Twitter’s strategic investment in the people and skills necessary to develop and maintain one of the world’s largest Linux installations.

Who You Are

We’re looking for a leader with a strong background in building and running diverse teams composed of strong technologists with deep domain expertise and technical skill in the area of systems engineering and operating systems development. You have a track record of developing the careers of the folks on your team(s), a demonstrated focus on creating inclusive teams and organizations, and a history of recruiting great technical talent wherever it might be located. To emphasize that latter point, leading a distributed team across multiple time zones is an important skill for helping lead this team. Finally, you should have a history of working within the Linux kernel or OS community and a passion for developing OSS software.

Qualifications

  • 5+ years of experience managing a team in the Linux OS and/or kernel development space or a related field
  • Familiarity with the Linux kernel release process
  • Experience with the CentOS Linux distribution
  • Experience working within the Linux community. Ideally, a candidate for this role has been active on the LKML and/or has been directly involved with Linux-based OSS projects or Linux OS distributions
  • Previous development experience with C and/or C++
  • Strong communication skills and ability to work with partner teams
  • Experience handling the distribution and configuration of systems at a large-scale installation

Additional Information

A few other things we value:

  • Challenge – We solve some of the industry’s hardest problems. Come to be challenged, learn, and thrive as an engineer.
  • Diversity – Diversity makes us a better organization and team. We value diverse backgrounds, ideas, and experiences.
  • Work, Life, Balance – We work hard, but we believe with hard work should come balance.

We will ensure that individuals with disabilities are provided a reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request an accommodation.

https://jobs.smartrecruiters.com/Twitter2/743999747644490-senior-engineering-manager-kernel-operating-systems

Kernel debugging with QEMU: An overview of tools available

https://www.collabora.com/news-and-blog/blog/2017/03/13/kernel-debugging-with-qemu-overview-tools-available/

qemu:
INITRD=”-initrd /boot/initramfs-5.13.0-rc2.img”
KERNEL=”-kernel /home/ming.lin/build_upstream2/arch/x86/boot/bzImage”

sudo /home/ming.lin/qemu-vhost-nvme/x86_64-softmmu/qemu-system-x86_64 -nographic -enable-kvm -cpu host -smp 2 -m 2G \
-drive file=/home/ming.lin/image/vm01.sh.img \
-net nic,model=virtio,macaddr=52:54:00:12:34:58 -net tap,ifname=tap1,script=no,downscript=no \
$KERNEL $INITRD \
-append “root=/dev/mapper/cl-root console=ttyS0 console=tty1” \
-s

gdb:
gdb -ex ‘file vmlinux’ -ex ‘target remote localhost:1234’

最优化问题的解法分类

  1. DP。有最优子问题
  2. Scan。找出每个解的唯一标识,根据标识知道解的集合。挨个扫描所有标识,算出各个标识对应的解。扫描过程记录当前最优解。1758. Minimum Changes To Make Alternating Binary String
  3. Binary search。找出解集合的可能范围,但并非这个这个范围内的值都是合法的解。通常带有限制条件判断该值是不是合法的解。通过binary search找出最优的合法解。1760. Minimum Limit of Balls in a Bag

Operating Systems Software Engineer

https://www.linkedin.com/in/mark-lucovsky-5280034/

https://www.linkedin.com/jobs/view/2388097271/?refId=%0B%CE%87%29%7C%13%EF%BF%BD%0A%5C%EF%BF%BD%EF%BF%BD%EF%BF%BD%04%EF%BF%BD%1Ba&trk=d_flagship3_profile_view_base

About the job

Facebook’s mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we’re building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we’re creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities – we’re just getting started.

We are currently seeking an Operating Systems Engineer with strong design and build skills, passion for low-level systems software and device driver programming, hands-on experience working on Operating Systems at all layers from firmware to cloud, and experience with shipping hardware/software products.
You are the kind of engineer who has expertise creating reliable, robust, and performant systems software at all layers of the stack. You are fluent in multiple areas of classic Operating Systems e.g., threading, scheduling, memory management, I/O and device models, security. If asked, you have the skills to design and build your own competitive replacement. You have hands-on experience bringing up new hardware and software systems and you have significant experience debugging and repairing complex, multi-component system level issues using a variety of OS and bus level debugging tools, e.g. USB/Firewire/Ethernet protocol analyzers, kernel debuggers, OS event tracing infrastructure, etc.

Responsibilities

  • Design and implement OS components at all layers of the system, e.g. kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc.
  • Design and implement device and bus drivers that operate efficiently in a constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
  • Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application.
  • Profile performance problems and drive optimizations that span the entire software stack.
  • Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/firmware/software teams.
  • Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.

Minimum Qualification

  • 5+ years experience working on systems software in a large-scale C code base.
  • Demonstrated knowledge of operating systems internals on at least one platform.
  • Demonstrated knowledge creating device drivers on at least one platform.
  • Experience developing, debugging, and shipping software products on large code bases that span platforms and tools.
  • Experience with Software Development processes including: source control, bug tracking, and design documentation.
  • Demonstrated experience working collaboratively in cross-functional teams.

Preferred Qualification

  • Experience with power management and modern systems architecture.
  • Experience with specialized kernel functions: synchronization primitives, memory management, schedulers and dispatchers, TLB management.
  • Experience working on multiple classes of drivers e.g., bus, block, wireless, display drivers.
  • Experience with low-latency, high bandwidth, streaming hardware devices, e.g. video cameras, graphics cards, etc.
  • Experience with new device bring-up.
  • Experience with ARM platforms.
  • Experience creating, debugging, and deploying on-device firmware (MCU and/or DSP).

Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.