136 reputation
bio website nanek.name
location Walnut Creek, CA
visits member for 1 year, 2 months
seen Jun 15 at 21:22

I am a skilled software engineer who has shipped on every major mobile platform and written server software for both in house servers and cloud. I graduated with honors in Chemical Biology and Computer Science from a top engineering school, Stevens Institute of Technology, and followed that up with a Masters in Software Engineering.

I recently received a commendable rating working with HTC for over a year getting the world's top companies running on mobile platforms with amazing user experiences. Before that I worked for several years at IBM doing web metrics, a couple years at State University of New York writing Java server code and web pages, and a couple years doing freelance mobile development.

A highlight of my career was implementing the CardioTrainer Pro app with several other engineers, which became the top revenue generating add-on for that company's million download free app. I've also put extensive time into writing solutions involving photo capture, upload, and storage; NFC; gaming, monetization, social, and powerful graphics languages like OpenGL ES.

Specialties:• Shipped apps on Android, Windows Phone, and iOS mobile platforms. • Shipped server code on Linux, Windows IIS, Google AppEngine. • Skilled at C#, Java/JEE, JavaScript, SQL, (X)HTML, XML, XSLT and other languages.

awarded  Critic
comment Is the escaping provided by the Google-Gson library enough to ensure a safe JSON payload?
GSON does indeed encode anything I throw at it and even needs special calls to disable encoding things it doesn't have to, like HTML. That said, I voted this up because the correct answer is not to parse JSON on the receiver side with eval, but to use the linked method. So ++.
comment How do remote programmers working on proprietary software go about securing their work/source code?
I worked at IBM and their VPN software did ensure you had running AV and firewall before it would let you connect to the intranet. Other companies I've worked at had licensed internal GitHub servers so you had to be on the intranet to view, check out, or in source code. I've never been at a company where they were this strict, but I've heard of many where they didn't give the user admin privileges - e.g. so they couldn't install programs or turn off AV. I admit that is even safer. Some companies also required laptop BIOS passwords.
answered What kind of processes or static alaysis would you use to catch impropper buffer bugs such as the one that caused heartbleed?
awarded  Teacher
answered How can NSObject contain an NSString if NSString is an NSObject
comment Why is cleverness considered harmful in programming by some people?
Even something that appears simpler can be too "clever". The original question mentions abstraction. In Java land there have been actually studies that show high levels of inheritance make code less maintainable. People just have to keep too much invisible functionality from the class hierarchy in their head to work on or understand the code. Maybe you have simpler files by breaking them into a 10 class inheritance hierarchy, but it still hurts the software engineering side of things. The question's link is the same. Inventing new stuff that can only be understood by reading a paper.
comment Documentation in OOP should avoid specifying whether or not a “getter” performs any computation?
Java actually has a RandomAccess marker interface for just that reason, it can be important to know time complexity on collections classes. Definitely the exception and not the rule, though.
comment Are there legitimate reasons for returning exception objects instead of throwing them?
This often happens with error listener objects as well. A queue will execute the task, catch any exception, then pass that exception to the error listener responsible. It doesn't usually make sense to kill the task thread that doesn't know much about the job in this case. This sort of idea is also built into the Java APIs where one thread can get passed exceptions from another: docs.oracle.com/javase/1.5.0/docs/api/java/lang/…
awarded  Supporter
comment My customer wants me to record a video of how I develop his software product
Definitely. Sites like Elance and other remote work sites support things like WorkView as well. Even before we had that, clients would often ask for a you to write down what you did each hour, which isn't much different.