Sunday, January 31, 2016

The value and the limits of unit testing

Swyfft’s website ( is now live – for a certain definition of “live”, in this case, meaning the coastal counties of Alabama. Alabama is where we hope to get some good initial sales metrics, before we expand out to more states.

When I joined Swyfft back in April, depending on how you looked at it, the website was maybe 90% done, and maybe only about 10% done. I’m sure you’ve heard the old developers’ saying, “The first 90% of a project takes 90% of the time. The last 10% takes the other 90%.” And that was certainly true here.

In addition to adding more features, one of the biggest things we’ve been working on since April is automating our testing process. My strong preference, whenever it’s feasible, is to rely heavily on pure unit tests, with all dependencies mocked out. It’s easier to isolate the code under test when you do it that way, it’s easier to get the tests running on your build server, and the tests themselves run a lot faster.

Unfortunately, that approach has limited utility at Swyfft. The main reason is that our system relies heavily on over a million rows of meta-data, spread over 20 or 30 tables. Many of our most critical tests can be summarized as, “Does this code interact correctly with this metadata?” And by definition, that’s the sort of thing you can’t do with pure unit tests.

Consequently, I’ve split up our automated tests into roughly three categories:

  1. Unit tests. These don’t talk to the real database, and any dependencies are strictly mocked out (we use Moq for this).
  2. Integration tests. The entry point for these tests can be anywhere from the API controller in the website, down to the lowest-level repository, but the key is that they actually talk to the real database – though other dependencies (such as, our payment processor, or IMS, our agency management system) are generally still mocked out.
  3. Acceptance tests. The line between these and integration tests is a little fuzzy sometimes, as we still use the same testing framework for both (we recently switched from MSTest to xUnit). But basically, the idea is that we don’t mock anything out, and each test exercises the system from front-to-back, usually in defined flows. We use Selenium to drive a web browser for tests that involve the website.

This works. Mostly.

Don’t get me wrong – our testing infrastructure is critical to Swyfft, and we couldn’t have gotten where we are without it. The thousand or so tests that we run on each build are an invaluable safety net. But there are plenty of things we’re going to need to improve. A few of them:

  1. Selenium is susceptible to random failures. About half of our test runs will trigger at least one unrepeatable Selenium test failure. We’ve tried different browser drivers through Selenium, and Chrome is maybe the least problematic, but every one I’ve tested seems to have similar problems, just to different degrees. Those random failures significantly decrease the value of having a build automation server: just because Jenkins rejects the build doesn’t mean anything if you know that there’s a 50% chance the build was rejected because of something that isn’t really a problem in your code.
  2. The whole thing is really slow. I prefer my test automation suite to run in under 60 seconds. Anymore than that, and running the tests become something you do when you think you’re done coding, rather than something you do repeatedly as you’re ginning up a new feature or performing a quick refactor. And unfortunately, our tests take about 15 minutes to run on a fast machine. You can work around the slowness, and we do, but it really interferes with getting realtime feedback.
  3. Keeping the DB in sync on our build automation server is a PITA. We could regenerate the DB for each run, but it takes about 15 minutes or so just to load the metadata, and the test runs are long enough already.
  4. We’ve done almost nothing about JavaScript unit testing. The site is simple enough so far that we can get by with UI-level automation testing, but as the site gets more and more complex, that’s not going to be sufficient. We could probably get rid of half of our problematic Selenium tests if we were able to verify the JavaScript (or rather, TypeScript) code at one or two levels lower down the stack.

I’d be interested in hearing how other folks have solved these problems. Please let me know!

Monday, January 25, 2016

Swyfft is off and running

For a little over a year, Swyfft, the company I joined last April, has been working to revolutionize homeowners' insurance. And we've got some seriously cool stuff going. Most of it I can't talk about - it's full of algorithms and analytics and patented this-and-that. But the result is straightforward enough: you go to our website, put in an address, and two or three seconds later, get a quote. I think we're the first insurance company to pull this off, and it's very cool.

Of course, a fast quote wouldn't be terribly helpful if it didn't also save people money. And we've got tricks up our sleeve there, too. Naturally, we can't save everyone money: claims are what they are. But Sean Maher, our very smart, nay, brilliant CEO (I'm not above bootlicking), has worked some magic there as well. And we think we can assess the sorts of risks a property is likely to face as well as or better than insurance companies who've had billions of dollars and decades trying.

Our systems, the piece that I'm most intimately involved with, have been more-or-less ready since late last summer. But the business side has taken quite a bit longer: negotiating the contracts, maneuvering through the regulations and licensing agencies, that sort of thing. But we're up and running now, and the response we've seen so far is promising and exciting.

Everyone has to start somewhere, and our initial market is small: coastal Alabama. But that's just the start. As we get initial metrics, and start to increase traction, we aim to be all over the Gulf Coast, and eventually, nationwide.

I love Swyfft, I love what I get to do every morning, and I can't wait to knock the socks off our industry.

Sunday, December 20, 2015

Brief thoughts on Newman’s “Development of Doctrine”

On p. 47 of Newman’s An Essay on the Development of Christian Doctrine, Newman writes:
I have been arguing, in respect to the revealed doctrine, given to us from above in Christianity, first, that in consequence of its intellectual character, and as passing through the minds of so many generations of men, and as applied by them to so many purposes, and as investigated so curiously as to its capabilities, implicaitons, and bearings, it could not but grow or develop, as time went on, into a large theological system.
He’s correct on this point, I believe. Anything that impacts human beings is going to invoke human curiosity, and anything that claims to be as significant as Christianity will necessarily be the focus of a great deal of intellectual endeavor. I can’t imagine being human without some desire for consistency and coherency in what we believe, and I can’t imagine a human civilization without people who are focused on figuring out how each part of our social and intellectual worlds connects up to the other parts. If something big happens to humans – boom, humans are gonna start thinking about it. And arguing. And those arguments are going to get more sophisticated and subtle as time goes on, as flaws in earlier formulations become apparent, as various and sundry attempts are made to resolve the inevitable difficulties.
But Newman goes on to write:
…next, that if development must be, then, whereas Revelation is a heavenly gift, He who gave it virtually has not given it, unless He has also secured it from perversion and corruption, in all such development as comes upon it by the necessity of its nature, or, in other words, that that intellectual action through successive generations, which is the organ of development, must, so far forth as it can claim to have been put in t charge of the Revelation, be in its determinations infallible.
He’s wrong on this point, I think. He would be correct of the intellectual content of Christianity were its chief or most important characteristic. But if Christianity is the remnant and the witness to God having done something, and what God has done is more important than what we think or understand about what God did, then I can’t see any reason why God would find it necessary to preserve it from all perverson and corruption. As I understand Christianity, I can see how it would be important to shield it from a certain amount of perversion and corruption: what God is doing involves, among other things, making sure people learn about what God has already done. And there is an intellectual component to this. But it’s certainly not the only and probably not the most important component. Jesus said that all men would know that we were His disciples by our love for each other – and not, let us be clear, by the correctness of our theology. If that’s the case, I could see God being willing to put up with quite a lot of theological misunderstanding and wrongheadedness, for the sake of His people learning to be the sort of people He wants.

Friday, January 9, 2015

A New Hope

Over the last several years, David Jang’s community has offered a variety of explanations for the concerns that have been raised about the community’s teachings. These explanations have generally involved increasingly creative ad hominem attacks – just suing folks was getting boring, I guess – and have tended to move from, “Nobody ever taught that Jang was a second Christ and anyone who says so is a liar,” towards, “Well, it sort of happened, but it was only a few folks out on the fringes.” As more and more documents have accumulated, however, even that latter claim has become increasingly implausible. As I wrote elsewhere:

The evidence I’ve laid out in my last three posts indicates more-or-less conclusively that the belief was present from the lowest to the highest members of the group, was spread across at least four continents [ed: now six], and continued for many years. Several people have told me that every member of their particular local branches believed Jang to be the Christ, and this in an organization which emphasized communication and control… Quite a number of folks have told me that they had sent David Jang letters or emails in which they laid out their belief in him as the Christ. All this taken together makes it hard to believe that this teaching was was happening entirely without Jang’s connivance.

Given this background, a debate taking place in the comments section of another recent post has been enlightening, as it introduced a new swirl of explanations, at least one of which I had not previously heard. In this debate, an anonymous member of Jang’s community with the handle of “Guestememo” was challenging, well, pretty much anything I’d ever written or done, ranging from my tenure at Zango (he thought it reflected poorly on my ethics), to my church attendance (he suspected it was spotty). He appeared to know a great deal about Jang’s background, including details of his involvement in the Unification Church, along with the names and identities of obscure Korean associates I’d never heard of. I’ve also heard from several ex-members that this sort of public defense never happens without Jang’s authorization, so my assumption is that Guestememo was in all likelihood writing with Jang’s approval, perhaps even with Jang’s active participation.

When I asked him to comment on the quite substantial evidence showing that the problematic teachings had been common throughout the community, he responded with this post:

Ken, it is productive that you asked. I think we are going toward the end of this long debate.

It’s very important to understand these 2 points:

In Jesus’ teaching in John 21, he says, “Feed my lambs,” which talks about Peter taking the role of Jesus Christ in shepherding His (Jesus’) sheep. It’s not about Christology (not that Peter himself is becoming a savior) - but rather about roles. The Christ refers to the Savior who saves us from the sin. But the Christ you are referencing in the messages is similarly talking about a role or a place - it's not about salvation (soteriology) or Christology. This is interpreted using a typological approach in hermeneutics. Another example of this is in Ephesians 5, where it is written that husband and wife are to be like Christ and the church. The husband is in the role of Christ for the family - serving and sacrificing. This does not mean that the husband saves the wife from sin. For us, salvation is complete through Jesus Christ and no other Christ is needed. Therefore, this is not about Christology or soteriology at all - but rather, it is about a ROLE one holds.

These particular lectures are very contextual. When we answer to those who have questions on eschatology, there are 2 ways to interpret the Bible: in a literal way or a spiritual way. For those who do not take things literally, eschatology can be very confusing. These lectures were designed in order to protect these types of confused people - especially in the Asian context where there are many gods and cults. Frankly, protecting these people is a very big challenge in many regions and many people have lost their Christian faith, having it replaced with cult beliefs. Conclusively, these contextual messages were only used in these special contexts.

Broadly speaking, these lectures were very limited and were given in a special situation. Even so, these could cause confusion if people do not understand them properly so teaching these messages was discouraged and these were never accepted at the church as a whole, and were certainly never part of any official doctrine adopted by the church.

About things like “time, times, and half a time”, there’s no one who actually believes in dispensationalism in the church; you can check among the accusers and will see that no one actually believes in it. Why were these messages only taught around the perimeter? In these fierce situations, among cult groups and extreme liberal groups attacking many people with their own dispensationalism, a few missionaries had to actually create their own dispensationalism to counter theirs. These views were never part of any core doctrine. That’s the context in which this happened. We don’t hold a dispensational view. This was not official doctrine and was not accepted from the denomination, but only given to face the challenges from cults and to prevent people from falling into them. So I hope you do not misunderstand these lectures.
Some lecturers believed these were the best hermeneutical methods available against cults and extreme liberals. These were never used to say that he is the savior - the messages were taught very differently from that perspective.

This was all already cleared more than 10 years ago. Moreover, this all took place in parachurch small groups before the church was actually formed. It’s not something that people accepted as a whole from my understanding.

The basic church doctrine is very healthy and orthodox.

I don’t care whether you believe this or not, but you can just check and see.
As far as I know, Borah was actually a very good Bible teacher. And she was a great testifier of the Gospel who said Jesus Christ is the only way to salvation in her confession. ( — "I could never teach a Bible study with this intent because I have never believed nor confessed that David Jang is the 'Second Coming Christ.'"

Lin responded to Edmond, saying, "Like many other evangelicals, I affirm the Second Advent is the literal and personal return of Jesus Christ," she said. Lin also cited a verse in the Book of Acts stating, "This same Jesus, who has been taken from you into heaven, will come back in the same way you have seen him go into heaven.")
I want to conclude this with this verse that came to my heart:

Romans 14:1-22 So whatever you believe about these things keep between yourself and God. Blessed is the one who does not condemn himself by what he approves.

I feel like our debate is just like this passage.

So that’s interesting.

The first thing worth noting is that everything Guestememo says presumes that the various documents and testimonies that have come to light over the last several years are genuine, and not the forgeries or lies that Jang’s community had originally claimed they were. To be sure, there wasn’t much question about this, but I suppose that admitting as much counts as progress.

The second thing is that Guestememo is doing a lot of hand-waving here, tossing around theological jargon like a first-year seminarian. But even after I’ve read the post repeatedly, I can’t quite figure out how introducing concepts like “typology”, “eschatology”, “dispensationalism” and so forth advances his argument, or really even makes any sense. I saw some of Jang’s academic transcripts recently, in which he shows himself to be a solid “B” student; I’d probably give this effort a C+.

Beyond that, Guestememo makes several points, which I think can be fairly summarized as follows:

  1. When folks in these lessons referred to Jang as “Christ”, they were referring to Jang’s role, not to his identity.
  2. These teachings were necessary to help folks who might otherwise be attracted to cults.
  3. It only happened on the outskirts, in very specific situations.
  4. All this happened more than 10 years ago.
  5. Now that this has been explained, the debate can end and we can all be friends.

I’ll try to respond to these points individually.

It Was About Jang’s Role

I suppose I could get behind the idea that the official lessons which describe Jang as Christ were referring only to his role rather than to his identity. This probably was the way that folks like Borah conceived of him: at least, there’s no hint in the written or audio lessons that they thought of Jang in Chalcedonian terms, as God incarnate. Some chats and documents refer to him as “King”. One member told me recently that “everyone considered him to be superhuman,” and that sounds pretty typical. On the other hand, some went quite a bit further. One document clearly speaks of Jang in soteriological terms, making repeated reference to the “sacrifice” of “Christ David”. Another calls him “Lord”, the earliest Christian confession. Other former members have said that they would pray in Jang’s name, or even thought of him as God.

However, even putting those stronger claims aside, I don’t know that it really helps Guestememo’s case to draw this distinction between role and identity. If you’re a Christian, and you’re teaching that somebody besides Jesus of Nazareth is playing the role of “the Christ”, something has gone badly wrong. Period. You can try to draw all the distinctions you want and trot out whatever technical theological language you think might impress or confuse folks, but if your community can produce or even tolerate that teaching for more than two seconds, it’s clearly gone off the rails. And if you don’t think that’s so - well, that’s pretty telling too.

It Was Combating Heresy

The idea that these lessons were necessary to combat heresy is just nuts, straight up. I’d be more polite if I could, but I can’t quite bring myself around: this isn’t the sort of explanation that calls for politeness. If you read through the numerous documents that have been made public, there’s no hint that this was their purpose. Nor does the claim make sense on its face, since it boils down to saying that they needed to teach heresy to fight heretics. Despite the fact that they keep offering it, this is perhaps their least persuasive in a long line of implausible explanations.

It Was on the Fringes

I’ve said before that it’s hard to say just what percentage of Jang’s community believed that he was a second Christ. It was certainly less than universal - when someone hadn’t made the confession, folks would whisper, “He doesn’t know about Pastor David”. But neither was it just a few missionaries on the outskirts. It probably did make a difference where you were: one former US member estimated that perhaps only a third of the community believed it, while Chinese members have insisted to me that everyone in their local community had made the confession. Even one of the folks who supposedly “didn’t know about Pastor David” told me that he had, in fact, been taught this - he just didn’t buy it. I’ve talked to a lot of former members over the years, and I can’t recall anyone who joined before 2006 who hadn’t at least encountered this teaching. What is beyond any serious dispute is that it was taught on every continent (except Antarctica), for many years, and by folks from the lowest to the highest levels of the organization.

It’s Ancient History

I believe I was the first of Jang’s critics to acknowledge that he had called a halt to the teaching of the history lessons in 2006, nine years ago. (So it wasn’t really “more than 10 years ago”, but I won’t squabble over the details.) That said, I’ve had two people tell me that at least some current members have acknowledged that they still believe Jang to be the Christ. I suspect that this is an increasingly marginal position in the community at large, but it doesn’t yet seem to be extinct. And I have no idea what Jang’s inner circle continues to think.

The bigger problem is the community’s ongoing ethical failings, which are quite certainly not ancient history, and which go well beyond their continued denials and dissimulation about the second Christ teaching. Ben Dooley has documented repeated violations of US labor and immigration law. Lots of people have told me that members were encouraged to lie to family, in the hopes of getting money out of them. The group has continued to lie, well beyond the point where it has any point, about the nature of the community’s interrelationships. (Does anybody really doubt anymore that Jang controls the Christian Post, or that the IBTimes leadership takes orders from him?) Former members who speak out continue to be bullied and threatened. Most eye-opening, OSHA issued a $2.35MM fine to Olivet last April for repeatedly and willfully exposing its students and other workers to lead and asbestos. I could go on. This is not a community that Christians should trust.

Let’s Be Friends

As for whether we can all be friends now - well, there was a point in time when I hoped that Jang’s community would choose the path of honesty and repentance. I was confident that if they did, they would be greeted with reconciliation and rewarded with fellowship. I’m probably one of Jang’s most dogged critics, but I would have welcomed them with open arms had they decided to come clean and engage the world honestly. I still would. But I see little sign that this is afoot.

I appreciate the attention that Jang and his inner circle are paying to my criticisms, but in the end, it’s not my judgment that they need to worry about.

Friday, January 2, 2015

A statement from the Spencers

As I mentioned in my last post, Aida and Bill Spencer, two Gordon-Conwell theology professors, recently published an article on their Scriptural Truths blog that resulted in some controversy. This article, written by Martin Zhang, one of Bill’s students, was a thoughtful and irenic but ultimately critical analysis of the various concerns that have been raised about David Jang and his community. Since their blog was hosted by the Christian Post, one of the media outlets controlled by David Jang, it was not at all surprising that not just this post but their entire blog was immediately removed.

I reached out to the Spencers to get more information, and this was their response, which I publish here with their permission.

Dear Ken:

Thank you so much for saving our blog and keeping it on line. Below is a letter that we sent to Ted Olsen that gives you some background information.

The post that you read was an experiment. It was brought to our attention that Christian Post is affiliated with David Jang. We were told that Jang’s group was recruiting orthodox evangelical Christians to give indirect endorsement, in other words, we were legitimizing the movement by our presence on the Christian Post, even though we knew nothing about the group. Several of our students in Korean and Chinese churches mentioned concern about David Jang and cited Christianity Today’s article. Martin Zhang, one of our students, who has now returned to China, wrote a paper on David Jang’s movement for Bill’s class, Contemporary Theology and Theologians. Bill and I guided him through several revisions until we found a version that was kind and fair. We put it on our blog at 5 p.m. last Friday to see how Christian Post would respond:

Would they allow the article?

Would they respond and clarify?

Or, would they strike out the article or the entire blog?

For example, they could have said: “This rumor has been plaguing us for years. We are glad to be able to respond to this once and for all. Neither David Jang nor anyone in our movement is claiming that Pastor David is the Second Coming Christ. Such a statement would be blasphemous. David Jang, his teachers, and his movement simply see him as a faithful servant of Jesus.” This is the opportunity we provided them.

Instead, as you know, in two hours this specific blog and all our blogs have been eliminated. “Manage your blog” no longer comes up when we go on the site. Only David Jang’s face, the picture on this particular blog entry, remains under “Church and Ministry.” They were very thorough.

In an email to us, the blog editor, Stephanie Howell (10:15 p.m. Friday), told us we had violated “The Christian Post terms and conditions.” Under it says:

“Any bloggers seeking to level criticism against a particular pastor, leader and/or ministry cannot be posted on the blog section.” Also, CP Blog “will not tolerate material deemed to criticize pastors’, leaders’, churches’ and ministries’ characters rather than a methodology or system of principals, rules or methods for regulating a given discipline. Materials criticizing the methodologies of pastors, leaders, churches and ministries must cite evidence from an official record and/or source.”

However, over the years, we had already published several blogs about heterodox movements with no difficulty at all, such as: “Is the Holy Spirit Really Walking Around in Human Form Today in Africa?” on Olumba Olumba Obu and his Brotherhood of the Cross and Star (11/10/12) and “Shinchunji Heresy Challenges Church in South Korea and Elsewhere” on Man Hee Lee (by a Korean student, Doo Min Cho).

The benefit of the Christian Post is that they provide promotion of individual blogs. That is why when we had each individually been invited to write a blog on the Post, we had decided to do one together, which we have been doing for the last three years, since Feb., 2012.  I (Aida) am Professor of New Testament and Bill is Professor of Theology at Gordon-Conwell Theological Seminary (Aida at Hamilton, Bill at Boston campuses). We have numerous Asian students who we encouraged to publish on such topics as “What Should Chinese Christians Do in the Midst of Current Persecution?” (also by Martin Zhang) on our Christian Post blog and critiques of Sun Myung Moon’s Unification Church and Man Hee Lee’s Shinchonji in Africanus Journal which we edit (

By doing this experiment, we knew we might be risking losing our platform through this massive machine. The cost of losing our blog, which we really love doing, was less important than testing for the truth. We wanted to make sure we were not being used to promote heterodoxy. We were trying to keep another Sun Myung Moon from rising up inside Christianity. A simple denial by the group might have helped put the issue to rest.

By the way, Martin did do original translations of pieces in Chinese. He did extensive work. He has also written a bio on Jang which we did not publish with the Post entry for reasons of length, but Christianity Today might want to do it (see attachment). We have subscribed for decades to Christianity Today.

Sincerely yours,

AĆ­da and Bill

The Spencers also forwarded me an email thread in which Stephanie Powell from the Christian Post offered them this explanation:

Hi there,

I hope you had a Merry Christmas. This evening, your blog "The Mystery of David Jang (Jang Jae-Hyung)", written by Martin Zhang was brought to our attention. Because of the controversial content we unpublished your article. It violates The Christian Post terms and conditions (please view this link to read our terms and conditions

If you don't mind, may I ask who is Martin Zhang and how are you connected to him?

We appreciate you contributing to The Christian Post Blog section us for all these years and hope to have you continue.

After a response from the Spencers that largely repeated what they said above, she responded with this polite but fiirm email:

Thank you for your email. We understand confusion can of course occur when you do not know another organization well enough, and we believe that by conducting some obscure "test" you have come to a further misunderstanding and false conclusion. We will be sad to close down your blog but will of course do so considering there is clear mistrust - which is sad as we are two organizations built in the love and grace of Jesus. And for the record, no one in our COMPANY has ever said or claimed that David Jang is a so-called "Second Coming Christ". Only Jesus is Christ, as clearly indicated by our statement of faith. We hope that in the future you can get to know us more, see the evidence of our fruit (the content on our website) and judge us on that rather than the misinterpretation of an obscure "test", and God-willing, later we can work together as brothers in Jesus for His Kingdom.

I’ve reached out to the Christian Post for additional comment, and will include their response if I hear back.

Friday, December 26, 2014

An Ironic Wrinkle in the David Jang Saga

So this was interesting. Earlier today, Ted Olsen forwarded this link to me:

It was a link to an article – published on a Christian Post blog, no less – examining the claims about and accusations against David Jang, and coming to some reasonably skeptical conclusions.

I immediately started to read the post on my cell phone, but in the five minutes it took me to get to a computer, the link started turning up a blank page, and indeed, it looks like the entire Scriptural Truths blog got deleted. Luckily, I was able to save the page from my cell phone to a PDF, and it’s now available here:

I was previously aware of most of the material (indeed, it seems to quote from some of the documents I’ve previously made public), though I believe that some of the translations into English were new. It also appears that the author had access to independent sources within David Jang’s community, though what his own ties to the group may have been are not clear.

Given how sensitive Jang’s community is to criticism, I’m hardly surprised that it got taken down; I’m more surprised that it got published at all, and I’m sure there’s a fascinating story there. Before this, I had no idea who Aida and William Spencer were (a quick Google search reveals that they’re theology professors at Gordon Conwell), nor do I know who “Martin Zhang” is. If anybody has more information along those lines, please reach out to me!

The full text of the original blog post follows.


The Mystery of David Jang (Jang Jae-Hyung)

By Aida and William Spencer

December 26, 2014 | 4:46 pm

Guest blog by Martin Zhang

Why A Mystery?

David (Jae-Hyung) Jang is an influential yet controversial figure especially in Eastern Christianity. On the one hand, he is the founder and international president of Olivet University (OU), a professor of theology at Olivet Theological College and Seminary (OTCS), the 88th president of Denomination General Assembly of the Presbyterian Church in Korea, founder of Christian Today, Christian Daily Korea, Christianity Daily, founding team member and former senior advisor of the Christian Post, North American Council Member of the World Evangelical Alliance (WEA), president of the Holy Bible Society (HBS) and president of the World Olivet Assembly (WOA).[1] He is a very distinguished and industrious religious leader.

On the other hand, sources show that David Jang was a follower of Sun-Myung Moon for 31 years, and was a major leader of the Unification Church (UC) until 1998, in which year he resigned as professor of Sun Moon University. Moreover, former members of his present group, the Young Disciples of Christ or the Davidian Community, have testified that they were given lectures and eventually led to confess David Jang is the “Second Coming Christ.”

No evidence shows that David Jang himself has claimed publicly to be the “Second Coming Christ,” and he himself has also denied that he has claimed to be the “Second Coming Christ.”[2] However, witnesses from Korea, Japan, China, Singapore and America are unanimously pointing to one thing: Some followers of David Jang induce people to confess that David Jang is the Second Coming Christ.

What’s the Possible Fact behind the Controversy?

What, then, is the fact lying behind the controversy? There are at least three possibilities: 1) All those former members are either telling the truth or lying; 2) David Jang is either telling the truth or skillfully lying (he did not explicitly claim publicly, but privately accepts his followers’ teaching); and 3) both the former members and David Jang are telling the truth and neither is lying (only some of David Jang’s followers are teaching heretical doctrines which are neither created by nor known to him).

Possibility One

First, let us examine the testimonies of the former members. These witnesses claim that they are usually approached by members of the Davidian Community (under the name “Young Disciples of Jesus” [YD]) who are called “guides” (author’s translation). They are invited to a free Bible study and taught forty lessons which are called “forty Taos.” Attendees usually receive at least one lesson per day. After finishing these lessons, attendees report they are asked questions that lead them to the conclusion that David Jang is the Second Coming Christ.

Brother EN, who joined YD in 2001, recalls, after the “Forty Taos” they had a celebration party for him. At the party, their leader, a Korean sister, asked him: “What differences do you feel in this place?” EN answered: “Genuine love. Very warm.” She replied, “Only those who have faith can understand the difference. At that time, by his faith, Peter recognized Jesus was the Christ, what do you think?” EN answered, “Jesus is with us.” She asked again, “Only those who have faith can see, do we have love?” EN answered, “Yes.” She then asked, “The one who has greater love is Msni (David Jang). If Christ has come, he must be very special. All these ‘Forty Taos’ you have listened to were written by him, which is the highest revelation. So, what do you think?” He finally understood what she expected him to answer, and said, “Msni is the Christ.” Then everyone applauded, and praised aloud, “Thank the Lord, thank the Lord.”[3]

Esther (Ma Li) and another girl were asked the same question after they had listened to the “Eschatology,” “Time and Date,” and “New Israel” lectures. Zhang Naiwen, Esther’s teacher, asked them: “Who is Rev. David?” Being completely convinced, Esther answered without hesitation, “The Second Coming Christ!”

Then, based on Matthew 7:6, she and other members were told not to tell anyone else. She reports both of them were told that they were reborn. They signed the member card and were declared members.[4] Former leaders of the Davidian Community from Korea and Singapore shared similar experiences. [5] Those who joined them were soon required to work for affiliated companies and to give money to the Community. EN finally left the Community, but was identified as the one who puts his hand to the plow and looks back, therefore not fit for the kingdom of God.[6]

Since those former members are from different countries yet are telling very similar if not the same stories, we may conclude that although it is possible that all of them are lying, it is unlikely. This writer would need more evidence to be convinced that all of those witnesses are lying.

Possibility Two

Now let us consider the second possibility. Is David Jang telling the truth or is he a skillful liar? Sources show that David Jang was a follower of Sun-Myung Moon for 31 years, and he was a core member of the Unification Church. He was charged with promoting Unification Theology. It was said that he first denied his long time experience in the Unification Church, then reinterpreted his years in the Unification Church (e.g., he was not teaching Unification Theology, but saving people from the Unification Church), and finally wrote a letter of repentance.[7] This writer cannot help but wonder what really happened to David Jang.

Was he actually a follower of Sun-Myung Moon? Sources show that David Jang was married among 1,800 couples in a mass wedding presided over by Moon in February 1975. One of the qualifications for participating in Moon’s mass wedding was to believe Sun-Myung Moon was the Second Coming Christ.[8] Did Mr. Jang believe that Sun-Myung Moon was the Second Coming Christ? If so, when did he change his mind? How did that change happen? David Jang definitely has a great testimony to tell. God may use his testimony to lead more Unification Church members back to God.

On the other hand, some participants in the “Forty Taos” series have reported that, based on Matthew 7:6, members were taught not to share the teaching with those who are biased, lest they may not believe what they say and turn back to accuse them.[9] These claim that David Jang was following the strategy in this teaching when he denied that he claimed to be the Second Coming Christ, perhaps following the example of Sun Myung Moon, who for a long time did not reveal himself to be the “Lord of the Second Advent.”

However, even if David Jang’s experience in the Unification Church is true, and even if he used to accept people believing him as the Second Coming Christ, if he has genuinely repented, all evangelical Christians would be more than willing to embrace him as a brother in Christ. We were all someone else before we accepted Jesus Christ as our Savior and Lord, just as the Apostle Paul says, “where sin increased, grace abounded all the more” (Rom 5:20). However, all of us would really want David Jang to share his spiritual journey openly before all could embrace him as our brother with complete confidence and without any concern.

Possibility Three

How about the third possibility? Is it possible that David Jang was a genuine orthodox Christian from thebeginning or has genuinely repented from the Unification Church, but his followers somehow came up with the teaching that David Jang is the Second Coming Christ which was unknown to him? Before discussing the possibility, let us first take a look at the teachings reported of David Jang’s followers.

What Are These Controversial Teachings?

According to a sermon preached by one of David Jang’s followers Pastor Paul, God restores the fallen world through three periods of time. He cites Mark 4:28, “first the stalk, then the head, then the full grain in the head.” These three images represent the Old Testament era, the New Testament era, and the era of (another) New Covenant respectively. The Old Testament era was an era of law; the New Testament era was an era of Gospel, and now we are entering a New Era, which is another Gospel era, oriented by the Second Coming Christ’s teaching, which is the eternal Gospel.[10] In the New Testament era, Jesus separates the era of “the stalk” and the era of “the head.” Jesus taught in parables. The one who separates the ear of “the head” and the era of “bearing fruit” will be this Second Coming Christ who preaches the Eternal Gospel crystal clearly.

David Jang’s sermon “Time and Date” divides the history of the world by millenniums. Genesis covers the first two thousand years. The last figure in Genesis is Joseph, who is the image of Jesus. Joseph was sold by Judah, but he finally forgave Judah. The rest of the Old Testament also covers two thousand years. Jesus Christ separates the Old Testament and the New Testament. Jesus was also sold by a Judah (Judas), but he also forgave him. Therefore, David Jang concludes, there is a great change every two thousand years. Now we are at another point of the two thousand year period. God chose Israel in the Old Testament era. He chose Christians in the New Testament era. God is going to choose a New Israel for the coming new era. These are the 144,000 people in Revelation 7.[11] They are not the only people who are saved, but they set a model for the Kingdom of God. We can become one of the 144,000. In Revelation 1:7, we read, “He is coming with the clouds”: “‘The clouds’ mean witnesses, not real clouds.” Being caught up in the clouds to meet the Lord in 2 Thessalonians means experiencing an inner change in our lives. The sermon argues that the kingdom of heaven is not in heaven, but on earth.[12]

How can one become one of the 144,000? Another sermon teaches, if one signs the member card of this movement, that one will be counted.[13] Who, then, can sign the member card? Testimonies of former YD members report that, although they might be directed in different ways, all finally were convinced and confessed that David Jang was the Second Coming Christ. And then they were told that that day was their “re-born day.” Then they would sign the member card.

The testimonies of the former believers seem to accord with the sermons. What is the problem with these teachings?

What’s Wrong with Their Teachings?

According to the testimonies of former followers of David Jang, those who confessed David Jang to be the Second Coming Christ were called re-born.[14] It appears that the problem of the Davidian groups is in their soteriology (doctrine of salvation). However, this is probably not the main issue. As explained in the sermon “Eschatology,” adherents do not claim that only those who follow them or believe in David Jang are saved. Those who sign the member card are among the 144,000 who are “the first fruit.” Technically, “reborn” is not an accurate word, since it might suggest they do not rely on the cross for their salvation. This is not these former adherents’ complaint.

The major problems appear to be with the movement’s Christology[15] and Eschatology.[16] In the sermon “Time and Date,” Jesus is said to have used mainly parables to preach the gospel, thereby contrasting him with the Second Coming Christ who will proclaim the Eternal Gospel plainly. Human history has been divided into 2 millenniums (creation to Joseph) + 2 millenniums (Joseph to Jesus) + 2 millenniums (Jesus to the Second Coming Jesus). Therefore, their arguments seem to be that there is no question of the date of the Second Coming. It has to be the second millennia A.D. “The era of the fruit is right in front of us,” Pastor Borah Lin assures us.[17]

If the Second Coming Jesus has already come, then the logical question would be: Who is he? In “Time and Date,” Pastor Borah does not appear to ask, “when will Jesus come,” but “who brings the Eternal Gospel?” The assumption is that the Second Coming Jesus is not Jesus of Nazareth but another. Since the Second Coming Jesus is already on earth, the Rapture that Paul describes in 1 Thessalonians 4:15-17 cannot be a literal rapture. One possibility would be that it is an internal change, as described in “Time and Date” and “Eschatology.”[18]

Once one accepts such teachings, if asked, “Who do you think Pastor David Jang is?” one is reported to be guided by questions to the conclusion that he is the Second Coming Jesus, because all the sermons studied are said to be have been written by him. Therefore, he is the one who explains this “Eternal Gospel” in such a plain way.

Such a teaching, of course, would contradict both the Bible and the Creeds of the early church. First, concerning the date of the Second Coming, Jesus Christ said, “No one knows about that day or hour, not even the angels in heaven, nor the Son, but only the Father” (Mark 13:32).[19] Therefore, any person or group declaring to know the date must be mistaken. Second, Jesus told his disciples, “If I go and prepare a place for you, I will come again and will take you to myself, so that where I am, there you may be also” (John 14:3). Moreover, right after Jesus’ ascension, the angels said to the disciples, “This Jesus, who has been taken up from you into heaven, will come in the same way as you saw him go into heaven” (Acts 1:11). It is very clear that the same Jesus will come back. The Nicene Creed also confesses that “He (Jesus Christ) shall come again, with glory, to judge the quick and the dead.”[20] Anyone or any group who declares that the Second Coming Jesus is not the same Jesus must be heretical. The Nicene Creed confesses that Jesus Christ is “God of God…very God of very God.”[21] The Chalcedonian Creed also confesses that Jesus Christ is “consubstantial with the Father according to the Godhead.”[22] If we accept a conflicting teaching that the time of the Second Coming of Christ can be known, and the “Second Coming Christ” is not the same person as Jesus of Nazareth, we would have to admit at the same time that what is reported in the New Testament that Jesus and the angels told the disciples was not true. This would diminish Jesus to either an intentional liar or a mistaken person who honestly said something that was not true. In either case, Jesus could be anyone, but not fully God, since he was not perfect. But the Scriptures tell us he was the “unblemished” sacrifice for our sin (Heb 9:14). Last but not least, although the Davidian Community teachers are not reported to have specifically taught that salvation belongs only to them, by identifying those who have left their movement as not fit for the kingdom of God, they are implying such a theology, which apparently contradicts the biblical teaching that, through believing Jesus Christ, we are saved (John 3:16; Rom 4:24).

Back to the Third Possibility

Former believers testified that they were told that the “Forty Taos” and other sermons were written by David Jang, which was key in leading them to conclude that David Jang is the Second Coming Christ.[23] While they report that Davidian teachers did not directly teach that, witnesses testify, they were asked “two plus two equals?” questions to let these listeners themselves come up with the answer “four,” but “no one said ‘four’ directly.”[24] Did David Jang really write these sermons to declare himself the Second Coming Christ or are those teachers mistaken in their interpretation of his instructions?

If David Jang wrote these sermons with such an intention, it would be impossible for us to accept his teaching as orthodox. Therefore, it would be best once more for David Jang to explain what he really believes and intends to convey in his sermons, in his teaching, and in the interpretations of his instructors and their followers. If David Jang did not write any of the sermons, and he neither believes the above, then his followers may be promoting heretical teaching in his name. This is a very serious problem, because his followers would be making up sermons to lead people to confess that David Jang is the Second Coming Christ, and be claiming that the sermons were written by him with this intention.

Ben Dookey in his article in Mother Jones claims that David Jang knew his followers were spreading the message.[25] If this charge is not true and Rev. Jang is really opposed to such a monstrous interpretation, our plea is that he clearly forbid anyone in his movement to make such a blasphemous claim and even expel those who continue to do so.


We certainly do not want to see an innocent person wrongly charged. At the same time, we cannot call anyone who is heretical in his or her teaching our dear brother or sister in Christ. That is why we wrote this article, with a hope that David Jang would help us clear up the mystery by answering the questions raised in this article by sympathetic but puzzled and inquiring Christian people.

[1] David Jang, “Biography of David Jang,” accessed Sept. 22, 2014,

[2] Michelle A. Vu, “Sources in ‘Second Coming Christ Controversy’ Face Scrutiny,” Christian Post, Aug. 19, 2012, Accessed Sept. 22, 2014.

[3] EN, “The Testimony of EN,” in Clear the Fog & Reveal the Truth, by K.Y. Cheung Teng (Hong Kong: Concern Group on Newly Emerged Religions, 2008),

[4] Ma Li, “The Inerasable Memory,” in Clear the Fog & Reveal the Truth, by K.Y. Cheung Teng (Hong Kong: Concern Group on Newly Emerged Religions, 2008),

[5] Davidian Watcher, “Important: Full Text of the Testimony of A Former Pastor of the Davidian Community,” Collections on the “Davidian Community,” Sept. 22, 2008, Accessed Sep. 22, 2014. Ted Olsen and Ken Smith, “The Second Coming Christ Controversy: More Leaders Speak Out,”, Sept. 12, 2012, Accessed Sept. 22, 2014.

[6] EN, “The Testimony of EN.”

[7] Davidian Watcher, “Discussion on Rev. Jang Jae-Hyung’s Ministry in the Unification Church (I),” Collections on the “Davidian Community,” Dec. 1, 2007,; Davidian Watcher, “Discussion on Rev. Jang Jae-Hyung’s Ministry in the Unification Church (II),” Collections on the “Davidian Community,” December 1, 2007,; Davidian Watcher, “Discussion on Rev. Jang Jae-Hyung’s Ministry in the Unification Church (III),” Collections on the “Davidian Community,” Dec. 1, 2007,

[8] K.Y. Cheung Teng, An Analytical Study on the Continuous Controversies Stirred Up by David Jang, trans. Kitty Lau and Elaine Yip, Sept. 9, 2012, Accessed Sept. 22, 2014.

[9] H. T., “I Will Never Forget Them,” Research on Young Disciples of Jesus, May 31, 2008, Accessed Oct. 7, 2014.

[10] Paul Zhao, “Time and Date,” accessed Sept. 22, 2014, Pastor Borah preached the same sermon on July 20, 2002. See Accessed Sept. 23, 2014. We are not sure if they are the same person or not.

[11] Provided by Former YD Member, “New Israel,” accessed Sept. 22, 2014, For similar sermons on “New Israel” preached by followers of David Jang in English and German, see Preachers of the Davidian Community, “New Israel,” 2002-2006, Accessed Sept. 22, 2014.

[12] Provided by Former YD Member, “Eschatology,” accessed Sept. 22, 2014,

[13] Provided by Former YD Member, “Four Spiritual ‘Taos,’” accessed Sept. 22, 2014,

[14] Ma Li, “The Inerasable Memory.”

[15] “Christology” is doctrine concerned with revelation of God in Jesus Christ.

[16] “Eschatology” is doctrine of the last things or the final events of humanity.[17] Pastor Borah, “Time and Date,” July 20, 2002, Accessed Sept. 23, 2014.

[18] Provided by Former YD Member, “Eschatology.”

[19] See also Millard J. Erickson, Christian Theology, 2nd ed. (Grand Rapids, Mich.: Baker Books, 2007), 1194.

[20] “Nicene Creed,” accessed Sept. 23, 2014,

[21] Ibid.

[22] “Chalcedonian Creed,” accessed Sept. 23, 2014,

[23] K.Y. Cheung Teng, Clear the Fog & Reveal the Truth (Hong Kong: Concern Group on Newly Emerged Religions, 2008), 16, 118,

[24] Ben Dooley, “Who’s Behind Newsweek?,” Mother Jones, March 2014, Accessed Sept. 23, 2014.

[25] Ken Smith, “David Jang Summary,” Confessions of a Would-Be Theologian, Jan. 6, 2014, Accessed Sept. 23, 2014.

Monday, October 6, 2014

Azure: What to use, what to avoid

Azure is clearly the second-tier choice for cloud services these days, well behind Amazon Web Services, but (so far as I can tell) still well ahead of Google Cloud and all the other players. But since I’ve been building Payboard’s infrastructure on the Microsoft stack – Visual Studio 2013 is pretty nice, and C# remains my favorite language by a significant margin – Azure was a natural choice.

Since making that choice, Payboard has processed some 30 million events from our customers, with several hundred thousand more coming in every day. That’s pretty small beer compared to some folks, but it’s not insignificant, and it’s given us a chance to stress test Azure in the real world. In the process, I’ve developed some strong opinions about what works well in Azure and what I would at all costs avoid the next time around. What follows here is just the experience of one team – so caveat developor.

Azure Websites: Thumbs up

Azure Websites aren’t suited for every task, with their main limitation being that they can’t scale up beyond 10 instances.  But if you’re not going to bump up beyond that, they’re very nice. We haven’t had any reliability problems to speak of, and they have very nice rollout stories. My favorite is their git integration: once you get it setup, you just push to Github, and that’s it. Azure notices your push, builds it, runs all your unit tests, and then if they succeed, pushes it to the website automatically. Very handy, and a nice workflow.

Azure SQL: Adequate

SQL Server is a great database, and I’m not at all sorry that we went with it. But Azure SQL starts getting spendy if you’re pushing any significant traffic to it at all, and it has some weird limitations that you won’t find in standalone SQL Server. (The one that’s bit me most recently is that it doesn’t support NEWSEQUENTIALID() – good luck keeping those clustered indexes defragmented.) Like SQL Server in general, it doesn’t have a great scale-out story: you can do it, it’s just a significant PITA. And finally, Azure SQL seems to have a lot of transient connectivity errors. At least half a dozen times a day, we simply can’t connect to the DB, sometimes for upwards of several minutes. MS insists, quite correctly, that you need to wrap every attempt to write to the DB in a retry block. But sometimes the errors last longer than your retry block on a busy server can reasonably be expected to continue retrying. My recommendation: if you’re building a financial application, or any application where you simply can’t afford to lose data, don’t use Azure SQL.

Azure Table Storage: Adequate (barely)

Azure Table Storage is insanely cheap, unbelievably scalable, astonishingly reliable, and if you’re using it the way it was intended, blazingly fast. It’s also missing a whole host of vital features, and is extremely brittle and thus painful to use in the real world. It’s not quite as bad as the “write-only datastore” that I initially dismissed it as being, but it really needs some TLC from the Azure team. For a good sense of what it’s still missing after years of neglect, check out of the UserVoice forums. Despite all that, if you’re willing to repeatedly pivot and re-import your data into ATS, it can be fairly effective. It’s basically a really cheap place to dump your log data. If you need to read your log data back, you can do it, you just need to be willing to repeatedly copy your data into a whole bunch of different tables, with each table having a separate partition key/row key schema. That’s more-or-less acceptable when you have a few million rows of data; it’s a lot less workable when you’ve got a few billion. It would be better if I’d been able to get the 5-20K rows / second imports that Azure advertises; unfortunately, even after a lot of tuning, I haven’t been able to get more than (sometimes) 1000 rows per second. (I’m sure that there may be ways to do it faster – but the fact that I haven’t been able to figure it out after a lot off effort goes right back to my point about brittleness.)

Azure Service Bus: Thumbs Down

Uggh. When we decided to switch over to an asynchronous queuing architecture for our event imports, we initially went with Azure Service Bus, mostly because it was newer (and presumably better) than Azure Storage Queues, and because it offered a notification-based approach for servicing its queues. Unfortunately, it was neither reliable nor scalable enough. We suffered through repeated outages before switching over to Azure Storage Queues. In addition, it basically doesn’t have a local development story. You have to use a real Azure instance, which is annoying and a PITA if you ever need to develop disconnected. (MS does have a Service Bus instance that you can install on your local machine, but at least as of this writing, it’s badly out-of-sync with the Azure implementation, and doesn’t work with the latest client library off of nuget.)

Azure Storage Queues: Thumbs Up

Very fast, very scalable, and rock solid. It’s poll-only, but that’s not hard to wrap. It has very large maximum queue sizes, which mostly makes up for the fact that its maximum message size is only 64K. On the whole, recommended.

Azure Worker Roles: Thumbs Up

They do what we need them to do. I still think that they’re more difficult to use than they need to be – I wish I could use Kudu with them, to enable the same “push to git” workflow that works so nicely with Azure Websites  – but I guess I don’t mind the flexibility that comes with requiring me to go through a separate publishing step. And once you get them configured, they’re easy to scale up and down. (I especially like the option to scale them up or down automatically based on queue size.)

Azure Managed Cache: Thumbs Down

Azure’s in-house cache implementation is slow and unreliable. When we finally abandoned it, we were experiencing multiple outages a day, and even when it was working, we were averaging about 300 ms / lookup, which was unacceptably slow for a cache. Not recommended.

Azure Redis Cache: Adequate

Redis is, indeed, as blazingly fast as you’ve heard. Our lookups often take less than 10 ms, which is kind of hard to believe, when you consider network latency and everything else. Unfortunately, after an initial period of stability, we’ve lately been having several (brief) outages a day. It’s just a cache, and we’ve wrapped our Redis cache with a (briefer)  in-memory cache, so this hasn’t been crippling, but it’s not what you like to see. In addition, I have some gripes with the recommended StackExchange redis libraries – the basic problem being that they don’t provide any automatic reconnect after a connection issue. Yes, you can wrap that, but it seems like the sort of thing that ought to be handled for you by the library itself.