Interview with JetBrains’ John Lindquist
Please meet John Lindquist, the newest addition to JetBrains’ team of Technology Evangelists. John gave us a nice full-blown interview, so… don’t let me take any more of your time—read on and get to know him!
1. Hi John, we would like to welcome you to JetBrains and thank you for taking the time to speak with us. You are a highly recognized figure in the Flash world for example, but for those who don’t already know you, can you tell us a bit about yourself?
Sure, from the tech side: I started programming back in high school by writing games on my TI-85 calculator instead of paying attention in high school math (unless you count hypercard before that). I played around with writing my own blogging software from a home server (ASP). I moved on to doing odd jobs while in school back around 2000 (php, java). For the next couple years, developed an internal app for the University of Utah for rendering/submitting pdfs (php, pdf, etc). Then settled down to work for an agency called Schematic with clients like Disney, Dell, Target, etc (flash, html). Most recently was working as a consultant at Roundarch with clients like Bloomberg, HBO, Air Force, etc.. (HTML/JS, flex, flash, etc).
On the personal side: I’ve been happily married for 9 years and have 3 incredible young boys. I’ve received a degree in English and took a stab at Law School (which I found mind-numbingly boring) before settling down in a full-time dev career.
2. Why do you want to work at JetBrains, and what will you be working on?
Over the years, I’ve had a very public love affair with Intellij (I’ve met many people like me). JetBrains’ IDEs have saved me so many days of my life thanks to the intelligent refactorings, inspections, etc that I feel obliged to share that knowledge with the world ;) I’ve also been very happy with the support from the JetBrains developers for implementing my feature requests and fixing my bug reports. I’ll probably be bugging them even more with feature requests now that we’re on the same team. ;)
3. What has influenced your decision to change your focus from one technology to the other?
I’m a front-end guy who loves building creative apps. I don’t really care about the language or platform as long as it delivers a great experience to the end-user. Recently, I had a ton of fun playing with Lua for some personal projects simply because the language lets you do anything. On the other hand, I’ve found writing Intellij plugins (in Java) to be the most rewarding because I can share them with others and I end up using them every day. Luckily I have enough experience bouncing between languages that picking up a new one comes pretty naturally. I think the weirdest thing is picking up a language you haven’t used in years (e.g., php) and your concepts of languages/patterns/architecture/etc have changed so much that it feels like starting over.
4. From your point of view what are the advantages of HTML5 over Flash and where does it need to improve?
HTML (and some of the “5”) runs on the iPad. That’s pretty much the only thing many clients care about right now.
You have to watch the recent “The Web Can Do That?” presentation from Google I/O to see how amazing browsers are becoming. It’s unfortunate the entire world isn’t running >Chrome 21, but it’s a really, really exciting time to be a web developer.
I’d hope with Flash’s new focus on gaming that it would be a more consistent/performant experience across browsers than HTML/JS will be for a few years, but I’ve seen some pretty impressive gaming demos in JS too. Honestly, I think there’s just so much excitement, motivation, and competition in the JS communities now that they’ll power JS through any pre-conceived notions of weakness.
5. Which of the latest HTML5 features have you tried yourself? Did they fit your needs? Would you advise others to try them when building an enterprise application?
Most recently, I’ve been doing a lot of work with PhoneGap and using WebView to build mobile apps. Due to the nature of mobile devices (huge variety of OS versions and WebView support) it’s been nothing but compromise after compromise on some of the most basic features (gestures, scrolling, etc). As for Canvas, WebGL, CSS3, sockets, video, etc, etc, etc, I’ll save my opinion for later since my experience is limited to prototypes and online demos.
Beyond that, I hope to see many more new languages topping the TIOBE charts throughout my lifetime as new devices and platforms hit the scene.
Enterprise apps are typically built by large teams leveraging legacy systems. Today, I believe JS would be great for an app where you’re starting from scratch and have a small agile team excited about the technology. On the flip side, just ask anyone how difficult it is to hire top-quality JS talent today and you’ll quickly realize how hard it would be to staff a large team for a JS project (especially if you’re trying to attract them to “humdrum” enterprise apps). I think we’re at the point where the technology is ready, but the community of needs to mature into seasoned app developers who have settled into roles of “enterprise JS consultants” before I’d recommend JS across the stack for enterprise.
Newbies: There are plenty of good apps out there that present good coding challenges for you. For example, try building twitter using fake data. Then add more features like making the tweet lists sortable or organized by common words. Take it one step at a time and keep Stackoverflow open in another tab and you’ll be cranking building your own client-side JS apps in no time. Just have fun and don’t be afraid to make mistakes.
Experienced folks: contribute to open-source projects and get involved in the discussion. Once you reach a certain skill level, the only way to learn is to have others critique your work. Trust me, open-source communities are great at critiquing your work ;)
10. What do you do in your free time? Do you have any hobbies?
I code and/or read about code a lot in my free time. I think it’s both a blessing and curse to have your hobby be the same as your job. Sometimes you think, “I need to get out more”, but then at midnight you concoct a cool new feature from a couple nuggets of inspiration and you dive right back down the rabbit hole.
Oh, and I love racquetball, playing guitar, and helping with service projects.
11. Thank you again for your time John and we look forward to the positive contributions that you will make as a JetBrains Evangelist. Are there any upcoming events, books or topics that you would like to plug?
Only my youtube channel for now: http://youtube.com/johnlindquist
I’ll start working on my conference schedule, updating my online profiles, etc once I officially start with JetBrains next week and go from there. Thanks!
Subscribe to Blog updates
Thanks, we've got you!
State of the event industry: the perspective of tech conference organizers and developers
“I don’t think the fundamental reason why people attend conferences has changed or is going to change – it’s about those meaningful connections.”Kevin McDonald, Chief Commercial Officer at Web Summit TL;DR The event industry has had to change significantly to adapt to the pandemic and it is co…
JetBrains at the ICPC North America Championship 2020
The first ICPC North America Championship (ICPC NAC 2020) took place February 19–23, 2020. The top teams from the ICPC North America Regional Contests advanced to the ICPC NAC in Atlanta, Georgia, hosted by the College of Computing at the Georgia Institute of Technology. JetBrains was proud to be a …
Software Development the JetBrains Way: Dogfooding and Other Key Principles
JetBrains has turned 20, and over the years, we've honed methods for development that match the style, values, and needs of our company. These processes work so well for us that we want to share them with others. Dogfooding, for example, has always played a central role in the development of our pro…
An Interview with Jakub Chrzanowski, .ignore Plugin Author
In this interview, we speak with Jakub Chrzanowski (@hsz @hszanowski), the author of the .ignore plugin for the IntelliJ-based IDEs. This plugin lets you mark matched .ignore files in project view, assists with editing them, and helps you generate ignore rules using templates. Welcome, Jakub! Befor…