Yes, production code is C++, but the way the models are built is Python code, colab, save via Orbax/TF SavedModel, etc and then serve in C++. All (most, to hedge it) development is done via Python.
I don't directly develop the models, I played with some for fuzzing [1] and I'm working on security for them [2]. And, before joining GOSST, I was leading the OSS DevInfra team in TF. I still have the most number of commits made by a human [3] even after 2 days of leaving the team, though I see the next person only needs 4 more :)
Hello! Can I ask you for some random career advice? I am mid-career, in a low-level mgmt position but want to return to being an IC. My team's tech stack is Python and Kotlin, but in my position I don't get to code. I code for fun at home but it gravitates towards Python (as it is highly relevant for doing Deep Learning work). My question is if I ever go into a backend role, what language best lets me get into a deep tech position at a MANG. With Python's limited use in production in MANGS, I don't see how I'll pass the Leetcode coding interviews. I used to do distributed systems a long time ago and really miss it (Did professional work in C,C++, Java, Go and Erlang/Elixir but it has been a while). I have a child now that takes up a lot of time, so I can't invest in getting good (again) in too many languages. I also have generally bad memory (remembering all the functions in std lib in Java or STL in C++ is just impossible anymore). I generally love coding but my algorithms are pretty rusty too. Advice on how to pick a darn tech stack? Thank you.
It's not language, it's experience, network, and having a differentiator that makes potential employers say, "Wow, we need to hire brutus1213 for our team because they have a really unique skill at <X>!" (X could be Kubernetes, deep learning, Erlang, whatever... the more uncommon, the better though.)
To that end, focus heavily on whatever exists in the vertex of what you're good at (which did you like and excel at of those things you did?) and a growth area (example: Python, C++ and the multitudinous ways they continue to be used together in AI etc).
So you have to look at what existing leverage you have and build upon that foundation. It will be very difficult to get a role without getting some hands on experience back first, so where I'd start is, could you step down to become IC at your current job? I'd be more interested to evaluate a candidate doing Python/Kotlin that wants to move into something adjacent than someone in management who just wants to be a dev again.
I retired (after 18+ years at Google) last August, and as of that date A LOT of production code used languages different from C++ -- Go, Java, Kotlin, AND Python, plus a few more (Rust, Dart, and many others). In my successful, long career at Google I did use C++ (I had "readability" in C++), but rarely: only when "ridiculous scalability" was needed.
For example, collecting Stackoverflow posts about GCP products, and distributing the needed subsets of them among vendors and employees in tech support to potentially answer, comment, edit, vote on, re-tag, &c, used to be all Python (and the "scale" was a few hundred or thousands of posts and people at a time -- ridiculously small "by Google `production` standards", and perfectly adequate for the much-higher-programmer-productivity Python has always afforded... I know, because I did the vast majority of that coding, including maintenance, ongoing monitoring of performance, and VERY occasional optimizations if and when monitoring showed them to be desirable).
That was the core of my job for my last several years at Google -- I won't even list the many other NON-prototyping tasks I did in previous years (decades, almost), the vast majority of them in Python. And -- the majority of my performance reviews during those 18+ years were rated "exceeds expectations", so it seems that world-class Python skill (which clearly was crucial to me getting a hiring offer back in 2004, though, alas, visa issues delayed my start to early 2005) were extremely useful for at least some of us Google engineers.
Yes, production code is C++, but the way the models are built is Python code, colab, save via Orbax/TF SavedModel, etc and then serve in C++. All (most, to hedge it) development is done via Python.
I don't directly develop the models, I played with some for fuzzing [1] and I'm working on security for them [2]. And, before joining GOSST, I was leading the OSS DevInfra team in TF. I still have the most number of commits made by a human [3] even after 2 days of leaving the team, though I see the next person only needs 4 more :)
[1]: https://security.googleblog.com/2023/08/ai-powered-fuzzing-b... [2]: https://security.googleblog.com/2023/10/increasing-transpare... [3]: https://github.com/tensorflow/tensorflow/graphs/contributors
Hello! Can I ask you for some random career advice? I am mid-career, in a low-level mgmt position but want to return to being an IC. My team's tech stack is Python and Kotlin, but in my position I don't get to code. I code for fun at home but it gravitates towards Python (as it is highly relevant for doing Deep Learning work). My question is if I ever go into a backend role, what language best lets me get into a deep tech position at a MANG. With Python's limited use in production in MANGS, I don't see how I'll pass the Leetcode coding interviews. I used to do distributed systems a long time ago and really miss it (Did professional work in C,C++, Java, Go and Erlang/Elixir but it has been a while). I have a child now that takes up a lot of time, so I can't invest in getting good (again) in too many languages. I also have generally bad memory (remembering all the functions in std lib in Java or STL in C++ is just impossible anymore). I generally love coding but my algorithms are pretty rusty too. Advice on how to pick a darn tech stack? Thank you.
It's not language, it's experience, network, and having a differentiator that makes potential employers say, "Wow, we need to hire brutus1213 for our team because they have a really unique skill at <X>!" (X could be Kubernetes, deep learning, Erlang, whatever... the more uncommon, the better though.)
To that end, focus heavily on whatever exists in the vertex of what you're good at (which did you like and excel at of those things you did?) and a growth area (example: Python, C++ and the multitudinous ways they continue to be used together in AI etc).
So you have to look at what existing leverage you have and build upon that foundation. It will be very difficult to get a role without getting some hands on experience back first, so where I'd start is, could you step down to become IC at your current job? I'd be more interested to evaluate a candidate doing Python/Kotlin that wants to move into something adjacent than someone in management who just wants to be a dev again.
VBA.
Good luck!
I retired (after 18+ years at Google) last August, and as of that date A LOT of production code used languages different from C++ -- Go, Java, Kotlin, AND Python, plus a few more (Rust, Dart, and many others). In my successful, long career at Google I did use C++ (I had "readability" in C++), but rarely: only when "ridiculous scalability" was needed.
For example, collecting Stackoverflow posts about GCP products, and distributing the needed subsets of them among vendors and employees in tech support to potentially answer, comment, edit, vote on, re-tag, &c, used to be all Python (and the "scale" was a few hundred or thousands of posts and people at a time -- ridiculously small "by Google `production` standards", and perfectly adequate for the much-higher-programmer-productivity Python has always afforded... I know, because I did the vast majority of that coding, including maintenance, ongoing monitoring of performance, and VERY occasional optimizations if and when monitoring showed them to be desirable).
That was the core of my job for my last several years at Google -- I won't even list the many other NON-prototyping tasks I did in previous years (decades, almost), the vast majority of them in Python. And -- the majority of my performance reviews during those 18+ years were rated "exceeds expectations", so it seems that world-class Python skill (which clearly was crucial to me getting a hiring offer back in 2004, though, alas, visa issues delayed my start to early 2005) were extremely useful for at least some of us Google engineers.
Alex
That is quite the claim, any source?
Edit: I guess I'm not sure on whether large training runs count as prod or not. They're certainly expensive and mission critical.
[flagged]
I have worked on a team which trains foundation models
4 replies →
Even still, the need to prototype does not go away.