Django Chat

Django in Space - Loes Crama

Episode Summary

Loes Crama is a software engineer contributing to ESA's NewAthena mission at cosine measurement systems in Sassenheim, The Netherlands. We discuss her lifelong interest in space and her day-to-day work combining software engineering with data engineering and data science.

Episode Notes

🔗 Links

📦 Projects

📚 Books

🎥 YouTube

Episode Transcription

Carlton (00:00)
Hi, welcome to another episode

of Django Chat, podcast on the Django web framework. I'm Carlton Gibson. Joined us every by Will Vincent. Hello, Will.

Will (00:06)
Hey Carlton.

Carlton (00:08)
Hello Will. And today we've got Luz Klammer with us who built uses Django to build telescopes or something, which is

Loes (00:13)
haha

Carlton (00:14)
you know. Welcome aboard, Luz. How are you?

Loes (00:16)
Hi, thank you. Yeah, I'm really good. Thanks.

Carlton (00:20)
That's good. Go on. So we we were g I've s you know, I was talking about the telescopes, but you've got more to say. How how how how do you let's go with your backstory. Let's do the old the old Django chat backstory.

Loes (00:31)
Sure.

Carlton (00:32)
d how do you find yourself in the in the Django and Python world?

Loes (00:37)
So I was not familiar with Python and Django before I studied computer science. I had no idea about both concepts basically. So when I did my computer science studies in university, I got introduced to Python and I find it a great language to work with initially just looking already at the syntax was for me, it was so easy for me to pick it up and it felt very natural for me to use in that sense.

And Django was something that I got introduced to a little bit later, actually in my career only at work. So throughout university, I did not do any Python projects. There was just one course that was focused on scripting. So we just wrote these short scripts basically to do some small calculations, for example, read out a CSV file, stuff like this. But Django came a little bit later.

Carlton (01:35)
So I guess I'd like to ask it, as you know, so computer science they often don't teach sort of what we think of as the practical end of programming, things like web development. Was there a web course even?

Loes (01:44)
So yes, there were a lot of them actually and we did a lot of practical projects, a lot with actual companies as well. So we worked together with certain companies or institutions where we would have a data set, for example, and build a web app around this. And this would mostly be done with web frameworks, things like Angular or something like this. But the backend would usually be something in Java, like Spring Boot, example.

Carlton (02:12)
Right, and then a JavaScript front

end.

Loes (02:14)
Exactly, yeah. So not a lot of Python involved actually. I'm still surprised by this that it just hasn't picked up.

Carlton (02:23)
Y

my k my son's just gone to university, he's just learning and the f the first language they're teaching him is Python. and

Loes (02:29)
Really, that's great. For

me, the first one was Java. And I feel like they

Carlton (02:33)
Yeah.

Loes (02:34)
should have done it a different way. First Python and then the rest,

Carlton (02:39)
But th

that might be a a time thing, right? You know from what used to happen first of all.

Loes (02:44)
Yeah, maybe. I feel like

also, Python is now more popular than like 10 to 12 years ago. So maybe because of this, there's also a little bit of a shift in universities as well where professors start to realize we should use Python instead to get people prepared for the workforce.

Carlton (03:03)
Okay, okay.

Will (03:04)
I I

think it's an a generational thing. I mean, because a lot of professors, if they're older, they've used Java. They don't know Python as well or

Loes (03:11)
Yeah.

Will (03:12)
they I've had this debate with professors and like, why don't you use Python? They're like, Well, because I don't because I know Java and we and and then they say we want our students to know multiple languages, so you know, the younger professor can teach Python.

Loes (03:27)
Exactly, yeah.

Will (03:27)
You know, and and

they certainly don't know JavaScript, most of them, right? Because if they're

Loes (03:31)
Yeah.

Will (03:31)
spending their career on algorithms like they don't so yeah, I remember here in the United States, MIT was one of the first universities to use Python for the intro class and was a really big deal five, ten years ago. I still think Carleton Java is

you know, as popular if not more, still for the intro classes, largely because you get a senior professor who's just like, I just do it in Java and they'll get Python later.

Carlton (03:56)
Well you know, it's

re it's real software engineering as well, right? Whereas you know, slap it up and by the

Loes (04:01)
And also the

Will (04:01)
Well you have ti

Loes (04:03)
object-oriented part, course. It's a great introduction for object-oriented programming and how these concepts work, of course. So in that sense, it's still a great language to start with. But nowadays, Python is fully capable of also handling these types of concepts. So I think you can easily use Python as an introduction to a course as well.

Carlton (04:26)
you you interested like you work you build s telescope site which we'll talk about in a minute, but did that was there a connection there that drove you to computer science or?

Loes (04:36)
Well, I was always, when I was a kid, was already really into space and just anything related to space fascinated me. But I never realized it was actually like a viable career option. I just thought it's either an astronaut or nothing. And I was like, well, the chances of me

Carlton (04:51)
Right.

Will (04:51)
Ha ha.

Loes (04:53)
becoming an astronaut is very, very small. So that's not going to be it. And when I eventually had to choose and pick a

a direction in which I wanted to go for like university, I found out about computer science and I was like, well, I've always really liked working with computers and it was also big interest of mine. So I figured I might as well just do this. And then later on I realized that, well, the space industry is actually an industry in which you can work not only up in space, but also there's a lot of people here that...

that

are there to build the actual satellites or use the data that comes back from a certain satellite or telescope. There's a lot of different jobs in this industry. And then I realized maybe there's also something for me in there. And it actually opened my eyes a bit because I realized that there's quite a few software jobs in this industry as well. So that was perfect for me to...

kind of go into there through like a little back door or something. So it was not directly the initial plan to go into this field, but yeah, eventually I could still do it via software.

Carlton (06:16)
Okay. And so you picked up Django at work, but then we know you from Django cons, Django in Europe.

Loes (06:21)
Yes,

that's true. I was introduced to Django, think a few years ago, I think it was like four or five years ago. colleague of mine had used it in the past and he pointed me towards it because I was looking for this new tool that could help us with this exact existing MySQL database that we had.

And I was looking into how can we make this easier to use because it was a very old app and it hadn't been touched in a long time and I realized, well, if we still want to continue doing this and I'm now working here as a software engineer, I need to be able to maintain it and understand what is going on. And then I looked into a few tools. I was just doing this little research on what is out there, what can we use as an interface to talk to this database. And then my colleague told me about Django.

And I googled it, I followed the tutorial and within like one afternoon I had a running app. So for me that was perfect. I was just like, it works. that's it. I'm done. So.

Carlton (07:27)
Right, there's the short for the episode. W you know, an hour later I had it working and job done.

Will (07:32)
Yeah, I I mean I think the key is you you already knew Python a bit. You had a formal education

Loes (07:36)
Yes.

Will (07:37)
and you had a background in web frameworks, right? Because I think, you know, as an educator, what I see is people have never used Python or they've never done a web framework. And so the polls tutorial I think is perfect if you have a little bit of experience as you did. But if you're a a total beginner, it's overwhelming. so maybe this is a Django on the med sprint. If I can come to Malta, Carlton, I want to finally push to get a, you know, a second tutorial.

that's a little bit friendlier to beginners.

Carlton (08:05)
tutorial

for beginners. It's like when I was learning, I wanted to learn. I went to I wanted to learn Python. I went to the Python tutorial. And the Python tutorial is really hard. It's for experienced programmers

Will (08:14)
Yeah, it is.

Carlton (08:15)
coming from another language. And I was like, no, this

Loes (08:17)
You

Carlton (08:18)
isn't for me. This isn't for me. I found, you know, I found some dive into Python stuff, which was much more, you know, much more appropriate

Will (08:24)
Yeah.

Carlton (08:24)
for me.

Will (08:25)
Wait, so so the so the interface you built, were you then interacting through the admin? Did you build up like a website? Like what what was the next step on

that project?

Loes (08:34)
So

when I just installed it, was just the simple app that came out of the box. So just the admin and basically a direct connection to the database, no fancy APIs or anything in between. And that just worked for us. And also because we don't have a really big user base, we decided to just stick with this and actually use the admin. And this is still our primary interface, even after all those years.

I think there's a lot of people who disagree with me and they say don't use the admin for your end users. I also highlighted this in my talk earlier in DjangoCon. There's just a lot of people who are against this whole idea of using the admin directly for the end users because you give them a lot of power. Thankfully, we only have about 40 to 50 users because it mainly consists of the team that is using the app.

So the people that use it actually work here. So if they have a question, they can come up directly to me or other software engineers. And also if they do something that is not correct in the database, they mess up some data, then it's just a quick conversation just saying, hey, you shouldn't do this in the future. And then we just move on. So because we have direct contact with our end users, it's really easy to.

maintain all of it and also keep the data clean.

Carlton (10:05)
Yeah, th there's some line somewhere in the docs, I can't remember exactly what it says, but something like the admin is for trusted internal users. And it's like that kind of fits your your description.

Loes (10:15)
Exactly. And I can imagine if you have a Django app or you have external users or maybe like 40,000 users that you don't know personally, you cannot contact directly. And of course you're not going to give them the Django admin interface because that's very scary and they can do anything at all times. So I can imagine for those use cases you would want to have some sort of interface in between. But for us it works really well.

Carlton (10:41)
And do you use the the permissions to just sort of restrict what people can see to guide them into your own yeah. It makes a lot of sense.

Loes (10:45)
Yes, yeah the the groups and the permissions

we use them a lot.

Will (10:52)
Have have you had to do custom things to speed up performance? Because the admin can be slow if you have a big database.

Loes (11:00)
So the database I would say it's not that big. I think we...

we helped make it faster by using the debug tool bar, the tool that helped us give us more insight into which SQL queries are actually running in the back. And there we had already done a lot of optimization to make sure that the actual admin pages load pretty quickly. And this was already quite sufficient for us.

Will (11:33)
Wow. And did you are you using a theme or is it just the default theme?

'Cause it okay,

Loes (11:37)
It's the default.

Will (11:38)
'cause there's a lot of fun themes out there. I'm always

Loes (11:40)
Yeah, I know, I've been

looking into it, but I'm scared that the users will be angry at me because they're like, no, we've done it for so many years like this and now it's suddenly pink or green, what's happening?

Carlton (11:52)
They sound like they they make good veterans on the Django developer mailing list as well. Anti change.

Will (11:57)
Yeah. Yeah. Wait,

so so you mentioned in your your university studies you worked with some industries. How did you you're at a company Cosign now, did you do a project with them as a student or how did you find your way to where you are now with work?

Loes (12:12)
So,

well, I always had the idea of doing something with the space industry in the back of my head. at some point, I was following this minor for one semester, which was aerospace engineering and maintenance. And that's where I slowly got introduced in this whole world of aerospace and space as well. And during this semester, we had some company visit to various

space and aerospace companies, example Airbus, but also the European Space Agency. And yeah, this basically slowly introduced me into this world and I got to talk to a few people, I got to understand how software is also being used in these industries and then I more and more started to realize that this was the way I want the direction that I wanted to go in and eventually I needed to do a graduation internship and I heard

from a friend of mine about cosign. And it was also very close to my hometown. And I figured, well, that's super easy. It's super convenient. And it's exactly the type of work that I wanted to do. So I just sent my ACV asking if they had a internship for me. And they said yes. And then I did my internship here. And after that, I just basically stuck around. And six years later, I'm still here.

Will (13:36)
So now you're running

everything, right? Well

Loes (13:38)
Yes. Exactly.

Carlton (13:39)
Slowly work your way towards the corner office.

Will (13:44)
And is it is the main project this new Athena telescope? Is that the main project or are there other ones as well that you're working on there?

Loes (13:52)
So we have two big teams here at COSIGN. The one is remote sensing. And this is the business unit that focuses mostly on remote sensing applications. So think of things like Earth observation, where you send a satellite up to space and then you take pictures of the Earth, for example, to understand the climate or what is happening in certain areas.

The other team is Siliconport Optics, that is the team that I'm in. And this team is mostly focusing on technologies that work with high energy. So in this case, it's mostly X-ray energy. And the biggest project here indeed is New Athena. And this is basically a contribution to the European Space Agency. And we are going to make the mirrors for the space telescope.

Because

it's an x-ray telescope, we cannot just create one mirror, but we need to make 100,000 individual mirror plates. And we need to stack them in a certain way so that they're aligned correctly so that the x-rays can go through them and be reflected to the detector. So there's quite some rocket science involved there. And the Django app is actually there to...

track all of these different components. So each of these individual mirror plates, they all have this unique idea and we track them and we track their processes, we track the quality, also the configuration, like how big is the plate, what type of material is it made of, these types of things. That's basically what we track in there.

Will (15:35)
And then is that and that's going live in twenty twenty eight? Is that the plan? Something like that? Thirty eight. thirty eight. wow.

Loes (15:41)
38 I believe. So

we go into production in like a year or so, then we actually have to deliver the mirrors to ESA. Now we're still in this sort of ramp up to production. So we still have some time to do some R &D and test a few things and experiments. This is done on a daily basis in the labs.

the scientists and engineers work in in the clean rooms and they basically try to find the best configurations for all these mirrors and once we actually go into production then we deliver them to ESA.

Carlton (16:22)
You you talked about this in where was it? Athens. You talked about this in Athens, in your DjangoCon

Loes (16:28)
Mm-hmm.

Carlton (16:28)
talk. you me i it was this wonderful story of like how you've got like this ten year timeline, but also it's quite tight. It sounds like 'cause it sounds like the the programmer's worst nightmare is that you've got far too long before you have to deliver, so you won't do anything for nine and a half years and then really rush. But there's none of that, right?

Loes (16:46)
No, no. And thankfully there's some sort of milestones that you work towards. So we have contracts with ESA that don't spend like 20 years, but only like a year or maybe three years. So there's still some reviews in between and some things that we discussed that are deliverables in the meantime. So yeah, we actually have some things to work on. It's not that we can just sit back for 19 years and then in one year we just...

Work really hard and hope for the best.

Carlton (17:16)
Yeah,

so so any take home man project management tips for the rest of us who don't have

Will (17:24)
Yeah. I'm curious what what does a day look like, right? Is is there a typical day? Is every day different, right? That's always you know, I know people who are outside of the industry are always they don't really know what a programmer does. And partly

it

Loes (17:38)
Mm-hmm.

Will (17:38)
it varies so often. So if there was a typical day, what would that sort of look like for you in terms of being in the office and and what you're doing?

Loes (17:47)
Well, I wouldn't even know either because every day is very different for me. So

Will (17:52)
Okay.

Loes (17:52)
because my job is not only software engineering, but I do some data engineering here and there, some data science if I'm interested in it, if I feel like it. Thankfully, I get a lot of freedom to work on the things that I actually want. So this is really nice. So it kind of also depends on...

We look at basically the different open issues that are there in our internal GitLab instance. We have a look there. We see are there any issues that have a really high priority? Are these things urgent? Should it be done immediately? Then of course they will go first. But if that's not the case, then it usually depends on whatever they're still left to do on my to-do list. And it could range from setting up some...

some data pipeline, for example, with some data that we collected from the clean room that needs to be processed and plotted and visualized in some way. But it could also indeed be something like standard Django maintenance on some form or maybe on the admin side, maybe a new feature that user wants to have implemented. Or it's something that is more about

things like data engineering, like how are the data pipelines actually running, is everything running correctly, and what are the logs saying, stuff like this, more in terms of observability. So it ranges very much. But I really like this. It's sometimes a little bit of a challenge,

Will (19:23)
Yeah. That sounds fun.

Loes (19:26)
but it's really fun. Yeah.

Will (19:28)
I mean that sounds like a lot of a yeah, a lot of autonomy, a lot of areas you get to to work in. I mean I think in Django Con Dublin, you came up to me, I think, af I gave a talk on Django for AI and one of my questions was how many people are doing web work versus data science work and ob almost nobody's doing both professionally.

But you are actually right. So you're you're

Loes (19:50)
Yes.

Will (19:51)
which is so you should give an updated version of that talk, right? But

Loes (19:55)
Yeah

Will (19:57)
but no, that sounds w I mean that sounds like a perfect setup for an engineer to have

Loes (20:01)
Mm-hmm.

Will (20:01)
new things to learn and not just the same old stuff. That sounds yeah.

Loes (20:05)
Yeah, exactly. It's

nice that you can learn a few new things and not just doing all the same things day by day, but you get to work with newer technologies and try them out first, see if they actually work and if they don't work, then they don't stick around and that's also fine because we do want to have our tools very stable, very reliable because it's such a long term project. We really want to make sure that this would still work in 10 years. And because of this, we do

really test our tools first before we actually decide to go on with them. But I think Django is a perfect example of one of these tools because it is so stable and even over the different major releases it still proved to be so well done and it still works the way we want to. I remember when I was just getting into Django I was reading the book Two Scoops of Django and we had a really old edition here in the library at work.

And I think it was one of Django 1. something. And at that time we were already in Django 4. something. And I was reading it, but still everything made sense because the core of Django did not change

Carlton (21:17)
Yeah, nothing changed.

Loes (21:19)
basically. I could still use the book for a lot of things. And of course there were some minor things that may have changed or some name changes maybe here and there and I had to look it up in the documentation. But the core of Django was still the same. And that's exactly what we're looking for in terms of

software tools for these types of projects.

Carlton (21:38)
Yeah. I think that the people using Django in the real world, that's a story that we hear again and again and again. It's that it's s it's it's stability, it's reliability, it's the fact that it doesn't change that actually why companies choose it and you know as you say, a ten year ten year, twenty year project, you know, a framework that's gonna be with you from start to finish is of value, right?

Loes (22:01)
Exactly, yeah.

Will (22:01)
Yeah.

I think that was I had all the versions of two scoops. I think it was one eleven, I think was the last one, and and then there was some stuff around the URLs changed in two point z and but it was encyclopedic the book, really. You could dive into sections, so it it worked really well to have great advice on it.

Loes (22:21)
Exactly, yeah.

Will (22:23)
I d I did want to ask so databases. So you mentioned there was a MySQL database. Do you is it all MySQL? Do you sometimes use Postgres? Do you have needs for non-relational databases? like 'cause the data's varies, I imagine, right?

Loes (22:38)
Yes,

so for the components themselves that actually go into the telescope, we can just use MySQL for this. It's just because there's also various relationships between these components, like also physically, it makes sense to have a relational database as well.

And that works really well for us. But there's indeed a lot of measurement data and actual experiments that are done where data sets roll out and we store them in various different ways. the biggest other data source that we have is MongoDB. And this is basically non-SQL data, of course. And it's very flexible for us because if a experiment changes over time,

then that's okay, like we can change the key value pairs and nothing will be affected in terms of previous measurements or records. So that's really great for us. And we store all kinds of data sets there, short-lived experiments also in case we have something that we just want to test out for let's say like two weeks and then we decide not to continue with this method. Then it's okay, we still have a record of the data at least, but yeah, we can store it and we don't have to think about any.

structures or tables or anything like this. the MongoDB database is used a lot in this case. And then we also have InfluxDB, which is a time series database, which we mostly use for environmental data. So we monitor, for example, the air quality, the temperature, humidity of the clean rooms. This type of data is all stored in InfluxDB.

So yeah, these are

Carlton (24:27)
Okay.

Loes (24:28)
basically the two other big data sources that we use here.

Will (24:30)
Yeah. Well that that's great to hear because MongoDB had added official support for Django, I think, two years ago.

Loes (24:37)
Yeah.

Will (24:38)
and yeah, because they saw in the survey results a lot of people are using it and so it makes sense that another example of where it's being used. Carl

Loes (24:50)
Yeah, no, I've yet to try

out the connection between Mongo and Django. I've not tried that yet because most of the data that we have in Mongo, we read out through Jupyter notebooks and some

Carlton (25:05)
Right.

Loes (25:06)
custom aggregators that we've written in Python and then use that in Jupyter. But yeah, I think there could be potential to...

to connect Mongo and Django. Exactly. Just the admin

Will (25:19)
Another Django admin there, yeah.

Loes (25:23)
works fine.

Carlton (25:25)
Just inspect D V and you're done. so you so

Loes (25:28)
Exactly.

Carlton (25:29)
so you work in this very conservative environment, but what about the new the new topless, the new the new tools, the the AI agents and assistants and and things like that? Are you are you giving those a go? Are they do they find a space in your work?

Loes (25:43)
Yes,

actually. We see that everyone in the company is interested in AI. It's just because people are curious about new technologies in general. But we also realize that we need to protect intellectual property and we focus heavily on privacy and we try to limit the tools that we have.

in the cloud basically, so we make sure to host as many software tools local as possible. So we have... Exactly, yes, yes.

Carlton (26:11)
Yeah, you mentioned you self host GitLab before. Yeah.

Loes (26:16)
And we don't use tools like Teams or Slack or something like this. We have elements.

Yeah, so everything is very local and it's the same for AI because at some point people started to use chat, GBT, Claude, everything looks super interesting of course and it was like the shiny new tool that everyone wanted to use. yeah, within software we realized that there was still a need to use these kinds of tools but at the same time we didn't want to have people upload whole design documents of telescopes to some random server in America.

So this is where we looked into a local AI stack and we basically set up this local AI tool that consists of Olamma and we use the Lama models in here as well. And we have open web UI where we have this chat interface. So it feels very similar, very natural for the end user, similar to, for example, in chat GPT where you can just type in your question.

And we have also some custom scripts where we upload the different documents to an internal document database. in this way we still have the context that is required to understand certain problems or understand certain projects.

And the local AI is actually really, really good at understanding these different things. So we have like technical notes or maybe internal minutes from meetings and with the help of these documents, we get quite far with this local tool.

Carlton (28:00)
Okay, that's super. Can I just ask a technical question about the size

Will (28:01)
Are you are you go ahead.

Carlton (28:03)
of the sorry, well about the size of

Loes (28:05)
Sorry, what?

Carlton (28:06)
how how how big a machine do you need to run, you know, decent

Loes (28:09)
So we actually

recently had some hardware upgrades for this because yeah, was indeed required because otherwise we couldn't upload as many documents and we couldn't run heavier models. I'm not sure about the exact specs, but yeah, the upgrade has helped significantly. Yes.

Carlton (28:27)
Goes a bit faster now. Go go on, Will.

Will (28:27)
Wait, but s well v cause

one one of the conversations at DjangoCon US was around so some people have the new MacBooks, the fives where they can run a lot, but then a number of the consultancies are buying, you know, foundation or NVIDIA chips like literally in a closet for their team.

so I guess that was my question. If you know, is it like in a closet somewhere you have some fancy laptops or do you have your own private cloud or do you know how the that's being set

up?

Loes (28:57)
So

yeah, we actually have a lot of servers just here, just physically here. So it's all running locally. Yeah.

Will (29:05)
It's crazy. It's so like you're you're too

young, but for Carlton and me, right? Like I was around before the cloud was a thing. And it was it was literally in a closet. And there was like one guy who was grumpy. Carlton, you would have been good at this role, right? It was this like this grumpy guy

Carlton (29:19)
Ha ha ha ha.

Will (29:21)
who like nobody wanted like was the only one who knew how to do anything. And you and that was how it all worked. And then everything went to the cloud and now, yeah, everything's coming back and

Loes (29:31)
Yeah.

Will (29:31)
It's right

c it's interesting to see to see that, Carlton.

Carlton (29:35)
Well, I I used to you

telling that story when I was doing my PhD, I used to sit in the this downstairs basement room in the philosophy department and read because there was a server covered in there and it was really warm. It's like the warmest room in the department.

Will (29:49)
In damp Britain, yeah.

Carlton (29:51)
Yeah yeah yeah

no it was brilliant. Anyway, I'm sure there was a question for Lucy there somewhere.

Will (29:53)
But I but I think I no, well

I think I mean Carl you you said

Loes (29:57)
No, it's a great story.

Will (30:00)
A AI first, Carlton I I held off. So now I can say PyCharm. So we are d adding JetBrains is adding a bunch of functionality for local, you know, in addition to cloud support for frontier models, local things that you can run on your device and

I think it's yeah, it's already pretty close and the the divide that I see actually is people who have access to frontier models. They talk about how the the tip of the s the the you know, fable and the newest models

think too much. So you actually, you know, you give them the planning, but the implementation, you use a in quotes dumber model that won't, you know, lie to you and stuff. So I I think, yeah, local all the way, you know, for cost reasons and security reasons. I'm surprised more people aren't aware how bad the security is. I mean, even in the United States, there's court cases. I have friends who are lawyers who are now using AI and they don't think about the fact

Once it's in Chat GPT or Claude, like it's there. so I suspect they're just a couple of years behind everyone else in realizing like it's the same as typing something into Google. Like if you type something into these services, not to mention they'll steal it and then, you know, then t win a fields medal or whatever, a Nobel Prize and and cut you out, which they also like

Loes (31:19)
Yeah, exactly.

Will (31:20)
they also seem to like to do.

do you w one actual question. Do you have a f a favorite model for for coding that you've seen? I mean, I think in the notes you mentioned Quin three or Gemma. Is there one that you've a daily driver?

Loes (31:32)
Yes, the one

that I work with a lot right now is the QWEN 3 coder and I have to say that is actually pretty good, especially for Django, I would say. some generic setup things like configuration files, of a GitLab YAML or stuff like this. I've been using it in that area lately a bit, but yeah, I'm really...

Will (31:58)
That that's what I hear too.

Like I ran a open space at DjangoCon. Basically, like let's let's compare models and you know,

Loes (32:04)
Mm-hmm.

Will (32:05)
people complain but a lot of people s liked Quinn three in in particular. I think in part because it

Loes (32:10)
Yeah, I think it's really good.

Will (32:12)
it would just do it. Again, these people would talk about in a anthropic context, they would say fable for reasoning, but opus for for doing and

sorry sorry, one more question on this. do you are is your team using custom harnesses at all or are you just interacting directly with the the models?

Loes (32:33)
Just interacting directly, mostly. And most of the users just make use of OpenWipe UI directly and then just asking a question or two, nothing too fancy or anything.

Carlton (32:48)
And how do you think it changes the role? Like, you know, does it it cause do you think it puts us out of work? You know, it's

Loes (32:57)
No, definitely not in this field because I've tried it with data analysis and it's horrible. It just doesn't work. It's not able to comprehend what we're doing. We're talking like things like astrophysics or mathematics. It's just not able to pick up these things and it will spit out something that's just incorrect. So in

Carlton (33:19)
Yeah.

Loes (33:20)
this field, I think we're fine.

But I have to say with Django it is really good, it's really accurate. Also probably because there's just so much out there on the internet so it's been trained on all these different sources. But I'm not worried that it will like do the full-on takeover or anything. There's still so much that humans do better than machines and I think humans...

are way more critical of the work they deliver and an AI doesn't do that. It just spits something out and it doesn't review it and have like a double check and see if it's actually the good way to do something, a certain task for example. And humans actually are very critical, especially on themselves or on other developers. yeah.

Will (34:15)
I I don't wanna

Carlton (34:16)
Okay.

Will (34:17)
be too on the AI side, but I think harnesses, if you look into using custom harnesses with AI models, they do do a lot of the review and and checking. And so,

Loes (34:29)
Mm-hmm.

Will (34:30)
you know, for your team, I would strongly suggest looking into some harnesses. it makes a big difference, actually. I

Loes (34:37)
Yeah.

Will (34:38)
I I still agree there's still something humans can do better and you know, judgment and stuff, but if you're just d

If you're not using a harness, I think you're really missing out, especially with Django on what what they can do. And there are open source local harnesses you can use.

Loes (34:52)
Yeah,

no, it's definitely worth checking out, indeed. Yeah.

Carlton (34:56)
Do I want to come back

Will (34:57)
Carlton.

Carlton (34:57)
because you said you built your whole wrap around the admin and then you gave it to 40 users and they build it and you're five years in. You must have done some pretty gnarly customizations.

Loes (35:07)
Yes. There's some

Will (35:08)
Ha ha ha.

Loes (35:11)
things that slipped in between the admin classes sometimes, but it's still, it's not hacky or anything because it is so robust. Exactly. I understand it.

Carlton (35:20)
no, yeah, of course not. You write it.

Will (35:22)
Ha ha ha.

Loes (35:26)
No, think it doesn't feel hacky at all. And I think the admin actually allows for lot of customization. And because of this, it feels natural to add things to it. And there's a lot of extra packages that also make the admin.

easier to use. There's for example one package that is called DjangoQL and you can do SQL queries on the data in the search bar, in the top search bar in the admin. And it works really well for some of the users who want to.

filter on results that are a little bit more complicated than just the generic look up something, a name, like a part of a name or a description. They can look on multiple conditions, for example. so these things are really nice additions to the default Django admin. And it doesn't feel

Will (36:22)
I yeah.

Loes (36:24)
like it shouldn't be there or anything.

Will (36:26)
So I I I love this about Django. Like so Django QL, I I hadn't heard of it. I go look it up as as you're speaking and you know, there's over a thousand stars. And so, you know, I just love that I I every day I learn something new about Django, right? It's big enough that there's and clearly it's, you know, nine years old and, you know, like or yeah, nine years ago it started. So there's just such a depth to

Loes (36:52)
Yeah.

Will (36:52)
to things. But I I know you there's a number of other tools that you use. I think Django Simple History is that one as well is are

Loes (36:59)
Yes.

Will (36:59)
there some are there some third party packages that you really can't live without with your work?

Loes (37:05)
Well, indeed the Django Simple History, that's indeed the one that we use quite a lot because we just really want to monitor and track all of the history to all of the different components over time. We want to see what has happened to all these different things to ensure that all the procedures of course run right and then we can actually validate but also show ESA for example, like see this is how we made the mirror and it's exactly step by step how the procedure says we should do it.

And also we make use of Django Leaflet and this was kind of something that I was just personally interested in. Django Leaflet is basically a package that helps you show different maps on in the admin and make use of OpenStreetMaps for example. And we also track the

the geo-locations of each individual component because we sometimes ship the plates to another facility where we do certain tests. So goes to Berlin, for example, or it goes to Barcelona. And it is just really interesting for us to see some kind of like the history of where all these different plates, these mirror plates went to. And we even mapped it out in such detail that we have this

geospatial map of all the different clean rooms and we track for each different plate in which clean room they are currently at and where they're going. So together with the simple history, we can look up the Django locations, the historical locations, and then we can exactly see where a mirror plate has gone over time. And this is super interesting and it also helps for

clean-room operators and coordinators to see are we actually doing things right and is everyone tracking everything according to the procedures and how it's actually set in the documents.

Will (39:11)
And and and that's all Django Rest

Carlton (39:11)
That sounds fantastic.

Will (39:12)
framework for the APIs? Is it is it Django

Loes (39:16)
Sorry, I...

Will (39:18)
Rest framework? Is that what you're using for the APIs?

Loes (39:21)
Yes, so we basically use this Django app as like a central point of truth where we look up everything from the current state of what is happening right now in the cleanroom to the history from maybe two years ago or even further back. So because of this, it's also important that we can retrieve this information through an API.

and not only just through an admin interface. So with Django REST framework, we've made this small API that can just retrieve all of this information and we then use this API again in some of our Python tools to fetch the data and to see, for example, the latest status of some plates to understand what's happening to them or get a filtered list of certain components, stuff like this.

Carlton (40:20)
And you talked about Django QL and being able to type slightly more complex SQL expressions into the search to kind of filter down. How do you it sounds as if your data model would be one of those ones where access to raw SQL would be quite important because complex queries and

Loes (40:41)
Mm-hmm.

Carlton (40:42)
it's not always so easy to construct the right filter and values combinations from the ORM. D how do you find the

the the the of the expressiveness of the ORM. Is it sufficient from for a lot or do you need to drop down to raw SQL a lot? Did

Loes (40:57)
No, think it's actually sufficient for us. And I think that's also thanks to Django QL. A lot of users are now happy with that package. So there's not a lot more extra to add. The current setup that we have is sufficient for me as a developer, also for the end users who just want to look something up with some extra filtering or sorting options.

Carlton (41:20)
Okay.

Will (41:23)
before we get to projects and books, I know there's some listeners who are interested in the space industry. Like what sort of advice do you have for someone who maybe knows their way around Python and Django, but thinks, like, what do they need to do or or think about to to also work in a space industry?

Loes (41:39)
Well,

I think you shouldn't be intimidated by the industry because I was at first definitely intimidated by it because I thought, I need like a physics degree or I need to have a master's or a PhD in astrophysics and I need to be able to name every individual black hole from the top of my head or something. But that's not the case. Space is a very, very big industry and there's a lot of different roles.

And because of this, it's also very accessible for software engineers. I think a lot of the people that work in this industry, come from this sort of like intrinsic passion and their own obsession with it basically. So every time you talk to anyone who is in the space industry, they have some personal...

relationship with space, basically. There's one person who maybe has done a full PhD on one specific black hole and is super obsessed with it, while the other person just is really fascinated by space and watches space documentaries or even things like Star Trek every night. It doesn't have to be super complex or anything. As long as you're interested in the field, I think you can get quite far. And if

If you're curious, then that can already help you get really far here.

Will (43:08)
I I think I'll have to point my my six year old son in this direction because on the walk to school this morning he was asking me about black holes. Like he's upset. He's like, What's inside a black hole? And then he said, Well, what happened before the Big Bang? And you know, so maybe maybe he's a philosophy person too, Carlton, right? He's he's fascinated and he's

Carlton (43:25)
maybe, maybe. Let's

Will (43:27)
like, What do you mean you don't know?

Loes (43:27)
Good bit.

Will (43:28)
You're an adult, you have everything. Or you know you know everything. But yeah, that that's great advice. I do

Carlton (43:33)
first insights to your fallibility well.

Will (43:38)
Not the first. Not the first.

Carlton (43:39)
Ha ha ha.

Will (43:42)
Carlton, did you have any ad additional questions before we

Carlton (43:45)
No, not real I mean, you know, we could I could talk forever about, you know,

Will (43:48)
Yeah.

Carlton (43:49)
th th th the work and the I I I

don't wanna like, you know.

Will (43:51)
Well, wait, let wait, let's

do let's do a plug for Django Cons. So you've been to three, I think, right? So Vigo,

Loes (43:55)
Sure. Yes.

Will (43:58)
Dublin, and then spoke in Athens.

Loes (44:01)
Yes.

Will (44:02)
I I mean, I met you in Dublin. You're you're not shy about going up to people and talking to them. Is that natural or

Loes (44:09)
Yes.

Will (44:09)
did you have to cultivate that, right? 'Cause sometimes like for me, my first Django Con I was a little more reserved and it was really only Carlton at my talk saying something and then talking after that sort of

opened it up but like, you know, you just came up to me after my talk, which I was like, that's great. So so I guess the question is like, did do are you have you always been that way or is that something you built up over time? 'Cause if you're an outsider you can maybe feel like, it's you don't know anyone at the first event.

Loes (44:36)
Well, that's true because indeed when I first went to Vigo, I didn't know anyone. So it was just me on my own and I

Will (44:43)
Yeah.

Loes (44:43)
didn't know what to expect like from DjangoCon in general. But I think the Django community is also very welcoming and it's one of the few communities where you instantly feel comfortable and things are not weird in a sense that if you go up to a stranger and you ask them a question like, hey, what do you do or how do you implement Django in your day to day life?

People are not shy to give you an answer and they don't judge you for not understanding certain parts. If there's, for example, a package that you've never used before, then they're like, well, we should have a look and read into it because it's a really nice one. people are able to explain complex topics. So I feel like it's partly the community that just makes it really easy to...

Yeah, talk to people and just go up to them. And also I feel like if you go to a conference, I'm just a curious person. I just want to know what are you doing? What keeps you busy? I want to know. I'm just very nosy.

Carlton (45:49)
Yeah. Dead. I remember you from Vigo from the sprints when you came up and you're like, You you do Django filter? and I'm like, Yes and you're like, Can we do this to to JSON fields? I was like, Yes, we can

Loes (45:56)
Yes

Will (46:00)
Well, I I think I mean the older I get, I think that's well, the the two attributes I would recommend to anyone is obviously kindness is number one, but number two is cre is curiosity. 'Cause it just takes you on so many interesting places and things and I think when I was younger I sometimes felt like you see people who are maybe quicker in math or, you know, faster in something, but

If they don't have curiosity, like that's what you need for the long term. and so along with kindness, those two really win out over time. yeah, so exactly. Like I'm I'm the same way. I'm always like, I don't know, how does that work? Like, tell me more, you know? Like

Loes (46:41)
Yeah,

exactly. It's just a matter of wanting to know and wanting to learn, I guess.

Will (46:48)
Yeah,

yeah. projects. So I'm gonna switch so sometimes we recommend projects. You've mentioned a couple. I think there was one we have in the notes that you want a non-Django one you wanted to call out. Is that right? Merimo?

Loes (47:01)
Yes,

it was actually one that I was introduced to at DjangoCon in Dublin, I believe, two years ago.

It's called Marimo and it's kind of similar to Jupyter notebooks, but it's more dynamic. So you can also write your own notebooks and play around with different datasets, but it has a little bit more dynamic elements to it. So for example, already in the UI, there's some sliders and some filters, for example, and you have immediate response in your plots. And I think it just looks very neat and very clean. We do use Jupyter.

at work, but I sometimes still play around with my remote just because I'm curious to see how I can visualize the same data in this framework instead.

Will (47:49)
Yeah. It it has a lot of momentum.

Carlton (47:49)
So is it like a more modern?

Will (47:51)
yeah, more modern. Yeah. PyCharm's added supports, so

Loes (47:53)
Yeah.

Carlton (47:53)
More modern Jupiter.

Will (47:54)
I've been I've been pulled into discussions around it and it looks very, very cool. And

Loes (47:59)
Yeah.

Will (47:59)
is gr is po very popular.

Loes (48:01)
Yeah, and it's getting more support with other packages as well in more of the scientific Python community as well. So that's really good to see as well that it's not just this hype project that dies out after a few months, but it's actually, it's there to stay.

Carlton (48:17)
Well, okay. And so you might eventually be able to smuggle into work.

Loes (48:20)
Maybe.

Will (48:23)
Carlton, do you wanna go

next? Do you have

Carlton (48:25)
Yeah,

I had a project which just is Django S E S, which is a Django email backend for Amazon's simple email service. Now I I use that and I've always just used the the API for it and whatnot, but this package looks like it's got a it's a nice email backend. I've always used the S SMTP.

to to actually send it the messages. But this uses the API directly. And then what it's also got though is this simple notification service, webhook integration. So you can get the the notifications for whether your emails are delivered or where they bounce. And that bit of it you've always had to wire up yourself. So I'm I s this came across my radar. I'm like, that might be to delete some code by adopting this. So I'm currently digging into that.

Will (49:07)
Well, we we didn't talk about this in advance, but my recommendation is actually also on this. It's Django Anymail and I have a story around it. So partly Django six point one updated the mailers in the settings, and I've been busy doing that with my new version of Django for Beginners, which will be out by the time this podcast comes out. but Django Anymail is the tool I like to use, and I use I used to use SendGrid for my personal projects.

And I was updating to 6.1 and I saw, there's no support for so Django Animail is my package. And then s my story is Sendgrid didn't have support didn't allow the Django Anymail volunteers to do the testing that they wanted to do. And so for a year and a half this was sort of stuck. and then I and some other people kicked up a little bit of a sp

hissy fit online about this and we're able to connect with the right person. So I'm happy to say that as of yesterday, there's now support again. And so Django Animail has official support for SendGrid as well as many other providers, including Mailtrap, who I actually ended up switching to because they sponsor Django Enemail. So a long winded way of saying like these these tools are important and useful and it's beneficial to companies to both respond to them and also to support them.

but I'm happy that had a nice conclusion. so thank thank you to the people at Sungrid who who ended up fixing that eventually. So Django and email. Yeah, yeah, I know. I mean I

Carlton (50:41)
Squeaky wheel squeaky wheel gets the grease, right?

Will (50:46)
I said something and I complained to Jeff Triplett and then Frank Frank Wiles said something and then someone else said something. So it certainly wasn't just me, but and then and yeah someone online who is it at

at Wagtail. anyways, got connected to the right person

Carlton (51:05)
Some

Will (51:05)
at Sun Grid. so yes, it all works out. books, the fun part. we do book recommendations. Luce, do you have a book that you wanted to recommend?

Loes (51:15)
Yes,

there's one that I recently read and it's called Weapons of Math Destruction by Cathy O'Neill. I think that the title

Will (51:22)
Yeah, Reddit, yeah.

Loes (51:23)
in itself is already genius. And it's basically how some algorithms that are used in big data can actually cause more inequality and eventually even threaten democracy. It can have quite a big negative impact on certain groups in a population. And there's some really nice

Will (52:10)
I lo I love that one. I think it's a it's a few years old. It was before AI or LLMs became

Loes (52:15)
Yes.

Will (52:16)
big, when I think the author was working inside I forget if it was Twitter or one you know, one of these companies and seeing firsthand how it perpetuates stereotypes and all again, all these things that are a little more obvious today, but were less so back then.

Loes (52:30)
Yeah,

especially reading it in this day of age, you see that there's some things that she had predicted and you're like, wait, these things actually came through and it's kind of scary, but also really intriguing to see. Yeah, it's a really good book.

Will (52:47)
Carlton, another philosophy book?

Carlton (52:49)
No, I'm still reading Concept of Mind by Gilbert Ryle that I was reading last time when we had John on. philosophy books they go slowly, but has made me pick up a bit of Aristotle, I've picked up a bit of Kant, I've got picked up a bit of Nelson Goodman, so I'm I'm just having massive fun. when I finished it, I'll have a fresh book recommendation. But in the meantime, Concept of Mind, Gilbert by Gilbert Ryle, classic of twentieth century British analytic philosophy.

Will (53:13)
Yeah. It was new to me when you mentioned it before, so I looked it up and yeah.

Carlton (53:18)
Yeah, it's I mean, you know,

it's it it's it's to my taste, whether or not it's you know.

Will (53:21)
I think it's above my head, but yeah. But it's intri

the the idea is interesting. I'm gonna read it's a little more pedestrian. So I've read this, but this is called Slouching Towards Utopia. So I I like economics and history. This is a long book, but it's basically the history of ca

economics in the 20th century in the United States and Western Europe. And seems like it might be dry, but it I think it's really interesting. And it puts all of the historical events in an economic context context. Because of course, money kind of drives a lot of things. you know, like when did the United States get into World War Two? It wasn't just to help out. It was also because the you know US banks had lots of loans. but he talks quite a bit about inequality and all these K-shaped recovery things.

And so I think a little bit like Capital the Piketty book, but a little more readable, I would say. so, anyways, I if I was gonna recommend a single economics book, I would say that. And then there's a web comics book, Economics, that Carlton actually has has looked at. I'll put that in the show notes. Those are my two favorite economic history books for sure.

What else? I've all we've done is ask you questions. Is there any topics w we didn't ask you about or that you wanted to mention while you're while you have a microphone?

Loes (54:44)
No, think you asked me most of what I wanted to say today.

Will (54:53)
Okay. And then y so you're you're online, you is it on Medium where you're still doing your writing, or what's the best way for someone to learn more about what you're doing?

Loes (55:01)
I think LinkedIn, that's where I'm most active. I still have a Medium account, but I don't post as often. I feel like I should again, but LinkedIn would be the main channel.

Carlton (55:13)
It's the internal

Will (55:13)
Okay. And

Carlton (55:14)
guilt of the blogger. Like you y you know

Loes (55:15)
Yes, it

is.

Will (55:18)
a and

your talk, I think the videos are are not up yet as when I checked, but as soon as they are we'll we'll add them. so yeah, I was I was sad

Loes (55:27)
Yeah, sounds good.

Will (55:30)
I couldn't see it in person, but I know Carlton saw it and I h I read many reviews of it.

Carlton (55:33)
Dear no, it's super

it's a super talk. I I'm very excited for the videos from Jancon Europe this year when they when they appear. I know you know volunteer effort doesn't always st stretch to speedy turnarounds, so that's fine. When they come.

Will (55:46)
Yeah.

well, thank you so much for taking the time. and thanks for, you know, being part of the Django community both, right? At conferences, giving talks, and now you know, now you're one of the people when you go to conferences, people come up to you and say, I saw you gave a talk or I I heard you on the podcast, so now you can be in the the other side of that conversation.

Loes (56:04)
Yeah,

well thanks for having me today. I really enjoyed it. It was really fun.

Carlton (56:11)
Thank you, Common Ray.

Thanks for

Will (56:13)
Good.

Carlton (56:13)
joining us, Lisa.

Will (56:14)
So Django Chat

Loes (56:15)
Thanks.

Will (56:15)
DjangoChat dot com and we'll see everyone next time. Bye bye.