Going into the beginning of 2015 I had set out a few vague goals for the year. These mainly revolved around me finding my way into a technology company, preferably a startup. At the time, I had already spent about four months slowly teaching myself iOS programming with Swift.* I had a plan to continue programming and eventually making an app, and I thought this could help me to transition into a job at a technology company.
My goals were more or less:
Get better at coding
Make an app
Get a job doing coding, marketing, or statistical analysis in a tech startup
I continued learning Swift and in February had an idea for an app that I thought could provide me challenges beginning with user interface and continuing all the way to big data analysis and natural language processing — two long term goals of mine. I started work on the app, and quickly realized I had no idea what I was doing and this is not something that would be easy.
After about two and a half months of making a lot of mistakes, I decided to completely scrap my heap of spaghetti code (if you can even call it that) and start all over from the top. My job at the time was with American Councils for International Education, and I was stationed in Shanghai but due to go home at the beginning of June. I somehow got the idea that instead of just aiming for a job at a tech startup, I should shoot for a job at a Chinese tech startup to make use of my six years of Chinese study. In order to prove my coding ability, I would need to have at least a demo of my app available for the interviews. I began devoting almost all of my spare time to developing a minimum viable version of my app.
Stubank had the best mascot
Around May 15, I began applying to as many jobs as I could through China’s 51job.com and an amazing startup job website, lagou.com. I had interviews with five or six companies ranging from Alibaba’s international marketing division to a tech startup in Chengdu doing an interesting T2O (Television to Offline) marketing app. I was lucky enough to interview with a Shanghai financial tech company named Stubank (学银钱包) two days before I left for the US. One week after returning home, I received a phone call from the CEO of Stubank offering me a full time position as their second iOS developer and 23rd employee.
Stubank coworkers and I gearing up for a water balloon battle
A late night debate between our head of QA (holding marker) and CTO (right) about the fastest way to multiply large numbers mentally
I had managed to create a semi-stable first version of my own app, Earlyworm**, that I demoed during my interview. Since the app was working moderately okay, I decided to test it out on the App Store. I very quickly realized the first version was not as stable as I had hoped and had a lot of major bugs. I began spending my mornings, nights, and weekends working to improve the stability of the app and move it closer to my vision of how it should work. After about a month and a half of this, I resubmitted to the App Store and had my app rejected for stability issues on iPad — something I had forgotten to check. At this point, I was not happy with the functionality of my app, and it had a serious bug that was preventing it from being publishable, so I again decided to scrap the code and start from the top.
This time, I decided I would use my own backend instead of Parse’s backend as a service. The only problem was I didn’t know how to build a backend. So in July I started teaching myself Node.js during my spare time. Stubank was on the up and up, we were hiring new backend developers and releasing a new update every two to three weeks. I had a hand in nearly all aspects of the app’s iOS version and was getting amazing experience and facing lots of challenges.
Four months later our CEO called a meeting to inform all thirty of us that we were moving too slowly and the competition was getting more and more fierce. This was already pretty well known — we were working on making a micro loan application for Chinese college students and the space was heating up. Alibaba and JingDong had invested in competitors in August and other competitors were also beginning to pull in A & B rounds of funding. Little did we know however that this was our last meeting as a company. We soon realized we were being merged with a larger startup called Niuwa (牛娃互联网金融) and we were all due to interview starting with the technology department that afternoon.
That afternoon I printed out my resume, hopped in a cab with some of my coworkers and headed to the downtown offices of Niuwa. We arrived at the super awesome Xintiandi offices around 3 PM and headed to the top floor for an interview. In my interview, I realized the company uses manual reference counting and Objective C, with neither of which I was very experienced.*** I did not expect to be invited to show up for work on Monday, but later that night I received a call with that very invite. That weekend I studied up on manual reference counting (which is not as complicated as I expected), and on Monday I showed up for the first day of work at Niuwa.
The office kind of resembles something out of the Matrix
吴开喜 - My Chinese name, and iOS 开发工程师 - iOS developer engineer
Although I loved working at Stubank, I also love Niuwa — both for very different reasons. Stubank’s organizational structure was super flat, and developers had a lot more freedom and input with both how we wrote the code and how the app itself looked and worked. This was a lot of fun, but admittedly I was not experienced enough at that time for it to work well. The app seemingly always had a handful of senseless bugs and the code was quickly growing unwieldy. At Niuwa, the company is structured much more like I would expect a larger company to be, but the management is amazing and I am learning as much about writing good code as I am about how a company should be run.
Earlyworm 2.0 is nearing completion, and is much more in line with what I had originally envisioned. However, I’m currently held up on figuring out how to get my Docker containers up and running on Amazon Web Services and can only hope that I get all issues resolved and will be able to relaunch the app by the end of January.
Which leads me to my goals for 2016.
Get a stable and working version of Earlyworm on the App Store
For at least one month have 1,000 active monthly users on Earlyworm
Learn Python (and maybe R) and start a data visualization blog
Learn more about China’s financial technology sector and startup ecosystem in general and share what I learn on Medium and my website
Learn basic web front end and make 2–3 small web apps to share on Product Hunt
Continue to seek out innovative individuals in Shanghai to collaborate with on side projects (specifically looking to have one bigger side project that provides low margin services to the local community — something a company probably wouldn’t want to tackle)
Begin work on next big project, targeting either something in financial technology — potentially stock trading, or something related to media and dynamic content forms.
More Stubank Swag
** Earlyworm is a combined Read It Later and Flashcard app for Chinese learners. It uses real life articles from sites like 36Kr.com and Caijing.com.cn, and generates flashcards plus handles your deck automatically using spaced repetition. It’s amazingly simple and requires no work on the reader’s part besides simply reading. It should appear on the App Store in early 2016.
*** When I joined Stubank the source code was entirely written in Objective C, but the company encouraged me to write all new code in Swift. Thus I was able to continue to practice with Swift 2.0 while also learning Objective C while maintaining the code base.
Follow me on Twitter: @c_h_wood