Regional Director of Engineering
Freelancer.com
Languages, Services & Tools
Languages, Services & Tools
Languages, Services & Tools
Languages, Services & Tools
Languages, Services & Tools
function greeter(person) {
return `Hello ${person}`;
}
let user = "Jane User";
document.body.innerHTML = greeter(user);
Languages, Services & Tools
Languages, Services & Tools
interface Person {
firstName: string;
lastName: string;
}
function greeter(person: Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
let user = { firstName: "Jane", lastName: "User" };
document.body.innerHTML = greeter(user);
Languages, Services & Tools
Languages, Services & Tools
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
Languages, Services & Tools
Languages, Services & Tools
Non-Native Frameworks
Non-Native Frameworks
Non-Native Frameworks
import React, {Component} from 'react';
import {Text, View} from 'react-native';
class HelloReactNative extends Component {
render() {
return (
<View>
<Text>
If you like React, you'll also like React Native.
</Text>
<Text>
Instead of 'div' and 'span', you'll use native components
like 'View' and 'Text'.
</Text>
</View>
);
}
}Non-Native Frameworks
import {Component} from 'angular2/core';
@Component({
selector: 'main',
template: `
<StackLayout>
<Label align="center" text="Hello World!"></Label>
</StackLayout>
`,
styles: [`
label{
font-size: 45;
horizontal-align: center;
padding-top:70;
}
`]
})
export class MainPage {
constructor() {
}
}
Non-Native Frameworks
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
body: Center(
child: Text('Hello World'),
),
),
);
}
}Continuous Integration/Continuous Development
... the practice of integrating code into a shared repository and building/testing each change automatically, as early as possible - usually several times a day
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
... provides the ability to release software to production at any time, often by automatically pushing changes to a staging system and eventually to production.
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
Continuous Integration/Continuous Development
Infrastructure as Code/Continuous Configuration Automation
... the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools
Infrastructure as Code/Continuous Configuration Automation
... the methodology or process of automating the deployment and configuration of settings and software for both physical and virtual data center equipment
Infrastructure as Code/Continuous Configuration Automation
Infrastructure as Code/Continuous Configuration Automation
Infrastructure as Code/Continuous Configuration Automation
resource "aws_instance" "example" {
ami = "ami-2d39803a"
instance_type = "t2.micro"
user_data = <<-EOF
#!/bin/bash
echo "Hello, World" > index.html
nohup busybox httpd -f -p 8080 &
EOF
tags {
Name = "terraform-example"
}
}Infrastructure as Code/Continuous Configuration Automation
> terraform plan
(...)
-/+ aws_instance.example
ami: "ami-2d39803a" => "ami-2d39803a"
instance_state: "running" => "<computed>"
instance_type: "t2.micro" => "t2.micro"
security_groups.#: "0" => "<computed>"
vpc_security_group_ids.#: "1" => "<computed>"Infrastructure as Code/Continuous Configuration Automation
Infrastructure as Code/Continuous Configuration Automation
Infrastructure as Code/Continuous Configuration Automation
# helloworld/manifests/init.pp
class helloworld {
notify { 'hello, world!': }
}
# helloworld/manifests/motd.pp
class helloworld::motd {
file { '/etc/motd':
owner => 'root',
group => 'root',
mode => '0644',
content => "hello, world!\n",
}
}
Infrastructure as Code/Continuous Configuration Automation
# /etc/puppetlabs/code/environments/production/manifests/site.pp
node default {
class { 'helloworld': }
class { 'helloworld::motd': }
}Infrastructure as Code/Continuous Configuration Automation
[root@agent1 ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for agent1.example.com
Info: Applying configuration version '1437172035'
Notice: hello, world!
Notice: /Stage[main]/Main/Node[default]/Notify[hello, world!]
/message: defined 'message' as 'hello, world!'
Notice: Applied catalog in 1.25 seconds