[ad_1]
This week we welcome Steven Diamond as our PyDev of the Week! Steven is a core developer of CVXPY, a convex optimization package deal for Python. Steven has additionally been an teacher at Stanford. You may see what else Steven has been as much as by testing Steven’s web site.
Let’s spend a while attending to know Steven higher!
Are you able to inform us a bit of about your self (hobbies, training, and many others):
I’m from Seattle initially however have lived within the Bay Space for nearly fifteen years. I work at an vitality startup, Gridmatic, the place my principal focus is optimizing large-scale batteries. Previous to becoming a member of Gridmatic, I did a PhD in laptop science and labored at BlackRock. My hobbies are touring with my spouse, operating, and caring for our fruit timber.
Why did you begin utilizing Python?
I began utilizing Python after I discovered to program in highschool. At the moment I performed round with many alternative languages, however Python was the one which appealed to me probably the most. Python felt so intuitive and user-friendly that it grew to become my go-to for private initiatives.
In undergrad, I grew to become extra aware of the Python ecosystem, notably Django and numerical packages like NumPy. I actually grew to become dedicated to the language although after I began working with my PhD advisor. He and certainly one of his college students had developed a extremely popular Matlab package deal for mathematical optimization, and certainly one of my first initiatives in his lab was to construct the same mathematical optimization package deal in Python. That was the origin of CVXPY, the open-source package deal I assist keep.
What different programming languages have you learnt and which is your favourite?
Python is in fact my favourite. Over time I’ve developed in C, C++, Java, and JavaScript. Extra not too long ago I’ve been studying Julia, which is a pleasant language for scientific computing. I want to spend extra time taking part in with practical languages, and perhaps sometime perceive what a monad is ????
What initiatives are you engaged on now?
I’m busy with my job as of late, so my open-source work is proscribed to sustaining CVXPY. We had a massive launch not too long ago, which added a brand new compilation backend, help for mathematical primitives utilized in quantum data, and plenty of different options! The brand new compilation backend brings necessary efficiency enhancements to CVXPY in addition to provides a long-term path to supporting ndarrays.
If I had extra time, I’d work on debugging instruments for CVXPY. After I first developed the package deal, I didn’t perceive how necessary debugging instruments are to the person expertise. It sounds apparent looking back since in fact, we use debuggers on a regular basis whereas programming. However since I used to be so aware of the CVXPY package deal I didn’t respect the challenges a brand new person faces.
Which Python libraries are your favourite (core or third occasion)?
My favourite needs to be NumPy, because it’s so foundational to the scientific computing ecosystem. I want to spotlight some Python packages I notably like associated to mathematical optimization. GPkit is a superb package deal for modeling optimization issues in engineering design. PyPortfolioOpt did a wonderful job of constructing abstractions for portfolio optimization. Lastly, PyPSA is a package deal I’ve discovered helpful at work for modeling vitality programs.
Are you able to give a fast synopsis of convex optimization in laymen’s phrases and what varieties of issues it’s used for?
Convex optimization is a selected strategy to expressing the computation you need as the answer to a mathematical optimization drawback. For instance, you would possibly compute the trajectory for a spacecraft by fixing the optimization drawback of attending to the vacation spot whereas minimizing gas use. Convex optimization focuses on a set of optimization issues that may be solved shortly and reliably. Convex optimization has purposes to fields as various as machine studying, management, finance, sign and picture processing, and engineering design.
Is there anything you’d prefer to say?
I’d encourage folks to grow to be concerned in open-source improvement if they’ve the time. After I was first beginning as a programmer, contributing to an open-source undertaking appeared method past me, however now that I’m on the opposite aspect of the fence I can see that even small contributions are useful and appreciated.
Thanks for doing the interview, Steven!
[ad_2]