Career advice: Front-end to Back-end

3 points by eshwarramesh ↗ HN
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/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'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't look at preferences.

I feel a certain perseverance inside me when I don't do something right. But, its just that I am losing interest in scratching the surface level with products that mostly solve interface issues.

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.

How do I go about getting a job that allows me to work on C/C++/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.

PS: Its not that I am awesome at making UI/UX, I know I can get better, but I am just not interested in thinking in those angles anymore.

2 comments

[ 3.0 ms ] story [ 16.9 ms ] thread
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.

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