← Back to Show Notes

Transcript: Auphonic - Georg Holzmann

Hello and welcome to another episode of Django Chat. This week we're joined by Georg Holzman,

the creator of Ophonic, which handles audio processing and uses Django. We'll dive into

all those things, how to scale it, and it should be a great discussion. So Carlton,

how are you doing? I'm very well, Will. Thank you very much. How are you, Georg?

Yeah, thanks. I'm fine. And thanks for the invitation. I'm curious what to speak about

here. Oh, I think there's too many things to speak about. I guess let's start with how did

you get into programming? And there's so much we can speak about the audio part, but also around

the Django part. So maybe what's your, you know, what's your what's your background? How did you

get into programming? Yeah, so well, I get into programming already quite early. So I think I was

in primary school and my dad always had a old computer and I always managed to destroy the

computer and play around with it and at some point yeah i started programming i don't know why

actually i think some some friend was was showing it to me and the first programming language was

turbo pascal and then i learned c++ and c and all these more low level things and yeah and into

python i came actually quite late it was at the university okay did you study computer science

there then not really i actually started audio engineering okay but this was a lot it was not

really only audio it was more like electrical engineering and computer science and a lot of

signal processing machine learning and all these things and so basically it was computer science

yes okay so you're doing like high low filters and you know all those fancy things there yeah

exactly okay and this is also why i got into python at some point because uh we were using

for for a project numpy and scipy and all these things when they were at the early stage and yeah

so so i came into python and i loved the language a lot and so i got into programming okay and um

this led straight on to old phonic then which we should say is your so tell us about alphonic what

is a phonic yeah a phonic a phonic was was built a little bit later then and yeah this is basically

also about audio processing and some other things so it started as a web service now there's there

are some desktop apps but you can basically upload an audio file and then this file is analyzed on

our servers and then according to the analysis it is processed and encoded into different formats

and then distribute it to other services and things like that.

Right. But this sounds, I mean, this is using exactly the techniques

that you studied at school, right?

The signal processing, the cleaning up.

Yes, exactly.

The sound qualities. Yeah, okay.

And so I guess the question is, is most of that done in Python

or is that done in, you know, other languages?

Yeah, the signal processing and machine learning things

are mainly built in Python.

So we use a lot of NumPy and machine learning libraries, different machine learning libraries.

And, yeah, also some parts are also written in C, which are optimized a little bit.

And for that, we mostly use Cyton, if you know this.

Yeah, yeah, yeah.

Which is basically, I guess everyone on your podcast knows this, but it's basically a compiler from Python to C.

And yeah, then we also had to build a web system around it.

And I think this was 2009 or 2010.

And back then, there was basically everyone was using Ruby on Rails.

And this was very popular.

And I was thinking, yeah, I don't want to get in a whole nother software stack.

And I was looking at what's going on in the Python world as well.

And found Django.

And yeah, since then, I'm a Django user.

Okay, fantastic.

So you've been through the long haul.

You've seen the introduction of, I don't know,

let's say migrations and the big changes around 1.5 and then 1.7.

I started with South.

This was the framework before the migrations were introduced.

Right.

And yeah, but my main focus was never mainly on the web tools.

It was more on the signal processing and machine learning part

and the web tools.

I just discovered them next to the other things.

It was never my main focus.

Yeah, okay.

I just had to learn it because I needed them.

And so, go on, Will.

No, you go ahead, Carlton.

Well, I was going to say, so the main uses for Django here

is to build the API around the data processing pipelines that you have.

Yes, so there are various things in our system.

So, of course, the first thing is the web GUI.

So how you see the website or how you can create these productions, these audio productions.

So this is the client side, front end.

Then there is the server side.

So after you upload an audio file, you have to process and analyze it, which takes quite some processing power.

So we need to have a distributed system where we can process all the audio files.

So at DasQ, for that, we use this DJ Celery and RabbitMQ.

Okay, and how have you found working with Celery and scaling RabbitMQ and things like that over the years?

Because, I mean, you've been obviously at this for quite a while now, and so you'll have seen it evolve.

You must have some war stories there.

Oh, yeah. I'd just like to add, too, I found Ophonic. I've never had an issue with it.

I mean, just last night I was having an issue with our podcast host, which seems far simpler than what you're doing.

So however you're doing it, it's very speedy and I've never had an issue, which is unusual dealing with audio for me online.

Okay, that's great. Well, there were, of course, issues in the past, but not for you.

Nope.

Yeah, so, yeah, for us, RabbitMQ and Celery worked quite well.

I mean, there were some issues at some point.

Also, at some migrations, there were some problems, but no major things.

So I cannot tell anything bad about it.

No, but it's not so much bad.

It's more like as you scale out these things.

Well, Carlton has feelings on Celery.

no and on rabbit on amq you know i've um i've had scars of trying to make that work how i've wanted

to and um yes now i'm a bit for quite a few a while now i've been firmly in the redis camp and

using that and working with that well and finding that's very scalable but um you know rabbit mq is

still there and still has lots of adherence so i'm you know just wondering you know the reason i ask

is to try and draw out your your experience which sounds very positive yeah so our setup is maybe

a bit special because we have only very long running tasks right because because if you

process one audi file so this usually takes it depends on your file but it takes quite long

it's not yeah there are not thousands of small tasks there's just few long running tasks so

So yeah, I think for our use case, it does not matter much if you use Revit MQ or something else.

So it's basically the same, I guess.

Yeah, okay, interesting.

Do you think that with your setup, it seems like if there was ever a case for potentially serverless, it would be what you have, right?

Because I imagine you have spikes of activity and then inactivity.

I wonder, what does your traffic look like?

Do you have those spikes or is it more kind of level?

How does it look?

Because I know you're global.

yes we have these spikes but um they are not that big i would say so it's the average is

so the the standard deviation is not so big i would say because yeah you know in europe they

are processing now maybe and then in the us it's it's a little bit later so it's it's not such a

problem but of course the the infrastructure so maybe let's speak a bit about the infrastructure

yeah yeah so we we do not use uh amazon aws or things like that so we have um root servers which

are rented because they are much cheaper for our use case because we need a lot of uh a memory and

a lot of processing power yeah therefore of course a lot many root servers don't do much

most of the time but then when we have spikes in processing we need all of them so of course

these these spikes are important and determine how many servers we have to use but in the end

it's still i would say it's still much cheaper compared to to aws or other services and so i

are you managing the actual hardware yourself there or is that hardware managed because this

is one of the sort of selling points that amazon tell us or you know it's not just amazon it's all

these providers they sort of say look that you're not you're not having to go to the data center to

change the hard disk to you know these kind of activities that you had to do back when you were

renting space in the colo yeah no we don't manage the hardware so the hardware is managed but

we have to manage the whole software so from the operating system up to all the stacks you have to

install but the hardware is managed so i mean maybe you know this hostel it's heads now from

germany they are yeah they are very big hostel in germany and very cheap for for their for their

route service right okay can you give us a sense of how big is the ophonic team and kind of the

sort of traffic you're dealing with now versus i guess 10 years ago or what eight nine years ago

when you when you started because you know to me you're just a service that i've seen recommended

and that works um so i'd love to hear more about yeah it's the company if there are other people

involved and as much as you feel like you can say about that yes sure so uh yes we are about five

people okay and uh i mean you you mean uh the the amount of audio we process sure just how's how has

traffic um evolved okay how is that how has that changed over time i mean are you this has been

linear have you spiking uh well that's interesting uh it's not linear i mean it is a little bit

linear as well of course but then there are always spikes if some other user groups find out about

this service and then they bring in a lot of more people, then there is a spike.

And, but then it just was linear.

So, so it's.

it spikes and linear and yeah it will sorry i was going to ask because i know that um

so when we when we started using this podcast we started using a service called zencaster

which i found out uses you so i'm curious how is there what's sort of the mix of services that

use ophonic versus people like us who do it directly do you have a sense of what that

that mixes kind of companies versus individuals using it directly okay yeah this is maybe half

half so we have an api where for the other listeners we have an api where other services

can integrate our services and algorithms so that the users of the third-party services don't have

to know that there is a phonic inside like you did with zancaster for example right and so there

are some companies which are integrating our services into their systems and yeah then there

is our website and direct interface

like you are using now, I guess.

And so, yeah, the share is half-half, I would say.

What's your sense of how people find you?

Because I think the only reason I found you

is because I think I saw Tim Ferriss mention

that he used you directly.

And I thought, oh, that sounds like

what we're using with Zencastr.

And then Carlton and I had a number of issues

with doing it web-based.

And so it was really kind of circumstantial

that I even found Ophonic itself.

is there a standard path for how clients kind of find you no i i don't know so there's basically

we don't make any marketing or things like that so usually it's it's word of mouth especially in

the bottom it's kind of like the classic if you build it they'll come you built it and they came

yeah so so at the beginning so at the beginning we had um so all all started with a podcaster

from germany because he i was listening to his podcast and he always told yeah everything is

so complicated all the audio things and generating all the file formats and then i thought well

that's actually quite easy so let's build something and it started with some small scripts

and this is really one of the famous podcasters here in germany so after we released it a lot of

people used us already right okay so you got you had a kind of critical mass to begin yeah this was

and and we got a lot of good feedback of course and lots of training data and test data and yeah

and then we got a grant from the government here in austria to so we got some money basically and

could build a prototype or continue to build the system and with this money i could hire someone

who helped to build the system and then actually another one as well and then after after this this

grant already some some other podcasters got to know our system i don't know why but somehow it

spread over the ocean to the us and there there were other people which were playing around with

it and yeah afterwards after this grant we had to to introduce a pricing model so in the beginning

everything was free for everyone right and then we had to to introduce some pricing because

otherwise we could not live from it anymore yeah because you initially you were funded by the

government grant yes exactly right okay fine and that but that seems like that maybe lets you

take a i mean you seem to have a long-term approach to this whereas i mean i used to be

out in san francisco and if you take venture capital money you pretty much within 18 months

and really 12 months you have some very high goals you need to hit you're not allowed to

um take your time yeah really it sounds like that's that's fantastic that you you had that

ability instead of being pressured to introduce things faster before they were ready yeah sure

and um well the the nice thing we we had in our situation is that we did not have to do any fancy

marketing or other kind of strategies how to get more users i mean that's that's good to do if

you're interested in these things but we were all engineers based kelly and we did not know anyone

who can do this these other things so we just try to to avoid them well this is marketing now i've

seen you've been on a couple of podcasts um so that that's marketing of course um that's yeah

that's amazing well so my a question i had is are there um when you create this were there any

competing services that do that and kind of what do you see in terms of competition because it

seems i'm not aware of any but it seems like such a now that we have it as part of our post-production

flow i can't imagine doing our podcast without it there are no direct competitors which which

build the same because we are of course very very specialized into this podcasting use case or

also other spoken word recordings i would say like conference recordings and lectures and things like

that i mean there are of course other audio software companies like isotope which which

more built their tools for for editing so so basically there is no such automated way like

like we do it so that's that's why we try to focus on this automation and workflow aspect

and and not to not try to build an editor which would be of course also very useful

but it's of course a lot of work if you want to build it right and and then you get in the

direct competition to audition or isotope or other companies yeah and those tools those tools

are super um super powerful but super complicated and yes you know i consider myself an audio

beginner and there's just no way i can apply the right filters and you know in anything like a time

efficient way like so for me to be able to upload the file and it comes back and the with the

noticeable difference in sound quality you think yeah that's amazing that's just brilliant yeah so

this is yeah of course also disadvantages so in our system basically you get uh this is exactly

the the initial this was exactly the initial goal when we started the system so that users which

don't have a lot of audio knowledge or also users which have a lot really lots of audio which cannot

be handled manually so that they can just use this tool and get out audio which is okay but of course

if you have very specialized use cases and you want to get out every detail then these

this editorial tools are of course much more powerful because you you can really work on

every detail but of course it needs more time and knowledge yeah um but i guess one thing they always

talk about in product development is to focus on your particular niche and yes don't worry about

trying to serve the other niche so you know that you don't have these features is it's a selling

point right yes yeah it's very clear what you do well so maybe we can talk about some of those

features because um there's a lot that are awesome i wonder what would you say what are the main

features that people kind of come to you with i mean i mean for us i mean when i'm doing the audio

files I love that you have the presets just in terms of the web base that's great that you know

because we do the same thing for every podcast so I can just load our presets and then we usually do

you know basically go for almost everything so the compression leveling normalization noise hum

I guess that's a broad question but as you think of the features that you have now on the site what

do you think are the core features and then we can get into some of the more advanced ones because I

know you have some new features you've just launched yes so i would say the most important

feature where everything started is our leveler so what does it do it levels out the audio which

means that if you have multiple speakers like like we are having a conversation now then all

these speakers can have different levels and loudness values and some you have to balance

them so otherwise you would always have to to to use your volume control and adjust for the levels

but this is actually a very complicated task because it is it is easy if you just have speakers

but in audio you also have then bigger parts where there is for example just background noise

then of course you should not amplify this background noise like you would do with the

speakers or then there are also music parts which should be handled quite differently because music

in music you want to have more inner dynamics and if you have speakers you want to sound them

equally loud but music should have some differences of course and therefore you you have to analyze

the audio first and see there are different speakers where music parts there are just

background noises and things like that so basically like an audio engineer would do it and then

you have to balance these different parts and use compressors and limiters and things like that so

you said you're using machine learning for a lot of this so i when you're talking about the different

parts i'm imagining you know my machine learning thinking and think okay so are you using are you

tagging particular parts as this this kind of this is speech this is music this is you know some other

category and then you'll apply a different filter or set of filters depending on what gets tagged by

the machine learning algorithm yes exactly so we we analyze the audio and and classify various

things like different speakers music bands and different noise parts or if the background noise

changes for example this yes this is another algorithm we we have a noise it's called noise

reduction so basically this algorithm first analyzes the audio and sees where are different

background noise scenarios for example if you record in a room and then we go outside

then there is another background noise scenario outside so we have to segment the audio first in

these parts and then do noise reduction in the first part and then the second one right and

there's no there's no tooling to do that in something like audacity you'd have to you'd

have to do it by hand you'd have to sort of manually identify the the segments yes in in

most of the editors you do this by hand and basically we we always try to automate these

steps you have to do by hand we try to automate these these things by machine learning and then

just apply the algorithms like you would do it in an audio editor for example okay okay fantastic

wow and then you also have i mean there's um chapter marks which i believe is that's that's

something you had before the sort of Apple Podcasts and stuff had as a feature.

Is that right?

Yes, I think in Apple Podcasts, it's, no, that's not really true.

So this is a very complicated topic because there is so much confusion about it.

So what this chapter marks, a chapter mark is basically just a timestamp and a title.

So you say at this time, this chapter starts like video does, it's quite long already.

and the problem is with audio that there are many file formats like mp3 mp4 or opus or whatever

and usually these this chapter marks were only defined for video so in the mp4 container

everything was defined quite well it is still very complicated but at least it was defined

and usually at the beginning apple was mostly using mp4 audio so aac audio in an mp4 container

And the Apple podcast app always, or since very long, supported chapter marks in MP4 files.

But most podcasters use MP3 files, so they did not recognize chapters in MP3 files.

And there was a very old specification for MP3, so actually for ID3, which is the metadata standard for MP3,

how to put chapter marks also in MP3 files, but nobody used this specification.

and yeah then we just implemented the specification basically and then more and more podcatchers added

support for it and i think now since last year also the apple podcast app supports mp3 chapters

as well right good because if if enough files they're using it then they'll have to support it

yes it seems so yeah fine yeah well speaking of mobile apps i mean you have i'm so impressed by

I keep finding new features that you have.

I mean, you have mobile apps as well, right?

For Auphonic, for Android and iOS.

And so what's the, how recently was that?

How did that come about, right?

Because that's another thing to build

and maintain on top of everything else.

Yes, well, the thing, basically we started the mobile app

because a friend of the first developer at Auphonic

wanted to do a project with us

and he's a web and mobile developer

and yeah now he works at facebook so he's quite quite good in these things so he he said yes he

wants to build a ios app for us and the problem in ios was was long that you cannot upload audio

files in in a web site i think they changed it now but for a long time you could not select

audio files and upload them to a phonic for example so the so the idea was uh to build just

simple recorder and then use our API in the mobile app so that you can basically export files from

your phone to to aphonic and yeah this this was the start basically and then we also did an android

version and on android the situation was even more complicated because there is no usable audio

editor on android and then we thought well we could also build a little audio editor right

brilliant and yes how does that go with device compatibility because that's the great that's

the great challenge on android right is it works on your samsung that you've got in the office but

not on you know yeah device out there in the street yeah but actually there are not so many

problems but of course that's that's that's more difficult okay interesting and so you talk about

your api there and i i guess that's built with django and django rest framework yes okay yeah

so if you have problems talk to carlton ah you are developing this yeah he's the co-maintainer

okay very nice so thanks a lot i don't do too much but um if you um so you've been using that

from i mean rest framework for well it wasn't quite around in 2010 but like 2012 2013 i think

yeah i would i have to look when we released the exact date right when you think of all these

technologies that you're juggling is the i assume the the web piece just sort of follows the

the audio part or how much time do you spend on just scaling up the the web part because that's

sort of the front door for everything um i'm just curious of you know where you where you spend your

time now given that you're a scale and you're still interested we can talk about i know you

just introduced um a new a new leveling algorithm yeah i mean this is always different so sometimes

we work more on the web part or other parts and sometimes more on the algorithms but yeah i mean

scaling scaling was not so much of an issue i would say so well basically we always build some

we always have to fix some things if if you see uh it will get very hot but but yeah actually i

mean you know if the traffic goes up we just rent some more servers so basically that's not so

complicated right because in our case i mean the website itself does not need much scaling because

we don't have hundred thousands of users every minute of course yeah so i'm imagining you could

run the website on you know a medium-sized server and it would chug away quite happily

and give you lots of spare capacity.

And then the need to scale is the back-end processing units.

Exactly.

So the database or all the web front-end and things,

they are just on one big root server.

And then we have various other servers for the audio processing

and for the long-running tasks.

Okay.

Processed audio files, I believe, is it 30 days that you store it

and then it goes away?

Is that correct now?

Yes, 21 days.

I assume that came about because you looked around

and said, oh my God, we have all this data.

Or did you have that from the beginning,

sort of a limit on how long you would host processed audio?

I think we had this quite early

because otherwise you would need a lot of storage.

Yeah.

And yet, there are, of course, also data protection reasons.

Can I ask there, do you store on disks, physical disks on your rented servers, or are you using cloud storage?

No, we store on our root servers, on the disks.

Right, okay.

So it really is all hardware in the data center.

Yes, exactly.

Fantastic.

I always like to ask this question.

So if you could just wave a magic wand and add a new feature to Ophonic, what would it be?

Oh.

Because I assume you have, I mean, obviously, I don't have a sense of what is truly challenging or what you think your customers are demanding.

I mean, but yeah, I'm curious where you see that need or, you know, if you had all this time, you would spend it.

Well, that's difficult to say.

Our future feature list is very long.

Okay, yeah, sure.

Or maybe there's something that you don't even know how to tackle it, but it's sort of an unresolved problem in processing audio.

Because, again, Carlton and I don't know that space at all.

Yeah, okay, into this direction.

What would be really cool is if you have, let's say,

you have very bad audio like Ampli3 with 32 kilobits,

so everything is compressed already completely

and you can't hear anything about it anymore.

And then one could build an algorithm

which makes the audio as the original again.

right okay this would be great yeah that really is a magic wand but yeah at some point you you

will lose information and then it's difficult to restore the information again but there are um

there are um you do see these kind of ai or ml applications where they kind of guess

what the missing data is and interpret like that and they you know sometimes come up with good

results yes so there are of course also people which are trying exactly that with

badly encoded audio but yeah this is of course not possible for every situation

unfortunately one of the features among the existing features you have that actually we're

not using which people have asked for is you you link in with speech recognition right where

someone can link up a third-party transcription so this this service that does use so a perfect

speech recognition system yeah what and was that something that you had again from the beginning

or something that users asked for um that integration because it looks it looks really

nice because that is another step in the tool chain of producing a podcast where do the leveling

and then transcription um i mean it's something we should we should add yes this this was not from

the beginning so but this was always very interesting for us because especially for

podcasting you know podcasting are not search podcasts are not search able so if you would

have a transcript then you can search within the podcast so that's of course perfect but

yeah some years ago there were no services which produced a reasonable output for a reasonable

price well said yes it was actually i think two years ago or three years ago when

the first api was the no it was not the first one but one one of the first ones

was the the google cloud speech api which which had an acceptable quality and also a reasonable

price and yeah now there are some there are various others other apis as well which can do that

So and back to the beginning. So actually, we wanted to build our own speech recognition system. But then we thought we cannot do everything. Because it's really very time consuming, especially if you want to build that for multiple languages. So you have to have specialists for every language and a lot of data for every language.

That's why we decided to integrate various third-party services for speech recognition.

So we still do our own pre-processing and slice the audio into small parts,

so cut out the music parts and take out only the speakers,

and then send these slices to the external services, to the speech recognition services,

and then combine it again so that you have the time codes in the transcript

and so that you know at which time who is speaking what.

We should be using this, Will.

Why aren't we using this?

This sounds amazing.

Use the royal we, Carlton.

You're welcome to hop on that.

Yeah, I think it's so brilliant

how you've stayed kind of within your lane

yet still expanding features

because, I mean, podcasts in general

are going through quite a bit of consolidation right now.

But it seems like what you're doing is so much better

and so hard to do well, that it's not really as maybe appealing for Spotify or someone

to say, oh, we'll just do Ophonic. Or perhaps maybe, or is that an existential threat? Do

you think down the line that one of these places will say, we'll just scoop that part

in because again unless you really know what you're doing i don't it seems very difficult to

have a high quality podcast without using a tool like ophonic well that's not true if you're an

auto engineer you can just do it yourself of course yeah sure sure sure but most but that

you know that's what one percent if that you know everyone else who's um you know because yeah yeah

thanks but uh to your question um yeah i think our our service is just very specialized and

there is just a lot of time already put into it how to how to really optimize it for this use case

i mean of course someone else can build similar things but it's it's of course a lot of work and

you would need i think quite a bigger team than than we are if you don't build it for yourself

and sure and yeah i don't think that there is so much money in it that you will throw a

20 people team on it but i don't know right so it's a nice niche and that if you as long as you

stay the right size and don't don't scale up too big yeah maybe you can you you can survive in that

space can you give us a sense of how many what metric do you use for for size is it um the size

the files processed is it you know hours what when you internally look at your metrics what are the

how do you manage growth because i think that there's a number of different ways to potentially

measure that you usually usually we take i mean also for our users the the important thing is the

the length of of the audio file so in our system you you have you need so two hours of audio is

free for everyone in our system and uh if you process more audio then you can buy additional

credits and the credits are in in hours of audio so if you have one hour of credits you can process

one hour of audio file so therefore therefore of course the most important measure i would say is

the hours of audio we process maybe well because i guess yeah because audio files can be one hour

can be i mean yeah very different in size was was that uh yes so that seems smart from a marketing

perspective but i as you know for someone like you who really knows the audio i mean the costs

could be wildly different for one hour of um you know one file versus another so yes the size of

the audio file itself does not say much because if you have an mp3 file compared to an uh wave file

with a very big bit size,

then the MP3 file is very small, of course.

But then if you process the file,

you have to decode the file again to get the raw data.

And then it doesn't matter if it was an MP3 or WAV file

because you need the same processing amount

or processing power for it.

Oh, interesting.

So I'm curious, because you went to university

for audio engineering,

what did you think you were going to be doing

at this point in your career

And kind of what are your friends from university doing?

Because I'm sure they're not all doing startups.

No, it's very different.

So, well, actually, after university, I started, so I did my master's studies here in Austria.

And then I started a PhD in Germany, in Berlin, also about machine learning and audio.

It was, it is called, this field is called music information retrieval.

so where you try to extract information out of audio with machine learning techniques but yeah

then i did not finish this phd because basically i was the only one there which did these things

and then i started the job at the web company and get to know all these web things also django

so they also use django there and yeah then i thought okay i can also build something for

myself and i also get to know this podcaster which always had this problem with audio processing and

encoding and i just tried to build these these things myself yeah no i mean it sounds like the

perfect pipeline you know you've you've done the signal processing you've done the machine learning

you've done you you're into the audio stuff you've done the web programming it's like you've got all

the parts together and you've just created this awesome business out of it that's exactly i still

had no idea about doing business but but yeah that's okay well yeah that's not the lesson

so did you go to a web place that was doing audio stuff or did you just separately um go to a web

place and then later said oh i can combine these these two no it was not about audio it was

something completely else but at that time i was interested in in web things because i did never do

to big web projects so i just wanted to get into this topic and yeah for that it was quite well

yeah well it's still the case in the certainly in the u.s that you can't it's very difficult to

learn web uh in school uh there's sure some some efforts on it but basically it has to be hands-on

and even something like django is largely not taught at all and if it is taught it's by an

adjunct and it's sort of an elective so that's hopefully that will change but it's it's hard to

get a backbone in web technologies even though the majority of uh undergraduate computer science

graduates probably go work on something web related so there's definitely a uh yeah educational

mismatch there right in the end you just have to do it because all the resources are out in the web

of course and you just have to do it and and learn it by yourself yes spoken like an engineer

So what are you working on right now?

Yeah, so as I said in the beginning, so Afonik started as a web service with this Django

part and et cetera.

But we also have a desktop application with our algorithms.

So they don't include all the features of the web service.

But the advantage here is, of course, that you don't have to do the processing in the

cloud and you don't have to upload files.

So the processing is just done on your computer, which needs, of course, processing, but you don't have to upload, download.

And, yeah, we also have a different pricing model for this desktop app.

So it's just a one time purchase.

There is in the web service, you have to pay credits.

So based on how much you process.

But, yeah, what I wanted to tell is that we are working on a new version of the desktop software at the moment.

because it was very difficult to get all these

Python and machine learning tools to desktop computers.

And especially difficult was the GUI part

because we used in the desktop apps,

we used this WX widgets framework with their Python bindings.

And it was so frustrating and so difficult.

And now we did rewrite everything with web-based tools.

So we use now Electron and...

Okay, so it's Electron.

...combined with Python.

But yeah, Electron is still a very big framework

and not so nice to handle,

but at least now everything is HTML-based,

the whole user interface,

and the backend is all done in Python.

And so as a long-term goal,

we could maybe use the same interface

for the web and for the desktop version

and just reuse all the components

and use python as the processing engine and are you bundling python in the application yes

so you're using like the pyb project there or something similar no we are using well there

are various ways how you can do that first we are compiling everything to c with titan and and all

these tools and we are using this tool is called by installer which which creates such a bundle

with Python and all the dependencies you have.

And then this is bundled into one binary

and you can afterwards distribute this binary.

Okay, fantastic.

And then because that's Electron-based,

that will be on Windows and Mac and Linux as well?

Yes, exactly.

Okay.

And then the Electron app just also takes this Python binary

and includes it in their framework.

Wow.

Yeah.

That's really cool.

Too many tools.

yeah i mean python doesn't really have a good story for i mean it's good on the command line

it's good for building application it doesn't have this story about desktop integration or

even front-end web integration so yeah well it has it is good for desktop i think but

the missing part is the gui part yeah yeah awesome well well thank you so much for coming on and

and sharing this story, we love using Ophonic. And I actually, what I love in a way too,

is that the only reason I thought that maybe use Django is I saw your, the signup page and

you're using slash accounts and username, email, password. And I thought, Oh, that looks,

that looks like Django. And I just sent you an email. It's like, Oh yeah, it is Django.

So there's all these, there's all these, you know, a big thing for us in this podcast is try to

highlight all the different ways Django is being used in all these different realms, which are

largely kind of hidden because it's you know for you it's a sort of a secondary thing but still a

key part of your you know pipeline of your process yeah and and what i find quite uh important is

that jenga is now already quite old and it still evolves and it's still a good choice if you would

start today i would say that is the perfect end this is of course very important if you are a

small company like we are so you cannot rebuild everything from scratch after five years or yeah

Yeah, no, but also as well, you need to know that Django is going to continue working.

You know, the next release isn't going to totally change the API or, you know.

Exactly.

All the such things.

And those stability guarantees and the deprecation policy are important.

Yeah.

Well, actually, maybe one last one.

If there's something you could change about Django, what would that be?

Or do you have thoughts on maybe how the future async wave, would that impact Ophonic at all?

Or is that not so much?

i don't know i i did not do so much with it uh since now because i mean the thing is our

processing is done in a different stage so it's done offline basically in the queue so here we

don't would not need this async thing but yeah i think for for user interface improvements it's

of course very very very interesting but i have to to play with around with it a little bit more i

think um so if listeners want to use ophonic should they just go to the the main website or

where where should they be directed yes sure so our website is aphonic.com and yeah just try our

system so two hours per month for free and if you have any questions or feedback we are always very

very happy to to get feedback and also error reports and whatever great okay well thank you

so much for coming on and giving us the time for your time really interesting georg thank you bye

bye thank you ciao