A: I was surprised that we were the only collaboration to submit an entry, we are a team of two strong here at Team Bright Rain:
David Puckett
Bright Rain Solutions’ owner, operator, geospatial developer, data wrangler and self professed Grand Poobah. I’ve been part of the Geo Community for over twenty years and still get fantastically excited about all things geo. I’ve been known to run a workshop or two and have taught a class on web mapping. I consider myself a ‘bridger’ between the proprietary and open source worlds. And some of my best friends are “proprietarians”.
Andrew Lindley
Bright Rain’s Dynamic Technologist with an earnest mission to change the way you put boots and hats on maps. Drew has been with Bright Rain for two years and earned a degree in Geography from the University of British Columbia. He was also the star student in my GIS programming class, from which I promptly drafted him.
Q: Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).
A: When it hit me, I literally jumped out of my chair and hollered, “Hexes in Texas!,” with a rousing “Yes! Divorce Rates in Texas!” and All My Hexes Live in Texas was born. It could have been the boots… I happened to be wearing cowboy boots that day… It could have been the H3 hexagon project we had going. But it was definitely cosmic inspiration.
The map is honest to goodness tongue-in-cheek grit but it also brought several interests together for us and that’s why we were excited (and committed enough) to create and submit it. It’s funny yet not so silly that we couldn’t actually wrangle some real data and present it in, dare I say, a (geo)hip way. We love the slight clash between the slick, modern feel of the web map and the old timey western feel of the title text, hat and boot.
Q: Tell us about the tools, data, etc., you used to make the map.
A: We are web (map) developers so our toolset in making this map definitely embodies that. The map was created as a web map and later exported and enhanced in Adobe Illustrator to create the final image output. Mapbox GL was used to display and extrude counties as hexagons based on the divorce rate within the county. The hexagons themselves were generated using Uber Engineering’s H3 Hexagonal Hierarchical Spatial Index (Javascript) library (at scale level 5).
DATA
Data was gathered from the state of Texas (population per county and divorces per county) and the US Census Bureau (us states: Tennessee).
Analysis was conducted in QGIS where the divorce rate per thousand was calculated and the hexagons were assigned a value for extrusion (based on divorce rate calculation). The resulting hexagons with divorce rates assigned were exported as geojson for direct use in the web application.
Denise is an Aussie who lives in England in the historic town of Winchester. She joined OGC in 2012 and spends her time managing the Communication and Outreach program globally for the consortium. The program handles the planning and execution of marketing, communication and education to raise awareness and increase implementation of open geospatial and location standards by technology providers and users worldwide. Part of Denise’s role is to oversee OGC Alliance Partnerships including representation at the United Nations Global Geographic Information Management (UNGGIM) committee. She is a member of the Board of the Association for Geographic Information in the UK and the Global Advisory Board for the Location Based Marketing Association. Prior to her role with OGC, she worked for over 12 years with the Victorian Government (Australia) in areas of geospatial strategic policy, collaboration and innovation.
Denise was interviewed for GeoHipster by Alex Leith and Michael Terner.
Q: Tell us about how you came to work for OGC.
A: It’s a serendipitous story, like most of my career, to be honest. I had been back working for the Department of Sustainability and Environment in Victoria, Australia for just over a year after maternity leave from my second child. Apart from the huge challenge of the VicMap API project, one of the other activities I had been leading was to set up the first OGC Australia and New Zealand Forum. As anyone who tries to work from Australia with people in other parts of the world will know – this included a lot of late night calls. It was during one of these calls that I was chatting with the CEO of OGC and he asked me if I had seen that the position for Executive Director for Marketing and Communications was being advertised. I said yes, and simply asked how their search was going. The response I got was “actually I was wondering if you had considered applying?” I think it would be fair to say that my face somewhat resembled that of a guppy fish (jaw on the floor and no words coming out – was so grateful that I did not have video for that moment). In my daze I asked a few more questions, finished the call and wandered into the kitchen where I then asked my husband what he thought of the idea of moving to a different country for work? He said sure… so I applied and rest is history.
Q: You travel a lot. What’s the best and worst thing about this?
A: Most days I really think I have one of the best jobs you can have in our industry. I love meeting new people, seeing new places and in the 6 years of working in OGC I realised how much I love seeing and learning about the amazing things people use location data for and how that changes the world for the better in so many ways. I feel really privileged to be able to represent the OGC membership throughout the world and to be able to tell their stories and to share the benefits that open geospatial standards can achieve.
It may sound cliche but the worst thing about travel is the time it takes me away from my family at home. Though my kids would say that it is not all bad because mum brings back presents! My rule is that they only get presents if the travel has been to a country I have never been to before and I always look for something that has a cultural connection to where I have been. It does make for some funny stories though. My son when he first started school explained to his teacher that “mum was away on the space station.” He had been confused when I said I was going to the European Space Agency (Frascati, Italy).
Q: You’ve been living in the UK for six years, do you miss Australia?
A: Of course! I will be an Aussie till my last day, but I do love my new country and am pretty lucky to be able to enjoy both places. The coffee scene is slowly improving (Winchester Coffee Roasters has been a life saver – though I did laugh when I discovered the owner learnt how to make coffee in Sydney).
But things I miss most include:
Beaches where the sand stretches for miles
Flake & potato cakes from the fish and chip shop
Sydney rock oysters
Rust orange sunsets – the ones in the UK are more pink in color
The smell of lemon-scented gums after it rains
The sound of magpies carolling in the mornings.
Q: Where does spatialred come from? Is it the blue hair?!
A: Hmm, there are only 5 other people who were involved in the creation of that twitter handle and how it came about is now a bit of an urban legend 😉 All I can say is that it was during a conference in New Zealand. I did have red hair at the time, but no that is not what inspired it. However seems to have stuck over the years and to be fair I do wear red pretty often.
Q: While standards are undeniably important, they are also boring. Can you convince us that they are hip?
A: Oh I love this question! Because I honestly believe they are anything but boring. They are one of the most powerful tools for sharing information and knowledge that we have. They bring people together around common problems and give them a pathway to solving them. Standards cross boundaries and borders in ways that enable us the greatest global insights into our planet that we have ever been able to access. One of my current favorite examples of this is the Arctic SDI,where 8 nations are now sharing data across international borders using OGC’s open standards.
At the end of the day it will be the standards we all agree on and the data that will flow through them that will help the world’s leaders make better decisions.
Location standards in particular help us to share data for all kinds of purposes, like understanding climate change, managing city infrastructure, getting planes safely to their destination and so many other world-changing benefits.
In short standards are the infrastructure that enable us to enjoy access to the incredibly rich information resources the web now provides. You can have the best data in the world, but if you can’t share it with anyone then of what benefit is it? Open location standards are one of the most powerful tools for data sharing around and that is why I think they are hip!
Q: What’s your take on the organically emergent standards, like shapefile, or GeoJSON that did not come out of standards setting organizations? Are they better or worse than OGC standards?
A: The truth is that most of the OGC standards start life in some way outside of the formal standards creation process. New standards are driven by innovation. Yes, you did read that correctly – standards happen because of innovation, not after the innovation has happened as I think many believe sometimes. No set of standards that operate in the web exist without interaction with other standards. We need to all work together to ensure the ecosystem works and the data flows and is visualized where it needs to be. Innovation will always help to create new and better ways of doing things and that is why you get communities developing standards like GeoJSON – though remember this standard is now part of a formal standards body at IETF.
A standard that is created outside OGC is no better or worse than an OGC standard – the most important thing is that the standard meets the needs of the users. I think one of the best developments in OGC in the past 5 years has been the creation of the Community Standard process. This now allows standards that are developed outside of that formal process but are mature, stable and being regularly used to be proposed as an OGC standard and come into the organisation with minimal change.
Q: How, and why did KML (originally a de facto standard) become an OGC standard?
A: In some ways, KML was really our first community standard (though we didn’t have formal process for it in those days). It was before my time in OGC, but from what I understand there was a recognition in Google that the standard would enable more data to be made available in this format if it was an international open standard than to remain a proprietary format in Google. Perhaps a good question to pose to Ed Parsons ;-).
Q: Can you talk about the difference in the process involved in WFS 3.0 and the ‘old’ way of developing standards? Also, are the other WxS services being reviewed?
A: This is my new favorite topic and one that excitingly you will see a lot of progress on in the next twelve months. I have watched a lot of change in the way we make standards in OGC. Word docs have given way to GitHub, PDF has given way to HTML, the range of market domains in OGC have increased, and hackathons have been introduced to complement our technical meeting process. It is important to note that our web service standards are not going away any time soon, but with the innovation in use of APIs it is time we developed some new standards to help ensure we can keep sharing geospatial data. The way we have started to describe what is happening is the following analogy.
Picture a brick house with great sturdy foundations that has been improved and matured over a long time and is currently being very well lived in and serves much of the world’s geospatial data. This is our OGC web services house and inside is WMS, WFS, WPS, WCS, WMTS and OWS Common. But we now have new building materials and methods of creating a house so we need some new standards to help us continue to share our geospatial data in an innovating world. This new house will be called the OGC API. In this house you will find OGC API – Features (formerly known as WFS 3.0), OGC API – Common, OGC API – Maps, OGC API – Processes, OGC API – Tiles and so on. The idea is that both these two houses will continue to co-exist for a long while yet, they will draw from the same data lakes and we will be building bridges to help developers move from one house to the next. Hopefully without too much trouble.
There is a hackathon that will push the development and testing of new specs for a number of these new standards in June this year just prior to our Technical Meetings in Belgium. Keep an eye out for more details and how to get involved. These need industry-wide support, review and participation to make them a great new generation of OGC standards.
Q: Ok, big question: Is spatial special?
A: No and yes. Sorry, fence sitting answer I know. In the big wide world of data – it is just another data type. But it has some unique and important elements about it that mean if you handle spatial data incorrectly you will get really bad outcomes. So I think that there is still an important role for spatial professionals in helping ensure that we use spatial data the right way and ensure we support good evidence-based decisions.
Maybe the question isn’t whether spatial is special or not, but why there still seems to be so much of the world that does not harness the power of spatial data or understand what it can do. Perhaps it is more a question of whether we as a community of practice think we are too special and are yet to really reach outside of our community to the broader world of data users to ensure that the goodness that spatial data can bring is shared globally.
And for what it is worth, I like the words location and place over geospatial or spatial (maybe our language is part of the problem?).
Q: Among your work experience on LinkedIn you list ‘mother’, which is awesome! Can you talk about this a bit?
A: Oh man, do not get me talking about my kids or we will be here for pages more 😉…but you have touched on something that is increasingly becoming an important topic for me and that is diversity. Not just gender diversity, but diversity in all areas – age, culture, language, experience, skills. I am sure it would be unsurprising to many of the readers here when I say that I am commonly either the only or one of a few women in many work situations I find myself in (unless of course it is International Women’s Day). Whilst I will say it is improving, it does not seem to be fast enough.
This year I ran an International Women’s Day event in London titled Women in Geospatial. I invited 3 women who are midway through their working careers to talk about their experience in the geospatial industry and how they got there, but the speakers on the day that had the most impact for me were the 4 women on our early careers panel. Whilst saying that they loved working in the industry, they all still had stories of intimidating all-male interview panels, some but not enough female role models in senior leadership positions and comments on their university degrees not having enough of the practical skills that they need now for their current jobs.
Another pivotal event was during FOSS4G last year in Tanzania when Rebecca Firth (from the Humanitarian OpenStreetMap Team) and I ran a Diversity in Geo session and had close to 40 people turn up at 4pm on the second day of the conference. This helped to realise just how important it is to be a good role model and that when you are in a visible international role such as mine that we have an obligation and responsibility to help drive and be part of the necessary change.
So yes, I list “mother” as a job and I am very proud to do so, as the balance between work and family is paramount for me. To be honest I have learned so much by having this role in life and it enables me to bring many diverse perspectives to what I do, particularly now that my kids have reached an age where they are explaining the latest tech to me! #DiversityInGeo#WomenInGeospatial
Lastly a shout out to the lovely ladies that have started the WomenInGeospatial network recently, which I highly recommend getting in touch with if you are looking to network with other women in the industry.
Q: What’s #1 on your bucket list?
A: Hmm, I think (and I am sure my mum would laugh in agreement with this) I have always wanted to do something that would help change the world for the better. I definitely have been able to do a lot in my time both at DSE in Australia and now in OGC that has helped, but we have so much more that we can do and I am really excited to be part of the OGC journey and working with our new leadership. I definitely can’t say that I have totally completed this bucket list item yet, but I am on my way and guess we will need to wait another 25 years or so of my career before I will know if I really achieved it or not ;-).
Q: And finally, what about you makes you a geohipster?
A: I simply love what geospatial can do and I love evangelizing about it. It is such a good news story and really has the power to change the world for the better. Oh and I love the challenge of making open geo standards hip.
Tobin Bradley is an indoor enthusiast. His hobbies include staring at screens (computers), staring at screens (books), staring at screens (movies), and staring at screens (video games). He wrangles code at Mecklenburg County Government in North Carolina and occasionally writes about it on his blog.
Tobin was interviewed for GeoHipster by Mike Dolbow.
Q: Good gracious, you’ve been blogging over at Fuzzy Tolerance since 2005! When you started, did you ever think it would last over 14 years? What does that first post make you think of?
A: Something Jeff Atwood of Stack Overflow fame said that stuck with me is the worst code he’d ever seen was the code he wrote six months ago, and that that was always the case. Looking at my first blog post from 14 years ago on Loading .NET User Controls at Run Time, complete with poorly formatted code from one of my 47 blog engine migrations, makes me contemplate the sturdiness of the window across from me and the elevation of this floor.
But it also makes me realize why I’ve never gone back and edited those old blog posts, even the ones that make me cringe. It’s me, or at least the part of me I choose to share. Fuzzy Tolerance started even earlier as (oh it pains me to write this) The Programming Consultant Newsletter, a PDF I’d share with our staff and other local GIS folks every month. I’m an introvert and slightly autistic, the kind of person you’d see at a conference pretending to be part of a wall while eyeing the exits. Writing has always been the way I can help people and express myself. So it doesn’t surprise me that I’ve been doing it for so long, and in the event of a civilization-ending zombie apocalypse, I’d probably still write blog posts with spray cans on the sides of abandoned grain silos.
Plus it’s a good way to archive my aging brain. Recently somebody thanked me for a bit of complicated PostGIS-related SQL I shared that I had no recollection of whatsoever. I was pretty sure I was being confused with a smart person until I found the blog post.
Q: All right, let’s back up a little for our readers here. How did you get into GIS…or geospatial…or whatever we’re calling it these days?
A: Accidentally.
I was always headed for something related to problem solving and technology. My parents bought me a Commodore VIC-20 in my formative years, a 5KB of RAM powerhouse (if you had the Commodore 64, (a) congratulations and (b) I hate you). It marked the point in my life when I became an indoor enthusiast. The things I managed to do with BASIC are probably still illegal in most states.
Naturally I went to college expecting to become a programmer. Two classes later and I was disabused of that notion. I could do the work, but I didn’t enjoy it. This is a failing on my part; I have an awful time learning things if I don’t have an immediate practical application for them. I realized I didn’t like programming per se, I just liked solving complex and interesting problems. If I weren’t an indoor enthusiast with an aversion to dirt I’d be perfectly happy being an auto mechanic.
During that existential crisis I happened to take Geography 101 as an elective with an amazing professor, Dr. Tyrel Moore. I went in thinking I’d memorize the state capitals, which was what I thought geography was at the time. Boy was I wrong. I was fascinated by the breadth and scope of the subject matter, but I’ve often thought if my first geography professor wasn’t an amazing teacher, I could have gone in an entirely different direction. Thanks, Dr. Moore.
I had no idea GIS was a thing when I became a geography major. With my programming background, it was a natural fit, and the rest is a succession of lucky breaks and happy accidents. We still call it GIS in Mecklenburg County, but once Data Science becomes a hackneyed term nobody uses anymore, I’m sure local government will switch to it.
Q: Your second Fuzzy Tolerance post was on Open Source Software. Even though the first FOSS4G conference (under that moniker) was only a year away, that still seems awfully prescient to me, especially considering that you work in public sector IT. Did you have a crystal ball hidden somewhere? And did you feel like a lonely voice back then?
A: A nice thing about local government is the antiquated technology actively encourages one to experiment with other things. Combine that with my natural nerd inclinations and I was playing around with things like Linux and MySQL and PHP very early on. At that point I had a loose understanding of what open source was; my interest in open source software was born out of practical rather than idealistic considerations.
The big turning point for our GIS group was when we launched an important website using new internet mapping software from our proprietary GIS vendor with much public fanfare, only to have it explode in a furious ball of nothing. We were battling “server unavailable” messages around the clock. We threw more hardware at it. It crashed faster. We brought the vendor in, who gave us a very expensive shrug. It was black-box proprietary software, so we couldn’t fix it. We couldn’t even tell what was wrong.
Fortunately that wasn’t one of my apps, but I had some apps coming down the pipe, and there was no way I was building them around that software. Some people looked cool and important with a pager strapped to their waist; I was not one of those people.
So I tried UMN’s MapServer, not overly optimistic about it because I thought web mapping was too niche for open source software. MapServer was better than our proprietary product in every imaginable way. It was faster. It was stable. It scaled better. And from a programming perspective it was much easier to work with. I released a couple of apps using it, and we had zero problems. It was…awesome.
That opened our eyes. We’re still a mixed proprietary and open source shop, but it’s exceedingly rare that we create something that doesn’t use open source software, and many of our projects are built entirely with open source software. We also release a lot of our software under an open source license. While I love the ethos and spirit of open source software, our use of open source is still entirely for practical reasons. For many problems, it’s the best tool for the job.
Personally, I’ve been rocking Linux at home (currently Manjaro KDE) exclusively for 15+ years. The open source community and ethos feels like home to me.
Q: You’ve been working for Mecklenburg County for a long time. Is there anything special about this organization that keeps you interested and invested?
A: Oh, not really. Don’t get me wrong, it’s a great place to work, but it has the perks and pitfalls of most local governments. If our GIS group can be said to have accomplishments, I don’t think they’re accomplishments other local governments couldn’t achieve.
I’ve been very lucky in two ways. First, I’ve managed to have great bosses. One bad boss and I would have fallen back on my rock guitar god/professional video gamer career. Second, our GIS group does work with all of our government agencies, making for a wide variety of interesting and ever-changing problems to solve. Even after 20+ years (!), I still look forward to coming to work.
Q: I think I first caught on to your blog around when you started writing about customizing Google Maps, which inspired me to do the same for the organization I was supporting. Back then, they were one of the few choices for a slippy map API, but now there’s probably a dozen, depending on how you count. How do you keep up with technology changes, and how do you decide what to recommend/implement at work?
A: Without the constant technology changes, I’d have left GIS at some point. It’s the constant learning that makes this job so interesting.
At the start of every month I write out the things I want to learn more about. It’s my job to investigate these things, but in all honestly I’d do it even if it wasn’t, and I think it’s something everybody should do. It’s very easy to turn on autopilot and keep doing the same thing the same way over and over, but if you aren’t learning, you aren’t growing, and if you aren’t growing, you’re shrinking. Literally. You’ll shrink.
I try not to steer the ship by recommending or advocating a particular technology direction unless I’m directly asked or I see an iceberg ahead. I tried that early in my career with limited success. I’ve found it’s much more effective to drop guideposts and let people come to them on their own. When people notice my apps are always up, or that an app does a particular thing they’ve been struggling with, they move in that direction naturally. Otherwise it’s whip-cracking and cat-herding, and I have no talent for those things.
Q: You’ve got a lot of code on Github, like your Bootstrap and Leaflet template. Does your organization actively support you open sourcing your apps, or do you just ask for forgiveness later?
A: Ug, that’s an old one. I should probably redirect that repo to Bryan McBride’s Bootleaf, which is much better. Mine was first (ha!), but as with most things, if Bryan McBride and I both did it, you should go with Bryan’s version.
I wouldn’t say my organization actively supports open sourcing apps (I don’t know of anybody else in the organization that has), but it isn’t opposed to the idea. In the early days it was something I did and waited patiently to see if I was going to be flogged, but these days even crusty old mainframe programmers know what GitHub is. Most people I talk to don’t share their code because they think it’s terrible, which is true. What they don’t understand is everybody’s code is terrible. No matter how terrible your code is, there are people it can help, and there are people that will help you make your code better.
My county has a park locator app. So do all 100 other counties in North Carolina. So does every county in the United States, and probably every local government around the world. The wasted effort and money in government because we aren’t sharing code with each other should be an outrage. I’m not big into leadership by fiat, but making all publicly funded code open source is a law I would wholeheartedly support.
You’ve also open sourced your current GeoPortal, which when I use it, strikes me as the “anti-portal”. This app is so simple, I can use it and browse it even though I live over 1,000 miles away. I have to believe there will be other local governments using this somewhere. Are you aware of any?
A: GeoPortal is a fun project. It’s one we initiated within our group, which is different — most of our projects are initiated by our customers, aka other county agencies. That gives us leeway in terms of design and functionality that we often don’t have on our projects (read: when you see one of our apps with 37 buttons, know that a battle was lost). It’s also very fun modern tech: vector tiles, reactive UI components, progressive web app, etc. It’s good to have one project your group completely owns that can be used to try new things and blaze trails for future apps.
I know places that are using our projects like GeoPortal and the Quality of Life project and our Dirt Simple PostGIS HTTP API, and if they want to give us a hat tip for that, that’s very nice. I don’t like to call them out myself though. Taking something we wrote like GeoPortal and customizing it for their own jurisdiction is a herculean effort (I’ve seen my code), and I don’t want a smidgen of credit redirected from somebody that worked really hard on their app to us. But I’ll say this to others that may be functionally autistic/dead inside like myself: knowing that something you shared is helping other people will touch and affect you in ways you won’t expect. When people thank me for a project I’ve shared, I hide in my office for an hour.
Speaking of hat tips, GeoPortal needs to give a giant one to Brian Timoney. His blog posts on how people actually interact with web sites was a real eye opener, and it got me started on a path of learning more about UI and UX, to the point where the map on GeoPortal is now an optional click (gasp!). For my money, good design is still the most glaring problem in government websites today, and unfortunately it’s an area governments rarely invest in.
Q: Judging by your Twitter bio picture, you’re both a musician and a dad, like me. I personally find that lessons I learn in those two roles can be applied in GIS, in IT, and in public sector work. Have you found the same thing, and if so, are some experiences more influential than others?
A: To call me a musician is stretching the term a bit. 23andme has officially confirmed the dad part though.
My first lesson as a father was that I owe my parents an apology. Beyond that, it’s hard to pick out individual things, as I ama fundamentally different person since my son was born. I have a lot more patience. I understand that people have their own motivations and histories, and if I want to connect with and motivate people I need to understand those things and not judge them. A number of children’s cartoons no longer piss me off. It’s a really strange experience going from not understanding people at all to having a wife and son that I’d step in front of a bus for without a second thought, but I wouldn’t trade it for anything.
Being a musician, aside from the expense of new gear and the noise complaints, is a total quality of life improvement. It builds focus, tenacity, patience, confidence, and peace of mind, all of which translate to your life in positive ways. I did not pick up the guitar at 16 for any of those reasons. I picked it up because I thought it would help me woo women in ways that my personality and stick-like figure did not. Turns out an autistic stick-figure kid carrying a guitar around everywhere is mostly just weird.
Q: Tube amps or solid state? Seriously.
A: If your gear inspires you to play and create music, it’s the right gear. If it doesn’t inspire you to play and create music, it’s the wrong gear. If a Squier Strat plugged in to a Peavey Bandit is what inspires you, make your music and tell all of the gear snobs to stuff it.
But the correct answer is tube amps.
Q: OK, the evidence is building. But I’m starting to feel like I don’t have to ask EVERY interviewee if they’re a geohipster. Would you be OK if I skipped it this time?
A: I have never owned a non-functional scarf, which I think rules out the hipster part. I have also never intentionally achieved “cool”, though after many years of work I have “non-threatening” down pat. It mostly involves smiling a lot without showing teeth. I do own a tie that plays Christmas carols. Do with that what you will.
Q: Any words of wisdom or parting shots for our readers?
A: For my fellow local government tribe, I try to encourage people to be present and thoughtful about everything they do. The most common answer to why a local government does something the way it does is because that’s the way it did it yesterday. This is always a bad answer.
But for everybody, my biggest wish is that people would realize how amazing they are, how important they are to other people in ways they don’t understand, how smart they are and the ways they can and do contribute. Imposter syndrome isn’t a new thing, but it seems to hit the tech field pretty hard. The next time your inner voice is giving you an itemized list of your failures, ask yourself if that inner voice was an actual person, how long would you listen to it before you punched it in the mouth. If the answer is not very long, feel free to ignore that voice and go do awesome things with whatever time you have on this planet. And share some code along the way.