|
| 1 | +--- |
| 2 | +title: "Career Change: From Linux Kernel Networking to Linux Graphics" |
| 3 | +tags: ["work"] |
| 4 | +date: 2024-04-28T21:53:41-07:00 |
| 5 | +draft: false |
| 6 | +--- |
| 7 | + |
| 8 | +* Changing Jobs |
| 9 | + |
| 10 | +I wanted to announce that I am changing jobs. In my previous role, I worked at |
| 11 | +NVIDIA as a Linux kernel developer specifically focused on netdev changes for |
| 12 | +the [[https://www.nvidia.com/en-us/networking/ethernet-adapters/][ConnectX]] and [[https://www.nvidia.com/en-us/networking/products/data-processing-unit/][BlueField]] products. You can find my relevant work in my |
| 13 | +previous position by [[https://lore.kernel.org/netdev/?q=Rahul+Rameshbabu][searching my name on the netdev mailing list archives]]. |
| 14 | + |
| 15 | +I am moving to a new role as part of NVIDIA's Linux Graphics Team. The team's |
| 16 | +work involves DRM/KMS, X11 and Wayland UMD work, as well as OpenGL and Vulkan |
| 17 | +support. Documentation related to the work can be found at |
| 18 | +[[https://download.nvidia.com/XFree86/Linux-x86_64/]]. |
| 19 | + |
| 20 | +* Why the change? |
| 21 | + |
| 22 | +I enjoyed the work greatly and loved the interactions with the Linux kernel |
| 23 | +netdev team at NVIDIA. The team helped immerse me into the Linux kernel |
| 24 | +development process and gave me a means to actively contribute while being able |
| 25 | +to pay the bills. I learned a lot from the team about networking, the kernel, |
| 26 | +and other related topics. I also got to attend conferences related to the team |
| 27 | +and learn a lot from those experiences. It was very difficult for me to consider |
| 28 | +parting with the team. The team is part of the Network Business Unit (NBU) at |
| 29 | +NVIDIA. This organization consists of companies NVIDIA acquired related to |
| 30 | +networking such as [[https://nvidianews.nvidia.com/news/nvidia-to-acquire-mellanox-for-6-9-billion][Mellanox]] and [[https://blogs.nvidia.com/blog/nvidia-acquires-cumulus/][Cumulus]]. The group I worked with was originally |
| 31 | +part of Mellanox. My experience with the team makes me genuinely believe that |
| 32 | +the Mellanox acquisition was probably the greatest decision NVIDIA has made. |
| 33 | + |
| 34 | +I have been with NVIDIA for a total of five years straight out of college, with |
| 35 | +the two of those years being with the Linux netdev team. The truth is that I |
| 36 | +joined NVIDIA due to being a fanboy of our work on Linux graphics. I know this |
| 37 | +is a polarizing view due to mixed sentiment, but I love the NVIDIA Linux |
| 38 | +graphics stack. I first used the NVIDIA Linux graphics drivers back in high |
| 39 | +school. Using the ~.run~ file and see the external modules get built against my |
| 40 | +Linux install made me aware of the Linux kernel, the module system, and the |
| 41 | +existence of userspace display server stack. If the NVIDIA drivers at the time |
| 42 | +were upstream and the distros could just magically package everything, I |
| 43 | +probably would have never gotten interested in the Linux kernel or low-level |
| 44 | +Linux programming. |
| 45 | + |
| 46 | +I always wanted to work on the NVIDIA graphics stack for Linux since I was 16. |
| 47 | +It's something that always pops up in my mind so frequently when I pick up a |
| 48 | +keyboard and do any coding. This comes from the fact that the NVIDIA Linux |
| 49 | +graphics drivers were my inspiration for wanting to code in the first place. |
| 50 | +However, I really did lack the skill to do so for a long time. It was thanks to |
| 51 | +the experiences I gained over the years that I barely managed to land my dream |
| 52 | +role. It came at a cost though. I ended up leaving a great team of talented |
| 53 | +people who were willing to work with me and help me grow in terms of my |
| 54 | +technical expertise. It almost felt like I was betraying them in the process of |
| 55 | +chasing after my dreams. I have taken a scene from my favorite visual novel, |
| 56 | +White Album 2, to try to illustrate what I mean. |
| 57 | + |
| 58 | +#+ATTR_HTML: :width 100% |
| 59 | +[[./wa2_airport_job_change.jpg]] |
| 60 | + |
| 61 | +* Highlights from my previous role |
| 62 | + |
| 63 | +I enjoyed my previous role so much. It was very difficult to decide leaving the |
| 64 | +team. The team culture is amazing, and I learned so much in these last two years |
| 65 | +compared to my first three years at the company. |
| 66 | + |
| 67 | ++ Fix isolation of broadcast traffic and unmatched unicast traffic with MACsec |
| 68 | + offload |
| 69 | + * [[https://lore.kernel.org/all/ [email protected]/]] |
| 70 | ++ ethtool HW timestamping statistics |
| 71 | + * [[https://lore.kernel.org/all/ [email protected]/]] |
| 72 | + * [[https://lore.kernel.org/all/ [email protected]/]] |
| 73 | + * [[https://lore.kernel.org/netdev/ [email protected]/]] |
| 74 | ++ mlx5e per-queue coalescing |
| 75 | + * [[https://lore.kernel.org/netdev/ [email protected]/]] |
| 76 | ++ Contributing to the mlx5 driver implementation of PSP offload as part of the |
| 77 | + original PSP patchset to the Linux kernel mailing list |
| 78 | + * [[https://lore.kernel.org/netdev/ [email protected]/]] |
| 79 | + * [[https://github.com/google/psp]] |
| 80 | ++ ptp .adjphase cleanups |
| 81 | + * [[https://lore.kernel.org/all/ [email protected]/]] |
| 82 | ++ sch_htb: Avoid grafting on htb_destroy_class_offload when destroying htb |
| 83 | + * [[https://lore.kernel.org/all/ [email protected]/]] |
| 84 | + |
| 85 | +These were some of the more fun/memorable changes I made during my time with |
| 86 | +NVIDIA's Linux netdev team for ConnectX/BlueField. The image below depicts my |
| 87 | +current feelings as I reflect on these extremely meaningful two years. |
| 88 | + |
| 89 | +#+ATTR_HTML: :width 100% |
| 90 | +[[./wa2_airplane_job_change.jpg]] |
| 91 | + |
| 92 | +* What I want to do going forward |
| 93 | + |
| 94 | +I think, from the last section, it should be fairly obvious that my life will |
| 95 | +revolve around Linux graphics. Ideally, this will be the case for the rest of my |
| 96 | +professional career. Now that I have achieved a path where I can do the work |
| 97 | +that I have always dreamed of, it's time to gain mastery in the graphics stack |
| 98 | +and use that for NVIDIA. I have been going through some math primers as well as |
| 99 | +OpenGL and Vulkan references. Hoping to find some material on display servers, |
| 100 | +DRM, and KMS. |
| 101 | + |
| 102 | +* What this means for my blog? |
| 103 | + |
| 104 | +Now that my professional work is more PC-class in nature. This makes it easier |
| 105 | +for me to think in terms of making my blogs relatable for those only with |
| 106 | +PC-class devices. When working on enterprise-related challenges, it was hard for |
| 107 | +me to think about how to scale the debugging techniques I used for PC-class |
| 108 | +developers. I expect this means that I will have a large increase in blog |
| 109 | +content and post enhancements over time. |
0 commit comments