

Career advice: Front-end to Back-end - eshwarramesh

I have been an iOS developer for the past 3 years. I currently work for a startup and it requires a good sense of UI&#x2F;UX for the iOS platform and product thinking. I see that most mobile applications require front ends designed and implemented. I have no issues with doing that type of thing, but I prefer doing back end stuff. I don&#x27;t know how to validate this kind of feeling. Should I even feel this way? I know for a fact that learning happens all the time and I shouldn&#x27;t look at preferences.<p>I feel a certain perseverance inside me when I don&#x27;t do something right. But, its just that I am losing interest in scratching the surface level with products that mostly solve interface issues.<p>I have a masters degree in Computer Science. I see where I lack at algorithms and data structures and I have a lot of work to do to get the basics right. And I am ready to cover that.<p>How do I go about getting a job that allows me to work on C&#x2F;C++&#x2F;Python? Any advice? I have little to no idea about doing such software (like device drivers for instance) but I know that it will challenge me. I will suck at it but I will try my best to do it right.<p>PS: Its not that I am awesome at making UI&#x2F;UX, I know I can get better, but I am just not interested in thinking in those angles anymore.
======
ac2u
Start writing your own Backends for some Apps that you're working on. You'll
quickly run into areas where you need to worry about different levels of the
backend stack.

Make a request to get some data? Done.

Button to generate CSV report fires off a request which takes way too long?
Uh-oh it's keeping a thread occupied on your server that could be busy serving
other requests. Time to get familiar with fronting your infrastructure with
nginx as an evented way to handle loads of connections. Now you're diving into
getting familiar with events vs threads vs processes for handling connections.

Want to have the UI respond immediately to that export request? Now you're
into the realm of having the export be processed in a background queue so that
the http request returns immediately with a job number you can poll the status
of later.

You've now got a background worker pulling export work items off a queue. How
are you going to ensure that this process is running all the time on a
production environment. Time to look at either daemonizing the process, or
using a process supervisor, this is where you're finding out a little more
about process return/error codes, and forking.

The laboured point I'm making is that familiarity will come naturally as you
solve use cases, and your mental toolbox of "bits of knowledge" for the
backend will grow as you research how to solve problems you come across day-
to-day.

~~~
eshwarramesh
Thank you for your response. I will devote some time to reading some tutorials
and asking questions about what works and why and how.

