Glad to see a fellow Indian startup taking this route (I was surprised to see it licensed as MIT tbh)
We are a successful Mumbai based startup who are in the process of integrating Chatwoot (beta release just went out today), it will replace Haptik.ai for which we had already paid in advance for a year but don't want to use it anymore just after 1 month.
Chatwoot isn't a piece of cake to set it up but definitely peanuts compared to the money some companies pay to other customer support solutions.
Moreover, we are in the process of hiring and dedicating a small team who will contribute changes to Chatwoot and raise PRs upstream.
Good luck to you guys, hope to connect with y'all on discord in coming weeks.
I got promoted to tech lead for writing good code and now I have subordinates who wrote shitty code which I have to review. So I don't get to write code myself.
It is shiny from outside but has many issues that are embarrassing and can only be discovered once you have used it. (I guess looking at the open list of issues will also give you a hint).
Their UI and interface isn't that bad but their APIs are VERY BASIC.
For example, there is no way to retrieve metadata about an Airtable base (sheetnames, columns etc). Or, there is no way to tell whether a link between sheets is a singular link or list of links. No way to connect different bases together.
Many of feature requests that were opened 3-4 years back still have no closure despite popular demand.
In my opinion Airtable is alright for basic usage (like yours). But nothing advance.
I know all this because I created an open-source library to dynamically create postgres database from multiple Airtable bases. (In case anyone is interested)
We have PII, analytics, catalog, transaction etc databases. We only let people clone non-sensitive databases. Others are cloned only at schema level and data is left out.
This also allows us to move and scale independently across different applications. But that's just a symptom of this design.
There are some complications with this approach but it's a trade off and we try to come on top using foreign-data-wrapper approach and using a database application router for read and writes. We have open sourced a Django db router which routes queries on the basis of tags/app name/table name etc
It happens anyway. Humans are more flexible and adjusting than software I guess.
For example: where I am from, people use Hindi language to communicate but write Hindi using Latin alphabets rather than native Hindi alphabets, especially when typing on mobile phones. This is a result of Hindi letters being inherently complex in writing and lack of proper software ecosystem available (keyboard autocomplete, swiping etc)
Bio: Tech lead for a truly multinational project. I work at a slower but steady pace. I'm a good mentor but not a good manager.
ESOPs opportunity preferred.
I believe I had interviewed once at careers360 a couple of years back, don't think it was mentioned to me then that you guys work majorly on Django otherwise I think I would have had a better chance at clearing it lol...
But yeah Django is awesome, It has paid my bills for years. Hopefully async will come in relatively soon with Andrew Godwin's focus on it.
> I wrote the thing in django but it doesn't look like django is compatible with amp.
This doesn't make sense at all. Even if I hadn't previously built a site on django before which served AMP pages, I would be willing to bet that no pure backend web framework limits what your frontend can achieve.
.
Also, Things are always harder for amateurs, just keep working hard man.
It is in a way a good thing that a mature library like jQuery isn't released too frequently because all the websites that use it works just a little bit snappier because jQuery is usually already available in cache in the browser from some other source and if not, then the nearest CDN probably has it.
I switched from Macbook Pro 2013 to ~$1,000 Xiaomi Mi notebook pro (i7, 16GB, Dedicated GX card, better battery, HDMI port, 15inch, Mac like keyboard and touchpad, fingerprint reader). I run a right-swipe virtual machine and run chrome all day without issues. It's a good for 3 years machine. Screen is fullhd though.
It's worth switching from Mac to something else in 2018.
1. OSX is still fantastic, a sturdy UNIX like OS. So there will be some friction when you're moving away to an alternative, but it's not as bad as it was in maybe 2015 when windows wasn't even up for consideration as a developer machine for many and Linux variants were far from being non-flaky (because of lack of manufacturer support mostly).
2. Windows is catching up with the introduction of WSL, many developers may now setup their LINUX ready projects completely in Windows.
I switched from Macbook Pro 2013 to ~$1,000 Xiaomi Mi notebook pro (i7, 16GB, Dedicated GX card, better battery, HDMI port, 15inch, Mac like keyboard and touchpad, fingerprint reader). I run a right-swipe virtual machine and run chrome all day without issues. It's a good for 3 years machine. Screen is fullhd though.
If your company doesn't care about you then you shouldn't care much about company's policies that come in your way either
I used to suffer from a similar situation.
In GitHub, one can be a code owner of a directory in the repository, in my company you cannot merge pull requests without explicit code review and approval of the code owner or the repository owner (CTO in my company)
Problem was that whenever I used to raise a pull request for changes in the directory I myself was the code owner.. no one was there to approve the pull request as one cannot review the PR one raised itself.
I would just ask someone else to raise the pull request and approve it myself and merge it ;)
Didn't want to wait for my CTOs approval and dictate my working pace.
I was always going to be accountable anyway my repositories.
Now, I'm not saying that you should go the same route, rather trying to influence you to not feel depressed and try and find a solution to work around the policy.
Firstly, do the obvious and keep poking who ever is incharge about your situation.
Maybe not just Newbies, but I often notice even seasoned Django developers cribbing about Django's Class Based Views (CBV). I don't really understand why to be honest. There are many blog posts that express regretting the time invested in CBV by their respective authors by pointing out all sorts of pitfalls they fell into during usage.
My ex-boss hates it as well, he even banned it from usage among developers.
IMHO, it's was a great new introduction in version 1.3.
I hear them discuss about the difficulties and time it takes to implement some views which involves complex logic and more than one entity per view.
How to embed a Form inside a Paginated page for example: to use a FormView or to use a ListView or both, followed by a long day of trying to exit a maze full of dead-ends
My advice to Newbies and other people who are struggling with CBV is:
1: You are probably not struggling with the concept of class based views.. just with Django's generic views module
2: Stop stressing about not being able to understand what each Django generic view class does, or it's Mixin classes. Instead refer to ccbv.co.uk and source code extensively - not just the docs.
3: If you are not able to fit every logic you want to fit inside your view using a generic Django view class.. Then just spin up your own class from Mixins or django-braces like nice apps or from object.
4: Remember, one basic upgrade you get from using Classes vs Functions is the ability to extend. If your views can not take advantage of this then you probably don't need a class based view, function based is fine. I almost always keep a base view class with me, often call it a ContextMixin(object) and use it in every view so that i can have some common context variables available in my every template.
>The middlewares shouldn't be redirecting POSTs then! They could have returned a client error instead.
It does raise RuntimeError during development
>> Integer & NULLS
>If the admin interface knows the field is required, why does it even attempt to insert a null value? It could return a validation error.
Maintaining integrity is databases' job primarily, also I could have triggers and functions inside my database to fallback to some default value when there isn't one incoming. This isn't an uncommon setup.
>> Appending to a list in session doesn't work
>Django's behavior with ORM relationships has always disappointed me. There's no way to work with them in memory like in SQLAlchemy because they always attempt to sync out changes to the database immediately. As a result you often have to write some very strange code. They could change this.
Where did ORM come from? Session backends are not exclusively written to be stored in databases.
>> Errors about undefined attributes with one-char names
>They could have done a type check to see if you passed a string instead of an iterable of strings.
...etc.
This way they'd have to type check at thousands of other places where types are assumed. If one isn't comfortable with python's syntactical sugar coatings - inevitably leading to some syntax gotchas, then they should move to more statically typed language.
Glad to see a fellow Indian startup taking this route (I was surprised to see it licensed as MIT tbh)
We are a successful Mumbai based startup who are in the process of integrating Chatwoot (beta release just went out today), it will replace Haptik.ai for which we had already paid in advance for a year but don't want to use it anymore just after 1 month.
Chatwoot isn't a piece of cake to set it up but definitely peanuts compared to the money some companies pay to other customer support solutions.
Moreover, we are in the process of hiring and dedicating a small team who will contribute changes to Chatwoot and raise PRs upstream.
Good luck to you guys, hope to connect with y'all on discord in coming weeks.